Werken aan Draggy
Bouwen en architectuur
Draaien vanaf de broncode, hoe de code ligt, en de twee grenzen.
Draaien vanaf de broncode
npm install
npm run electron:dev
Vite en Electron samen met hot reload, op poort 5173. Een blijven hangen Vite-proces houdt die poort bezet en de volgende start mislukt: eerst afsluiten.
npm run check
Typecontrole, lint en ongeveer 1.900 tests in een paar seconden. CI draait
dezelfde opdracht. npm run electron:build schrijft een installer in
dist-electron/.
Hoe het is ingedeeld
| Map | Bevat |
|---|---|
electron/ | Hoofdproces: vensters, IPC, SQLite, de bestandsbewaking, git, de browser, MCP-servers, updates |
src/agent/ | De streamende gereedschapslus, de rechten, het samenvatten |
src/chat/ | De berichtenlijst, diffs, goedkeuringen, het contextwiel |
src/tools/ | De gereedschapsdefinities en het register waar ze in staan |
src/voice/ | Opname, detectie, beurtwisseling, spraak |
De twee grenzen
electron/preload.cjs is die van de beveiliging. De renderer heeft
geen Node-toegang en komt alleen bij het bestandssysteem, het netwerk en de
database via wat daar wordt blootgesteld. Daar een functie aan toevoegen is een
bewuste daad.
De sessiescheiding is de andere. Draggy's eigen venster draait onder een strikte CSP; elke externe pagina draait op een aparte partitie zonder enige regel van ons. Ze samenvoegen legt onze regels op aan andermans sites en levert puin op.
Afspraken
- Commentaar legt het waarom uit, nooit het wat, en is hoogstens twee regels
- De twaalf talen blijven gelijk, bewaakt door een test
- Elk kindproces gaat via de helpers die zonder venster starten
- Commitberichten zijn één regel
CONTRIBUTING.md heeft de rest, en SECURITY.md gaat over het melden van een kwetsbaarheid.