Sviluppo
Requisiti
- Bun per installazioni e script nell’area di lavoro
- Node.js 20+
- tmux e cloudflared per i test end-to-end
- Chiave Daytona API e credenziali git per il test d’integrazione della sandbox (facoltativo)
- Playwright per i test e2e di UI
Installazione
bun install
Eseguire l'app
bun run dev:beam
Compila CLI, avvia il server locale sulla porta 8787 (modificabile con TERMBRIDGE_DEV_PORT) con la sessione tmux codex (modificabile con TERMBRIDGE_DEV_SESSION) e avvia Vite dev UI, che inoltra /__tb (inclusi i WebSocket) a quel server. Stampa un URL di riscatto per lo sviluppo da aprire nel browser. Imposta TERMBRIDGE_SKIP_BUILD=1 per saltare la compilazione CLI.
Sessioni multiple
TERMBRIDGE_SESSIONS=2 bun run dev:beam
In alternativa, usa la scorciatoia:
bun run dev:beam:multi
Modalità cookie locale
dev:beam imposta TERMBRIDGE_INSECURE_COOKIE=1 a meno che non lo imposti tu, così i cookie di sessione funzionano tramite HTTP non crittografato. Quando esegui direttamente CLI senza HTTPS, impostalo esplicitamente:
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080
Test
bun run test
test:mockedesegue i test unitari e d'integrazione con una copertura del 100%.test:cliesegue test e2e reali di CLI + UI (tmux + cloudflared + Playwright).- Il test sandbox Daytona in
test:clilegge le impostazioni solo da un file.envin una directorytermbridge-test-appaccanto a questo repository (../termbridge-test-app/.env). Viene eseguito quando il file impostaTERMBRIDGE_E2E_DAYTONA=1eTERMBRIDGE_DAYTONA_API_KEY. Imposta lìTERMBRIDGE_SANDBOX_REPOsu un repository che puoi clonare; il repository di test predefinito è privato e richiede ancheTERMBRIDGE_SANDBOX_GIT_USERNAMEeTERMBRIDGE_SANDBOX_GIT_TOKEN.
Documentazione
I contenuti della documentazione sono file Markdown semplici in docs/, con frontmatter in ogni pagina e file meta.json per l'ordine di navigazione. Sono pubblicati su termbridge.dev. Convalidali con:
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
Il flusso di lavoro dei contenuti Docs esegue lo stesso controllo sulle pull request che modificano docs/.