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

OrdnerEnthä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.