Treci la conținut

Dezvoltare

Cerințe

  • Bun pentru instalări în spațiul de lucru și scripturi
  • Node.js 20+
  • tmux și cloudflared pentru teste de la un capăt la altul
  • Daytona API key + git credentials pentru testul de integrare cu sandboxul (opțional)
  • Playwright pentru teste e2e UI

Instalare

Shell
bun install

Rularea aplicației

Shell
bun run dev:beam

Aceasta compilează CLI, pornește serverul local pe portul 8787 (înlocuiți cu TERMBRIDGE_DEV_PORT), cu sesiunea tmux codex (înlocuiți cu TERMBRIDGE_DEV_SESSION) și lansează Vite dev UI, care direcționează /__tb (inclusiv WebSockets) către server. Afișează un link de revendicare pentru dezvoltare URL, pe care îl puteți deschide în browser. Setați TERMBRIDGE_SKIP_BUILD=1 pentru a omite compilarea CLI.

Sesiuni multiple

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Sau folosiți scurtătura:

Shell
bun run dev:beam:multi

dev:beam setează TERMBRIDGE_INSECURE_COOKIE=1 dacă nu îl setați manual, astfel încât cookie-urile de sesiune să funcționeze prin HTTP simplu. Când rulați direct CLI fără HTTPS, setați-l explicit:

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

Teste

Shell
bun run test
  • test:mocked rulează teste unitare/de integrare cu o acoperire de 100%.
  • test:cli rulează teste e2e reale cu CLI + UI (tmux + cloudflared + Playwright).
  • Testul Daytona cu sandbox din test:cli citește setările numai dintr-un fișier .env dintr-un director termbridge-test-app aflat lângă acest depozit (../termbridge-test-app/.env). Rulează când acel fișier setează TERMBRIDGE_E2E_DAYTONA=1 și TERMBRIDGE_DAYTONA_API_KEY. Setați acolo TERMBRIDGE_SANDBOX_REPO la un depozit pe care îl puteți clona; depozitul de test implicit este privat și necesită, de asemenea, TERMBRIDGE_SANDBOX_GIT_USERNAME și TERMBRIDGE_SANDBOX_GIT_TOKEN.

Documentație

Documentația constă în fișiere Markdown simple din docs/, cu frontmatter pe fiecare pagină și fișiere meta.json pentru ordinea navigării. Este publicată la termbridge.dev. Validați-o cu:

Shell
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3

Fluxul de lucru pentru conținutul Docs rulează aceeași verificare la cererile de integrare care modifică docs/.