
# Geliştirme

## Gereksinimler

- Çalışma alanı kurulumları ve betikler için **Bun**
- **Node.js 20+**
- Uçtan uca testler için **tmux** ve **cloudflared**
- Koruma alanı tümleştirme testi için **Daytona API anahtarı + git kimlik bilgileri** (isteğe bağlı)
- UI uçtan uca testleri için **Playwright**

## Yükleme

```bash
bun install
```

## Uygulamayı çalıştırma

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

Bu işlem CLI öğesini derler, yerel sunucuyu `8787` bağlantı noktasında başlatır (`TERMBRIDGE_DEV_PORT` ile geçersiz kılınabilir) ve tmux oturumu `codex` ile başlatır (`TERMBRIDGE_DEV_SESSION` ile geçersiz kılınabilir); ardından Vite geliştirme UI aracını çalıştırır. Bu araç, `/__tb` adresini (WebSocket'ler dahil) sunucuya yönlendirir. Tarayıcıda açmanız için bir geliştirme kullanım URL değeri yazdırır. CLI derlemesini atlamak için `TERMBRIDGE_SKIP_BUILD=1` ayarlayın.

### Birden fazla oturum

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

Ya da kısayolu kullanın:

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

### Yerel çerez modu

Kendiniz ayarlamadığınız sürece `dev:beam`, `TERMBRIDGE_INSECURE_COOKIE=1` değerini ayarlar; böylece oturum çerezleri düz HTTP üzerinden çalışır. HTTPS olmadan CLI aracını doğrudan çalıştırırken bunu açıkça ayarlayın:

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

## Testler

```bash
bun run test
```

- `test:mocked`, 100% kapsam oranıyla birim/tümleştirme testlerini çalıştırır.
- `test:cli` gerçek CLI + UI uçtan uca testlerini çalıştırır (tmux + cloudflared + Playwright).
- `test:cli` içindeki Daytona korumalı alan testi, ayarlarını yalnızca bu deponun yanındaki `termbridge-test-app` dizininde bulunan bir `.env` dosyasından okur (`../termbridge-test-app/.env`). Dosyada `TERMBRIDGE_E2E_DAYTONA=1` ve `TERMBRIDGE_DAYTONA_API_KEY` ayarlandığında çalışır. `TERMBRIDGE_SANDBOX_REPO` değerini klonlayabileceğiniz bir depoya ayarlayın; varsayılan test deposu özeldir ve ayrıca `TERMBRIDGE_SANDBOX_GIT_USERNAME` ile `TERMBRIDGE_SANDBOX_GIT_TOKEN` gerektirir.

## Belgeler

Belgeler, `docs/` içindeki düz Markdown dosyalarından oluşur; her sayfada ön bilgiler, gezinme sırasını belirleyen `meta.json` dosyaları bulunur. [termbridge.dev](https://termbridge.inline0.dev/tr/) adresinde yayımlanır. Şu komutla doğrulayın:

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

Belgeler içerik iş akışı, `docs/` öğesine dokunan çekme isteklerinde aynı denetimi çalıştırır.
