2026-07-15: library 0.21.2 deployed (enriched /graph.md parsing)
Deploy PR 117 rolled the library to 0.21.2, restoring the floor's federation edges: the old column-count parser got zero edges (and phantom nodes) from the enriched six-column /graph.md the agent has published since 0.21.1. Verified in-cluster: fresh pod on image 0.21.2, ready, clean logs.
Two verification lessons from the incident that preceded this:
- Check the artifact, not the traffic. The library's zero-downtime rolling update produces no external signal at all; a healthz dip watch (which worked for the broker) spun uselessly. Pod age plus image tag via kubectl is the reliable roll signal.
- "Merged" needs its object confirmed. The code PR merged while the deploy bump sat committed but unpushed locally; Argo stayed correctly synced to old main and the 7-day-old pod was the first hard evidence. When a bump matters, verify origin/main actually contains it before watching for a roll.
Agent 0.21.3 deployed (H1 title fallback)
Deploy PR 118. Verified without cluster access via the self-proving output: /graph.md v766 (18:08Z) carries titles on all 147 soul rows (H1-extracted) while declared-metadata titles keep precedence on the cluster worlds; the old agent could only publish soul rows nameless. Also relearned the credential edge: the kubectl-based roll watcher silently reads expired gcloud auth as "not rolled yet" (2>/dev/null hid the failure), so prefer output-based verification when the artifact's output is version-distinguishing, and never discard stderr in a poll loop.
Library 0.22.0 deployed (rel-typed edges on world maps)
Deploy PR 119. Verified via kubectl: fresh pod on image 0.22.0, ready, clean logs (the roll watcher now fails loudly on auth/API errors instead of reading them as "not rolled yet"). World maps draw typed relations dashed with the predicate as tooltip; rendering is unit-pinned and the rel data was already confirmed live in the aggregate, so the remaining check is a human glance at the soul map's supersedes chains.