Lavorare su Draggy

Compilazione e architettura

Avviare dai sorgenti, com'è organizzato il codice, e i due confini.

Avviare dai sorgenti

npm install
npm run electron:dev

Vite ed Electron insieme con ricarica a caldo, sulla porta 5173. Un processo Vite rimasto acceso tiene quella porta e l'avvio successivo fallisce: chiudilo prima.

npm run check

Controllo dei tipi, lint e circa 1.900 test in pochi secondi. La CI esegue lo stesso comando. npm run electron:build scrive un installer in dist-electron/.

Com'è organizzato

CartellaContiene
electron/Processo principale: finestre, IPC, SQLite, la protezione dei file, git, il browser, i server MCP, gli aggiornamenti
src/agent/Il ciclo di chiamata agli strumenti in streaming, i permessi, la compattazione
src/chat/L'elenco dei messaggi, i diff, le approvazioni, la ruota del contesto
src/tools/Le definizioni degli strumenti e il registro in cui stanno
src/voice/Acquisizione, rilevamento, turni di parola, sintesi

I due confini

electron/preload.cjs è quello della sicurezza. Il renderer non ha accesso a Node e raggiunge il filesystem, la rete e il database solo attraverso ciò che è esposto lì. Aggiungerci una funzione è un atto deliberato.

La separazione delle sessioni è l'altro. La finestra di Draggy gira sotto una CSP severa; ogni pagina esterna gira in una partizione separata senza nessuna nostra regola. Unirle applica le nostre regole ai siti degli altri e produce macerie.

Convenzioni

  • I commenti spiegano il perché, mai il cosa, e stanno in due righe al massimo
  • Le dodici lingue restano allineate, controllate da un test
  • Ogni processo figlio passa dagli helper che avviano senza finestra
  • I messaggi di commit sono di una riga

CONTRIBUTING.md ha il resto, e SECURITY.md copre come segnalare una vulnerabilità.