Към съдържанието

Разработка

Изисквания

  • Bun за инсталиране в работното пространство и скриптове
  • Node.js 20+
  • tmux и cloudflared за сквозни тестове
  • Daytona API ключ + идентификационни данни за git за интеграционния тест със sandbox (по избор)
  • Playwright за сквозни тестове на UI

Инсталиране

Обвивка
bun install

Стартиране на приложението

Обвивка
bun run dev:beam

Това компилира CLI, стартира локалния сървър на порт 8787 (заменете с TERMBRIDGE_DEV_PORT) със сесия codex на tmux (заменете с TERMBRIDGE_DEV_SESSION) и стартира dev UI на Vite, който препраща /__tb (включително WebSocket връзките) към този сървър. Показва dev токен URL за отваряне в браузъра. Задайте TERMBRIDGE_SKIP_BUILD=1, за да пропуснете компилацията CLI.

Няколко сесии

Обвивка
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Или използвайте пряк път:

Обвивка
bun run dev:beam:multi

dev:beam задава TERMBRIDGE_INSECURE_COOKIE=1, освен ако не сте го задали сами, така че сесийните бисквитки работят през обикновен HTTP. Когато стартирате CLI директно без HTTPS, задайте го изрично:

Обвивка
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080

Тестове

Обвивка
bun run test
  • test:mocked изпълнява модулни/интеграционни тестове с покритие 100%.
  • test:cli изпълнява реални сквозни тестове с CLI + UI (tmux + cloudflared + Playwright).
  • Тестът за sandbox Daytona в test:cli чете настройките си само от файл .env в директория termbridge-test-app до това хранилище (../termbridge-test-app/.env). Изпълнява се, когато този файл задава TERMBRIDGE_E2E_DAYTONA=1 и TERMBRIDGE_DAYTONA_API_KEY. Задайте там TERMBRIDGE_SANDBOX_REPO като хранилище, което можете да клонирате; тестовото хранилище по подразбиране е частно и изисква също TERMBRIDGE_SANDBOX_GIT_USERNAME и TERMBRIDGE_SANDBOX_GIT_TOKEN.

Документация

Документацията представлява обикновени файлове Markdown в docs/, с предна метаинформация на всяка страница и файлове meta.json, които задават реда на навигация. Публикува се на termbridge.dev. Проверете я с:

Обвивка
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3

Работният процес за съдържанието на документацията изпълнява същата проверка при заявки за сливане, които засягат docs/.