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

MapBevat
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.