# HANDOFF — čisté vlákno, 4. 10. 2026

**status: superseded** — nahrazeno `SESSION_HANDOFF_2026-11-03.md` (3. 11. 2026)
**Čtenář:** agent, který právě začíná v tomto repu. Tento soubor je **stav, ne plán**.
Žádné tvrzení zde není fact, dokud nemá odkaz na `file:line` nebo na výstup příkazu.

**Přebírá po:** `HANDOFF_2026-10-02.md` (ten zůstává platný; §1 a §6 převezmi opatrně —
obsahují čísla a stav pracovního stromu k 2. 10. 2026).

**Dnešní změna je mimo repozitář:** Kilo CLI 7.6.2 → 7.8.3. Žádný soubor v `src/`
ani v `tests/` se dnes nezměnil.

---

## 1. Dnešní stav — co je OVĚŘENO výstupem příkazu

```
$ kilo --version
7.8.3

$ sudo npm install -g @kilocode/cli
changed 5 packages in 3m
```

**[OVĚŘENO 2026-10-04]** Kilo CLI je `7.8.3`. To je totožná verze, kterou už mělo
VSCodium rozšíření `Kilo Code` (7.8.3). **Rozpor, který blokoval `kilo models`, je vyřešen.**

### Předchozí blokátor — proč to vůbec bylo potřeba

`~/.config/kilo/kilo.jsonc` obsahoval `reasoning_display` a `retention`. Tyto klíče
zapsalo **rozšíření 7.8.3**; CLI 7.6.2 používá strict schéma a odmítal je:

```
Error: Configuration is invalid at /home/oem/.config/kilo/kilo.jsonc
↳ Unrecognized keys: reasoning_display, retention
```

**[VÝZKUM 2026-10-04]** Živý schema `https://app.kilo.ai/config.json` oba klíče obsahuje:
`retention: {enabled, maxAgeDays}` — trvalé mazání starých sessions napříč všemi projekty
a všemi Kilo klienty na stroji, default `enabled: false`, `maxAgeDays` default 30.
`auto_collapse_reasoning` je `@deprecated Use 'reasoning_display' field instead`.

**[NEVĚŘENO — DOPLNIT]** `kilo debug config` a `kilo models` po upgradu.
Výstup nebyl v této session uložen. **První úkol nového vlákna.**

### Kde binárka žije — rozhodnutí vlastníka, NEVĚŘENO

Instalace přesunuta na uživatelský npm prefix (`npm config set prefix ~/.local`)
místo opravy práv v `/usr/local`. Původní stav byl:

```
$ npm config get prefix
/usr/local
$ ls -ld /usr/local/lib/node_modules/@kilocode
drwxr-xr-x 3 root root 4096 zář 15 00:00 /usr/local/lib/node_modules/@kilocode
$ which -a kilo
/usr/local/bin/kilo          # jediná binárka, root-owned
```

`sudo npm install -g` selhal na `EACCES: permission denied, rename` — kořenový
vlastník systémového adresáře. Od toho okamžiku **každý globální npm příkaz
zapisující do `/usr/local` skončí `EACCES`**. Řešení zvoleno: uživatelský prefix + `PATH`.

**[NEVĚŘENO — DOPLNIT]** `which -a kilo` po přesunu. Musí ukázat `~/.local/bin/kilo`
a nesmí zbývat `/usr/local/bin/kilo`.

### Operační past

`~/.local/bin` není v `PATH` procesů spuštěných přímo z UI — desktop session
environment se obnoví až při odhlášení/přihlášení. **Pokud nové vlákno nenačte
`kilo debug config`, je to pravděpodobně tato příčina, ne chyba konfigurace.**
Integrovaný terminál VSCodium `.bashrc` čte, takže funguje.

---

## 2. Evidence, kterou je nutné opravit — 7 řádků

Grep `7\.6\.2|/usr/local/bin/kilo` vrací **8 matchů, všechny v `.md`, žádný v testech**.
[OVĚŘENO 2026-10-04] Žádný `tests/*.py` neodkazuje na cestu ani na verzi CLI —
přesun binárky nic nerozbil.

