Skip to content

Keep failed observer reads with their original error owner - #1383

Merged
trissim merged 1 commit into
mainfrom
hotfix/failed-observation-read
Oct 31, 2026
Merged

trissim merged 1 commit into
mainfrom
hotfix/failed-observation-read

Conversation

@trissim

@trissim trissim commented Oct 31, 2026 •

Copy link
Copy Markdown

Hotfix the failed-reader cascade

CoordinationTranscriptReader.read reaches directly into observed.process even when the current observation is FailedObservation. An observer failure therefore becomes repeated AttributeError instead of the original cause.

Observation now declares read; NotObserving opens through its existing observed owner, Observing uses its existing process and FailedObservation raises its original error. AnsweringReads inherits the live implementation. The transcript reader calls that family capability and no longer assumes a concrete state. No new class/state/cache, concrete-type branch, retry policy or binding copy.

Source-first AST covers the complete Observation family and all read consumers. Before/after class counts match; all three concrete states and AnsweringReads import with no abstract methods left. The recorded real application failure is retained in initial-thread-binding/journey-2/state/toad/logs; Core's immediate cause is a separate one-line OwnerReadOperation fix. Paired actual installed journey follows merge/install. No automated tests, fake replies or original input replay.

Installed result

Merged and installed with Core #3781 and Toad #1381/#1383. Exact installed Core 1c25645ea1e1; Toad 8b9f26a. Real plain-st/Xvfb journey used a bounded genuine saved-history copy and the configured openai-codex/gpt-6.1-sol/high provider. Before send, the actual focused input reported InputAccepted and LiveThreadOwnerBinding. One fresh physical UI input (39c0fb8091f248e4b0213c18129cdd7b) received the genuine OWNER_BINDING_FINAL_REPLY; the inspected screenshots show the answer, actual #comms tab selection, and the answer retained on return. Ordinary Ctrl-Q exit 0; private root retired; original settings unchanged. No ACP response errors, automated tests or replay of original/uncertain inputs.

Earlier journey sent no input while its observer was unready. Journey 2 received a real answer but exposed Core's missing session_id and Toad's failed-state process access; its observer/quit result is excluded, not silently counted. Both causes are fixed in this paired build. Install initially published packages but failed restarting owners at the disk floor; all original 14 owners were restored, regenerable caches pruned, and the final supported install completed with no pending carries.

Concise retained evidence: /home/ts/.cache/agent-scratch/codex-latency/initial-thread-binding/RESULT.json; inspected images ui-3/02-reply.png, 03-channel.png, 04-return.png.

Copilot AI balanced review requested due to automatic review settings October 31, 2026 01:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@trissim
trissim merged commit 8b9f26a into main Oct 31, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants