Lewati ke konten

Pengembangan

Persyaratan

  • Bun untuk instalasi dan skrip ruang kerja
  • Node.js 20+
  • tmux dan cloudflared untuk pengujian menyeluruh
  • Daytona kunci API + kredensial git untuk pengujian integrasi sandbox (opsional)
  • Playwright untuk pengujian e2e UI

Instalasi

Shell
bun install

Menjalankan aplikasi

Shell
bun run dev:beam

Ini akan membangun CLI, memulai server lokal di port 8787 (ganti dengan TERMBRIDGE_DEV_PORT) menggunakan sesi tmux codex (ganti dengan TERMBRIDGE_DEV_SESSION), lalu menjalankan Vite dev UI yang memproksikan /__tb (termasuk WebSockets) ke server tersebut. Perintah ini mencetak URL penukaran dev untuk dibuka di browser. Atur TERMBRIDGE_SKIP_BUILD=1 untuk melewati build CLI.

Beberapa sesi

Shell
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Atau gunakan pintasan:

Shell
bun run dev:beam:multi

dev:beam menetapkan TERMBRIDGE_INSECURE_COOKIE=1 kecuali jika Anda menetapkannya sendiri, sehingga cookie sesi dapat digunakan melalui HTTP biasa. Saat menjalankan CLI secara langsung tanpa HTTPS, tetapkan secara eksplisit:

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

Pengujian

Shell
bun run test
  • test:mocked menjalankan pengujian unit/integrasi dengan cakupan 100%.
  • test:cli menjalankan pengujian e2e CLI + UI sungguhan (tmux + cloudflared + Playwright).
  • Pengujian sandbox Daytona di test:cli hanya membaca pengaturannya dari file .env di direktori termbridge-test-app yang berada di samping repositori ini (../termbridge-test-app/.env). Pengujian berjalan jika file tersebut menetapkan TERMBRIDGE_E2E_DAYTONA=1 dan TERMBRIDGE_DAYTONA_API_KEY. Tetapkan TERMBRIDGE_SANDBOX_REPO di sana ke repositori yang dapat Anda klon; repositori pengujian default bersifat privat dan juga memerlukan TERMBRIDGE_SANDBOX_GIT_USERNAME serta TERMBRIDGE_SANDBOX_GIT_TOKEN.

Dokumentasi

Konten dokumentasi berupa file Markdown biasa di docs/, dengan frontmatter di setiap halaman dan file meta.json untuk urutan navigasi. Dokumentasi dipublikasikan di termbridge.dev. Validasi dengan:

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

Alur kerja konten Docs menjalankan pemeriksaan yang sama pada pull request yang mengubah docs/.