
# 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

```bash
bun install
```

## Zaženite aplikacijo

```bash
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

```bash
TERMBRIDGE_SESSIONS=2 bun run dev:beam
```

Lahko pa uporabite bližnjico:

```bash
bun run dev:beam:multi
```

### Način lokalnih piškotkov

`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:

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

## Testi

```bash
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](https://termbridge.inline0.dev/sl/). Preverite jo z:

```bash
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/`.
