Gitmoot v0.8.5
Agent memory lands in observation mode, SkillOpt gains its pre-canary replay gate, and terminal-state semantics become a documented decision. Everything additive; defaults unchanged.
What's new since v0.8.4
Agent persistent memory — observation mode (#626, Phase 0+1)
- Agents can now be enrolled in a persistent memory (
[memory]+ per-agent flag, off by default): gitmoot records durable facts (starting with mechanical, daemon-observed ones), injects a token-budgeted "Prior learnings" block into job prompts (repo-scoped facts + the agent's general tier), and shadow-collects agent-returned learnings behind deterministic trust filters (directive-phrased and secret-shaped content rejected at the door). Includesgitmoot memory listand an A/B measurement harness — live agent-write injection stays gated on measured benefit. - Proven end-to-end by a full-chain E2E that captures the exact prompt the agent subprocess receives — which also caught and fixed a home double-resolution bug that had the daemon-side memory silently disabled (#640). Memory genuinely works as of this release.
SkillOpt: pre-canary replay gate (#627)
gitmoot skillopt gate run: replay a candidate template against a fixed deterministic corpus; accept only on strict improvement over the champion (one retry with the failing log, then reject). Both promotion paths (auto and manual) refuse ungated/rejected candidates when the gate is enabled. Review hardening included byte-identical replay determinism (ordered float summation) and working relative replay commands.
Terminal-state semantics unified (#632)
- Four scattered, disagreeing "is this job state terminal?" predicates (two sharing a name with opposite
blockedhandling) are now two documented helpers:IsSettledJobState(barrier semantics — includes blocked) andIsFinalJobState(resumability — excludes it). No behavior change; the blocked split is now a decision, not four accidents.
Blocked-job hygiene (#631)
- Dismiss blocked jobs: widened cancel, bulk mode, a
blocked_ttlsweep, and a doctor check — blocked jobs no longer accumulate forever.
Web dashboard expansion (#503 line)
- New pages with real datasources: Jobs, Agents (with template/version prompt content in the agent detail), Charts, Health; daemon version/update surface; URL routing for all views; runs picker inside the Graph view.