diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index b30b50d..c32fa74 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4066,10 +4066,13 @@ fn build_periodic_company_service_trace_report( let peer_site_selector_candidate_persisted_tag_hex = "0x5dc1".to_string(); let peer_site_selector_candidate_selector_lane = "[owner+0x23e]".to_string(); let peer_site_selector_candidate_class_identity_status = - "direct_local_helper_linked_candidate".to_string(); + "grounded_direct_local_helper_strip".to_string(); let peer_site_selector_candidate_helper_linkage = vec![ "0x0040ceab -> 0x0045c150".to_string(), "0x0040d1a1 -> 0x0045c310".to_string(), + "0x0040cd70 seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268".to_string(), + "0x0040d1e1 -> 0x0045c3c0 consumes the same owner family's [site+0x246] child lane" + .to_string(), ]; let atlas_candidate_consumers = vec![ "0x004019e0 periodic company outer service owner".to_string(), @@ -4141,7 +4144,7 @@ fn build_periodic_company_service_trace_report( "0x00409950 linked-transit roster sibling owner".to_string(), ]; let next_owner_questions = vec![ - "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(), + "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(), "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(), @@ -4272,7 +4275,7 @@ fn build_periodic_company_service_trace_report( "0x00406050 city-connection bonus/news sibling owner", ], &[ - "Direct disassembly now shows this branch iterating the live class-0 region collection, skipping regions with pending amount [region+0x276], reusing the center-cell token gate 0x0041f6e0 -> 0x0042b2d0, reusing the linked-region status branch 0x0047de00 -> 0x0040c990, checking candidate reachability through 0x004801a0, consulting the placed-structure peer-site boolean/selector pair 0x00420030 / 0x00420280 over 0x006cec20, scoring regions against company proximity and aging through 0x0040d540 and 0x0040cac0, and then publishing the winning linked company id from [region+0x2a4]. The remaining peer-site identity gap is now narrower too: the linked-peer row's [peer+0x04] is written by 0x00480210 as the anchor-site id, the anchor-site row's [site+0x2a8] is written by 0x0040f6d0 after 0x00481390 returns the linked peer id, the live backing-record selector [site+0x04] is seeded through 0x00455b70 -> 0x0052edf0 with arg 3 as the primary selector and arg 1 as fallback, late world bring-up 0x00444690 -> 0x004133b0 already replays queued clone refresh through 0x0040e450 and live-site sweeps through 0x0040ee10, and [peer+0x08] is refreshed from there through 0x0040edf6 -> 0x00480710 -> 0x0048abc0 / 0x00493cf0.", + "Direct disassembly now shows this branch iterating the live class-0 region collection, skipping regions with pending amount [region+0x276], reusing the center-cell token gate 0x0041f6e0 -> 0x0042b2d0, reusing the linked-region status branch 0x0047de00 -> 0x0040c990, checking candidate reachability through 0x004801a0, consulting the placed-structure peer-site boolean/selector pair 0x00420030 / 0x00420280 over 0x006cec20, scoring regions against company proximity and aging through 0x0040d540 and 0x0040cac0, and then publishing the winning linked company id from [region+0x2a4]. The peer-site selector seam itself is now grounded through the local helper strip: 0x0040cd70 seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268, 0x0040ceab and 0x0040d1a1 reach the save-backed 0x0045c150 / 0x0045c310 owner directly, that owner fills [owner+0x23e/+0x242] from tagged payload 0x5dc1, and 0x0045c36e then feeds [owner+0x23e] through 0x00456100 -> 0x00455b70 -> 0x0052edf0 into the live backing-record selector [site+0x04]. The remaining linked-site field work is now about which of those persisted site/peer lanes are actually sufficient for shellless acquisition and city-connection behavior, not about who owns [site+0x04].", ], )); SmpPeriodicCompanyServiceTraceEntry { @@ -4306,7 +4309,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, 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(), + "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] is no longer an owner mystery either: the local linked-site helper strip seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268, reaches the save-backed 0x0045c150 / 0x0045c310 owner directly, that owner fills [owner+0x23e/+0x242] from tagged payload 0x5dc1, and 0x0045c36e then feeds [owner+0x23e] through 0x00456100 -> 0x00455b70 -> 0x0052edf0 into [site+0x04]. The remaining non-hook target is now the smaller shellless-simulation question: which subset of those persisted site/peer fields is actually sufficient to run 0x004014b0 and its city-connection sibling without shell state.".to_string(), ); SmpPeriodicCompanyServiceTraceReport { @@ -25989,16 +25992,18 @@ mod tests { ); assert_eq!( trace.peer_site_selector_candidate_class_identity_status, - "direct_local_helper_linked_candidate" + "grounded_direct_local_helper_strip" ); - assert_eq!(trace.peer_site_selector_candidate_helper_linkage.len(), 2); + assert_eq!(trace.peer_site_selector_candidate_helper_linkage.len(), 4); assert!(trace.atlas_candidate_consumers.iter().any(|line| { line.contains("0x00420030 / 0x00420280") && line.contains("0x006cec20") && line.contains("peer-site boolean/selector pair") })); assert!(trace.next_owner_questions.iter().any(|line| { - line.contains("0x0040ceab") && line.contains("0x0040d1a1") && line.contains("0x5dc1") + line.contains("[site+0x3cc/+0x3d0]") + && line.contains("[owner+0x23e/+0x242]") + && line.contains("[peer+0x08]") })); assert!(trace.next_owner_questions.iter().any(|line| { line.contains("0x004160aa") diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index b7cbe18..8e4f42a 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -106,16 +106,18 @@ Working rule: `0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50` consume the resulting selector, with the current first target being the save-backed `0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100` family - - use the structured periodic-company trace candidate fields now checked into + - use the structured periodic-company trace selector fields now checked into `inspect-periodic-company-service-trace`: owner strip `0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100 -> 0x00455b70`, persisted tag `0x5dc1`, selector lane `[owner+0x23e]`, class-identity status - `direct_local_helper_linked_candidate`, and helper linkage - `0x0040ceab -> 0x0045c150` / `0x0040d1a1 -> 0x0045c310` - - 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 + `grounded_direct_local_helper_strip`, and helper linkage + `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 + - 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 - 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 `,