diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index b535a82..19024a4 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -2955,6 +2955,8 @@ pub struct SmpRegionServiceTraceReport { #[serde(default)] pub known_owner_bridge_fields: Vec, #[serde(default)] + pub known_bridge_helpers: Vec, + #[serde(default)] pub next_owner_questions: Vec, #[serde(default)] pub candidate_consumer_hypotheses: Vec, @@ -2990,6 +2992,8 @@ pub struct SmpInfrastructureAssetTraceReport { #[serde(default)] pub known_owner_bridge_fields: Vec, #[serde(default)] + pub known_bridge_helpers: Vec, + #[serde(default)] pub next_owner_questions: Vec, #[serde(default)] pub candidate_consumer_hypotheses: Vec, @@ -3636,6 +3640,14 @@ fn build_region_service_trace_report( "[region+0x356] localized region name".to_string(), "[region+0x23a] world-scalar-backed region lane used in notices".to_string(), ]; + let known_bridge_helpers = vec![ + "0x004207d0 city_site_format_connection_bonus_status_label".to_string(), + "0x00420030 city_connection_bonus_exists_matching_peer_site".to_string(), + "0x00420280 city_connection_bonus_select_first_matching_peer_site".to_string(), + "0x0047efe0 placed_structure_query_linked_company_id".to_string(), + "0x00480bb0 placed_structure_refresh_linked_site_display_name_and_route_anchor".to_string(), + "0x00420650 city_connection_bonus_release_or_clear_adjacent_state".to_string(), + ]; let next_owner_questions = vec![ "Which persisted owner seam rebuilds or restores [region+0x25e/+0x276/+0x302/+0x316]?".to_string(), "Which stable region id or class discriminator survives save/load strongly enough to drive 0x004358d0?".to_string(), @@ -3768,6 +3780,7 @@ fn build_region_service_trace_report( .unwrap_or_default(), atlas_candidate_consumers, known_owner_bridge_fields, + known_bridge_helpers, next_owner_questions, candidate_consumer_hypotheses, entries, @@ -3813,6 +3826,14 @@ fn build_infrastructure_asset_trace_report( "[this+0x1e2/+0x1e6/+0x1ea] published anchor triplet".to_string(), "child list [this+0x75] under the Infrastructure owner".to_string(), ]; + let known_bridge_helpers = vec![ + "0x005395d0 shared child-attach list owner".to_string(), + "0x00539530 shared position-lane seed helper".to_string(), + "0x0053a5b0 shared third position-lane seed helper".to_string(), + "0x00530720 runtime_object_publish_anchor_triplet_and_optionally_rebind_world_cell_handle" + .to_string(), + "0x0048e140 / 0x0048e160 / 0x0048e180 route-entry resolver helpers".to_string(), + ]; let next_owner_questions = vec![ "Do the 0x38a5 compact-prefix/name-pair groups feed the first-child triplet clone lane, the caller-supplied payload-stem lane, or only later route/local-runtime refresh?".to_string(), "Is cached primary-child slot [this+0x248] the first owner-visible bridge from the side-buffer seam into route-entry rebuild?".to_string(), @@ -3984,6 +4005,7 @@ fn build_infrastructure_asset_trace_report( .unwrap_or_default(), atlas_candidate_consumers, known_owner_bridge_fields, + known_bridge_helpers, next_owner_questions, candidate_consumer_hypotheses, branches, @@ -21802,6 +21824,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(), 6); assert_eq!(trace.next_owner_questions.len(), 3); assert_eq!(trace.candidate_consumer_hypotheses.len(), 3); assert_eq!( @@ -21898,6 +21921,7 @@ mod tests { assert!(trace.side_buffer_present); assert_eq!(trace.triplet_alignment_overlap_count, 0); assert_eq!(trace.known_owner_bridge_fields.len(), 4); + assert_eq!(trace.known_bridge_helpers.len(), 5); assert_eq!(trace.next_owner_questions.len(), 3); assert_eq!(trace.candidate_consumer_hypotheses.len(), 3); assert_eq!(