# Migrace Faze 3.5 - rekapitulace

Obdobi: 2026-09-13
Branch: lab/phase-3a

## Cil

Prevest prototyp s 5 paralelnimi venvy a hardcoded cestami na
standardizovany balicek instalovatelny pres uv.

## 3.5A - Package skeleton

- pyproject.toml (hatchling, cyberbrain console script)
- src/cyberbrain26/{paths,cli}.py
- schemas/conversation.py (Pydantic v2 + Title-Dict fix)
- 10 testu

## 3.5B - Presun sluzeb do package

- services/safe_oi/, services/webapp/, services/llm_proxy/
- core/, memory/
- Odstraneny sys.path.insert hacky
- LiteLLM pinned na 1.98.* (kompatibilita s BETA)
- Odstraneny SQLite DATABASE_URL (LiteLLM 1.98 odmita)
- Slouceny duplikovane litellm_settings v config.yaml

## 3.5B - CLI cyberbrain service

- services/registry.py - ServiceSpec + SERVICES
- cli.py - service {list,status,start,stop}
- PID file management, detekce kolize portu
- self_pidfile flag pro litellm

## 3.5C - Uklid

- 5 starych venvu smazano (2.1 GB)
- 6 worktree smazano (2.3 GB)
- ~26 root .py, 22 root .sh, 15 .txt/.bak -> _legacy/
- memory/, models.yaml, onnx_ef, cloudflared.deb -> _legacy/
- venv-webapp untracknut z gitu (18537 souboru)
- .gitignore prepsan
- Start skripty -> cyberbrain service

## Vysledek

| Metrika | Pred | Po |
|---|---|---|
| Velikost LAB | 5.6 GB | 1.5 GB |
| Venvy | 5 | 1 |
| Testu | 0 | 12 |
| Sluzby z .venv | 0 | 3 |
| Hardcoded /home/oem v kodu | 8 mist | 0 |

## Zachranne body

- /home/oem/CyberBrain26-lab-phase35-start-20260913-0112.tar.gz (181 MB)
- /home/oem/CyberBrain26-lab-pre-cleanup-20260913-0231.tar.gz (711 MB)
- Git tag: phase3-complete

## Dalsi krok - Faze 4

Modularni monolit FastAPI, Terminal-as-a-Service, Microfrontend engine.

---

## Faze 4 - Modularni monolit (2026-09-13)

### 4-1: app.py + testy
- `src/cyberbrain26/app.py`: `create_app()` factory
- Mount pointy: `/safe-oi/*`, `/` (webapp)
- Agregovany `/health` (paralelni httpx, timeout 1s)
- `tests/test_app.py`: 6 testu
- Test na scratch portu 8090

### 4-2: Switchover
- `cb26-lab-start.sh` / `stop.sh`: 2 sluzby (litellm + monolith)
- Monolit spusten na 8080, legacy 7782/8180 zastaveny
- TaskQueue + EventBus funguji v sub-app (FastAPI propaguje startup)

### 4-3: Fix aggregate health
- `/health` kontroluje safe_oi + webapp jako interni sub-app
- Litellm zustava externi (http://127.0.0.1:4100)
- zadne false-positive degraded

### Vysledek Faze 4

| Metrika | Faze 3.5 | Faze 4 |
|---|---|---|
| Procesy | 3 (safe-oi, webapp, litellm) | 2 (monolith, litellm) |
| Porty | 8180, 7782, 4100 | 8080, 4100 |
| Testu | 12 | 18 |
| Agregovany /health | ne | ano |
| Tag | phase3-complete | phase4-complete |

### Architektura po Fazi 4

    +-------------------+
    |  Monolit :8080    |
    |  /safe-oi/*  ----+--> safe_oi (12 routes)
    |  /v1/*, /ui, / --+--> webapp (29 routes)
    |  /health     ----+--> agregat
    +-------------------+
              |
              v
    +-------------------+
    |  LiteLLM :4100    |  (oddeleny proces)
    +-------------------+

### Dalsi kroky (Faze 4 volitelne + Faze 5)

- **4-4:** Terminal-as-a-Service (WebSocket + pty)
- **4-5:** Microfrontend engine (manifest panelu)
- **Faze 5:** Skalovani, monitoring, load balancing
