Pular para o conteúdo

Desenvolvimento

Requisitos

  • Bun para instalações e scripts do espaço de trabalho
  • Node.js 20+
  • tmux e cloudflared para testes de ponta a ponta
  • Daytona API key + credenciais git para o teste de integração do sandbox (opcional)
  • Playwright para testes e2e de UI

Instalação

Shell
bun install

Executar o app

Shell
bun run dev:beam

Isso compila o CLI, inicia o servidor local na porta 8787 (substitua com TERMBRIDGE_DEV_PORT) com a sessão tmux codex (substitua com TERMBRIDGE_DEV_SESSION) e inicia o Vite dev UI, que encaminha /__tb (incluindo WebSockets) para esse servidor. Ele exibe um URL de acesso de desenvolvimento para abrir no navegador. Defina TERMBRIDGE_SKIP_BUILD=1 para ignorar a compilação CLI.

Várias sessões

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Ou use o atalho:

Shell
bun run dev:beam:multi

dev:beam define TERMBRIDGE_INSECURE_COOKIE=1, a menos que você o defina manualmente, para que os cookies de sessão funcionem em HTTP sem criptografia. Ao executar CLI diretamente, sem HTTPS, defina-o explicitamente:

Shell
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080

Testes

Shell
bun run test
  • test:mocked executa testes de unidade/integração com cobertura de 100%.
  • test:cli executa testes e2e reais de CLI + UI (tmux + cloudflared + Playwright).
  • O teste de sandbox Daytona em test:cli lê as configurações somente de um arquivo .env em um diretório termbridge-test-app ao lado deste repositório (../termbridge-test-app/.env). Ele é executado quando esse arquivo define TERMBRIDGE_E2E_DAYTONA=1 e TERMBRIDGE_DAYTONA_API_KEY. Defina TERMBRIDGE_SANDBOX_REPO nesse arquivo como um repositório que você possa clonar; o repositório de teste padrão é privado e também exige TERMBRIDGE_SANDBOX_GIT_USERNAME e TERMBRIDGE_SANDBOX_GIT_TOKEN.

Documentação

O conteúdo da documentação consiste em arquivos simples Markdown em docs/, com metadados no início de cada página e arquivos meta.json que definem a ordem de navegação. A documentação é publicada em termbridge.dev. Valide-a com:

Shell
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3

O fluxo de trabalho de conteúdo da documentação executa a mesma verificação em solicitações de pull que alteram docs/.