Repository navigation
Conversation
trissim
left a comment
There was a problem hiding this comment.
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.
|
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. |
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:
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.