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
| Cartella | Contiene |
|---|---|
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à.