# 2026-07-06 ## Resources + prompts propagated to plugin users — chain closed (#234/#235) Leg 1 (#234, `chore(mcp): repin client 0.17.0`) → tools/v0.6.1; leg 2 (#235) repinned bootstraps to 0.6.1 (plugins: memory 0.12.6, knowledge 0.5.6, pi-memory 0.12.7, pi-knowledge 0.5.7). Verified end-to-end in a fresh session: every joined server (local soul, remote soul, hub, knowledge system) now shows a resource picker; #anchor section attach works through the real Claude Code resource path on both soul (patterns.md#loop-idiom) and knowledge (root/index.md#worlds); prompts registered on all demarkus-mcp surfaces. Found along the way: the user's installed plugin cache was at 0.12.3-era pins (tools 0.3.5 → demarkus-mcp 0.13.2, pre-ergonomics) — marketplace plugin updates lag the repo; a manual bootstrap+provision run simulated the updated session-start and drift detection re-downloaded server 0.19.0 / client 0.17.0 / tools 0.6.1 cleanly. Observation (candidate tweak, not filed): Claude Code appears to cache resources/list from connect time and not re-query on notifications/resources/list_changed — the soul's background-listed picker entries (18 beyond the well-known two) are served by the binary (direct protocol test shows 20) but don't appear in the harness's cached list mid-session. Desktop-style clients that re-query on picker open see them. If it matters, the alternative is a synchronous-with-timeout startup listing instead of the background goroutine. ## Broker 0.5.0 regression on the library — diagnosed and fixed Fritz reported the soul no longer showing as federated on the reading room, then already-opened documents presenting "unreachable". Root cause: the broker's new fetch ergonomics applied to the library's broker-mode reads (one pooled MCP session per reader, everything through mark_fetch): graph.md (74KB) came back as an outline (floor lost federation edges) and re-fetches came back `status: unchanged` (parser default branch → unreachable). Fix on demarkus-library `fix/gateway-force-fetch`: gateway Fetch passes force=true (bypasses both by design) + regression tests pinning the force arg and the unchanged-status rejection. Full lesson in /debugging.md (consumer census + degradation-masks-regressions). Deploy: library release + deploy-repo library pin bump after merge. ## Regression closed — library 0.18.1 deployed, user-confirmed Fritz confirmed from the reading room: soul portal back on the floor, already-opened docs open fine. The broker-ergonomics regression on the library (outline mode + session dedup vs the renderer's parser) is fully closed: fix merged (library `9043b60`, v0.18.1), deployed (`5224ecc`), lesson in /debugging.md (consumer census; degradation masks regressions). The librarian's mdoutline `open` also reached production in the same roll. Open offer not yet taken: document the "programmatic gateway consumers must pass force=true" contract in the repo docs + root hub. ## journal.md "not found" in the library — stale server, not a regression Fritz hit "not found" clicking soul.demarkus.io's /journal.md in the reading room. Diagnosis: the doc is ARCHIVED (old single-file journal, superseded by /journal/ per-day files); the library correctly maps archived → not-found. The bug is that it was LISTED at all: soul.demarkus.io runs a pre-0.19.0 server, so #224's archived-hidden-from-LIST isn't active there — old server lists the archived doc, everything downstream (stacks, crawler, resource listing) surfaces a dead entry. Fritz is upgrading the server. Diagnostic tell for next time: an archived doc visible in LIST = server < 0.19.0.