mirror of
https://github.com/stablyai/orca.git
synced 2026-10-06 00:02:43 +00:00
The completion monitor spent an evidence-less host's answer as a confirmed process exit and fired "agent done" while the agent was still running. A daemon on the older protocols (11..26, retained across in-place app updates) publishes the same `zsh` + `false` for a genuinely idle pane AND for a foreground read that fell back to the shell title. It has no field to separate them. A current daemon calls that second state `unverifiable`, which is the proof the bytes are ambiguous rather than the old daemon being wrong. Concluding the agent finished IS an action on absence — the user's answer to it is to walk away — so it now reads through `readPtyProcessInspectionEvidenceForAbsenceAction`. The plain reader stays on the line above for recognition and error backoff: that host ANSWERED, so it must not be charged as a failed inspection, and its one positive must still be tracked. Collapsing the two reads into one call costs such a pane ~10x its watch rate via the >=10s inspection error backoff; that separation is now pinned by a cadence test rather than left to comment. Accepted cost: process-exit completion goes dead on pre-v27 daemon panes. Hook and title sources are unaffected, so completion still reports through those. Reporting an agent finished while it runs is worse than not reporting completion through one source when we genuinely cannot tell. Also collapses the third open-coded copy of the rule (the workspace-cleanup liveness probe) onto the shared reader, and adds the STA-5901 consumer-agreement enumeration: 570 inspection shapes, 0 divergences between the shared reader and the open-coded rule it replaces.