Classify acquisition tri-lane caller families

This commit is contained in:
Jan Petykiewicz 2026-04-18 22:30:29 -07:00
commit c6f3683619
2 changed files with 110 additions and 2 deletions

View file

@ -3687,6 +3687,8 @@ pub struct SmpPeriodicCompanyServiceTraceReport {
#[serde(default)]
pub near_city_acquisition_tri_lane_runtime_writer_roles: Vec<String>,
#[serde(default)]
pub near_city_acquisition_tri_lane_direct_caller_families: Vec<String>,
#[serde(default)]
pub near_city_acquisition_projection_hypotheses: Vec<SmpServiceConsumerHypothesis>,
#[serde(default)]
pub near_city_acquisition_remaining_owner_gaps: Vec<String>,
@ -4684,6 +4686,13 @@ fn build_periodic_company_service_trace_report(
"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_tri_lane_direct_caller_families = vec![
"0x0040fb70 is a small wrapper passing one candidate row plus the subject vtable slot +0x80 result and owner-present flag into 0x00412560".to_string(),
"0x004b4052 / 0x004b46ec are collection-wide 0x0040fb70 callers iterating 0x0062b26c candidate rows".to_string(),
"0x00401633 is an acquisition-adjacent 0x0040d540 caller that immediately feeds company stat-family 0x2329/0x0d".to_string(),
"0x0044b81a is an owner-company-aware 0x0040d540 caller that also reaches 0x0040cb70 and 0x00436590 news/event id 0x65".to_string(),
"0x004b70f5 / 0x004b7979 are broader 0x0040d540 callers routing through 0x004337a0 and downstream 0x00540120 / 0x00518140 state consumers".to_string(),
];
let near_city_acquisition_projection_hypotheses = vec![
SmpServiceConsumerHypothesis {
label: "site_owner_replay_from_post_load_refresh_self_id_reconstructible".to_string(),
@ -4798,10 +4807,20 @@ fn build_periodic_company_service_trace_report(
.to_string(),
"0x0040d450 owner-company-aware local scorer writing directly into [site+0x310] via 0x00455810/0x00455800/0x0044ad60 and 0x00436590 ids 0x66/0x68"
.to_string(),
"0x0040fb70 small wrapper passing the subject vtable slot +0x80 result plus owner-present flag into 0x00412560"
.to_string(),
"0x00412560 shared candidate/admissibility gate over 0x0062ba8c candidate rows and world date/flags before the tri-lane scoring loop"
.to_string(),
"0x00410b30..0x004118f4 broader candidate-processing loop writing [site+0x310/+0x338/+0x360] after 0x00412560"
.to_string(),
"0x00401633 acquisition-adjacent 0x0040d540 caller immediately feeding company stat-family 0x2329/0x0d"
.to_string(),
"0x0044b81a owner-company-aware 0x0040d540 caller reaching 0x0040cb70 and 0x00436590 news/event id 0x65"
.to_string(),
"0x004b4052 / 0x004b46ec collection-wide 0x0040fb70 callers iterating 0x0062b26c candidate rows"
.to_string(),
"0x004b70f5 / 0x004b7979 broader 0x0040d540 callers routing through 0x004337a0 and downstream 0x00540120 / 0x00518140 state consumers"
.to_string(),
"0x0040d360 placed-structure subtype-4 predicate over [candidate+0x32]"
.to_string(),
"0x0040d540 weighted region-to-company proximity scorer with pending-bonus context"
@ -5011,7 +5030,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 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.",
"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, 0x0040fb70 is the small wrapper into that gate, and direct callers now separate acquisition-adjacent 0x0040d540 users like 0x00401633 / 0x0044b81a from broader sibling sweeps such as 0x004b4052 / 0x004b46ec / 0x004b70f5 / 0x004b7979. 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 {
@ -5155,6 +5174,7 @@ fn build_periodic_company_service_trace_report(
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_tri_lane_direct_caller_families,
near_city_acquisition_projection_hypotheses,
near_city_acquisition_remaining_owner_gaps,
near_city_acquisition_region_lane_statuses,
@ -28079,7 +28099,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(), 63);
assert_eq!(trace.known_bridge_helpers.len(), 68);
assert_eq!(trace.next_owner_questions.len(), 5);
assert_eq!(trace.companies.len(), 1);
assert_eq!(
@ -28204,6 +28224,12 @@ mod tests {
.len(),
5
);
assert_eq!(
trace
.near_city_acquisition_tri_lane_direct_caller_families
.len(),
5
);
assert_eq!(trace.near_city_acquisition_projection_hypotheses.len(), 3);
assert_eq!(
trace.near_city_acquisition_projection_hypotheses[0].label,
@ -28545,6 +28571,44 @@ mod tests {
.any(|line| line.contains("0x0040c9a0")
&& line.contains("[site+0x2b4/+0x2b8/+0x2bc]"))
);
assert!(
trace
.near_city_acquisition_tri_lane_direct_caller_families
.iter()
.any(|line| line.contains("0x0040fb70")
&& line.contains("vtable slot +0x80")
&& line.contains("owner-present flag")
&& line.contains("0x00412560"))
);
assert!(
trace
.near_city_acquisition_tri_lane_direct_caller_families
.iter()
.any(|line| line.contains("0x004b4052 / 0x004b46ec")
&& line.contains("0x0062b26c"))
);
assert!(
trace
.near_city_acquisition_tri_lane_direct_caller_families
.iter()
.any(|line| line.contains("0x00401633") && line.contains("0x2329/0x0d"))
);
assert!(
trace
.near_city_acquisition_tri_lane_direct_caller_families
.iter()
.any(|line| line.contains("0x0044b81a")
&& line.contains("0x00436590")
&& line.contains("0x65"))
);
assert!(
trace
.near_city_acquisition_tri_lane_direct_caller_families
.iter()
.any(|line| line.contains("0x004b70f5 / 0x004b7979")
&& line.contains("0x004337a0")
&& line.contains("0x00540120 / 0x00518140"))
);
assert!(
trace
.near_city_acquisition_remaining_owner_gaps
@ -28800,6 +28864,14 @@ mod tests {
&& line.contains("[site+0x310]")
&& line.contains("0x00436590"))
);
assert!(
trace
.known_bridge_helpers
.iter()
.any(|line| line.contains("0x0040fb70")
&& line.contains("vtable slot +0x80")
&& line.contains("0x00412560"))
);
assert!(
trace
.known_bridge_helpers
@ -28813,6 +28885,32 @@ mod tests {
&& line.contains("[site+0x310/+0x338/+0x360]")
&& line.contains("0x00412560")
));
assert!(
trace
.known_bridge_helpers
.iter()
.any(|line| line.contains("0x00401633") && line.contains("0x2329/0x0d"))
);
assert!(
trace
.known_bridge_helpers
.iter()
.any(|line| line.contains("0x0044b81a")
&& line.contains("0x00436590")
&& line.contains("0x65"))
);
assert!(
trace
.known_bridge_helpers
.iter()
.any(|line| line.contains("0x004b4052 / 0x004b46ec")
&& line.contains("0x0062b26c"))
);
assert!(trace.known_bridge_helpers.iter().any(|line| {
line.contains("0x004b70f5 / 0x004b7979")
&& line.contains("0x004337a0")
&& line.contains("0x00540120 / 0x00518140")
}));
assert!(
trace
.known_bridge_helpers

View file

@ -169,6 +169,16 @@ Working rule:
one owner-company-aware local scorer `0x0040d450`,
the broader `0x00410b30..0x004118f4` candidate loop,
and the later `0x0040c9a0` accumulator/reset
- direct caller families are now split explicitly too:
`0x0040fb70` is the small wrapper into `0x00412560`,
`0x004b4052 / 0x004b46ec` are collection-wide `0x0040fb70` census callers over
`0x0062b26c`,
`0x00401633` is an acquisition-adjacent `0x0040d540` caller that immediately feeds company
stat-family `0x2329/0x0d`,
`0x0044b81a` is an owner-company-aware `0x0040d540` caller that also reaches
`0x0040cb70` and news/event id `0x65`,
and `0x004b70f5 / 0x004b7979` are broader sibling `0x0040d540` callers routing through
`0x004337a0` and downstream `0x00540120 / 0x00518140`
- 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