From ee8b946ad2a7f494430381e71e5263d54db6ba27 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 22:26:49 -0700 Subject: [PATCH] Structure acquisition tri-lane service family --- crates/rrt-runtime/src/smp.rs | 166 ++++++++++++++++++++++++++++++++-- docs/rehost-queue.md | 18 ++++ 2 files changed, 175 insertions(+), 9 deletions(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 5944812..015f034 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -3677,9 +3677,16 @@ pub struct SmpPeriodicCompanyServiceTraceReport { pub near_city_acquisition_site_owner_company_projection_status: String, pub near_city_acquisition_site_self_id_projection_status: String, pub near_city_acquisition_site_cached_tri_lane_projection_status: String, + pub near_city_acquisition_tri_lane_live_service_status: String, pub near_city_acquisition_candidate_subtype_projection_status: String, pub near_city_acquisition_backing_record_projection_status: String, #[serde(default)] + pub near_city_acquisition_tri_lane_live_owner_families: Vec, + #[serde(default)] + pub near_city_acquisition_tri_lane_candidate_gate_fields: Vec, + #[serde(default)] + pub near_city_acquisition_tri_lane_runtime_writer_roles: Vec, + #[serde(default)] pub near_city_acquisition_projection_hypotheses: Vec, #[serde(default)] pub near_city_acquisition_remaining_owner_gaps: Vec, @@ -4645,11 +4652,38 @@ fn build_periodic_company_service_trace_report( let near_city_acquisition_site_self_id_projection_status = "live_meaning_grounded_reconstructible_from_collection_identity".to_string(); let near_city_acquisition_site_cached_tri_lane_projection_status = - "delta_reader_grounded_projection_missing".to_string(); + "live_writer_family_grounded_semantics_and_persisted_inputs_missing".to_string(); + let near_city_acquisition_tri_lane_live_service_status = + "candidate_gate_and_live_writer_family_grounded_exact_formula_and_persisted_inputs_missing" + .to_string(); let near_city_acquisition_candidate_subtype_projection_status = "cached_candidate_id_bridge_grounded_via_stream_load".to_string(); let near_city_acquisition_backing_record_projection_status = "stream_load_callback_grounded_via_0x40ce60".to_string(); + let near_city_acquisition_tri_lane_live_owner_families = vec![ + "0x0040d450 owner-company-aware local scorer producing [site+0x310]".to_string(), + "0x00410b30..0x004118f4 broader candidate-processing loop producing [site+0x310/+0x338/+0x360]" + .to_string(), + "0x00412560 shared candidate/admissibility gate above both scorer paths".to_string(), + "0x0040c9a0 deferred additive accumulator/reset folding the tri-lane into [site+0x2b4/+0x2b8/+0x2bc] and [site+0x2e4..]" + .to_string(), + "0x0040fcc0..0x0040fe28 and 0x00422c62..0x00422d3c weighted scoring/evaluation consumers reading 0x0040cac0" + .to_string(), + ]; + let near_city_acquisition_tri_lane_candidate_gate_fields = vec![ + "0x00412560 gates candidate rows using fields [+0x20/+0x22/+0x24/+0x28/+0x2c/+0x44]".to_string(), + "0x00412560 consumes world date/flags through 0x006cec78".to_string(), + "0x00412560 resolves candidate rows from table 0x0062ba8c".to_string(), + "0x00412560 callers pass the placed-structure subject vtable slot +0x80 result plus owner-present flag from [site+0x246]".to_string(), + "direct callers of 0x00412560 are now bounded at 0x0040fb8d, 0x00410721, 0x00410b71, 0x00412620, and 0x004126d3".to_string(), + ]; + let near_city_acquisition_tri_lane_runtime_writer_roles = vec![ + "0x0040d450 adds one owner-company-aware local score component into [site+0x310]".to_string(), + "0x00410b30..0x004118f4 walks 0xbc-stride candidate rows and adds per-row score components into [site+0x310/+0x338/+0x360]".to_string(), + "0x0041114a7/0x004111572 add into [site+0x310] and 0x0041114b7/0x004111582 add into [site+0x338]".to_string(), + "0x0041118aa/0x0041118f4 add into [site+0x360]".to_string(), + "0x0040c9a0 later folds the tri-lane into [site+0x2b4/+0x2b8/+0x2bc] and clears the transient producer lanes".to_string(), + ]; let near_city_acquisition_projection_hypotheses = vec![ SmpServiceConsumerHypothesis { label: "site_owner_replay_from_post_load_refresh_self_id_reconstructible".to_string(), @@ -4847,7 +4881,8 @@ fn build_periodic_company_service_trace_report( let next_owner_questions = vec![ "Which persisted placed-structure and city-or-region linkage fields are still missing for a shellless 0x004014b0 implementation once the peer-site restore subset, company route-anchor tuple, [site+0x276] live owner meaning, and candidate subtype owner strip are accepted as grounded?".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 later save payload or restore owner rehydrates the remaining placed-structure-side 0x004014b0 inputs [site+0x276] and [site+0x310/+0x338/+0x360] once [site+0x2a4] is treated as reconstructible from collection identity, the replay strip is ruled down, and the 0x00431b20 grouped opcode dispatcher is treated as a live application owner rather than a restore seam?".to_string(), + "Which save-native or replay seam repopulates placed-structure owner-company field [site+0x276] for already-restored rows once [site+0x2a4] is treated as reconstructible from collection identity, the replay strip is ruled down, and the 0x00431b20 grouped opcode dispatcher is treated as a live application owner rather than a restore seam?".to_string(), + "Which persisted inputs and exact shellless formulas feed the grounded tri-lane live scorer family 0x0040d450 / 0x00410b30..0x004118f4 above 0x00412560 before 0x0040c9a0 folds the results into [site+0x2b4/+0x2b8/+0x2bc]?".to_string(), "Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(), ]; @@ -4976,7 +5011,7 @@ fn build_periodic_company_service_trace_report( "0x00406050 city-connection bonus/news sibling owner", ], &[ - "Direct disassembly now shows this branch scanning the live placed-structure collection at 0x0062b26c for the best current acquisition target, rejecting sites whose owner field [site+0x276] is already nonzero, 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 candidate sites against company proximity and age through 0x0040d540 and 0x0040cac0, and then committing the chosen site through 0x004269b0. 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 persisted site/peer lanes are actually sufficient for shellless acquisition and city-connection behavior, not about who owns [site+0x04] or [site+0x2a4].", + "Direct disassembly now shows this branch scanning the live placed-structure collection at 0x0062b26c for the best current acquisition target, rejecting sites whose owner field [site+0x276] is already nonzero, 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 candidate sites against company proximity and age through 0x0040d540 and 0x0040cac0, and then committing the chosen site through 0x004269b0. 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 cached tri-lane is no longer a restore-only mystery either: 0x0040d450 and 0x00410b30..0x004118f4 now bound the live writer family above the shared 0x00412560 candidate/admissibility gate, while 0x0040c9a0 is the later accumulator/reset. The remaining linked-site field work is now about which persisted site/peer lanes are actually sufficient for shellless acquisition and city-connection behavior, not about who owns [site+0x04] or whether the tri-lane has live producers.", ], )); SmpPeriodicCompanyServiceTraceEntry { @@ -5114,8 +5149,12 @@ fn build_periodic_company_service_trace_report( near_city_acquisition_site_owner_company_projection_status, near_city_acquisition_site_self_id_projection_status, near_city_acquisition_site_cached_tri_lane_projection_status, + near_city_acquisition_tri_lane_live_service_status, near_city_acquisition_candidate_subtype_projection_status, near_city_acquisition_backing_record_projection_status, + near_city_acquisition_tri_lane_live_owner_families, + near_city_acquisition_tri_lane_candidate_gate_fields, + near_city_acquisition_tri_lane_runtime_writer_roles, near_city_acquisition_projection_hypotheses, near_city_acquisition_remaining_owner_gaps, near_city_acquisition_region_lane_statuses, @@ -28041,7 +28080,7 @@ mod tests { assert_eq!(trace.selected_company_id, Some(7)); assert_eq!(trace.atlas_candidate_consumers.len(), 9); assert_eq!(trace.known_bridge_helpers.len(), 63); - assert_eq!(trace.next_owner_questions.len(), 4); + assert_eq!(trace.next_owner_questions.len(), 5); assert_eq!(trace.companies.len(), 1); assert_eq!( trace.peer_site_selector_candidate_owner_strip, @@ -28133,7 +28172,11 @@ mod tests { ); assert_eq!( trace.near_city_acquisition_site_cached_tri_lane_projection_status, - "delta_reader_grounded_projection_missing" + "live_writer_family_grounded_semantics_and_persisted_inputs_missing" + ); + assert_eq!( + trace.near_city_acquisition_tri_lane_live_service_status, + "candidate_gate_and_live_writer_family_grounded_exact_formula_and_persisted_inputs_missing" ); assert_eq!( trace.near_city_acquisition_candidate_subtype_projection_status, @@ -28143,6 +28186,24 @@ mod tests { trace.near_city_acquisition_backing_record_projection_status, "stream_load_callback_grounded_via_0x40ce60" ); + assert_eq!( + trace + .near_city_acquisition_tri_lane_live_owner_families + .len(), + 5 + ); + assert_eq!( + trace + .near_city_acquisition_tri_lane_candidate_gate_fields + .len(), + 5 + ); + assert_eq!( + trace + .near_city_acquisition_tri_lane_runtime_writer_roles + .len(), + 5 + ); assert_eq!(trace.near_city_acquisition_projection_hypotheses.len(), 3); assert_eq!( trace.near_city_acquisition_projection_hypotheses[0].label, @@ -28278,10 +28339,13 @@ mod tests { line.contains("0x00402cb0") && line.contains("direct-placement builder owner") })); assert!(trace.next_owner_questions.iter().any(|line| { - line.contains("remaining placed-structure-side 0x004014b0 inputs") - && line.contains("0x004014b0") - && line.contains("[site+0x276]") - && line.contains("[site+0x310/+0x338/+0x360]") + line.contains("repopulates placed-structure owner-company field [site+0x276]") + && line.contains("0x00431b20") + })); + assert!(trace.next_owner_questions.iter().any(|line| { + line.contains("0x0040d450 / 0x00410b30..0x004118f4") + && line.contains("0x00412560") + && line.contains("[site+0x2b4/+0x2b8/+0x2bc]") })); assert!( trace @@ -28397,6 +28461,90 @@ mod tests { .iter() .any(|line| line.contains("0x2329/0x0d")) ); + assert!( + trace + .near_city_acquisition_tri_lane_live_owner_families + .iter() + .any(|line| line.contains("0x0040d450") && line.contains("[site+0x310]")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_live_owner_families + .iter() + .any(|line| line.contains("0x00410b30..0x004118f4") + && line.contains("[site+0x310/+0x338/+0x360]")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_live_owner_families + .iter() + .any(|line| line.contains("0x00412560")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_candidate_gate_fields + .iter() + .any(|line| line.contains("[+0x20/+0x22/+0x24/+0x28/+0x2c/+0x44]")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_candidate_gate_fields + .iter() + .any(|line| line.contains("0x006cec78")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_candidate_gate_fields + .iter() + .any(|line| line.contains("0x0062ba8c")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_candidate_gate_fields + .iter() + .any(|line| line.contains("vtable slot +0x80") && line.contains("[site+0x246]")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_candidate_gate_fields + .iter() + .any(|line| line.contains("0x0040fb8d") + && line.contains("0x00410721") + && line.contains("0x004126d3")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_runtime_writer_roles + .iter() + .any(|line| line.contains("0x0040d450") && line.contains("[site+0x310]")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_runtime_writer_roles + .iter() + .any(|line| line.contains("0x00410b30..0x004118f4") + && line.contains("[site+0x310/+0x338/+0x360]")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_runtime_writer_roles + .iter() + .any(|line| line.contains("0x0041114a7/0x004111572") + && line.contains("0x0041114b7/0x004111582")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_runtime_writer_roles + .iter() + .any(|line| line.contains("0x0041118aa/0x0041118f4")) + ); + assert!( + trace + .near_city_acquisition_tri_lane_runtime_writer_roles + .iter() + .any(|line| line.contains("0x0040c9a0") + && line.contains("[site+0x2b4/+0x2b8/+0x2bc]")) + ); assert!( trace .near_city_acquisition_remaining_owner_gaps diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index f7ba65c..3d1ea31 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -151,6 +151,24 @@ Working rule: `0x2329/0x0d`, candidate field `[candidate+0x22]`, and the projected-cell validation strip `0x00417840 -> 0x004197e0`, then commits the linked-site mutation through `0x0040d1f0 / 0x00480710 / 0x0045b160 / 0x0045b9b0 / 0x00418be0 / 0x0040cd70` + - the periodic-company trace now carries the tri-lane live-service family as structured fields, + not just prose: + - site cached tri-lane status = + `live_writer_family_grounded_semantics_and_persisted_inputs_missing` + - tri-lane live service status = + `candidate_gate_and_live_writer_family_grounded_exact_formula_and_persisted_inputs_missing` + - tri-lane live owners include: + `0x0040d450`, `0x00410b30..0x004118f4`, `0x00412560`, `0x0040c9a0`, + and the downstream `0x0040fcc0..0x0040fe28 / 0x00422c62..0x00422d3c` consumers + - tri-lane gate fields include: + candidate-row fields `+0x20/+0x22/+0x24/+0x28/+0x2c/+0x44`, + world date/flags via `0x006cec78`, + candidate table `0x0062ba8c`, + and caller-provided subject vtable slot `+0x80` plus owner-present flag `[site+0x246]` + - tri-lane writer roles are now split explicitly between: + one owner-company-aware local scorer `0x0040d450`, + the broader `0x00410b30..0x004118f4` candidate loop, + and the later `0x0040c9a0` accumulator/reset - the direct writer census now narrows the remaining owner-company question too: grounded `[site+0x276]` writes cluster under create-side and live mutation families such as `0x004269b0 / 0x00426a10`, the create-side `0x0040ef10 / 0x0040f6d0` strip, and the bulk