Skip to content

Port current display identities without losing snapshot policy - #2619

Closed
trissim wants to merge 3 commits into
integration/bus-current-mainfrom
review/display-reference-owners
Closed

trissim wants to merge 3 commits into
integration/bus-current-mainfrom
review/display-reference-owners

Conversation

@trissim

@trissim trissim commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Current display references must resolve an original thread birth through one registry snapshot, including renames and same-name recreation. This ports the remaining Core behavior from #2480 at67d309df6 onto the current integration, with the adaptations its older snapshot model needs.

RegistrySnapshot now owns construction/restoration: its declared ThreadSlice copy roles freeze map inputs while preserving scalar RootPurpose, including historical-root write refusal. The constructor derives by_lookup from the copied threads and retains inherited namespace validation. Pickle re-enters that constructor.

CurrentDisplayReferences retains the snapshot and captured channel names. Its target map is derived/read-only, excluded from constructor inputs and rebuilt after transport; the capture forwarder is deleted. Both current and historical catalogs use RegistryNames.named_members instead of duplicating alias decisions. The historical factory explicitly constructs DisplayReferences, so inherited dispatch cannot accidentally require a live registry during archived-message rendering. Recorded catalogs do not acquire live identity lookup.

RouteChangedError lives in errors.py, and OtherRouteThread presents the route owner's explanation through the existing status family. No compatibility alias or route-write policy change is introduced.

Source evidence: NRA covers the pre-port Core452 modules/4,753 classes and the current Toad owner's working source283 modules/1,511 classes, plus their tests. Exact committed corpora: Core2480=431 modules/4,491 classes, Toad1132fbe=283/1,508, Toad1115c27ccdb5b=287/1,525. All have zero parse omissions. The post-port Core census has452 modules/4,756 classes. Git sources are parsed in memory through NRA SourceModule; original syntax/class indexing and manual consumer traces do not certify dynamic binding. Full evidence is in /home/ts/.cache/agent-scratch/mi-owner-withdrawal-trace.json → display_reference_review.

Validation:

  • Initial snapshot/reference/declaration checks:78 passed/1 platform skip; registry copy/conversion/restart family:22 passed.
  • Follow-up current/recorded reference selection:24 passed; the corrected membership assertion passed separately. Final sidebar/reference batch:8 passed, including renamed-alias recognition, direct/pickled lookup and membership agreement, and actual HistorySource projection.
  • At exact71616645d, the full source ratchet against acb2ddd passes with no positive deltas or introduced findings.
  • Retained logs in /home/ts/.cache/agent-scratch/: mi-display-reference-current-contract.txt, mi-display-registry-family.txt, mi-current-reference-authority.txt, mi-current-reference-membership.txt, mi-current-reference-owned-members.txt and mi-display-reference-final-ratchet.txt.

Remaining competing decisions are in Toad: the foreign-root status reader still launches work, and DM destinations still follow names rather than retained births. #1132 fixes imports only; the coherent #1115 consumer port must delete that reader and migrate destination/status/send/page/unread behavior while preserving current history work. Its existing owner retains the dirty checkout. Paired saved-session UI and fresh copied-agent reply qualification remain required; this Core checkpoint is not installed acceptance.

@trissim trissim left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Source accepted and included by merge ancestry in the combined installer/bus integration. RegistrySnapshot retains inherited namespace validation and scalar root-purpose policy; CurrentDisplayReferences derives its target view from the captured registry/channel declarations and restores through the same constructor. Historical factories preserve the historical catalog and do not acquire a live registry. Read the full changed family and retained source checks, including constructor/pickle and alias membership. The paired Toad consumers and installed journey are separate integration obligations.

@trissim

trissim commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

Closing: this branch has no commit ahead of main, so it holds no work. Found by the fleet check 2026-10-23. Reopen if that is wrong.

@trissim trissim closed this Oct 23, 2026
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.

1 participant