Розробка
Вимоги
- Bun для встановлення робочого простору та скриптів
- Node.js 20+
- tmux і cloudflared для наскрізних тестів
- Ключ Daytona API + облікові дані git для інтеграційного тесту пісочниці (необов’язково)
- Playwright для наскрізних тестів UI
Встановлення
bun install
Запуск застосунку
bun run dev:beam
Це збирає CLI, запускає локальний сервер на порту 8787 (перевизначається через TERMBRIDGE_DEV_PORT) із сеансом tmux codex (перевизначається через TERMBRIDGE_DEV_SESSION) і запускає проксі Vite для розробки UI, який перенаправляє /__tb (зокрема WebSocket-з’єднання) на цей сервер. Виводиться посилання для отримання доступу URL у режимі розробки, яке можна відкрити в браузері. Задайте TERMBRIDGE_SKIP_BUILD=1, щоб пропустити збирання CLI.
Кілька сеансів
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Або скористайтеся скороченою командою:
bun run dev:beam:multi
Режим локальних cookie
dev:beam встановлює TERMBRIDGE_INSECURE_COOKIE=1, якщо його не задано самостійно, щоб сеансові cookie працювали через звичайний 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).- Тест пісочниці 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/.