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
bun install
App starten
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
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Oder verwende die Kurzform:
bun run dev:beam:multi
Lokaler Cookie-Modus
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:
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:mockedführt Unit- und Integrationstests mit 100 % Abdeckung aus.test:cliführt echte CLI- und UI-End-to-End-Tests aus (tmux + cloudflared + Playwright).- Der Daytona-Sandbox-Test in
test:cliliest seine Einstellungen ausschließlich aus einer.env-Datei in einemtermbridge-test-app-Verzeichnis neben diesem Repository (../termbridge-test-app/.env). Er wird ausgeführt, wenn diese DateiTERMBRIDGE_E2E_DAYTONA=1undTERMBRIDGE_DAYTONA_API_KEYfestlegt. Gib dort unterTERMBRIDGE_SANDBOX_REPOein Repository an, das du klonen kannst; das Standard-Test-Repository ist privat und benötigt außerdemTERMBRIDGE_SANDBOX_GIT_USERNAMEundTERMBRIDGE_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:
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.