v2.2.0
The reliability release: OpenWolf proves what it does.
Built on an empirical audit of 16 live projects (6,869 API records) that found a hook crashing silently for 3 weeks, self-reported counters drifting ~20x from transcript ground truth, and shipped files no agent ever used.
Added
- Hook health: per-hook heartbeats, crash capture, session-start self-test of hook imports, install verification on
openwolf update(fails loudly), dashboard surfacing of failing hooks. - Transcript-verified measurement: per-session verified counts of hook runs, failures, and injected context that actually entered the conversation, with a schema probe that degrades to labeled estimates if the transcript format drifts.
- Cache-invalidation attribution:
openwolf reportand the daemon name what broke the prompt cache (model switch, compaction, version change, cache expiry, unattributed) and how many tokens each rebuild rewrote. No other tool attributes this. - Position-weighted cost model: waste valued as tokens x remaining API calls x cache-read rate.
Fixed
- Session state keyed by harness session id: concurrent sessions no longer cross-contaminate duplicate tracking.
- Ranged reads never make a later full read look like a duplicate.
- Edit-count warning fires once per file per session.
- Removed a counter that was never incremented anywhere.
Removed
- The anatomy staleness banner (fired in 75% of measured digests), unfilled STATUS template injection, and dead shipped weight (reframe-frameworks.md, identity.md, designqc/suggestions stubs) - deleted on update only when verifiably untouched.
Run openwolf update to migrate (backup taken first).