An Draggy arbeiten
Bauen und Architektur
Aus dem Quelltext starten, der Aufbau des Codes, und die zwei Grenzen.
Aus dem Quelltext starten
npm install
npm run electron:dev
Vite und Electron zusammen mit Hot Reload, auf Port 5173. Ein übrig gebliebener Vite-Prozess hält den Port und der nächste Start scheitert: erst den beenden.
npm run check
Typprüfung, Lint und rund 1.900 Tests in wenigen Sekunden. CI führt denselben
Befehl aus. npm run electron:build schreibt ein
Installationsprogramm nach dist-electron/.
Wie es aufgebaut ist
| Ordner | Enthält |
|---|---|
electron/ | Hauptprozess: Fenster, IPC, SQLite, der Dateischutz, Git, der Browser, MCP-Server, Updates |
src/agent/ | Die streamende Werkzeugschleife, die Berechtigungen, die Verdichtung |
src/chat/ | Die Nachrichtenliste, Diffs, Freigaben, das Kontextrad |
src/tools/ | Die Werkzeugdefinitionen und das Verzeichnis, in dem sie stehen |
src/voice/ | Aufnahme, Erkennung, Sprecherwechsel, Sprachausgabe |
Die zwei Grenzen
electron/preload.cjs ist die der Sicherheit. Der Renderer hat keinen
Node-Zugriff und erreicht Dateisystem, Netz und Datenbank nur über das, was dort
freigegeben ist. Dort eine Funktion hinzuzufügen ist eine bewusste Handlung.
Die Sitzungstrennung ist die andere. Draggys eigenes Fenster läuft unter einer strengen CSP; jede fremde Seite läuft in einer eigenen Partition ohne unsere Regeln. Sie zusammenzulegen wendet unsere Regeln auf fremde Seiten an und liefert Trümmer.
Konventionen
- Kommentare erklären das Warum, nie das Was, und sind höchstens zwei Zeilen lang
- Die zwölf Sprachen bleiben gleichauf, von einem Test überwacht
- Jeder Kindprozess läuft über die Helfer, die ohne Fenster starten
- Commit-Nachrichten sind eine Zeile
CONTRIBUTING.md hat den Rest, und SECURITY.md behandelt das Melden einer Sicherheitslücke.