One silent failure mode, closed: a session's record landing in the wrong wiki.
The problem
Capture buckets a session by its cwd — the right key, until the day it isn't. A session started from an enrolled home directory (or any ancestor repository) buckets home while every edit goes to another repo. The close-out guidance said "check cwd= on the extract header," but the bucket and the cwd agree by construction, so the one field being checked structurally cannot detect the mismatch. The result was silent misfiling: the record ends up in a wiki no future session of the right project will ever be shown.
Found the honest way — the day this engine's own release session ran from ~ and produced three releases in ~/llmwiki-runtime, and nothing in its extract said so.
The fix: a deterministic signal in the extract header
The extract now resolves every mutation tool call (Edit/Write/MultiEdit/NotebookEdit file paths) to its nearest git root and reports where the work actually landed:
# cwd=/home/you session=… users=12 assistants=34
# touched: /home/you/project-b(87) · /home/you(7)
# ⚠ route: 87 of this segment's file mutations happened under /home/you/project-b, not /home/you —
# file the session into THAT repo's wiki, then advance the watermark where the transcript is queued.
- reads are deliberately excluded — investigation roams across repos; where you changed files is where the record belongs
- the advisory appears only on a mismatch; same-repo sessions and chat-only sessions stay silent
/wiki-savenow defines its target as the repo the session's work concerned (normally cwd), with the cross-filing procedure;/wiki-deep's scope gate reads the new lines and chooses: file into the right repo you maintain / skip genuinely foreign work / keep chat-only sessions in their bucket- verified live on the session that exposed the problem: its home-bucketed extract now prints
touched: …llmwiki-runtime(87)and routes the filing correctly
Also in this release
benchgrew a passive-delivery report — cold-start and per-turn reach, silence rate, injected bytes: the instrumentation behind the wiki-vs-no-wiki A/B numbers- one practical line in the READMEs: start your agent from the project directory — the flag exists for the sessions that didn't
Upgrading: git pull && ./setup.sh (the update notice from v0.9.2 will have told you). Coming from v0.8.x, the enrollment step in v0.9.0 still applies.
Verified with 777 tests, tsc --noEmit, and a live run against the very session that motivated the feature.