Preskoči na vsebino

Razvoj

Zahteve

  • Bun za namestitve in skripte v delovnem prostoru
  • Node.js 20+
  • tmux in cloudflared za teste od začetka do konca
  • Ključ API Daytona + poverilnice git za integracijski test peskovnika (izbirno)
  • Playwright za teste e2e UI

Namestitev

Lupina
bun install

Zaženite aplikacijo

Lupina
bun run dev:beam

S tem se zgradi CLI, zažene lokalni strežnik na vratih 8787 (spremenite jih z TERMBRIDGE_DEV_PORT) s sejo codex tmux (spremenite jo z TERMBRIDGE_DEV_SESSION) ter zažene razvojni UI Vite, ki posreduje /__tb (vključno s povezavami WebSocket) temu strežniku. Izpiše razvojni žeton za dostop URL, ki ga odprete v brskalniku. Nastavite TERMBRIDGE_SKIP_BUILD=1, da preskočite gradnjo CLI.

Več sej

Lupina
TERMBRIDGE_SESSIONS=2 bun run dev:beam

Lahko pa uporabite bližnjico:

Lupina
bun run dev:beam:multi

dev:beam nastavi TERMBRIDGE_INSECURE_COOKIE=1, če ga ne nastavite sami, zato sejni piškotki delujejo prek navadnega HTTP. Če zaženete CLI neposredno brez HTTPS, ga nastavite izrecno:

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

Testi

Lupina
bun run test
  • test:mocked izvaja enotske in integracijske teste z 100-odstotno pokritostjo.
  • test:cli izvaja prave teste e2e CLI + UI (tmux + cloudflared + Playwright).
  • Test peskovnika Daytona v test:cli bere nastavitve samo iz datoteke .env v imeniku termbridge-test-app poleg tega repozitorija (../termbridge-test-app/.env). Zažene se, ko ta datoteka nastavi TERMBRIDGE_E2E_DAYTONA=1 in TERMBRIDGE_DAYTONA_API_KEY. Tam nastavite TERMBRIDGE_SANDBOX_REPO na repozitorij, ki ga lahko klonirate; privzeti testni repozitorij je zaseben in zahteva tudi TERMBRIDGE_SANDBOX_GIT_USERNAME in TERMBRIDGE_SANDBOX_GIT_TOKEN.

Dokumentacija

Dokumentacija je sestavljena iz navadnih datotek Markdown v docs/; vsaka stran ima metapodatke v glavi, datoteke meta.json pa določajo vrstni red navigacije. Objavljena je na termbridge.dev. Preverite jo z:

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

Potek dela Docs preveri isto tudi pri zahtevkih za vključitev sprememb, ki se dotikajo docs/.