Hoppa till innehåll

Utveckling

Krav

  • Bun för installationer och skript i arbetsytan
  • Node.js 20+
  • tmux och cloudflared för end-to-end-tester
  • Daytona API-nyckel + git-uppgifter för sandboxintegreringstestet (valfritt)
  • Playwright för UI-tester från början till slut

Installation

Shell
bun install

Kör appen

Shell
bun run dev:beam

Det här bygger CLI, startar den lokala servern på port 8787 (åsidosätt med TERMBRIDGE_DEV_PORT) med sessions-codex tmux (åsidosätt med TERMBRIDGE_DEV_SESSION) och startar utvecklings-UI för Vite, som proxyar /__tb (inklusive WebSockets) till servern. En inlösen-URL för utveckling skrivs ut så att du kan öppna den i webbläsaren. Ställ in TERMBRIDGE_SKIP_BUILD=1 för att hoppa över bygget av CLI.

Flera sessioner

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Eller använd genvägen:

Shell
bun run dev:beam:multi

dev:beam ställer in TERMBRIDGE_INSECURE_COOKIE=1 om du inte själv anger det, så sessionscookies fungerar över vanlig HTTP. När du kör CLI direkt utan HTTPS anger du det uttryckligen:

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

Tester

Shell
bun run test
  • test:mocked kör enhets- och integrationstester med 100 % täckning.
  • test:cli kör riktiga end-to-end-tester med CLI + UI (tmux + cloudflared + Playwright).
  • Sandlådetestet Daytona i test:cli läser sina inställningar endast från en .env-fil i en termbridge-test-app-katalog intill det här repot (../termbridge-test-app/.env). Det körs när filen anger TERMBRIDGE_E2E_DAYTONA=1 och TERMBRIDGE_DAYTONA_API_KEY. Ange ett repo där som går att klona med TERMBRIDGE_SANDBOX_REPO; standardtestrepot är privat och kräver också TERMBRIDGE_SANDBOX_GIT_USERNAME och TERMBRIDGE_SANDBOX_GIT_TOKEN.

Dokumentation

Dokumentationen består av vanliga Markdown-filer i docs/, med frontmatter på varje sida och meta.json-filer som anger navigeringsordningen. Den publiceras på termbridge.dev. Validera den med:

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

Dokumentationsflödet kör samma kontroll på pull requests som ändrar docs/.