Skip to content

P954: pair nominal relationship presence and strict DM consumers with Core - #1361

Closed
trissim wants to merge 8 commits into
mainfrom
work/frame-baseline--P954--toad-pair
Closed

trissim wants to merge 8 commits into
mainfrom
work/frame-baseline--P954--toad-pair

Conversation

@trissim

@trissim trissim commented Oct 30, 2026 •

Copy link
Copy Markdown

P954 — 15 files, +453/−170; held conversation readings and complete person-row consumers

Toad head: 2b424f78ff9e5ca77d910099b254ff8229d06925.
Required Core pair: OpenHCSDev/agent-comms#3607 at a6eb302725e834321542454737b339366b276bea.
Both refs equal their local HEAD on readback; both PRs are MERGEABLE after history-preserving main merges. No rebase/force push. These heads need one matched review/qualification and paired landing. Earlier client-only landings were reverted; do not repeat them.

Published source only. Push triggered exact-head run41108153918; NRA failed and suite was still running at the later readback, with no collected/passed counts available yet. NRA reported +2 missing new HistoryViews factory errors in conversation_kind.py and +6 missing ThreadPresence.views errors in thread_comms.py against Core main; the paired Core declares those APIs. Full failure log retained as p954-sync-46615-toad-gate.log. The workflow's core-from-main action resolves Core main, not the required paired Core head, so this run is not matched-pair proof. No author tests, checker, product import, build, application, provider, service, install or profile. No installed performance improvement is claimed.

the old read-ahead control waited for a deleted function
perfect read-count stability: nothing incremented it

Current main integrated

Main c72556c285cde225a1ab63ba9ad1762f03852ddf is an ancestor of this head. Its KeyFamilyMeta(FamilyMeta, KeyDeclarationType) fix at widget_actions.py:29 was merged unchanged, not reimplemented. The sole newly merged file was widget_actions.py; no conflicts. Core likewise integrates main d249be4d89. Both remote refs equal HEAD; both tracked trees remain clean. The earlier failed run41101360019 stopped during collection (exit4), so it supplied no behavioral result.

Before → after

One conversation source owns one retained Core reading

Before, each transport page reacquired Core's selection/source and could cross later catalogue cuts. ConversationKind.reading now obtains one actual HistoryView and retains its Core reading. WireReading owns that lazy callable and serializes acquisition, use and exit with RLock. PageEnd uses it for newest8 and older40 pages; WireSource.prepare consumes the original page and its evidence, not a second read.

WireScope borrows that reading independently for prefixes. Revoking/replacing a main source does not revoke a retained prefix. Growth renews only the main cut; unchanged revisions reuse; hidden tabs park. Existing native ReusedPrefix remains its own case.

Existing PreparationRuntime/PreparationScope/task admission owns strong resource retention, off-UI closing and joined shutdown. No GC/weak ownership, new worker queue, timer or shadow history. Retirement reports failure and re-raises rather than silently dropping resources. Renderer, geometry and preparation ownership remain unchanged.

Four Core convenience wrappers → two real view factories

ConversationKind builds dm_display_view or channel_display_view then chooses .reading(source.comms.views.presentation). All changed production/test callers use the new factory/operation contract; no compatibility page or reading wrapper. Channel viewer arguments use the actual Checkout-derived viewer.

Complete nominal person presence

Core's shared ThreadPresence.views returns only complete ThreadViews, with the empty answer for NoThreadView. Relationship navigation, cached/uncached row presentation and keys_for_threads all call that family. No .thread access on a ThreadView|NoThreadView iteration, isinstance, hasattr, cast or client union narrowing. A real ThreadRowModel cache miss remains None, distinct from absent person. Existing incarnation matching, focus/cancellation and unavailable/channel details remain.

Preserve freshly landed main consumers

Merged current main per hunk. The sole conflict was test_conversation_kind.py: retain P954's reading context and main's actual AppAgents/CoordinationAccess construction. Main's P993 batching survives in WireSource.prepare as page.message_evidence(); no evidence_for path restored. Main's thread/sidebar and wire changes are retained.

Delete obsolete read-ahead monkeypatch

The old test patched the deleted channel_display_page and waited on a counter nobody increments. It now follows the real history fragments and retained loader/scope/reading, scrolls to earlier messages and checks retained scope plus preparation reuse. This is not the previous ≤3 Core-read assertion. The integration owner accepted measuring that bound at the actual consumer; do not call it preserved or measured here. Controls remain UNRUN.

Publication and source evidence

Checkpoint 4f6ef51ef (6 files, +57/−39) was pushed before merge. Current head merges origin/main and retains all previous lifetime/nominal work. Core checkpoint ff5e9d00aa was likewise pushed before its merge/repairs. Both remote refs equal HEAD; both tracked working trees are clean. Core's foreign untracked refactor-audit remains untouched.

AST parsed 15 changed Toad Python files and 52 Core files with zero syntax omissions; diff --check passed. Retained NRA owner map covers 18 production modules/485 classes/zero omissions, plus the original 74-module migration map. Dynamic/local/external binding remains OPEN. These are source artifacts, not matched typing or execution.

New exact-head hosted NRA failed against unmatched Core main; suite was still running on readback. Root owns matched Core/Toad typing and controls; the known Toad full-suite failure is not a reason to leave this published pair idle, nor permission to claim it passes.

Still required from the integration owner

  • Compatible typing and combined controls: nominal person/current-peer alias/rename/rebirth/refusal; actual cached and uncached relationship rows.
  • Newest8/older40, equal-revision reuse, growth, independent/nested prefixes, restyle/replacement/cancellation, hidden warm returns, resource admission and shutdown.
  • Captured Core handle isolation from ordinary worker-local reads; worker switching/close and original archive-cut refusal/fallback/attach behavior.
  • Actual consumer read-count bound; authentic saved-session frontend journey and total frame/input latency. Source tests do not establish the 16ms target.

Assumed: this pair has not been installed or live-accepted. Hosted checks and matched generic/lifetime typing were not completed at readback. The ≤3 Core-read ceiling remains an explicit integration measurement gap. No source checkpoint or old baseline establishes a speedup. P954 remains OPEN.

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

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 12:33
@trissim
trissim disabled auto-merge October 30, 2026 17:51
@trissim
trissim enabled auto-merge October 30, 2026 19:52
The Toad NRA gate charged this pair with an introduced NoneAbsence at
wire_history.py:379-380 (WireReading.__exit__ spelling three optional
parameters), banned vocabulary at work_preparation.py:316 ("admitted") and one
unannotated `through` each in SavedPrefix.prefix and WirePageBuffer.prefix.
WireReading now locks close(), the one path retirement takes, instead of
re-declaring __exit__; both prefixes take the protocol's TranscriptCursor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbFMSoWgC3ZwKzjT4SwMDu

trissim commented Nov 2, 2026

Copy link
Copy Markdown
Author

Closed in Tristan's board clear (2026-11-02): the P954 pair of agent-comms#3607 (closed with it), no activity since Oct 30. The branch is kept. Re-land any part still needed as a fresh PR on current main.


Generated by Claude Code

@trissim trissim closed this Nov 2, 2026
auto-merge was automatically disabled November 2, 2026 18:11

Pull request was closed

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