
# Fejlesztés

## Követelmények

- **Bun** munkaterületi telepítésekhez és parancsfájlokhoz
- **Node.js 20+**
- **tmux** és **cloudflared** végpontok közötti tesztekhez
- **Daytona API kulcs + git hitelesítő adatok** a tesztkörnyezet integrációs tesztjéhez (nem kötelező)
- **Playwright** UI végpontok közötti tesztjeihez

## Telepítés

```bash
bun install
```

## Az alkalmazás futtatása

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

Ez elkészíti a CLI buildjét, elindítja a helyi szervert a `8787` porton (felülbírálás: `TERMBRIDGE_DEV_PORT`), a tmux munkamenettel `codex` (felülbírálás: `TERMBRIDGE_DEV_SESSION`), majd elindítja a Vite fejlesztési UI szervert, amely a `/__tb` forgalmat (a WebSocket-kapcsolatokat is beleértve) továbbítja erre a szerverre. Kiír egy fejlesztői beváltási URL címet, amelyet böngészőben nyithat meg. A CLI build kihagyásához állítsa be a `TERMBRIDGE_SKIP_BUILD=1` változót.

### Több munkamenet

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

Vagy használja a parancsikonokat:

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

### Helyi süti mód

A `dev:beam` beállítja a `TERMBRIDGE_INSECURE_COOKIE=1` értéket, hacsak Ön maga nem állítja be, így a munkamenetsütik egyszerű HTTP kapcsolaton is működnek. Ha a CLI eszközt közvetlenül futtatja HTTPS nélkül, állítsa be explicit módon:

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

## Tesztek

```bash
bun run test
```

- A `test:mocked` egység- és integrációs teszteket futtat 100%-os lefedettséggel.
- A `test:cli` valódi CLI + UI végpontok közötti teszteket futtat (tmux + cloudflared + Playwright).
- A `test:cli`-beli Daytona sandbox-teszt csak a tároló mellett, egy `termbridge-test-app` könyvtárban található `.env` fájlból olvassa be a beállításait (`../termbridge-test-app/.env`). Akkor fut le, ha a fájlban be van állítva a `TERMBRIDGE_E2E_DAYTONA=1` és a `TERMBRIDGE_DAYTONA_API_KEY`. Itt állítsa be a `TERMBRIDGE_SANDBOX_REPO` értékét egy klónozható tárolóra; az alapértelmezett teszttároló privát, és a `TERMBRIDGE_SANDBOX_GIT_USERNAME`, valamint a `TERMBRIDGE_SANDBOX_GIT_TOKEN` hitelesítési adatokra is szükség van hozzá.

## Dokumentáció

A dokumentáció egyszerű Markdown fájlokból áll a `docs/` mappában; minden oldalhoz tartozik frontmatter, a navigáció sorrendjét pedig `meta.json` fájlok határozzák meg. A közzétett dokumentáció itt érhető el: [termbridge.dev](https://termbridge.inline0.dev/hu/). Ellenőrizze a következő paranccsal:

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

A Dokumentáció tartalmi munkafolyamata ugyanazt az ellenőrzést futtatja a `docs/` fájlt érintő pull requesteken.
