Ga naar de inhoud

Ontwikkeling

Vereisten

  • Bun voor installaties en scripts in de werkruimte
  • Node.js 20+
  • tmux en cloudflared voor end-to-endtests
  • Daytona API-sleutel + git-referenties voor de sandbox-integratietest (optioneel)
  • Playwright voor UI-e2e-tests

Installeren

Shell
bun install

De app uitvoeren

Shell
bun run dev:beam

Hiermee wordt de CLI gebouwd, de lokale server gestart op poort 8787 (overschrijven met TERMBRIDGE_DEV_PORT) met de tmux-sessie codex (overschrijven met TERMBRIDGE_DEV_SESSION), en de ontwikkel-Vite van UI gestart, die /__tb (inclusief WebSockets) naar die server doorstuurt. Er wordt een ontwikkel-inwissel-URL afgedrukt om in de browser te openen. Stel TERMBRIDGE_SKIP_BUILD=1 in om de CLI-build over te slaan.

Meerdere sessies

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Of gebruik de snelkoppeling:

Shell
bun run dev:beam:multi

dev:beam stelt TERMBRIDGE_INSECURE_COOKIE=1 in, tenzij u dit zelf instelt, zodat sessiecookies via gewone HTTP werken. Stel dit expliciet in wanneer u de CLI rechtstreeks uitvoert zonder HTTPS:

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

Tests

Shell
bun run test
  • test:mocked voert unit- en integratietests uit met 100% dekking.
  • test:cli voert echte e2e-tests uit voor CLI + UI (tmux + cloudflared + Playwright).
  • De Daytona-sandboxtest in test:cli haalt instellingen alleen uit een .env-bestand in een termbridge-test-app-map naast deze repository (../termbridge-test-app/.env). De test wordt uitgevoerd wanneer dat bestand TERMBRIDGE_E2E_DAYTONA=1 en TERMBRIDGE_DAYTONA_API_KEY instelt. Stel daar TERMBRIDGE_SANDBOX_REPO in op een repository die u kunt klonen; de standaardtestrepository is privé en vereist ook TERMBRIDGE_SANDBOX_GIT_USERNAME en TERMBRIDGE_SANDBOX_GIT_TOKEN.

Documentatie

De documentatie bestaat uit gewone Markdown-bestanden in docs/, met frontmatter op elke pagina en meta.json-bestanden voor de navigatievolgorde. De documentatie staat op termbridge.dev. Valideer deze met:

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

De workflow voor documentatie-inhoud voert dezelfde controle uit op pull requests die docs/ aanpassen.