Skip to content

Consume page-owned message evidence in wire fragments - #1360

Merged
trissim merged 1 commit into
mainfrom
work/producer-digest--P993--toad
Oct 30, 2026
Merged

trissim merged 1 commit into
mainfrom
work/producer-digest--P993--toad

Conversation

@trissim

@trissim trissim commented Oct 30, 2026

Copy link
Copy Markdown

Summary

P993 paired consumer for OpenHCSDev/agent-comms#3659: 1 production file, +2/-2. One per-message evidence lookup becomes one paired iteration for the whole page. No new cache, index, wrapper, fragment type, or compatibility path.

Landing sequence: Core #3659 first. After its merge, this same PR will run uv lock --upgrade-package agent-comms, commit the refreshed lock, and land through the merge queue. This initial source checkpoint deliberately does not pretend the old lock contains the new API.

Before / after

WireSource.read previously built each fragment from page.messages and independently asked page.evidence_for(message) for its original evidence page. Core rescanned the source pages for each such question.

It now iterates for message, evidence in page.message_evidence() and passes that evidence directly to the existing WireFragment.of. Message order, original evidence-page identity, viewer, style, fragment dispatch, measured page preparation, and page-edge construction are unchanged.

Core's MessagePage owns the association. Toad consumes it instead of reissuing the lookup per message. No source ownership moved into a UI field.

Source coverage and integration

Existing NRA source parser/index inventoried Core and Toad production roots: 917 modules, 13 related, no parser failures. Declarations, inheritance, imports, writes, decisions, and named consumers are retained in /home/ts/.cache/agent-scratch/producer-digest/p993-source-before.json; dynamic bindings and runtime mutation are outside that inventory's proof.

The older Toad queue carrier #1319 modifies this same constructor line by passing an additional page=page argument. That independent argument must be retained when the carrier reaches main; the batched evidence iteration must also remain. This PR does not take over the carrier's fragment/notification ownership.

Verification still owed

No author pytest, full suite, local ratchet, profile, install, or provider run. Combined execution belongs to the integration owner. Required path: Core tests/test_historical_views.py plus Toad tests/textual/test_wire_source.py; then actual Toad attached-archive channel opening and backward scrolling, confirming message order, original read evidence, and has-newer edges. Published source is not installed acceptance.

Assumed:

  • Core #3659 merges before this PR's lock refresh and queue entry.
  • Core's paired iteration preserves source-page identity and message order; Toad passes those objects through unchanged.
  • Root owns combined controls and the real Toad acceptance run, as the order forbids author execution.

one page already knows where its messages came from
ask it once, not once per message

Copilot AI balanced review requested due to automatic review settings October 30, 2026 09:10

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
trissim enabled auto-merge October 30, 2026 16:00
@trissim
trissim merged commit 1d85311 into main Oct 30, 2026
1 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