From cbf5bf91e43213a2cd9b929becd11825e0c0a64f Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sun, 19 Apr 2026 12:20:01 -0700 Subject: [PATCH] Expose region availability-bank consumers --- crates/rrt-runtime/src/smp.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 8740b20..7e484cd 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -5748,6 +5748,10 @@ fn build_region_service_trace_report( "0x004c7520 kind-7 region-focused custom-modal owner".to_string(), "0x004358d0 pending region bonus service owner".to_string(), "0x00438710 recurring queued-notice service owner".to_string(), + "0x00420410 world_region_refresh_profile_availability_summary_bytes_0x2f6_0x2fa_0x2fe" + .to_string(), + "0x004204c0 world_region_refresh_profile_availability_display_strings_for_cached_selector_0x2f2" + .to_string(), "0x00420030 / 0x00420280 city-connection peer probes".to_string(), "0x0047efe0 placed-structure linked-company resolver".to_string(), ]; @@ -5773,6 +5777,8 @@ fn build_region_service_trace_report( .to_string(), "0x00455930 region triplet-band tagged serializer callback (world-region vtable +0x4c)" .to_string(), + "0x00420410 region profile availability-summary rebuild helper".to_string(), + "0x004204c0 region profile availability-display rebuild helper".to_string(), "0x004cc930 selected-region severity/source editor helper".to_string(), "0x00438150 fixed-region severity/source reseed owner".to_string(), "0x00442cc0 fixed-region severity/source clamp owner".to_string(), @@ -5800,6 +5806,7 @@ fn build_region_service_trace_report( evidence: vec![ "atlas already bounds this owner as the direct consumer of [region+0x276], [region+0x302], and [region+0x316]".to_string(), "the new region trace already proves the record envelope and profile subcollection, so the remaining gap is the separate persisted latch seam rather than the service owner".to_string(), + "the neighboring region-profile summary/display strip is now grounded as rebuild-only follow-on work: 0x00420410 and 0x004204c0 walk the restored profile collection [region+0x37f], resolve backing candidates through 0x00412b70, and then rebuild [region+0x2f6/+0x2fa/+0x2fe] plus cached-selector display strings [region+0x2f2] from candidate bytes [candidate+0xba/+0xbb] rather than reading persisted region-owned copies".to_string(), "direct disassembly now shows 0x004358d0 calling 0x00420030 twice plus 0x00420280, resolving the linked company through 0x0047efe0, posting company stat slot 4, and then clearing [region+0x276] while stamping [region+0x302] or [region+0x316]".to_string(), "that same direct disassembly now also tightens the branch meaning: the linked-company branch formats the localized region-name notice from [region+0x356], posts it through 0x004554e0 and 0x0042a080, clears [region+0x276], and stamps [region+0x302]=1, while the fallback branch only runs when [region+0x316]==0 and then flips that one-shot latch to 1 before emitting its alternate notice".to_string(), "the checked-in constructor owner 0x00421200 now also proves these latches are initialized locally at record construction time, which narrows the remaining gap to post-construction restore or rebuild rather than basic field identity".to_string(), @@ -6011,6 +6018,9 @@ fn build_region_service_trace_report( notes.push( "The later post-load per-region sweep is ruled down further now too: in the 0x00444887 restore strip, the follow-on loop at 0x00444b90 dispatches 0x00420560 over each live region, but that helper only zeroes and recomputes [region+0x312] from the embedded profile collection [region+0x37f]/[region+0x383] and lazily seeds the year-driven [region+0x317/+0x31b] band through 0x00420350, not [region+0x276/+0x302/+0x316].".to_string(), ); + notes.push( + "The immediate profile-summary/display strip is ruled onto the rebuild side too: 0x00420410 rebuilds summary dwords [region+0x2f6/+0x2fa/+0x2fe] and 0x004204c0 refreshes cached-selector display strings [region+0x2f2] by walking the restored profile collection [region+0x37f], resolving backing candidates through 0x00412b70, and consuming candidate bytes [candidate+0xba/+0xbb]. Those bytes are therefore consumer-side summaries, not hidden persisted region lanes.".to_string(), + ); notes.push( "The current region seam is strong enough to prove record-envelope ownership, profile subcollection ownership, and the absence of hidden 0x55f3 tail padding on grounded saves.".to_string(), ); @@ -30597,7 +30607,7 @@ mod tests { assert_eq!(trace.queued_notice_record_count, 0); assert!(!trace.atlas_candidate_consumers.is_empty()); assert_eq!(trace.known_owner_bridge_fields.len(), 6); - assert_eq!(trace.known_bridge_helpers.len(), 14); + assert_eq!(trace.known_bridge_helpers.len(), 16); assert_eq!(trace.next_owner_questions.len(), 5); assert_eq!(trace.candidate_consumer_hypotheses.len(), 6); assert_eq!(