Skip to content

Restore Toad message bodies with one incoming envelope constructor - #2879

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

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

Conversation

@trissim

@trissim trissim commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Live fix, Part A only: stored records reached IncomingTranscript and every wire view failed. Message now owns the envelope property; IncomingTranscript.of is the single conversion point. BusRecord inherits it, its guard remains, and both Core callers use of without converting at the call site. Toad counterpart: OpenHCSDev/toad#1160. Reattachment stays separate in #2860 / toad#1159.

Core head ccea4d9; pushed head matches ls-remote. Ready and auto-merge enabled after the focused test run passed.

Validation:

  • Background timeout 300, one worker, faulthandler 60: tests/test_message_categories.py tests/test_turn_digests.py tests/test_outbound_transcript_source.py: 38 passed in 20.99 s.
  • Unchanged supplied read_stall.py, env -i and candidate python -I, on the copied live bus published to the compiled branch runtime: #comms read ok 0.510 s, loading False after 2.5 s; SCREEN shows ROUTE_INSTALL_2860_NEW_MESSAGE_ATTEMPT3. #test read ok 0.119 s, loading False; SCREEN shows ROUTE_INSTALL_2860_NEW_MESSAGE_ATTEMPT4.
  • Before: TypeError('PrivateRecord is a record; pass its envelope'), repeated reads and Loading messages. After: PreparedWirePage and actual bodies on screen.
  • Required envelope grep on transcript_sources.py and turn_digests.py: 0. Constructor grep has only the IncomingTranscript declaration; of constructs cls internally.
  • Existing audit AST loader mapped 437 Core modules, 485 tests, 10 tools, 287 Toad modules and 292 Toad tests; no parse omissions. All 6 construction sites migrated across both repos.

Qualification used compiled Core ccea4d9 and the separately built Toad Part A wheel, with the installed/declared ui-theme 60a324455552a6feeb3868c41551948a58bdcc67. Newly fetched ui-theme bb373820 removes member.variable and breaks unchanged Toad at textual_colours.py:328 before the view opens. No production dependency pin is changed by this PR.

Evidence: /home/ts/.cache/agent-scratch/route-readers-2860/{partA-tests.log,read-stall-comms-A.log,read-stall-test-A.log}. Original sessions/auth/uncertain inputs are preserved. Assumed: paired Core/Toad release; application acceptance targets the installed dependency set, not the unrelated newly broken theme API. No runtime guard is weakened.

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

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.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

debt-src at 94f41e3, every finding:

grew TypeErrors:src/agent_comms/transcript_events.py +2
grew TypeIdentity +1

The envelope move dropped the only assertion that constructing an
IncomingTranscript from a record raises TypeError, leaving the guard at
transcript_events.py:256 untested. Restore it beside the .of assertions.

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