5.6 KiB
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-compilejob (zbývá 6 jobů) log/wiki_compile_cron.log(2,1 MB) +log/wiki_compile_manual.log→backup/*.retiredskills/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
- 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ý). - Vyšetřit, co vynulovalo
db/wiki.sqlite— projít log hlouběji okolo 2026-09-18 15:09. - Po opravě spustit kompilaci ručně a ověřit, že
wiki/index.sqlitedostane 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.