| Soubor | Řádek | Co je tam teď |
|---|---|---|
| `ROADMAP_V6.md` | 300 | tabulka verzí uvádí `v7.6.2` jako běžící |
| `ROADMAP_V6.md` | 302 | `[OVĚŘENO]` „dříve uvedená hodnota 7.8.3 byla chybná" — **teď obráceně** |
| `ROADMAP_V6.md` | 934 | „běžící verze je 7.6.2" |
| `ROADMAP_V6.md` | 966 | `[OVĚŘENO]` „Kilo CLI `/usr/local/bin/kilo` ve verzi **7.6.2**" |
| `CHANGELOG.md` | 72 | `kilo models` = BLOCKED na globálním configu |
| `CHANGELOG.md` | 92 | totéž jako F1 open bod |
| `docs/CyberBrain26cil-031026-v2.md` | 572 | CLI 7.6.2 vs. rozšíření 7.8.3 |
| `.kilo/plans/CyberBrain26cil-031026*.md` | 315 / 572 | totéž |

`ROADMAP_V6.md:966` je podle `ROADMAP_V6.md:807` **součástí Gate 0**, ne poznámka:
brána má kladně ověřit přes `kilo debug config`, že `bash == "deny"` a že
`permission_origins.bash.local` je vyplněné.

**Pozor na `kilo config check`** — vrací **exit code 0 i při chybě konfigurace**
(`ROADMAP_V6.md:807`, ověřeno 2. 10. 2026 s vloženým neznámým klíčem). Kdyby se použil
jako brána, prošel by i rozbítý. **Čti text výstupu, ne návratový kód.**

---

## 3. F2 — dvě otevřené položky

Fáze je **F2** (minimální kompletní agent flow, konkrétní E2E pro Gate 2). F3–F9 budoucí.

**a) Chybí integrační test EgressGate.** `EgressGate` je v `execute()` zapojený
(fail-closed potvrzen), ale test pokrývající reálnou cestu přes
`AuthorizedExecutionService.execute()` **neexistuje**. Nejmenší smysluplný krok.

**b) Plugin neregistrovaný** v projektovém `.kilo/kilo.jsonc`. **Schvalovací bod** —
zápis do `.kilo/kilo.jsonc` vyžaduje výslovný souhlas vlastníka (AGENTS.md,
`.kilo/agent/tester.md:60`). Jediný zásah do konfigurace bezpečnostního řetěze v F2.

---

## 4. Co se dnes NESMÍ zopakovat

- **`kilo upgrade` je zakázaný testerovi** (`.kilo/agent/tester.md:37`), stejně jako
  `kilo serve`, `kilo daemon`, `kilo remote`. Změnu hosta dělá vlastník.
- **Globální config je mimo dosah agentů.** `external_directory: deny`
  (`.kilo/kilo.jsonc:80`) a `~/.config/kilo/kilo.jsonc` je mimo projekt. Dnešní
  zásah do toho souboru udělal vlastník ručně, ne agent.
- **Pracovní strom nebyl dnes prozkoumán** (`git status` nebylo v této session
  spuštěno). Z dřívějšího stavu visí neschválený `cli.py` a `pilot/` v `master`,
  který cron review reportuje 41+ cyklů. **[NEVĚŘENO — první příkaz nového vlákna.]**
  Nestashovat, nemaž, neresetuj (AGENTS.md).

---

## 5. Lessons — dnešní přídavek

**V10 — [OVĚŘENO] bez uloženého artefaktu.** Dnešní `kilo --version` je jediné
tvrzení s výstupem příkazu. Chybějící výstup `kilo debug config` a `kilo models`
je přesně vzorec **V3** (`[OVĚŘENO]` bez artefaktu) z
`.kilo/context/LESSONS_AND_DECISIONS.md:66`. Dnešní „funguje to“ je zatím
[HYPOTÉZA], i když je velmi pravděpodobná.

**V11 — dvě verze téhož nástroje v jednom stroji.** Rozšíření 7.8.3 psalo config
klíče, které CLI 7.6.2 odmítalo. Chyba se neprojevila jako „něco nefunguje“,
ale jako nesmyslná chyba validace na cizím souboru. **Při odmítnutí konfigurace
nejprve zkontroluj verzi nástroje, ne klíč.**

---

## 6. První tři příkazy nového vlákna

```bash
git status --short                    # stav pracovního stromu — NEVĚŘENO
which -a kilo && kilo --version       # potvrzení, kde binárka je
kilo debug config                     # ulož výstup do .kilo/context/
```