From 0242fb85f8e9c4c2b527bb16dc9e0e2a692b3f1c Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 18:52:55 -0700 Subject: [PATCH] Link peer-site selector strip to local helpers --- crates/rrt-runtime/src/smp.rs | 10 ++++++---- docs/rehost-queue.md | 8 ++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index bd05987..6a0da11 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4115,6 +4115,8 @@ fn build_periodic_company_service_trace_report( .to_string(), "0x0045c150 save-backed loader for [owner+0x23e/+0x242] via tagged payload 0x5dc1 ahead of 0x0045c310" .to_string(), + "0x0040ceab / 0x0040d1a1 local linked-site helper strip calling 0x0045c150 / 0x0045c310 directly" + .to_string(), "0x00485819 typed placed-structure caller of 0x0052edf0 via 0x530640-style argument bundle" .to_string(), "0x00490a79 chooser-side caller of 0x00455b70 with literal selector 0x005cfd74 and fallback seed 0x005c87a8" @@ -4123,7 +4125,7 @@ fn build_periodic_company_service_trace_report( "0x00409950 linked-transit roster sibling owner".to_string(), ]; let next_owner_questions = vec![ - "Whether the 0x0045c150 -> 0x0045c310 -> 0x0045c36e path is the actual live class-0 site-row restore strip that 0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50 depend on. The selector-lane question is now much tighter: 0x0045c150 fills [owner+0x23e/+0x242] from tagged payload 0x5dc1, and 0x0045c36e then feeds [owner+0x23e] into 0x00456100 as selector arg 1.".to_string(), + "Whether the direct 0x0040ceab / 0x0040d1a1 callers into 0x0045c150 / 0x0045c310 are sufficient to treat that 0x5dc1-backed owner family as the same live class-0 site family that 0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50 depend on. The selector-lane question itself is now much tighter: 0x0045c150 fills [owner+0x23e/+0x242] from tagged payload 0x5dc1, and 0x0045c36e then feeds [owner+0x23e] into 0x00456100 as selector arg 1.".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(), @@ -4288,7 +4290,7 @@ fn build_periodic_company_service_trace_report( "Direct disassembly now closes the negative persistence side too: the direct 0x36b1 per-record callbacks serialize the shared base scalar triplets rooted at [this+0x206/+0x20a/+0x20e] plus the subordinate payload callback strip, while the 0x4a9d/0x4a3a/0x4a3b side-buffer owner only persists route-entry lists, three byte arrays, five proximity buckets, and the sampled-cell list. That means neither checked-in save owner seam currently persists the core peer-site identity fields [site+0x04], [site+0x2a8], or [peer+0x08] directly.".to_string(), ); notes.push( - "The replay strip is tighter now too. 0x00444690 is the current late world bring-up caller of 0x004133b0, that outer owner drains queued site ids through 0x0040e450 and then sweeps every live placed structure through 0x0040ee10, and 0x0040ee10 itself reaches 0x0040edf6 -> 0x00480710 plus the later 0x0040e360 follow-on. A separate runtime path at 0x004160aa also re-enters 0x0040ee10 later. So [peer+0x08] replay is no longer the open question, and [site+0x04] itself is no longer an owner mystery either: 0x00455b70 feeds 0x0052edf0 with arg 3 as the primary selector and arg 1 as fallback, while grounded caller shapes now include the local wrapper 0x00456100, the fixed 0x55f2 callback 0x00456072, and the chooser-side path 0x00490a79. The current strongest restore-family candidate is now the save-backed 0x0045c150 -> 0x0045c310 -> 0x0045c36e strip, because 0x0045c150 fills [owner+0x23e/+0x242] from tagged payload 0x5dc1 and 0x0045c36e then feeds [owner+0x23e] into 0x00456100 as the selector-source lane. The remaining non-hook target is to confirm that this save-backed owner family is the same class-0 site family that 0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50 consume.".to_string(), + "The replay strip is tighter now too. 0x00444690 is the current late world bring-up caller of 0x004133b0, that outer owner drains queued site ids through 0x0040e450 and then sweeps every live placed structure through 0x0040ee10, and 0x0040ee10 itself reaches 0x0040edf6 -> 0x00480710 plus the later 0x0040e360 follow-on. A separate runtime path at 0x004160aa also re-enters 0x0040ee10 later. So [peer+0x08] replay is no longer the open question, and [site+0x04] itself is no longer an owner mystery either: 0x00455b70 feeds 0x0052edf0 with arg 3 as the primary selector and arg 1 as fallback, while grounded caller shapes now include the local wrapper 0x00456100, the fixed 0x55f2 callback 0x00456072, and the chooser-side path 0x00490a79. The current strongest restore-family candidate is now the save-backed 0x0045c150 -> 0x0045c310 -> 0x0045c36e strip, because 0x0045c150 fills [owner+0x23e/+0x242] from tagged payload 0x5dc1, 0x0045c36e then feeds [owner+0x23e] into 0x00456100 as the selector-source lane, and the local linked-site helper neighborhood now reaches that same owner strip directly through 0x0040ceab and 0x0040d1a1. The remaining non-hook target is to decide whether that direct helper linkage is enough to treat the class identity as closed for the class-0 site rows consumed by 0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50, or whether one more helper-field bridge is still needed.".to_string(), ); SmpPeriodicCompanyServiceTraceReport { @@ -25949,7 +25951,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(), 37); + assert_eq!(trace.known_bridge_helpers.len(), 38); assert_eq!(trace.next_owner_questions.len(), 4); assert_eq!(trace.companies.len(), 1); assert!(trace.atlas_candidate_consumers.iter().any(|line| { @@ -25958,7 +25960,7 @@ mod tests { && line.contains("peer-site boolean/selector pair") })); assert!(trace.next_owner_questions.iter().any(|line| { - line.contains("0x0045c150") && line.contains("0x0045c36e") && line.contains("0x5dc1") + line.contains("0x0040ceab") && line.contains("0x0040d1a1") && line.contains("0x5dc1") })); assert!(trace.next_owner_questions.iter().any(|line| { line.contains("0x004160aa") diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index d76785c..7f07f7d 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -82,6 +82,8 @@ Working rule: it zeroes those fields, runs the shared tagged loader `0x00455fc0`, reads tagged payload `0x5dc1`, and copies the two recovered lanes into `[owner+0x23e/+0x242]` before `0x0045c310 -> 0x0045c36e` later feeds `[owner+0x23e]` into `0x00456100` + - the local linked-site helper neighborhood now reaches that same owner strip directly: + `0x0040ceab` calls `0x0045c150`, and `0x0040d1a1` jumps straight into `0x0045c310` - `0x00485819` is one typed placed-structure caller of `0x0052edf0` through the generic three-arg wrapper `0x00530640` - `0x00490a79` is one chooser-side caller of `0x00455b70`, feeding literal selector @@ -104,8 +106,10 @@ Working rule: `0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50` consume the resulting selector, with the current first target being the save-backed `0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100` family - - confirm that this save-backed owner family is the same class-0 site family consumed by - `0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50` + - decide whether the direct `0x0040ceab / 0x0040d1a1` linkage is enough to treat that + save-backed owner family as the same class-0 site family consumed by + `0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50`, or whether one more helper-field bridge + is still needed - 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 `,