From 7e9d536af0a50840d48fb57926a13c1c5a858927 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 20:57:22 -0700 Subject: [PATCH] Expose linked-site world-cell chains in acquisition trace --- crates/rrt-runtime/src/smp.rs | 54 ++++++++++++++++++++++++++++++++--- docs/rehost-queue.md | 4 +++ 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 67f58ef..f14e46c 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4524,6 +4524,8 @@ fn build_periodic_company_service_trace_report( .to_string(), "[peer+0x08] refreshed during 0x00444690 -> 0x004133b0 -> 0x0040ee10 -> 0x0040edf6 -> 0x00480710" .to_string(), + "world-cell owner and linked-site chains [cell+0xd4]/[cell+0xd6] republished during 0x00480710 via 0x0042bbf0/0x0042bbb0 and 0x0042c9f0/0x0042c9a0" + .to_string(), ]; let near_city_acquisition_region_input_fields = vec![ "[region+0x276] pending amount gate".to_string(), @@ -4538,6 +4540,7 @@ fn build_periodic_company_service_trace_report( "0x0047fd50 linked-peer candidate-class gate over [candidate+0x8c] accepting only 0/1/2".to_string(), "[site+0x2a8] linked peer-site id consumed by 0x0040d1f0".to_string(), "[peer+0x08] route-entry anchor id consumed by 0x0047dda0".to_string(), + "world-cell owner chain [cell+0xd4] and linked-site chain [cell+0xd6] republished by 0x00480710".to_string(), "linked-region status branch 0x0047de00 -> 0x0040c990".to_string(), ]; let near_city_acquisition_company_input_fields = vec![ @@ -4553,6 +4556,8 @@ fn build_periodic_company_service_trace_report( .to_string(), "peer-site bring-up replay path reconstructing [site+0x04], [site+0x2a8], and [peer+0x08]" .to_string(), + "linked-site post-load replay republishing world-cell owner and linked-site chains through 0x0042bbf0/0x0042bbb0 and 0x0042c9f0/0x0042c9a0" + .to_string(), "company stat-family lane 0x2329/0x0d already rehosted in runtime company state".to_string(), "chairman personality byte [profile+0x291] already reconstructed from raw save chairman rows" .to_string(), @@ -4610,6 +4615,9 @@ fn build_periodic_company_service_trace_report( "0x0040ee10 live-site position/scalar refresh helper reaching 0x0040edf6 -> 0x00480710 and 0x0040e360".to_string(), "0x00480710 linked-site runtime side-buffer and route-entry-anchor refresh owner" .to_string(), + "0x0042bbf0 / 0x0042bbb0 world-cell owner-chain refresh over [cell+0xd4]".to_string(), + "0x0042c9f0 / 0x0042c9a0 world-cell linked-site-chain refresh over [cell+0xd6]" + .to_string(), "0x0040df27 / 0x0040e00a / 0x0040edf6 concrete linked-site side-refresh callers of 0x00480710" .to_string(), "0x004160aa non-bring-up runtime caller of 0x0040ee10".to_string(), @@ -27740,7 +27748,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(), 7); - assert_eq!(trace.known_bridge_helpers.len(), 39); + assert_eq!(trace.known_bridge_helpers.len(), 41); assert_eq!(trace.next_owner_questions.len(), 4); assert_eq!(trace.companies.len(), 1); assert_eq!( @@ -27806,9 +27814,9 @@ mod tests { trace.peer_site_runtime_reconstruction_status, "restore_subset_and_bring_up_reconstruct_runtime_subset" ); - assert_eq!(trace.peer_site_runtime_reconstruction_steps.len(), 3); + assert_eq!(trace.peer_site_runtime_reconstruction_steps.len(), 4); assert_eq!(trace.near_city_acquisition_region_input_fields.len(), 5); - assert_eq!(trace.near_city_acquisition_peer_input_fields.len(), 6); + assert_eq!(trace.near_city_acquisition_peer_input_fields.len(), 7); assert_eq!(trace.near_city_acquisition_company_input_fields.len(), 4); assert_eq!( trace.near_city_acquisition_shellless_readiness_status, @@ -27818,7 +27826,7 @@ mod tests { trace .near_city_acquisition_runtime_backed_input_families .len(), - 5 + 6 ); assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 4); assert_eq!(trace.near_city_acquisition_region_lane_statuses.len(), 4); @@ -27844,12 +27852,27 @@ mod tests { .iter() .any(|line| line.contains("[site+0x04]")) ); + assert!( + trace + .near_city_acquisition_peer_input_fields + .iter() + .any(|line| line.contains("[cell+0xd4]") && line.contains("[cell+0xd6]")) + ); assert!( trace .near_city_acquisition_company_input_fields .iter() .any(|line| line.contains("0x2329/0x0d")) ); + assert!( + trace + .near_city_acquisition_runtime_backed_input_families + .iter() + .any(|line| line.contains("0x0042bbf0") + && line.contains("0x0042bbb0") + && line.contains("0x0042c9f0") + && line.contains("0x0042c9a0")) + ); assert!( trace .near_city_acquisition_runtime_backed_input_families @@ -27869,6 +27892,13 @@ mod tests { .any(|line| line.contains("[region+0x2a4]") && line.contains("no region-class runtime writer")) ); + assert!( + trace.peer_site_runtime_reconstruction_steps.iter().any(|line| { + line.contains("[cell+0xd4]") + && line.contains("[cell+0xd6]") + && line.contains("0x0042bbf0/0x0042bbb0") + }) + ); assert!(trace.next_owner_questions.iter().any(|line| { line.contains("0x004160aa") && line.contains("0x0040ee10") @@ -27925,6 +27955,22 @@ mod tests { .iter() .any(|line| line.contains("0x00480710") && line.contains("route-entry-anchor")) ); + assert!( + trace + .known_bridge_helpers + .iter() + .any(|line| line.contains("0x0042bbf0") + && line.contains("0x0042bbb0") + && line.contains("[cell+0xd4]")) + ); + assert!( + trace + .known_bridge_helpers + .iter() + .any(|line| line.contains("0x0042c9f0") + && line.contains("0x0042c9a0") + && line.contains("[cell+0xd6]")) + ); assert!( trace .known_bridge_helpers diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 0a1e0a5..eb6cecd 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -50,6 +50,10 @@ Working rule: - `0x0047dda0` consumes `[peer+0x08]` as the linked route-entry anchor id - `0x00480710 -> 0x0048abc0 / 0x00493cf0` is the linked-site refresh and route-entry rebind or synthesis strip above that anchor lane + - the same `0x00480710` replay strip now also republishes the concrete world-cell owner chains: + `0x0042bbf0 / 0x0042bbb0` remove or prepend the current site in the owner chain rooted at + `[cell+0xd4]`, while `0x0042c9f0 / 0x0042c9a0` remove or prepend it in the linked-site chain + rooted at `[cell+0xd6]` - late world bring-up `0x00444690` is the current caller of `0x004133b0 placed_structure_collection_refresh_local_runtime_records_and_position_scalars` - `0x004133b0` drains queued site ids through `0x0040e450` and then sweeps all live sites