diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 50ac4a4..c38bf7d 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -3665,6 +3665,11 @@ pub struct SmpPeriodicCompanyServiceTraceReport { pub near_city_acquisition_shellless_readiness_status: String, #[serde(default)] pub near_city_acquisition_runtime_backed_input_families: Vec, + pub near_city_acquisition_site_owner_company_projection_status: String, + pub near_city_acquisition_site_self_id_projection_status: String, + pub near_city_acquisition_site_cached_tri_lane_projection_status: String, + pub near_city_acquisition_candidate_subtype_projection_status: String, + pub near_city_acquisition_backing_record_projection_status: String, #[serde(default)] pub near_city_acquisition_remaining_owner_gaps: Vec, #[serde(default)] @@ -4581,6 +4586,17 @@ fn build_periodic_company_service_trace_report( "company-root pointer and linked chairman/company save-native roster identity already imported" .to_string(), ]; + let near_city_acquisition_site_owner_company_projection_status = + "live_meaning_grounded_projection_missing".to_string(); + let near_city_acquisition_site_self_id_projection_status = + "live_meaning_grounded_projection_missing".to_string(); + let near_city_acquisition_site_cached_tri_lane_projection_status = + "delta_reader_grounded_projection_missing".to_string(); + let near_city_acquisition_candidate_subtype_projection_status = + "owner_strip_grounded_backing_record_projection_missing".to_string(); + let near_city_acquisition_backing_record_projection_status = + "selector_owner_grounded_projection_sufficient_for_peer_helpers_not_candidate_row" + .to_string(); let near_city_acquisition_remaining_owner_gaps = vec![ "save-native or replay projection of placed-structure owner-company field [site+0x276] for the acquisition-side owner-present gate; the live meaning is already grounded through 0x0047efe0".to_string(), "save or replay projection of [site+0x2a4] as the current record's placed-structure id lane before 0x004269b0 commits the chosen site".to_string(), @@ -4906,6 +4922,11 @@ fn build_periodic_company_service_trace_report( near_city_acquisition_company_input_fields, near_city_acquisition_shellless_readiness_status, near_city_acquisition_runtime_backed_input_families, + near_city_acquisition_site_owner_company_projection_status, + near_city_acquisition_site_self_id_projection_status, + near_city_acquisition_site_cached_tri_lane_projection_status, + near_city_acquisition_candidate_subtype_projection_status, + near_city_acquisition_backing_record_projection_status, near_city_acquisition_remaining_owner_gaps, near_city_acquisition_region_lane_statuses, atlas_candidate_consumers, @@ -27903,6 +27924,26 @@ mod tests { trace.near_city_acquisition_shellless_readiness_status, "peer_and_company_inputs_grounded_site_restore_gaps_remaining" ); + assert_eq!( + trace.near_city_acquisition_site_owner_company_projection_status, + "live_meaning_grounded_projection_missing" + ); + assert_eq!( + trace.near_city_acquisition_site_self_id_projection_status, + "live_meaning_grounded_projection_missing" + ); + assert_eq!( + trace.near_city_acquisition_site_cached_tri_lane_projection_status, + "delta_reader_grounded_projection_missing" + ); + assert_eq!( + trace.near_city_acquisition_candidate_subtype_projection_status, + "owner_strip_grounded_backing_record_projection_missing" + ); + assert_eq!( + trace.near_city_acquisition_backing_record_projection_status, + "selector_owner_grounded_projection_sufficient_for_peer_helpers_not_candidate_row" + ); assert_eq!( trace .near_city_acquisition_runtime_backed_input_families diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 0205b52..3a9738e 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -88,6 +88,13 @@ Working rule: - remaining non-hook gaps are the save or replay projection of `[site+0x276]`, the save or replay projection of `[site+0x2a4]`, the cached tri-lane `[site+0x310/+0x338/+0x360]`, and the projection from restored backing-record selector `[site+0x04]` back into the loaded candidate subtype row + - the checked-in periodic-company trace now exposes those gaps as structured statuses instead of + only prose: + - site owner-company lane = `live_meaning_grounded_projection_missing` + - site self-id lane = `live_meaning_grounded_projection_missing` + - site cached tri-lane = `delta_reader_grounded_projection_missing` + - candidate subtype lane = `owner_strip_grounded_backing_record_projection_missing` + - backing-record selector bridge = `selector_owner_grounded_projection_sufficient_for_peer_helpers_not_candidate_row` - direct disassembly now shows the generic base constructor `0x0052edf0` clearing base state through `0x0052ecd0` and then writing `[this+0x04]` from caller arg `1` - `0x00455b70` is the concrete placed-structure specialization constructor feeding