diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 991be09..6dfac18 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4595,14 +4595,13 @@ fn build_periodic_company_service_trace_report( 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(); + "cached_candidate_id_bridge_grounded_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(); + "cached_source_candidate_bridge_grounded_projection_missing".to_string(); let near_city_acquisition_projection_hypotheses = vec![ SmpServiceConsumerHypothesis { label: "site_owner_and_self_id_replay_from_post_load_refresh".to_string(), - status: "bounded_candidate".to_string(), + status: "ruled_down_local_runtime_only".to_string(), candidate_consumers: vec![ "0x00444690 late world bring-up caller".to_string(), "0x004133b0 placed-structure local-runtime replay owner".to_string(), @@ -4613,14 +4612,15 @@ fn build_periodic_company_service_trace_report( "[site+0x276] live owner-company meaning is grounded through 0x0047efe0 / 0x0040d210".to_string(), "[site+0x2a4] self-id meaning is grounded through 0x0041f7e0 / 0x0041f810 / 0x0041f850".to_string(), "0x00444690 -> 0x004133b0 -> 0x0040ee10 is the current checked-in replay family above live placed structures".to_string(), + "0x004133b0 rebuilds cloned local-runtime records through 0x0040e450 and 0x0040ee10 only republishes local position/scalar triplets before 0x0040e360".to_string(), ], blockers: vec![ - "no checked-in replay write ownership yet ties 0x004133b0 / 0x0040ee10 directly to [site+0x276] or [site+0x2a4]".to_string(), + "current atlas evidence does not tie 0x004133b0 / 0x0040ee10 directly to [site+0x276] or [site+0x2a4], so another owner strip is still needed for those lanes".to_string(), ], }, SmpServiceConsumerHypothesis { label: "site_cached_tri_lane_payload_or_restore_owner".to_string(), - status: "bounded_candidate".to_string(), + status: "ruled_down_for_checked_in_save_seams_restore_family_still_open".to_string(), candidate_consumers: vec![ "0x36b1/0x36b2/0x36b3 placed-structure triplet owner".to_string(), "0x00455fc0 shared tagged payload loader".to_string(), @@ -4629,27 +4629,31 @@ fn build_periodic_company_service_trace_report( evidence: vec![ "0x0040cac0 is only the exact raw delta reader over [site+0x310/+0x338/+0x360]".to_string(), "the current binary write scan finds no direct placed-structure runtime writer for [site+0x310/+0x338/+0x360]".to_string(), - "current checked-in save owners still do not serialize those lanes directly, which keeps payload or restore ownership as the leading hypothesis".to_string(), + "current checked-in save owners still do not serialize those lanes directly, which rules down the known save seams while leaving a later restore family open".to_string(), ], blockers: vec![ - "no checked-in triplet or side-buffer payload field is yet tied directly to the tri-lane".to_string(), + "no checked-in triplet or side-buffer payload field is tied directly to the tri-lane, and no later restore owner is grounded yet".to_string(), ], }, SmpServiceConsumerHypothesis { - label: "backing_record_selector_to_candidate_subtype_projection".to_string(), - status: "bounded_candidate".to_string(), + label: "cached_source_candidate_id_to_subtype_projection".to_string(), + status: "cached_candidate_bridge_grounded_restore_projection_missing".to_string(), candidate_consumers: vec![ "0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100 -> 0x00455b70".to_string(), - "0x0052edf0 base constructor seeding [site+0x04]".to_string(), + "0x0040cd70 cached source/candidate resolver seeding [site+0x3cc/+0x3d0]".to_string(), + "0x0040cee0 cached candidate resolver through 0x0062b268".to_string(), "0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0 aux-candidate load chain".to_string(), ], evidence: vec![ - "[site+0x04] backing-record selector owner is grounded".to_string(), + "[site+0x04] backing-record selector owner is grounded, but the stronger checked-in bridge is now [site+0x3cc/+0x3d0]".to_string(), + "0x0040cd70 rebuilds cached source id [site+0x3cc] and candidate/profile id [site+0x3d0]".to_string(), + "0x0040cee0 resolves cached candidate id [site+0x3d0] back into the live candidate pool 0x0062b268".to_string(), + "0x004138f0 already counts live placed structures by cached candidate id [site+0x3d0], confirming that lane as a real live selector bridge".to_string(), "candidate subtype ownership is bounded under the aux-candidate load and stem-policy chain".to_string(), "0x0040d360 only consumes the loaded candidate subtype byte [candidate+0x32] == 4".to_string(), ], blockers: vec![ - "no checked-in bridge yet maps one restored [site+0x04] selector value back onto the loaded aux-candidate row used by 0x0040d360".to_string(), + "no checked-in replay or restore owner yet guarantees the cached candidate id bridge [site+0x3d0] is projected for the acquisition-side rows before 0x0040d360 runs".to_string(), ], }, ]; @@ -4657,7 +4661,7 @@ fn build_periodic_company_service_trace_report( "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(), "save payload or restore owner for [site+0x310/+0x338/+0x360] cached tri-lane sampled by 0x0040cac0; current binary scan finds no direct placed-structure runtime writer".to_string(), - "aux-candidate projection from the restored backing-record selector [site+0x04] into the subtype byte consumed by 0x0040d360 as [candidate+0x32] == 4".to_string(), + "restore projection that guarantees cached candidate id bridge [site+0x3d0] is populated for the acquisition-side rows before 0x0040d360 consumes subtype byte [candidate+0x32] == 4".to_string(), ]; let near_city_acquisition_region_lane_statuses = vec![ "[site+0x276] owner-present gate: consumed directly by 0x004014b0, and the live owner-company meaning is already grounded through 0x0047efe0, but its save-native or replay projection is still missing".to_string(), @@ -27995,24 +27999,36 @@ mod tests { ); assert_eq!( trace.near_city_acquisition_candidate_subtype_projection_status, - "owner_strip_grounded_backing_record_projection_missing" + "cached_candidate_id_bridge_grounded_projection_missing" ); assert_eq!( trace.near_city_acquisition_backing_record_projection_status, - "selector_owner_grounded_projection_sufficient_for_peer_helpers_not_candidate_row" + "cached_source_candidate_bridge_grounded_projection_missing" ); assert_eq!(trace.near_city_acquisition_projection_hypotheses.len(), 3); assert_eq!( trace.near_city_acquisition_projection_hypotheses[0].label, "site_owner_and_self_id_replay_from_post_load_refresh" ); + assert_eq!( + trace.near_city_acquisition_projection_hypotheses[0].status, + "ruled_down_local_runtime_only" + ); assert_eq!( trace.near_city_acquisition_projection_hypotheses[1].label, "site_cached_tri_lane_payload_or_restore_owner" ); + assert_eq!( + trace.near_city_acquisition_projection_hypotheses[1].status, + "ruled_down_for_checked_in_save_seams_restore_family_still_open" + ); assert_eq!( trace.near_city_acquisition_projection_hypotheses[2].label, - "backing_record_selector_to_candidate_subtype_projection" + "cached_source_candidate_id_to_subtype_projection" + ); + assert_eq!( + trace.near_city_acquisition_projection_hypotheses[2].status, + "cached_candidate_bridge_grounded_restore_projection_missing" ); assert!( trace.near_city_acquisition_projection_hypotheses[0] @@ -28030,9 +28046,7 @@ mod tests { trace.near_city_acquisition_projection_hypotheses[2] .candidate_consumers .iter() - .any(|line| line.contains( - "0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100 -> 0x00455b70" - )) + .any(|line| line.contains("0x0040cd70 cached source/candidate resolver")) ); assert_eq!( trace diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 28216b0..e96ab76 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -98,7 +98,23 @@ Working rule: - the same trace now also carries three explicit projection hypotheses for the next pass: - `site_owner_and_self_id_replay_from_post_load_refresh` - `site_cached_tri_lane_payload_or_restore_owner` - - `backing_record_selector_to_candidate_subtype_projection` + - `cached_source_candidate_id_to_subtype_projection` + - the first of those is now partly ruled down by the checked-in atlas: + `0x004133b0 -> 0x0040e450 / 0x0040ee10` rebuilds cloned local-runtime records and local + position/scalar triplets, but current evidence still does not tie that replay family directly + to `[site+0x276]` or `[site+0x2a4]` + - the second is narrower in the same way: + the checked-in `0x36b1/0x36b2/0x36b3` triplet seam and the + `0x4a9d/0x4a3a/0x4a3b` side-buffer seam still do not serialize `[site+0x310/+0x338/+0x360]` + directly, so the known save seams are ruled down even though a later restore family is still open + - the third hypothesis is now a cached source/candidate bridge question, not just a raw + `[site+0x04]` selector question: + `0x0040cd70` seeds `[site+0x3cc/+0x3d0]` from `0x62b2fc / 0x62b268`, + `0x0040cee0` resolves cached candidate id `[site+0x3d0]` back into the live candidate pool, + and `0x004138f0` already counts live placed structures by that cached candidate id + - that leaves the remaining subtype blocker narrower: + no checked-in replay or restore owner yet guarantees `[site+0x3d0]` is populated for the + acquisition-side rows before `0x0040d360` consumes candidate subtype byte `[candidate+0x32]` - 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