Vai al contenuto

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

Shell
bun install

Eseguire l'app

Shell
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

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

In alternativa, usa la scorciatoia:

Shell
bun run dev:beam:multi

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:

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

Test

Shell
bun run test
  • test:mocked esegue i test unitari e d'integrazione con una copertura del 100%.
  • test:cli esegue test e2e reali di CLI + UI (tmux + cloudflared + Playwright).
  • Il test sandbox Daytona in test:cli legge le impostazioni solo da un file .env in una directory termbridge-test-app accanto a questo repository (../termbridge-test-app/.env). Viene eseguito quando il file imposta TERMBRIDGE_E2E_DAYTONA=1 e TERMBRIDGE_DAYTONA_API_KEY. Imposta lì TERMBRIDGE_SANDBOX_REPO su un repository che puoi clonare; il repository di test predefinito è privato e richiede anche TERMBRIDGE_SANDBOX_GIT_USERNAME e TERMBRIDGE_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:

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