Release 2.1.24 (2026-06-09)¶
Bug fixes¶
- patient, heartbeating handshake waits; audit acks from state (#1573)
- fix(pr-workflow): make the agent handshake waits patient and heartbeating (#1572)
The audit's bootstrap wait used a 30s timeout, so it failed before the implement session was ready; and a long silent block reads as a hang. Make all agent-to-agent waits use the long timeout and emit a periodic stderr heartbeat naming what they wait on, so the watching human sees the loop is alive (transparency is the oversight model). Threads an optional waiting_for through the Transport ABC and the local transport.
- fix(pr-workflow): let the audit ack from state so it needs no issue number (#1572)
The audit is launched against the worktree path the implement session hands off, so it should not require --issue. Take the issue from the workflow state when --issue is omitted; update the e2e test to assert the audit acks and gets a review directive rather than erroring.
- test(pr-workflow): stop the suite sleeping/hanging on real-time waits (#1572)
The oracle's poll interval (1s) and patient timeout (24h) are now env-overridable and read at call time; a pr_workflow conftest fixture sets a 0 poll and a short timeout so CLI-driven waits never sleep on real time. Previously any test that hit a wait which did not resolve on the first read blocked for the timeout — seconds each, or an effective hang under the patient timeout — pushing the suite past 30 minutes. The full suite now runs in ~4.5s. Also reseed the audit-next-without-issue e2e test so its wait resolves, and cover the ack-from-state path at the orchestration level.
- chore(pr-workflow): remove scratch timing files accidentally committed (#1572)
Drop .dur.txt and .prw.txt, throwaway pytest-timing captures that should never have been staged.