Trabalhar no Draggy

Compilação e arquitetura

Correr a partir do código, como está organizado, e as duas fronteiras.

Correr a partir do código

npm install
npm run electron:dev

Vite e Electron juntos com recarregamento a quente, na porta 5173. Um processo Vite que ficou vivo prende essa porta e o arranque seguinte falha: mata-o primeiro.

npm run check

Tipos, lint e cerca de 1900 testes em poucos segundos. A CI corre o mesmo comando. npm run electron:build escreve um instalador em dist-electron/.

Como está organizado

PastaContém
electron/Processo principal: janelas, IPC, SQLite, a proteção de ficheiros, git, o navegador, os servidores MCP, as atualizações
src/agent/O ciclo de chamadas a ferramentas em streaming, as permissões, a compactação
src/chat/A lista de mensagens, os diffs, as aprovações, a roda de contexto
src/tools/As definições das ferramentas e o registo onde vivem
src/voice/Captura, deteção, vez de falar, síntese

As duas fronteiras

electron/preload.cjs é a da segurança. O renderizador não tem acesso ao Node e só chega ao sistema de ficheiros, à rede e à base de dados pelo que está exposto ali. Acrescentar-lhe uma função é um ato deliberado.

A separação de sessões é a outra. A janela do Draggy corre sob uma CSP rigorosa; cada página externa corre numa partição separada sem nenhuma regra nossa. Juntá-las aplica as nossas regras aos sites dos outros e só desenha escombros.

Convenções

  • Os comentários explicam o porquê, nunca o quê, e têm no máximo duas linhas
  • Os doze idiomas mantêm-se a par, garantido por um teste
  • Cada processo filho passa pelos ajudantes que arrancam sem janela
  • As mensagens de commit são de uma linha

O CONTRIBUTING.md tem o resto, e o SECURITY.md cobre como comunicar uma vulnerabilidade.