Saltar al contenido

Desarrollo

Requisitos

  • Bun para instalaciones y scripts del espacio de trabajo
  • Node.js 20+
  • tmux y cloudflared para pruebas de extremo a extremo
  • Clave Daytona API + credenciales de git para la prueba de integración con el entorno aislado (opcional)
  • Playwright para pruebas e2e de UI

Instalación

Shell
bun install

Ejecutar la aplicación

Shell
bun run dev:beam

Esto compila CLI, inicia el servidor local en el puerto 8787 (se puede cambiar con TERMBRIDGE_DEV_PORT) con la sesión de tmux codex (se puede cambiar con TERMBRIDGE_DEV_SESSION) y lanza el proxy de desarrollo de Vite UI, que reenvía /__tb (incluidos los WebSockets) a ese servidor. Muestra un URL de canje de desarrollo para abrirlo en el navegador. Define TERMBRIDGE_SKIP_BUILD=1 para omitir la compilación de CLI.

Varias sesiones

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

O usa el atajo:

Shell
bun run dev:beam:multi

dev:beam establece TERMBRIDGE_INSECURE_COOKIE=1 salvo que lo definas tú, así que las cookies de sesión funcionan con HTTP sin cifrar. Si ejecutas CLI directamente sin HTTPS, establécelo explícitamente:

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

Pruebas

Shell
bun run test
  • test:mocked ejecuta pruebas unitarias y de integración con una cobertura del 100 %.
  • test:cli ejecuta pruebas e2e reales de CLI + UI (tmux + cloudflared + Playwright).
  • La prueba del sandbox de Daytona en test:cli lee sus ajustes únicamente de un archivo .env en un directorio termbridge-test-app junto a este repositorio (../termbridge-test-app/.env). Se ejecuta cuando ese archivo define TERMBRIDGE_E2E_DAYTONA=1 y TERMBRIDGE_DAYTONA_API_KEY. Define allí TERMBRIDGE_SANDBOX_REPO con un repositorio que puedas clonar; el repositorio de prueba predeterminado es privado y también requiere TERMBRIDGE_SANDBOX_GIT_USERNAME y TERMBRIDGE_SANDBOX_GIT_TOKEN.

Documentación

La documentación consta de archivos Markdown simples en docs/, con metadatos iniciales en cada página y archivos meta.json que determinan el orden de navegación. Se publica en termbridge.dev. Valídala con:

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

El flujo de trabajo del contenido de Docs ejecuta la misma comprobación en las solicitudes de incorporación de cambios que modifican docs/.