From 1d6eed09ab0cf96134cad23d5b05d59228ccd04f Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 19:07:20 -0700 Subject: [PATCH] Split peer-site restore and runtime inputs --- crates/rrt-runtime/src/smp.rs | 23 +++++++++++++++++++++-- docs/rehost-queue.md | 11 ++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index c32fa74..39460b2 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -3475,6 +3475,10 @@ pub struct SmpPeriodicCompanyServiceTraceReport { #[serde(default)] pub peer_site_selector_candidate_helper_linkage: Vec, #[serde(default)] + pub peer_site_restore_input_fields: Vec, + #[serde(default)] + pub peer_site_runtime_input_fields: Vec, + #[serde(default)] pub atlas_candidate_consumers: Vec, #[serde(default)] pub known_bridge_helpers: Vec, @@ -4074,6 +4078,17 @@ fn build_periodic_company_service_trace_report( "0x0040d1e1 -> 0x0045c3c0 consumes the same owner family's [site+0x246] child lane" .to_string(), ]; + let peer_site_restore_input_fields = vec![ + "[site+0x3cc] saved placed-structure id feeding 0x62b2fc".to_string(), + "[site+0x3d0] saved companion-region id from [placed+0x173] feeding 0x62b268".to_string(), + "0x5dc1 payload lane [owner+0x23e] feeding 0x0045c36e selector arg 1".to_string(), + "0x5dc1 payload lane [owner+0x242] companion lane paired with [owner+0x23e]".to_string(), + ]; + let peer_site_runtime_input_fields = vec![ + "[site+0x04] live backing-record selector consumed by 0x0047efe0 / 0x0047fd50".to_string(), + "[site+0x2a8] linked peer-site id consumed by 0x0040d1f0".to_string(), + "[peer+0x08] route-entry anchor id consumed by 0x0047dda0".to_string(), + ]; let atlas_candidate_consumers = vec![ "0x004019e0 periodic company outer service owner".to_string(), "0x00406050 city-connection bonus/news owner".to_string(), @@ -4144,7 +4159,7 @@ fn build_periodic_company_service_trace_report( "0x00409950 linked-transit roster sibling owner".to_string(), ]; let next_owner_questions = vec![ - "Which minimum persisted site and peer fields behind the now-grounded local helper strip are sufficient to rehost 0x004014b0 shelllessly: [site+0x3cc/+0x3d0], the 0x5dc1-backed [owner+0x23e/+0x242] selector lanes, [site+0x2a8], [peer+0x08], or some smaller subset?".to_string(), + "Which minimum persisted fields are actually needed to rehost 0x004014b0 shelllessly once the selector seam is grounded: only the restore subset [site+0x3cc/+0x3d0] plus the 0x5dc1-backed [owner+0x23e/+0x242] lanes, or must the live runtime subset [site+0x04], [site+0x2a8], and [peer+0x08] also be materialized explicitly in the headless state contract?".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 persisted linkage fields behind 0x0047efe0, [region+0x2a4], and [region+0x276] are sufficient to rehost the 0x004014b0 proximity-and-news branch without shell state?".to_string(), "Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(), @@ -4325,6 +4340,8 @@ fn build_periodic_company_service_trace_report( peer_site_selector_candidate_selector_lane, peer_site_selector_candidate_class_identity_status, peer_site_selector_candidate_helper_linkage, + peer_site_restore_input_fields, + peer_site_runtime_input_fields, atlas_candidate_consumers, known_bridge_helpers, next_owner_questions, @@ -25995,6 +26012,8 @@ mod tests { "grounded_direct_local_helper_strip" ); assert_eq!(trace.peer_site_selector_candidate_helper_linkage.len(), 4); + assert_eq!(trace.peer_site_restore_input_fields.len(), 4); + assert_eq!(trace.peer_site_runtime_input_fields.len(), 3); assert!(trace.atlas_candidate_consumers.iter().any(|line| { line.contains("0x00420030 / 0x00420280") && line.contains("0x006cec20") @@ -26003,7 +26022,7 @@ mod tests { assert!(trace.next_owner_questions.iter().any(|line| { line.contains("[site+0x3cc/+0x3d0]") && line.contains("[owner+0x23e/+0x242]") - && line.contains("[peer+0x08]") + && line.contains("[site+0x04]") })); assert!(trace.next_owner_questions.iter().any(|line| { line.contains("0x004160aa") diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 8e4f42a..28b2f44 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -114,10 +114,15 @@ Working rule: `0x0040ceab -> 0x0045c150` / `0x0040d1a1 -> 0x0045c310` / `0x0040cd70 seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268` - treat the peer-site selector seam itself as grounded enough for planning purposes + - use the new structured restore/runtime field split in the same trace: + restore subset + `[site+0x3cc/+0x3d0]` plus `0x5dc1`-backed `[owner+0x23e/+0x242]`, + and runtime subset + `[site+0x04]`, `[site+0x2a8]`, `[peer+0x08]` - make the next periodic-company slice about the smaller shellless-simulation question instead: - which subset of persisted site/peer fields (`[site+0x3cc/+0x3d0]`, - `0x5dc1`-backed `[owner+0x23e/+0x242]`, `[site+0x2a8]`, `[peer+0x08]`) is actually - sufficient to run `0x004014b0` and the city-connection sibling without shell state + whether `0x004014b0` and the city-connection sibling only need that restore subset to + reconstruct the runtime subset deterministically, or whether the runtime subset has to become + an explicit headless-state contract - Use the higher-layer probes as the standard entry point for the current blocked frontier instead of generic save scans: `runtime inspect-periodic-company-service-trace `,