Travailler sur Draggy
Compilation et architecture
Lancer depuis les sources, l'organisation du code, et les deux frontières.
Lancer depuis les sources
npm install
npm run electron:dev
Vite et Electron ensemble avec rechargement à chaud, sur le port 5173. Un processus Vite resté en vie garde ce port et le lancement suivant échoue : tuez-le d'abord.
npm run check
Typage, lint et environ 1 900 tests en quelques secondes. La CI lance la même
commande. npm run electron:build écrit un installeur dans
dist-electron/.
Comment c'est organisé
| Dossier | Contient |
|---|---|
electron/ | Processus principal : fenêtres, IPC, SQLite, la protection des fichiers, git, le navigateur, les serveurs MCP, les mises à jour |
src/agent/ | La boucle d'appel d'outils en flux, les permissions, le compactage |
src/chat/ | La liste des messages, les diffs, les autorisations, la roue de contexte |
src/tools/ | Les définitions d'outils et le registre qui les contient |
src/voice/ | Capture, détection, tour de parole, synthèse |
Les deux frontières
electron/preload.cjs est celle de la sécurité. Le rendu n'a aucun
accès à Node et n'atteint le système de fichiers, le réseau et la base de
données qu'à travers ce qui y est exposé. Y ajouter une fonction est un acte
délibéré.
La séparation des sessions est l'autre. La fenêtre de Draggy tourne sous une CSP stricte ; chaque page externe tourne sur une partition séparée sans aucune politique de notre part. Les fusionner applique notre politique aux sites des autres et n'affiche qu'un désastre.
Conventions
- Les commentaires expliquent le pourquoi, jamais le quoi, et tiennent en deux lignes
- Les douze langues restent alignées, vérifié par un test
- Chaque processus enfant passe par les aides de lancement sans fenêtre
- Les messages de commit tiennent en une ligne
CONTRIBUTING.md a le reste, et SECURITY.md couvre le signalement d'une faille.