
# Dezvoltare

## Cerințe

- **Bun** pentru instalări în spațiul de lucru și scripturi
- **Node.js 20+**
- **tmux** și **cloudflared** pentru teste de la un capăt la altul
- **Daytona API key + git credentials** pentru testul de integrare cu sandboxul (opțional)
- **Playwright** pentru teste e2e UI

## Instalare

```bash
bun install
```

## Rularea aplicației

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

Aceasta compilează CLI, pornește serverul local pe portul `8787` (înlocuiți cu `TERMBRIDGE_DEV_PORT`), cu sesiunea tmux `codex` (înlocuiți cu `TERMBRIDGE_DEV_SESSION`) și lansează Vite dev UI, care direcționează `/__tb` (inclusiv WebSockets) către server. Afișează un link de revendicare pentru dezvoltare URL, pe care îl puteți deschide în browser. Setați `TERMBRIDGE_SKIP_BUILD=1` pentru a omite compilarea CLI.

### Sesiuni multiple

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

Sau folosiți scurtătura:

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

### Modul cu cookie-uri locale

`dev:beam` setează `TERMBRIDGE_INSECURE_COOKIE=1` dacă nu îl setați manual, astfel încât cookie-urile de sesiune să funcționeze prin HTTP simplu. Când rulați direct CLI fără HTTPS, setați-l explicit:

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

## Teste

```bash
bun run test
```

- `test:mocked` rulează teste unitare/de integrare cu o acoperire de 100%.
- `test:cli` rulează teste e2e reale cu CLI + UI (tmux + cloudflared + Playwright).
- Testul Daytona cu sandbox din `test:cli` citește setările numai dintr-un fișier `.env` dintr-un director `termbridge-test-app` aflat lângă acest depozit (`../termbridge-test-app/.env`). Rulează când acel fișier setează `TERMBRIDGE_E2E_DAYTONA=1` și `TERMBRIDGE_DAYTONA_API_KEY`. Setați acolo `TERMBRIDGE_SANDBOX_REPO` la un depozit pe care îl puteți clona; depozitul de test implicit este privat și necesită, de asemenea, `TERMBRIDGE_SANDBOX_GIT_USERNAME` și `TERMBRIDGE_SANDBOX_GIT_TOKEN`.

## Documentație

Documentația constă în fișiere Markdown simple din `docs/`, cu frontmatter pe fiecare pagină și fișiere `meta.json` pentru ordinea navigării. Este publicată la [termbridge.dev](https://termbridge.inline0.dev/ro/). Validați-o cu:

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

Fluxul de lucru pentru conținutul Docs rulează aceeași verificare la cererile de integrare care modifică `docs/`.
