Zum Inhalt springen

Entwicklung

Voraussetzungen

  • Bun für Workspace-Installationen und Skripte
  • Node.js 20+
  • tmux und cloudflared für End-to-End-Tests
  • Daytona API-Schlüssel + git-Zugangsdaten für den optionalen Sandbox-Integrationstest
  • Playwright für UI-E2E-Tests

Installation

Shell
bun install

App starten

Shell
bun run dev:beam

Damit wird der CLI erstellt, der lokale Server auf Port 8787 gestartet (mit TERMBRIDGE_DEV_PORT überschreibbar), die tmux-Sitzung codex gestartet (mit TERMBRIDGE_DEV_SESSION überschreibbar) und der Vite-Dev-UI gestartet, der /__tb (einschließlich WebSockets) an diesen Server weiterleitet. Ein Dev-Einlöse-URL zum Öffnen im Browser wird ausgegeben. Setze TERMBRIDGE_SKIP_BUILD=1, um den CLI-Build zu überspringen.

Mehrere Sitzungen

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Oder verwende die Kurzform:

Shell
bun run dev:beam:multi

dev:beam setzt TERMBRIDGE_INSECURE_COOKIE=1, sofern du keinen eigenen Wert angibst. So funktionieren Sitzungscookies über normales HTTP. Wenn du CLI direkt ohne HTTPS ausführst, lege den Wert ausdrücklich fest:

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 führt Unit- und Integrationstests mit 100 % Abdeckung aus.
  • test:cli führt echte CLI- und UI-End-to-End-Tests aus (tmux + cloudflared + Playwright).
  • Der Daytona-Sandbox-Test in test:cli liest seine Einstellungen ausschließlich aus einer .env-Datei in einem termbridge-test-app-Verzeichnis neben diesem Repository (../termbridge-test-app/.env). Er wird ausgeführt, wenn diese Datei TERMBRIDGE_E2E_DAYTONA=1 und TERMBRIDGE_DAYTONA_API_KEY festlegt. Gib dort unter TERMBRIDGE_SANDBOX_REPO ein Repository an, das du klonen kannst; das Standard-Test-Repository ist privat und benötigt außerdem TERMBRIDGE_SANDBOX_GIT_USERNAME und TERMBRIDGE_SANDBOX_GIT_TOKEN.

Dokumentation

Die Dokumentation besteht aus einfachen Markdown-Dateien in docs/. Jede Seite enthält Frontmatter; meta.json-Dateien legen die Navigationsreihenfolge fest. Veröffentlicht wird sie unter termbridge.dev. Überprüfe sie mit:

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

Der Workflow für Dokumentationsinhalte führt dieselbe Prüfung bei Pull Requests aus, die docs/ betreffen.