Udvikling
Krav
- Bun til workspace-installationer og scripts
- Node.js 20+
- tmux og cloudflared til end-to-end-tests
- Daytona API-nøgle + Git-legitimationsoplysninger til integrationstesten af sandkassen (valgfrit)
- Playwright til UI-e2e-tests
Installation
bun install
Kør appen
bun run dev:beam
Dette bygger CLI, starter den lokale server på port 8787 (kan ændres med TERMBRIDGE_DEV_PORT) med tmux-sessionen codex (kan ændres med TERMBRIDGE_DEV_SESSION) og starter udviklings-UI for Vite, som videresender /__tb (herunder WebSockets) til serveren. Den udskriver et udviklings-URL til indløsning, som du kan åbne i browseren. Angiv TERMBRIDGE_SKIP_BUILD=1 for at springe CLI-buildet over.
Flere sessioner
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Eller brug genvejen:
bun run dev:beam:multi
Lokal cookietilstand
dev:beam angiver TERMBRIDGE_INSECURE_COOKIE=1, medmindre du selv angiver den, så sessionscookies virker over almindelig HTTP. Når du kører CLI direkte uden HTTPS, skal du angive den eksplicit:
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:mockedkører enheds- og integrationstests med 100 % dækning.test:clikører reelle e2e-tests med CLI + UI (tmux + cloudflared + Playwright).- Sandkassetesten Daytona i
test:clilæser kun sine indstillinger fra en.env-fil i entermbridge-test-app-mappe ved siden af dette repository (../termbridge-test-app/.env). Den køres, når filen angiverTERMBRIDGE_E2E_DAYTONA=1ogTERMBRIDGE_DAYTONA_API_KEY. AngivTERMBRIDGE_SANDBOX_REPOdér til et repository, du kan klone; standardtestrepositoryet er privat og kræver ogsåTERMBRIDGE_SANDBOX_GIT_USERNAMEogTERMBRIDGE_SANDBOX_GIT_TOKEN.
Dokumentation
Dokumentationen består af almindelige Markdown-filer i docs/ med frontmatter på hver side og meta.json-filer til navigationsrækkefølgen. Den udgives på termbridge.dev. Valider den med:
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
Dokumentationsarbejdsflowet kører den samme kontrol på pull requests, der berører docs/.