From bf16237beb1bcb5951cf8d71d660b3e93f233014 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 21:49:35 -0700 Subject: [PATCH] Ground acquisition stream-load candidate bridge --- crates/rrt-runtime/src/smp.rs | 48 +++++++++++++++++++++++++---------- docs/rehost-queue.md | 11 ++++---- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index a381ce0..4132359 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4599,9 +4599,9 @@ fn build_periodic_company_service_trace_report( let near_city_acquisition_site_cached_tri_lane_projection_status = "delta_reader_grounded_projection_missing".to_string(); let near_city_acquisition_candidate_subtype_projection_status = - "cached_candidate_id_bridge_grounded_projection_missing".to_string(); + "cached_candidate_id_bridge_grounded_via_stream_load".to_string(); let near_city_acquisition_backing_record_projection_status = - "cached_source_candidate_bridge_grounded_projection_missing".to_string(); + "stream_load_callback_grounded_via_0x40ce60".to_string(); let near_city_acquisition_projection_hypotheses = vec![ SmpServiceConsumerHypothesis { label: "site_owner_and_self_id_replay_from_post_load_refresh".to_string(), @@ -4643,37 +4643,37 @@ fn build_periodic_company_service_trace_report( }, SmpServiceConsumerHypothesis { label: "cached_source_candidate_id_to_subtype_projection".to_string(), - status: "cached_candidate_bridge_grounded_restore_projection_missing".to_string(), + status: "grounded_stream_load_callback_0x40ce60".to_string(), candidate_consumers: vec![ "0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100 -> 0x00455b70".to_string(), + "0x005c8c50 +0x40 stream-load callback 0x0040ce60".to_string(), "0x0040cd70 cached source/candidate resolver seeding [site+0x3cc/+0x3d0]".to_string(), "0x0040cee0 cached candidate resolver through 0x0062b268".to_string(), "0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0 aux-candidate load chain".to_string(), ], evidence: vec![ "[site+0x04] backing-record selector owner is grounded, but the stronger checked-in bridge is now [site+0x3cc/+0x3d0]".to_string(), + "direct local binary inspection now shows the placed-structure stream-load path 0x00413280 dispatching per-entry vtable slot +0x40 on the 0x005c8c50 specialization table, and that slot resolves to 0x0040ce60".to_string(), + "0x0040ce60 canonicalizes the Radio Station stem and then re-enters 0x0040cd70 plus 0x0045c150 on stream load".to_string(), "0x0040cd70 rebuilds cached source id [site+0x3cc] and candidate/profile id [site+0x3d0]".to_string(), "0x0040cee0 resolves cached candidate id [site+0x3d0] back into the live candidate pool 0x0062b268".to_string(), "0x004138f0 already counts live placed structures by cached candidate id [site+0x3d0], confirming that lane as a real live selector bridge".to_string(), "candidate subtype ownership is bounded under the aux-candidate load and stem-policy chain".to_string(), "0x0040d360 only consumes the loaded candidate subtype byte [candidate+0x32] == 4".to_string(), ], - blockers: vec![ - "no checked-in replay or restore owner yet guarantees the cached candidate id bridge [site+0x3d0] is projected for the acquisition-side rows before 0x0040d360 runs".to_string(), - ], + blockers: Vec::new(), }, ]; let near_city_acquisition_remaining_owner_gaps = vec![ "save-native or replay projection of placed-structure owner-company field [site+0x276] for the acquisition-side owner-present gate; the live meaning is already grounded through 0x0047efe0".to_string(), "save or replay projection of [site+0x2a4] into restored live rows before 0x004269b0 commits the chosen site; constructor-side 0x00480210 already seeds this lane for new linked-site records".to_string(), "save payload or restore owner for [site+0x310/+0x338/+0x360] cached tri-lane sampled by 0x0040cac0; current binary scan finds no direct placed-structure runtime writer".to_string(), - "restore projection that guarantees cached candidate id bridge [site+0x3d0] is populated for the acquisition-side rows before 0x0040d360 consumes subtype byte [candidate+0x32] == 4".to_string(), ]; let near_city_acquisition_region_lane_statuses = vec![ "[site+0x276] owner-present gate: consumed directly by 0x004014b0, and the live owner-company meaning is already grounded through 0x0047efe0, but its save-native or replay projection is still missing".to_string(), "[site+0x2a4] placed-structure id lane: peer-chain helpers already ground this as the record's own site id, and constructor-side 0x00480210 seeds it for new linked-site rows, but the save or replay projection into restored live placed-structure rows is still missing for the 0x004014b0 commit path".to_string(), "[site+0x310/+0x338/+0x360] cached tri-lane: exact delta reader grounded at 0x0040cac0 and deferred additive accumulator/reset helper grounded at 0x0040c9a0, but the current binary write scan still finds no direct placed-structure runtime writer, so the lane now looks restore-owned rather than service-produced".to_string(), - "placed-structure subtype filter: 0x0040d360 is the exact test [candidate+0x32] == 4, and the owning subtype byte is already bounded under 0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0; the remaining gap is projecting [site+0x04] back into that loaded candidate row".to_string(), + "placed-structure subtype filter: 0x0040d360 is the exact test [candidate+0x32] == 4, the owning subtype byte is already bounded under 0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0, and direct local binary inspection now grounds stream-load callback 0x0040ce60 as the restore-side bridge into [site+0x3cc/+0x3d0]".to_string(), ]; let atlas_candidate_consumers = vec![ "0x004019e0 periodic company outer service owner".to_string(), @@ -4746,6 +4746,8 @@ fn build_periodic_company_service_trace_report( .to_string(), "0x0040c9a0 deferred additive accumulator/reset helper folding tri-lane [site+0x310/+0x338/+0x360] into [site+0x2b4/+0x2b8/+0x2bc] and mirroring the nine-dword side array rooted at [site+0x2e4]" .to_string(), + "0x005c8c50 +0x40 stream-load callback 0x0040ce60 canonicalizing the site stem and re-entering 0x0040cd70 / 0x0045c150 for restored rows" + .to_string(), "0x0052edf0 generic base constructor seeding [this+0x04] from caller arg 1".to_string(), "0x00455b70 placed-structure specialization constructor feeding 0x0052edf0 arg 3 as the primary selector and arg 1 as fallback" .to_string(), @@ -4940,6 +4942,9 @@ fn build_periodic_company_service_trace_report( notes.push( "Direct local binary inspection now also gives the tri-lane one concrete runtime role: 0x0040c9a0 folds [site+0x310/+0x338/+0x360] into the local scalar band [site+0x2b4/+0x2b8/+0x2bc], mirrors the nine-dword side array rooted at [site+0x2e4], and then clears the tri-lane. Together with the existing delta reader 0x0040cac0, that makes the lane look like a deferred additive cache handed off by restore rather than an ordinary live service output.".to_string(), ); + notes.push( + "Direct local binary inspection now grounds the cached-candidate restore bridge too: the placed-structure stream-load owner 0x00413280 dispatches per-entry vtable slot +0x40 on the 0x005c8c50 specialization table, that slot resolves to 0x0040ce60, and 0x0040ce60 immediately re-enters 0x0040cd70 plus 0x0045c150. So the acquisition-side cached source/candidate bridge [site+0x3cc/+0x3d0] is no longer a generic restore mystery for stream-loaded rows; the remaining restored-row gaps are [site+0x276], [site+0x2a4], and the deferred tri-lane.".to_string(), + ); notes.push( "Direct disassembly now tightens the remaining placed-structure lanes too: 0x0040cac0 is only the raw tri-lane delta reader over [site+0x310/+0x338/+0x360]; 0x0040d360 is only the exact subtype test [candidate+0x32] == 4; and the current binary write scan finds no direct placed-structure runtime writer for either [site+0x2a4] or [site+0x310/+0x338/+0x360], which now makes both lanes look payload/restore-owned rather than service-produced.".to_string(), ); @@ -27945,7 +27950,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(), 9); - assert_eq!(trace.known_bridge_helpers.len(), 51); + assert_eq!(trace.known_bridge_helpers.len(), 52); assert_eq!(trace.next_owner_questions.len(), 4); assert_eq!(trace.companies.len(), 1); assert_eq!( @@ -28033,11 +28038,11 @@ mod tests { ); assert_eq!( trace.near_city_acquisition_candidate_subtype_projection_status, - "cached_candidate_id_bridge_grounded_projection_missing" + "cached_candidate_id_bridge_grounded_via_stream_load" ); assert_eq!( trace.near_city_acquisition_backing_record_projection_status, - "cached_source_candidate_bridge_grounded_projection_missing" + "stream_load_callback_grounded_via_0x40ce60" ); assert_eq!(trace.near_city_acquisition_projection_hypotheses.len(), 3); assert_eq!( @@ -28062,7 +28067,7 @@ mod tests { ); assert_eq!( trace.near_city_acquisition_projection_hypotheses[2].status, - "cached_candidate_bridge_grounded_restore_projection_missing" + "grounded_stream_load_callback_0x40ce60" ); assert!( trace.near_city_acquisition_projection_hypotheses[0] @@ -28088,6 +28093,12 @@ mod tests { .iter() .any(|line| line.contains("0x0040c9a0")) ); + assert!( + trace.near_city_acquisition_projection_hypotheses[2] + .evidence + .iter() + .any(|line| line.contains("0x00413280") && line.contains("0x0040ce60")) + ); assert!( trace.near_city_acquisition_projection_hypotheses[2] .candidate_consumers @@ -28100,7 +28111,7 @@ mod tests { .len(), 12 ); - assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 4); + assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 3); assert_eq!(trace.near_city_acquisition_region_lane_statuses.len(), 4); assert!(trace.atlas_candidate_consumers.iter().any(|line| { line.contains("0x00420030 / 0x00420280") @@ -28236,7 +28247,8 @@ mod tests { .iter() .any( |line| line.contains("0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0") - && line.contains("[site+0x04]") + && line.contains("0x0040ce60") + && line.contains("[site+0x3cc/+0x3d0]") ) ); assert!( @@ -28396,6 +28408,14 @@ mod tests { && line.contains("[site+0x310/+0x338/+0x360]") && line.contains("[site+0x2b4/+0x2b8/+0x2bc]")) ); + assert!( + trace + .known_bridge_helpers + .iter() + .any(|line| line.contains("0x005c8c50 +0x40") + && line.contains("0x0040ce60") + && line.contains("0x0040cd70 / 0x0045c150")) + ); let city_branch = trace.companies[0] .branches .iter() diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 08849ae..adae6e5 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -94,8 +94,8 @@ Working rule: - site owner-company lane = `live_meaning_grounded_projection_missing` - site self-id lane = `live_meaning_grounded_projection_missing` - site cached tri-lane = `delta_reader_grounded_projection_missing` - - candidate subtype lane = `cached_candidate_id_bridge_grounded_projection_missing` - - backing-record selector bridge = `cached_source_candidate_bridge_grounded_projection_missing` + - candidate subtype lane = `cached_candidate_id_bridge_grounded_via_stream_load` + - backing-record selector bridge = `stream_load_callback_grounded_via_0x40ce60` - the same trace now also carries three explicit projection hypotheses for the next pass: - `site_owner_and_self_id_replay_from_post_load_refresh` - `site_cached_tri_lane_payload_or_restore_owner` @@ -116,14 +116,15 @@ Working rule: direct local binary inspection shows `0x0040c9a0` folding `[site+0x310/+0x338/+0x360]` into `[site+0x2b4/+0x2b8/+0x2bc]`, mirroring the nine-dword side array rooted at `[site+0x2e4]`, and then clearing the tri-lane + - the cached source/candidate bridge is now grounded on stream load too: + direct local binary inspection shows `0x00413280` dispatching per-entry vtable slot `+0x40` + on the `0x005c8c50` specialization table, that slot resolving to `0x0040ce60`, and + `0x0040ce60` immediately re-entering `0x0040cd70` plus `0x0045c150` - the third hypothesis is now a cached source/candidate bridge question, not just a raw `[site+0x04]` selector question: `0x0040cd70` seeds `[site+0x3cc/+0x3d0]` from `0x62b2fc / 0x62b268`, `0x0040cee0` resolves cached candidate id `[site+0x3d0]` back into the live candidate pool, and `0x004138f0` already counts live placed structures by that cached candidate id - - that leaves the remaining subtype blocker narrower: - no checked-in replay or restore owner yet guarantees `[site+0x3d0]` is populated for the - acquisition-side rows before `0x0040d360` consumes candidate subtype byte `[candidate+0x32]` - the checked-in consumer side is tighter too: `0x0040dc40` already consumes live owner company `[site+0x276]`, company stat-family `0x2329/0x0d`, candidate field `[candidate+0x22]`, and the projected-cell validation strip