# 2026-07-05 ## Broker bump prepped: 0.2.0 → 0.5.0 (MCP fetch-ergonomics parity) Branch `feat/broker-0.5.0-ergonomics`: `apps/demarkus-broker/applicationset.yaml` chart `targetRevision` and `image.tag` 0.2.0 → 0.5.0, pin-comment changelog extended. Broker chart/image are pinned 1:1 to the demarkus tools module version; 0.5.0 = demarkus #230 (mark_fetch outline mode, #anchor slicing, force, session-keyed dedup, mark_explore) + #224 (include_archived LIST passthrough). 0.3.x/0.4.x were plugin-pin-only tools releases with no broker change. Verified before the bump: chart 0.5.0 and image 0.5.0 exist in ghcr; chart templates had ZERO diff between tools/v0.2.0 and tools/v0.5.0 (same values schema, low-risk); YAML parses; `check-immutable-fields.sh` green. Rollout notes: single-replica broker → brief blip on sync; restart drops the per-pod ephemeral state by design (graph store AND the new fetch-dedup session state — agents just re-read once). Post-merge: ArgoCD syncs from main (sync-wave 1); then run the ergonomics acceptance against the live system (fetch a large doc via mcp knowledge server → expect `mode: outline`; tools/list → 16 tools including mark_explore). ## Deployed and verified live Merged (`18d9097`); ArgoCD synced within minutes. Verified against the live broker at knowledge.demarkus.io from an authed MCP session: - `mark_fetch mark://root/index.md#worlds` → returned just the Worlds section with `section: #worlds` metadata (the 0.2.0 broker rejected fragments outright — crisp single-call deploy probe). - Same doc fetched twice → second response `status: unchanged since v5`, 201 chars instead of the full body. Session-keyed dedup live. - `mark_explore` not visible from this pre-deploy session (MCP tool lists are loaded at session start); fresh sessions see the 16-tool surface. The knowledge system now serves the full fetch-ergonomics surface. Probe pattern worth reusing: when a broker bump changes tool BEHAVIOR, pick a request the old version rejects (here: a URL fragment) — one call tells you which version is serving. ## Broker bump prepped: 0.5.0 → 0.6.0 (MCP resources + prompts) Branch `feat/broker-0.6.0-resources-prompts`: chart `targetRevision` + `image.tag` 0.5.0 → 0.6.0, pin comment extended. 0.6.0 = demarkus #233 (gateway resources: mark://{world}/{+path} template + per-world index-hub picker entries; prompts: orient / recall / whats-new, world-sweeping). Verified: chart+image 0.6.0 in ghcr, zero chart diff tools/v0.5.0 → v0.6.0 (same values schema), YAML parses, immutable-fields check green. Same single-replica blip + ephemeral-state reset caveats as the 0.5.0 roll. Post-merge probe: initialize capabilities should advertise resources+prompts; resources/list should show the three world hubs. ## 0.6.0 deployed Merged (`f52adaf`); ArgoCD synced within minutes. Rollout confirmed by the dedup-reset probe: this session had armed the 0.5.0 pod's fetch dedup for mark://root/index.md ("unchanged" on re-fetch); post-sync the same fetch returned the full body — session state is per-pod, so the pod restarted, and the only change rolled was the 0.6.0 pin. Capabilities themselves can't be probed from an already-initialized session (the handshake is cached); the flipped CI test covers the advertisement, and a fresh Claude Code / Desktop session against the knowledge system now gets the resource picker (three world hubs + the {world}/{+path} template) and the orient / recall / whats-new prompt commands. Probe pattern addendum: for a broker roll with no tool-behavior change, per-pod session state (fetch dedup) doubles as the restart signal. ## Related documents - [Knowledge system GKE deploy](/plans/knowledge-system-gke-deploy.md): broker pin bumps roll on this cluster deploy - [MCP client ergonomics](/plans/mcp-client-ergonomics.md): 0.5.0 fetch ergonomics surface deployed here - [MCP resources and prompts](/plans/mcp-resources-prompts.md): 0.6.0 resources and prompts surface deployed here