# Wiki indexace — výsledky šetření > **KOREKCE 2026-09-18 17:52:10 — původní šetření níže je ve třech nálezech nesprávné.** > Text se ponechává jako stopa po chybné analýze. Platí to, co je v této sekci. ## Korekce ### Indexace wiki funguje `wiki_sync.log` v 17:07 hlásí `workspace: indexed 1 files (3 chunks), deleted 0` a `done files=197 chunks=789 vectors=789 pending=0 embedded=3`. `wiki/index.sqlite` má mtime 2026-09-18 17:07. Původní report vznikl v 17:06 — **minutu předtím, než běh doběhl**. Git zdroje (`index`, `travel`, `wood-ng`) souhlasí s remote HEAD, `git ls-remote` i embedding endpoint `nvidia.hell:11434` odpovídají v řádu ms. ### Root cause je výpadek serveru, ne skill Všechny crony ustaly **naráz** 2026-09-17 v 19:13 a vrátily se 2026-09-18 ve 14:40 — `wiki_sync.log` i `ollama_usage_cron.log` končí na stejné minutě. To sedí na pád virtualizačního hostu. Žádná indexace mezitím neběžela, protože neběželo nic. ### Stale lock BYL (původní nález 3 je vyvrácen neprávem) `wiki_sync.log`: `2026-09-18T14:40:37+02:00 WARN stale lock, reclaiming`. Lock je `wiki/.sync.lock` (`STALE_SECONDS = 30 min`, viz `skills/wiki/scripts/wiki_sync.py`), ne `triggers/.lock` ani `unlock.sh` — ty s wiki nesouvisí a hledaly se špatně. Lock byl pozůstatek po běhu zabitém pádem hostu a první porebootový běh ho korektně uklidil. ### `wiki-compile` není přejmenovaný `llm-wiki` `wiki-compile/SKILL.md` sám odkazuje „*that is capture-only (see llm-wiki skill)*" — byl to **sourozenec** llm-wiki, ne rename. Obsahoval jen `SKILL.md`, žádné skripty. ### Rozbitý cron byl orphan, ne příčina Retirement `llm-wiki` proběhl korektně (zálohy `backup/skills/llm-wiki/`, `backup/workspace/cml/`), jen se zapomněl řádek v crontabu. Se skillem `wiki` nesdílel **nic** — jiná DB, jiný log, jiný lock, jiný adresář. Nemohl indexaci blokovat. **Pozor na tři nesouvisející věci sdílející slovo „wiki":** | | živé | retired | |---|---|---| | skill `wiki` (hybrid RAG) | `wiki/index.sqlite`, `log/wiki_sync.log` | — | | `llm-wiki` (PoC LLM-kurátorovaná wiki) | — | `backup/skills/llm-wiki/`, `backup/workspace/cml/` | | `wiki-compile` (drain pro llm-wiki) | — | `backup/skills/wiki-compile/` | ### `db/wiki.sqlite` byl orphan Grep přes celý workspace nenašel **žádnou** referenci kromě tohoto reportu. 0 bajtů, smazán. ### Co se opravilo (2026-09-18) - crontab uživatele `nanobot`: odstraněn mrtvý `wiki-compile` job (zbývá 6 jobů) - `log/wiki_compile_cron.log` (2,1 MB) + `log/wiki_compile_manual.log` → `backup/*.retired` - `skills/wiki-compile/` → `backup/skills/wiki-compile/` - `db/wiki.sqlite` (0 B) smazán ### Zbývá prověřit Běh, který ve 14:40 přebral stale lock, doběhl až v 17:07 — **2 h 27 min** na jeden zaindexovaný soubor. Hypotéza: `git fetch` nemá timeout (na rozdíl od `ls-remote`, který má 20 s) a po rebootu visel na nedostupné síti. Přesně scénář, před kterým varuje komentář v `wiki_sync.py`. Neakutní — síť i endpointy teď odpovídají normálně. --- ## Původní šetření (nesprávné — viz korekce výše) ## Souhrn Poslední úspěšná wiki indexace proběhla **2026-09-17 18:50** (mtime `wiki/index.sqlite`, 7.3 MB). Od přejmenování skillu `llm-wiki` → `wiki-compile` jede kompilační cron job nasucho a loguje chybu `No such file or directory`. Žádný stale lock na wiki nezůstal. ## Nález 1: Rozbitý cron job (root cause) `log/wiki_compile_cron.log` (2.1 MB) končí opakující se chybou: ``` error: Failed to spawn: `/home/nanobot/.nanobot/workspace/skills/llm-wiki/scripts/wiki_compile.py` Caused by: No such file or directory (os error 2) ``` Cron job stále odkazuje na cestu `skills/llm-wiki/scripts/wiki_compile.py`, ale skill byl přejmenován na `wiki-compile`. Skript na staré cestě neexistuje → každý běh spadne, nic se neindexuje. Poslední zápis do logu: **2026-09-18 15:09** (log dál roste). ## Nález 2: Vypadaná databáze `db/wiki.sqlite` je **0 bajtů**, mtime 2026-09-18 15:09 — shodný s posledním zápisem do logu. Něco ji vyprázdnilo/znovu založilo a kompilátor pak nedoběhl. Nepátráno hlouběji, co ji vytáhlo na 0 bajtů. `wiki/index.sqlite` je naproti tomu v pořádku (7 340 032 B, poslední zápis 2026-09-17 18:50). ## Nález 3: Stale lock — vyvráceno Žádný wiki lock soubor neexistuje. Kandidáti vyloučeni: - `triggers/.lock` — nesouvisející (triggery) - `wiki/remote/wood-ng/wood/bin/unlock.sh`, `wiki/remote/wood-ng/pivo/bin/unlock.sh` — jen notované skripty pro wood/pivo, ne locky Žádný wiki/embedding proces neběží (`ps` čisté). ## Časová osa | Čas | Událost | |---|---| | 2026-09-17 18:50 | Poslední úspěšná indexace (mtime `wiki/index.sqlite`) | | po přejmenování skillu | Každý cron běh failuje na chybějící skript | | 2026-09-18 15:09 | Poslední zápis do logu; `db/wiki.sqlite` vynulována | ## Doporučená oprava 1. V cron jobu aktualizovat cestu na aktuální skill: `skills/wiki-compile/scripts/wiki_compile.py` (před zápisem ověřit skutečný název skriptu v novém skillu — může být jiný). 2. Vyšetřit, co vynulovalo `db/wiki.sqlite` — projít log hlouběji okolo 2026-09-18 15:09. 3. Po opravě spustit kompilaci ručně a ověřit, že `wiki/index.sqlite` dostane nový mtime. ## Kontext Včera večer (2026-09-17) umřel virtualizační server hostující tento LXC kontejner; mašina byla rebootována. Reboot sám o sobě ale nezpůsobuje chybu „No such file or directory“ — ta je čistě důsledkem přejmenování skillu.