From 6a6f2b4abff0be8ee6533d86ea13580394163540 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 21:57:46 -0700 Subject: [PATCH] Reconstruct acquisition self-id from live row identity --- crates/rrt-runtime/src/smp.rs | 59 ++++++++++++++++++++++++++--------- docs/rehost-queue.md | 15 +++++---- 2 files changed, 53 insertions(+), 21 deletions(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 4132359..4c9372f 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4566,7 +4566,7 @@ fn build_periodic_company_service_trace_report( "company-root argument [company+0x00] passed into 0x0040d540 and 0x00455f60".to_string(), ]; let near_city_acquisition_shellless_readiness_status = - "peer_and_company_inputs_grounded_site_restore_gaps_remaining".to_string(); + "peer_and_company_inputs_grounded_site_owner_and_tri_restore_gaps_remaining".to_string(); let near_city_acquisition_runtime_backed_input_families = vec![ "peer-site restore subset [site+0x3cc/+0x3d0] plus tagged 0x5dc1 [owner+0x23e/+0x242]" .to_string(), @@ -4578,6 +4578,8 @@ fn build_periodic_company_service_trace_report( .to_string(), "placed-structure peer-chain helpers 0x0041f7e0 / 0x0041f810 / 0x0041f850 already ground [site+0x2a4] as the record's own placed-structure id lane" .to_string(), + "0x004269b0 resolves the chosen site id back through live placed-structure collection 0x0062b26c before mutating [site+0x276], so the [site+0x2a4] self-id lane is reconstructible from collection identity once the chosen live row is known" + .to_string(), "aux-candidate stream-load and stem-policy chain 0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0 already grounds the subtype byte consumed as [candidate+0x32]" .to_string(), "station-detail mutation path 0x0040dc40 already consumes [site+0x276], company stat-family 0x2329/0x0d, and candidate field [candidate+0x22], then commits linked-site side-state rebuild through 0x0040d1f0 / 0x00480710 / 0x0045b160 / 0x0045b9b0 / 0x00418be0 / 0x0040cd70" @@ -4595,7 +4597,7 @@ fn build_periodic_company_service_trace_report( 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(); + "live_meaning_grounded_reconstructible_from_collection_identity".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 = @@ -4604,22 +4606,24 @@ fn build_periodic_company_service_trace_report( "stream_load_callback_grounded_via_0x40ce60".to_string(); let near_city_acquisition_projection_hypotheses = vec![ SmpServiceConsumerHypothesis { - label: "site_owner_and_self_id_replay_from_post_load_refresh".to_string(), + label: "site_owner_replay_from_post_load_refresh_self_id_reconstructible".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(), "0x0040ee10 live-site position/scalar refresh helper".to_string(), "0x00480710 linked-site runtime side-buffer and route-entry refresh".to_string(), + "0x004269b0 acquisition commit owner resolving live site rows by id".to_string(), ], evidence: vec![ "[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(), + "0x004269b0 resolves the chosen site id through placed-structure collection 0x0062b26c before mutating the live row, so [site+0x2a4] is reconstructible from collection identity rather than a separate serializer-owned selector".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![ - "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(), + "current atlas evidence does not tie 0x004133b0 / 0x0040ee10 directly to [site+0x276], so another owner strip is still needed for the owner-company lane".to_string(), ], }, SmpServiceConsumerHypothesis { @@ -4666,12 +4670,11 @@ fn build_periodic_company_service_trace_report( ]; 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] into restored live rows before 0x004269b0 commits the chosen site; constructor-side 0x00480210 already seeds this lane for new linked-site records".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(), ]; 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(), - "[site+0x2a4] placed-structure id lane: peer-chain helpers already ground this as the record's own site id, and constructor-side 0x00480210 seeds it for new linked-site rows, but the save or replay projection into restored live placed-structure rows is still missing for the 0x004014b0 commit path".to_string(), + "[site+0x2a4] placed-structure id lane: peer-chain helpers already ground this as the record's own site id, constructor-side 0x00480210 seeds it for new linked-site rows, and 0x004269b0 resolves the chosen site id back through 0x0062b26c before mutating [site+0x276], so this lane is reconstructible from collection identity for the 0x004014b0 commit path".to_string(), "[site+0x310/+0x338/+0x360] cached tri-lane: exact delta reader grounded at 0x0040cac0 and deferred additive accumulator/reset helper grounded at 0x0040c9a0, but the current binary write scan still finds no direct placed-structure runtime writer, so the lane now looks restore-owned rather than service-produced".to_string(), "placed-structure subtype filter: 0x0040d360 is the exact test [candidate+0x32] == 4, the owning subtype byte is already bounded under 0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0, and direct local binary inspection now grounds stream-load callback 0x0040ce60 as the restore-side bridge into [site+0x3cc/+0x3d0]".to_string(), ]; @@ -4730,6 +4733,7 @@ fn build_periodic_company_service_trace_report( "0x0047dda0 linked-peer route-entry-anchor validator".to_string(), "0x00420030 / 0x00420280 peer-site boolean/selector pair over the placed-structure collection".to_string(), "0x0047efe0 placed_structure_query_linked_company_id returning owner company id from [site+0x276]".to_string(), + "0x004269b0 acquisition commit owner resolving one site id through 0x0062b26c and then mutating [site+0x276]/[site+0x27a] on the chosen live row".to_string(), "0x0047fd50 linked-peer candidate-class gate returning true only for class-byte values 0/1/2 at [candidate+0x8c]".to_string(), "0x004131f0 / 0x00412fb0 / 0x004120b0 / 0x00412ab0 aux-candidate load and stem-policy chain owning subtype byte [candidate+0x32]".to_string(), "0x0040dc40 station-detail linked-site mutation validator/apply path consuming [site+0x276], candidate field [candidate+0x22], and company stat-family 0x2329/0x0d" @@ -4774,7 +4778,7 @@ fn build_periodic_company_service_trace_report( let next_owner_questions = vec![ "Which persisted placed-structure and city-or-region linkage fields are still missing for a shellless 0x004014b0 implementation once the peer-site restore subset, company route-anchor tuple, [site+0x276] live owner meaning, and candidate subtype owner strip are accepted as grounded?".to_string(), "How much of the linked-peer refresh path is strictly post-load versus recurring runtime maintenance now that 0x004133b0 reaches 0x0040ee10 -> 0x0040edf6 -> 0x00480710 during bring-up and 0x004160aa also re-enters 0x0040ee10 later?".to_string(), - "Which later save payload or replay owner rehydrates the remaining placed-structure-side 0x004014b0 inputs [site+0x2a4] and [site+0x310/+0x338/+0x360] once peer/company inputs are accepted as grounded, [site+0x276] is treated as the owner-company lane, and [site+0x2a4] is treated as the record's own site id?".to_string(), + "Which later save payload or restore owner rehydrates the remaining placed-structure-side 0x004014b0 inputs [site+0x276] and [site+0x310/+0x338/+0x360] once [site+0x2a4] is treated as reconstructible from collection identity and peer/company inputs are accepted as grounded?".to_string(), "Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(), ]; @@ -27950,7 +27954,7 @@ mod tests { let trace = build_periodic_company_service_trace_report(&analysis); assert_eq!(trace.selected_company_id, Some(7)); assert_eq!(trace.atlas_candidate_consumers.len(), 9); - assert_eq!(trace.known_bridge_helpers.len(), 52); + assert_eq!(trace.known_bridge_helpers.len(), 53); assert_eq!(trace.next_owner_questions.len(), 4); assert_eq!(trace.companies.len(), 1); assert_eq!( @@ -28022,7 +28026,7 @@ mod tests { assert_eq!(trace.near_city_acquisition_company_input_fields.len(), 6); assert_eq!( trace.near_city_acquisition_shellless_readiness_status, - "peer_and_company_inputs_grounded_site_restore_gaps_remaining" + "peer_and_company_inputs_grounded_site_owner_and_tri_restore_gaps_remaining" ); assert_eq!( trace.near_city_acquisition_site_owner_company_projection_status, @@ -28030,7 +28034,7 @@ mod tests { ); assert_eq!( trace.near_city_acquisition_site_self_id_projection_status, - "live_meaning_grounded_projection_missing" + "live_meaning_grounded_reconstructible_from_collection_identity" ); assert_eq!( trace.near_city_acquisition_site_cached_tri_lane_projection_status, @@ -28047,7 +28051,7 @@ mod tests { 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" + "site_owner_replay_from_post_load_refresh_self_id_reconstructible" ); assert_eq!( trace.near_city_acquisition_projection_hypotheses[0].status, @@ -28109,9 +28113,9 @@ mod tests { trace .near_city_acquisition_runtime_backed_input_families .len(), - 12 + 13 ); - assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 3); + assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 2); assert_eq!(trace.near_city_acquisition_region_lane_statuses.len(), 4); assert!(trace.atlas_candidate_consumers.iter().any(|line| { line.contains("0x00420030 / 0x00420280") @@ -28128,7 +28132,8 @@ mod tests { assert!(trace.next_owner_questions.iter().any(|line| { line.contains("remaining placed-structure-side 0x004014b0 inputs") && line.contains("0x004014b0") - && line.contains("[site+0x2a4]") + && line.contains("[site+0x276]") + && line.contains("[site+0x310/+0x338/+0x360]") })); assert!( trace @@ -28180,6 +28185,14 @@ mod tests { .any(|line| line.contains("0x0041f7e0 / 0x0041f810 / 0x0041f850") && line.contains("[site+0x2a4]")) ); + assert!( + trace + .near_city_acquisition_runtime_backed_input_families + .iter() + .any(|line| line.contains("0x004269b0") + && line.contains("0x0062b26c") + && line.contains("[site+0x2a4]")) + ); assert!( trace .near_city_acquisition_runtime_backed_input_families @@ -28225,13 +28238,21 @@ mod tests { .iter() .any(|line| line.contains("[site+0x276]") && line.contains("0x0047efe0")) ); + assert!( + !trace + .near_city_acquisition_remaining_owner_gaps + .iter() + .any(|line| line.contains("[site+0x2a4]")) + ); assert!( trace .near_city_acquisition_region_lane_statuses .iter() .any(|line| line.contains("[site+0x2a4]") && line.contains("record's own site id") - && line.contains("0x00480210")) + && line.contains("0x00480210") + && line.contains("0x004269b0") + && line.contains("reconstructible from collection identity")) ); assert!( trace @@ -28333,6 +28354,14 @@ mod tests { && line.contains("0x0042c9a0") && line.contains("[cell+0xd6]")) ); + assert!( + trace + .known_bridge_helpers + .iter() + .any(|line| line.contains("0x004269b0") + && line.contains("0x0062b26c") + && line.contains("[site+0x276]/[site+0x27a]")) + ); assert!( trace .known_bridge_helpers diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index fe9bc46..30da85c 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -83,27 +83,30 @@ Working rule: - `[site+0x2a4]` is already grounded as the record's own placed-structure id lane through the peer-chain helpers `0x0041f7e0 / 0x0041f810 / 0x0041f850`, and constructor-side `0x00480210` already seeds that lane for new linked-site rows + - direct disassembly now also shows `0x004269b0` resolving one chosen site id through live + placed-structure collection `0x0062b26c` before mutating `[site+0x276]`, so the + `[site+0x2a4]` self-id lane is reconstructible from collection identity rather than needing a + separate serializer-owned projection - the subtype byte consumed as `[candidate+0x32] == 4` is already bounded under the aux-candidate load/stem-policy chain `0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0` - - remaining non-hook gaps are the save or replay projection of `[site+0x276]`, the save or - replay projection of `[site+0x2a4]` into restored rows, and the cached tri-lane - `[site+0x310/+0x338/+0x360]` + - remaining non-hook gaps are the save or replay projection of `[site+0x276]` and the cached + tri-lane `[site+0x310/+0x338/+0x360]` - 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 self-id lane = `live_meaning_grounded_reconstructible_from_collection_identity` - site cached tri-lane = `delta_reader_grounded_projection_missing` - candidate subtype lane = `cached_candidate_id_bridge_grounded_via_stream_load` - backing-record selector bridge = `stream_load_callback_grounded_via_0x40ce60` - 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_owner_replay_from_post_load_refresh_self_id_reconstructible` - `site_cached_tri_lane_payload_or_restore_owner` - `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]` + to `[site+0x276]` - 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]`