From e6bd116bb3f069cd371b4e855562ff2c7853c234 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 23:18:14 -0700 Subject: [PATCH] Ground linked-transit chooser local cache lanes --- crates/rrt-runtime/src/smp.rs | 36 +++++++++++++++++++++++++++++++---- docs/rehost-queue.md | 6 +++++- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index bf18147..91fc3e2 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4990,13 +4990,15 @@ fn build_periodic_company_service_trace_report( "placed-structure-side company cache cells addressed through [site+0x5bd][company_id] and peer rows filled by 0x004a6630".to_string(), "linked-transit peer-table row lanes +0x05 step count and +0x09 normalized continuity share under 0x004093d0".to_string(), "linked-transit site-score cache lanes [site+0x0e/+0x12/+0x16] rebuilt by 0x00407bd0".to_string(), + "linked-transit local site occupancy/count lane [site+0x5c1] reset by 0x00481910, adjusted by 0x004819b0, and consumed by 0x00408280 as a divisor/penalty lane".to_string(), + "linked-transit local site age lane [site+0x5c5] stamped from world counter [world+0x15] at 0x004aee2b and consumed by 0x00408280 as the zero-occupancy age bonus ladder".to_string(), "linked-transit aggregate roster-pressure helper 0x00408f70 consuming raw site-score lane [site+0x12]".to_string(), "linked-transit ranked-site chooser 0x00408280 and staged autoroute entry builder 0x00408380 above the rebuilt site caches".to_string(), "linked-transit train-side autoroute append / rotate strip 0x00409770 plus add-train owner 0x00409830 beneath roster balancer 0x00409950".to_string(), ]; let linked_transit_remaining_owner_gaps = vec![ - "which placed-structure or infrastructure owner seam feeds the rebuilt site-cache lanes that 0x00408280 / 0x00408380 consume when shellless linked-transit maintenance runs".to_string(), - "which persisted site-side inputs are sufficient to rebuild the peer/company cache cells and weighted site-score lanes without relying on shell-owned layout or route refresh follow-ons".to_string(), + "which persisted site-side inputs are sufficient to rebuild the peer/company cache cells [site+0x5bd], local occupancy/age lanes [site+0x5c1/+0x5c5], and weighted site-score lanes [site+0x0e/+0x12/+0x16] without relying on shell-owned layout or route refresh follow-ons".to_string(), + "which placed-structure-side owner seam above 0x004093d0 / 0x00407bd0 guarantees those cache lanes are trustworthy before 0x00408280 / 0x00408380 / 0x00409770 run shelllessly".to_string(), ]; let companies = analysis @@ -5196,6 +5198,9 @@ fn build_periodic_company_service_trace_report( notes.push( "The chooser-and-train strip is tighter now too: 0x00408280 only picks among company-owned linked-transit sites whose cache cells are already live, ranking them off site-cache lane [site+0x16] with one extra boost from local cache words [site+0x5c1/+0x5c5], while 0x00408380 either reuses one explicit site id or falls back to 0x00408280 before building a staged 0x33-byte route entry. Above that, 0x00409770 services the caches through 0x00409720, asks 0x00408380 for one staged entry, and then either appends or rotates it in-place, while 0x00409830 repeats the same builder twice before publishing the add-train/news side. So the remaining blocker is not the train-side consumer strip; it is the placed-structure-side owner seam that makes those site-cache lanes and ready bits trustworthy for shellless runs.".to_string(), ); + notes.push( + "Those extra chooser-side local lanes are tighter now too: 0x00481910 first clears [site+0x5c1] across the live placed-structure collection and then repopulates it by resolving site ids through 0x004a9340, while 0x004819b0 decrements one prior site's [site+0x5c1] and increments one new site's copy during later reassignment. The companion age lane [site+0x5c5] is stamped directly from world counter [world+0x15] at 0x004aee2b. 0x00408280 then uses [site+0x5c1] as an occupancy divisor/penalty and [site+0x5c5] as a zero-occupancy age bonus ladder, so those lanes are no longer anonymous chooser magic; they are grounded live cache inputs with bounded writer strips.".to_string(), + ); notes.push( "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(), ); @@ -28242,7 +28247,7 @@ mod tests { trace.linked_transit_shellless_readiness_status, "timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing" ); - assert_eq!(trace.linked_transit_runtime_backed_input_families.len(), 10); + assert_eq!(trace.linked_transit_runtime_backed_input_families.len(), 12); assert_eq!(trace.linked_transit_remaining_owner_gaps.len(), 2); assert_eq!(trace.companies.len(), 1); assert_eq!( @@ -28694,11 +28699,27 @@ mod tests { .iter() .any(|line| line.contains("0x00409770") && line.contains("0x00409830")) ); + assert!( + trace + .linked_transit_runtime_backed_input_families + .iter() + .any(|line| line.contains("[site+0x5c1]") + && line.contains("0x00481910") + && line.contains("0x004819b0")) + ); + assert!( + trace + .linked_transit_runtime_backed_input_families + .iter() + .any(|line| line.contains("[site+0x5c5]") && line.contains("0x004aee2b")) + ); assert!( trace .linked_transit_remaining_owner_gaps .iter() - .any(|line| line.contains("0x00408280 / 0x00408380")) + .any(|line| line.contains("[site+0x5bd]") + && line.contains("[site+0x5c1/+0x5c5]") + && line.contains("[site+0x0e/+0x12/+0x16]")) ); assert!( trace @@ -28905,6 +28926,13 @@ mod tests { && line.contains("0x00409770") && line.contains("0x00409830") })); + assert!(trace.notes.iter().any(|line| { + line.contains("0x00481910") + && line.contains("0x004819b0") + && line.contains("[site+0x5c1]") + && line.contains("0x004aee2b") + && line.contains("[site+0x5c5]") + })); assert!( trace .near_city_acquisition_runtime_backed_input_families diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 519c5bb..9562ad8 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -29,8 +29,12 @@ Working rule: `0x00408280 / 0x00408380` are the ranked-site chooser and staged autoroute-entry builder above the rebuilt site caches, and `0x00409770 / 0x00409830 / 0x00409950` are the append/add/balance strip above that + - the chooser-local cache words are bounded too: + `[site+0x5c1]` is a live occupancy/count lane reset by `0x00481910` and adjusted by + `0x004819b0`, while `[site+0x5c5]` is a world-counter age lane stamped at `0x004aee2b` - that makes the next linked-transit question narrower: - identify which placed-structure site-cache input owner seam feeds the rebuilt lanes consumed by + identify which persisted site-side inputs are sufficient to rebuild the peer/company cache + cells, occupancy/age lanes, and weighted site-score lanes consumed by `0x00408280 / 0x00408380`, because the bounded train-side strip `0x00409770 / 0x00409830 / 0x00409950` is no longer the blocker - Make the next static/rehost slice the near-city industry acquisition owner seam under