개발
요구 사항
- 작업 공간 설치와 스크립트용 Bun
- Node.js 20+
- 엔드투엔드 테스트용 tmux 및 cloudflared
- 샌드박스 통합 테스트(선택 사항)에 필요한 Daytona API 키와 git 자격 증명
- UI 엔드투엔드 테스트용 Playwright
설치
셸
bun install
앱 실행
셸
bun run dev:beam
CLI을 빌드하고 로컬 서버를 포트 8787에서 시작합니다(TERMBRIDGE_DEV_PORT로 재정의 가능). codex 세션 tmux도 시작합니다(TERMBRIDGE_DEV_SESSION로 재정의 가능). 그런 다음 UI 개발 Vite을 실행해 /__tb(WebSocket 포함)를 서버로 프록시합니다. 브라우저에서 열 수 있는 개발용 교환 URL도 출력합니다. CLI 빌드를 건너뛰려면 TERMBRIDGE_SKIP_BUILD=1을 설정하세요.
여러 세션
셸
TERMBRIDGE_SESSIONS=2 bun run dev:beam
또는 바로 가기를 사용하세요:
셸
bun run dev:beam:multi
로컬 쿠키 모드
dev:beam은 직접 설정하지 않으면 TERMBRIDGE_INSECURE_COOKIE=1을 설정하므로 세션 쿠키가 일반 HTTP에서도 작동합니다. HTTPS 없이 CLI을 직접 실행하는 경우 명시적으로 설정하세요:
셸
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 e2e 테스트를 실행합니다(tmux + cloudflared + Playwright).test:cli의 Daytona 샌드박스 테스트는 이 저장소 옆의termbridge-test-app디렉터리에 있는.env파일에서만 설정을 읽습니다(../termbridge-test-app/.env). 해당 파일에TERMBRIDGE_E2E_DAYTONA=1및TERMBRIDGE_DAYTONA_API_KEY이 설정된 경우 실행됩니다. 복제할 수 있는 저장소를TERMBRIDGE_SANDBOX_REPO에 지정하세요. 기본 테스트 저장소는 비공개이므로TERMBRIDGE_SANDBOX_GIT_USERNAME및TERMBRIDGE_SANDBOX_GIT_TOKEN도 필요합니다.
문서
문서는 docs/의 일반 Markdown 파일이며, 각 페이지에 프런트매터가 있고 탐색 순서를 정하는 meta.json 파일이 있습니다. termbridge.dev에서 게시됩니다. 다음 명령으로 유효성을 검사하세요:
셸
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
문서 콘텐츠 워크플로는 docs/을 수정하는 풀 리퀘스트에서 동일한 검사를 실행합니다.