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é

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