본문으로 건너뛰기

개발

요구 사항

  • 작업 공간 설치와 스크립트용 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/을 수정하는 풀 리퀘스트에서 동일한 검사를 실행합니다.