Skip to content

Render stored wire messages through IncomingTranscript.of - #1160

Merged
trissim merged 7 commits into
mainfrom
fix/incoming-transcript-envelope
Oct 23, 2026
Merged

trissim merged 7 commits into
mainfrom
fix/incoming-transcript-envelope

Conversation

@trissim

@trissim trissim commented Oct 23, 2026 •

Copy link
Copy Markdown

Part A only: restore message bodies now, separate from runtime reattachment (#1159). Core counterpart: OpenHCSDev/agent-comms#2879 at ccea4d9a0a3a30d86b1d2204d4165badde33e915.

Both WireFragment and MessageFragment call IncomingTranscript.of; MessageRow keeps its stored record. Unexpected source errors reach source_failed, which retires the source before showing its existing error, so completion cannot restore a live state and retry forever. The private-record guard stays intact.

Head 1965a43 matches ls-remote.

Validation:

  • Background timeout 300, faulthandler 60, one worker: tests/textual/test_transcript_lifecycle.py: 2 passed in 16.85 s. The new real-app test raises an unexpected RuntimeError in source work, observes source_failed exactly once and a retired source, then posts another message and confirms the source does not rearm. The fixture now constructs Thread directly after Registration.new_thread was deleted; dead checkpoint_available assertions were removed and the pending-tail check uses the real window End action.
  • Core focused run: 38 passed.
  • Unmodified read_stall.py under env -i and compiled candidate python -I: #comms loading False at 2.5 s, SCREEN shows ROUTE_INSTALL_2860_NEW_MESSAGE_ATTEMPT3; #test loading False, SCREEN shows ROUTE_INSTALL_2860_NEW_MESSAGE_ATTEMPT4. Reads return PreparedWirePage, with no private-record TypeError.
  • Before: PrivateRecord is a record; pass its envelope, then repeated reads and Loading messages forever. After: actual bodies.

The old retry path restores operation.source at transcript_source_preparation.py:385 even when work raises outside WorkingTranscript.execute's former OSError/ValueError catch; the generic worker failure is consumed by app.py:259-265 instead of the pager's source_failed. The new error boundary is transcript_state.py:405-407, and source_failed retires at transcript_source_preparation.py:132 before reporting at :133-134.

The newly fetched ui-theme bb373820 is incompatible with unchanged Toad (ForegroundColour.variable missing). Qualification uses the installed/declared ui-theme 60a324455552a6feeb3868c41551948a58bdcc67, not a production pin change. The larger optional test set also exposed untouched tests still calling Registration.new_thread; those unrelated baseline tests were not reported as passing.

Evidence: /home/ts/.cache/agent-scratch/route-readers-2860/{partA-tests.log,partA-toad-end.log,read-stall-comms-A.log,read-stall-test-A.log}. Assumed: paired Core/Toad release and the installed dependency set. No live root, sessions or uncertain inputs are changed; no read-error fallback or constructor exception workaround is introduced.

@trissim
trissim marked this pull request as ready for review October 23, 2026 19:18
Copilot AI balanced review requested due to automatic review settings October 23, 2026 19:18

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.

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 and others added 2 commits October 23, 2026 15:28
wire_history.py calls IncomingTranscript.of, which first exists on
agent-comms main at db3b35509 (#2879). The lock pinned 70174680, so an
install from this head would raise AttributeError on every wire read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The only conflict was the agent-comms pin: main held 38840b0f, an
ancestor of db3b35509, the #2879 merge this branch needs. Keep db3b35509.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim merged commit 2956528 into main Oct 23, 2026
2 of 3 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