Classify acquisition tri-lane caller families
This commit is contained in:
parent
ee8b946ad2
commit
c6f3683619
2 changed files with 110 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue