Files
nanobot-runtime/results/2026-09-18_wiki-indexace-vysetreni.md

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-compile job (zbývá 6 jobů)
  • log/wiki_compile_cron.log (2,1 MB) + log/wiki_compile_manual.logbackup/*.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-wikiwiki-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.