Aller au contenu

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

Shell
bun install

Lancer l'application

Shell
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

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Ou utilisez le raccourci :

Shell
bun run dev:beam:multi

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 :

Shell
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080

Tests

Shell
bun run test
  • test:mocked exécute les tests unitaires et d'intégration avec une couverture de 100 %.
  • test:cli exécute de vrais tests de bout en bout CLI + UI (tmux + cloudflared + Playwright).
  • Le test de l'environnement isolé Daytona dans test:cli lit sa configuration uniquement depuis un fichier .env dans un répertoire termbridge-test-app voisin de ce dépôt (../termbridge-test-app/.env). Il s'exécute lorsque ce fichier définit TERMBRIDGE_E2E_DAYTONA=1 et TERMBRIDGE_DAYTONA_API_KEY. Définissez-y TERMBRIDGE_SANDBOX_REPO sur un dépôt que vous pouvez cloner ; le dépôt de test par défaut est privé et nécessite aussi TERMBRIDGE_SANDBOX_GIT_USERNAME et TERMBRIDGE_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 :

Shell
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/.