Développement
Prérequis
- Bun pour les installations dans l’espace de travail et les scripts
- Node.js 20+
- tmux et cloudflared pour les tests de bout en bout
- Daytona API clé + identifiants git pour le test d’intégration du bac à sable (facultatif)
- Playwright pour les tests de bout en bout UI
Installation
bun install
Lancer l'application
bun run dev:beam
Cette commande compile CLI, démarre le serveur local sur le port 8787 (remplacez-le avec TERMBRIDGE_DEV_PORT) dans la session tmux codex (remplacez-la avec TERMBRIDGE_DEV_SESSION), puis lance le proxy de développement Vite UI, qui redirige /__tb (WebSockets compris) vers ce serveur. Elle affiche un URL de connexion de développement à ouvrir dans le navigateur. Définissez TERMBRIDGE_SKIP_BUILD=1 pour ignorer la compilation CLI.
Plusieurs sessions
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Ou utilisez le raccourci :
bun run dev:beam:multi
Mode de cookie local
dev:beam définit TERMBRIDGE_INSECURE_COOKIE=1 sauf si vous l'avez déjà fait, afin que les cookies de session fonctionnent en HTTP non chiffré. Si vous exécutez directement CLI sans HTTPS, définissez-le explicitement :
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080
Tests
bun run test
test:mockedexécute les tests unitaires et d'intégration avec une couverture de 100 %.test:cliexécute de vrais tests de bout en bout CLI + UI (tmux + cloudflared + Playwright).- Le test de l'environnement isolé Daytona dans
test:clilit sa configuration uniquement depuis un fichier.envdans un répertoiretermbridge-test-appvoisin de ce dépôt (../termbridge-test-app/.env). Il s'exécute lorsque ce fichier définitTERMBRIDGE_E2E_DAYTONA=1etTERMBRIDGE_DAYTONA_API_KEY. Définissez-yTERMBRIDGE_SANDBOX_REPOsur un dépôt que vous pouvez cloner ; le dépôt de test par défaut est privé et nécessite aussiTERMBRIDGE_SANDBOX_GIT_USERNAMEetTERMBRIDGE_SANDBOX_GIT_TOKEN.
Documentation
La documentation est composée de fichiers Markdown simples dans docs/, avec des métadonnées d'en-tête sur chaque page et des fichiers meta.json qui définissent l'ordre de navigation. Elle est publiée sur termbridge.dev. Validez-la avec :
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
Le processus de contenu de la documentation exécute la même vérification sur les demandes de fusion qui modifient docs/.