v0.19.2
·
24 commits
to develop
since this release
[0.19.2] - 2026-08-31
Added
- Event architecture Phase 0-1: fact pipeline + opencode cutover (#739, #740, #743). Introduces
@squadrant/core's own event-tracking module — anAgentFactvocabulary, per-agentFactAdapterseam, aLifecycleSourcefacade wiring adapters to the pipeline, a flight-recorder ring buffer for post-hoc debugging, and a pure fact-to-ControlEventmapping layer with an adapter conformance test suite. Ships invariant checks I1–I3 (depth-based tool-call pairing) and I4–I6 (trust, unknown-rate, and liveness-disagreement).opencodeis moved onto the fact pipeline via aFactAdapterreading SSE frames directly, retiring the oldOpencodeControlSource;claudestays on its existing path (shadow only) per the approved design. A generatedControlEventproducer/consumer table plus a--checkgate now catches producer/consumer drift at build time.
Fixed
- False "First turn not delivered" warning + duplicate first-turn re-send (#745).
crew spawn's own screen-scrape confirmation could time out even when the first turn genuinely landed, because the crew'sUserPromptSubmithook confirms delivery to the daemon independently of — and can outrace — that scrape. Hook confirmation is now raced against the scrape for the scrape's own full timeout window and treated as primary, not a post-failure fallback: a scrape failure alone no longer concludes non-delivery when the hook already confirmed. As defense in depth,crew sendnow refuses to re-send the exact original task text once delivery is confirmed, closing the double-run scenario where following the (previously false) warning's guidance re-ran the task a second time. - Heal daemon false-FAIL on the plist-drift race (#741, #742).
squadrant heal daemoncould report a failed restart even when the daemon had actually come back up cleanly, racing its own plist-drift detection against the just-completed restart. Fixed at the source of the race rather than papering over it with a retry. - Opencode fact-pipeline perf regression and event-index cache-miss fallback (#743). A per-frame performance regression in the new opencode adapter (introduced during Phase 0-1 development) is fixed before shipping; chatty opencode frames are filtered,
resolve()is TTL-cached, and dead snapshot state is removed. TheeventsTaskIndexnow falls back to a live store lookup on a cache miss instead of losing the event.
Notes
- Phase 2 (per-crew
FactLogcleanup,claudeshadow-mode cutover, lifecycle refinement) is deliberately deferred — not part of this release. - First opencode crew after upgrade should be watched for event-pipeline health (I5 invariant floods, subagent-orchestrating crews' known ~2 CREW IDLE per task).