Ground acquisition mutation-side consumer bridge
This commit is contained in:
parent
b6a8f13483
commit
082052a4da
2 changed files with 54 additions and 5 deletions
|
|
@ -4580,6 +4580,8 @@ fn build_periodic_company_service_trace_report(
|
|||
.to_string(),
|
||||
"aux-candidate stream-load and stem-policy chain 0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0 already grounds the subtype byte consumed as [candidate+0x32]"
|
||||
.to_string(),
|
||||
"station-detail mutation path 0x0040dc40 already consumes [site+0x276], company stat-family 0x2329/0x0d, and candidate field [candidate+0x22], then commits linked-site side-state rebuild through 0x0040d1f0 / 0x00480710 / 0x0045b160 / 0x0045b9b0 / 0x00418be0 / 0x0040cd70"
|
||||
.to_string(),
|
||||
"company stat-family lane 0x2329/0x0d already rehosted in runtime company state".to_string(),
|
||||
"company market state now carries the save-native linked-transit route-anchor tuple [company+0x0d35] and [company+0x7664/+0x7668/+0x766c]"
|
||||
.to_string(),
|
||||
|
|
@ -4674,6 +4676,7 @@ fn build_periodic_company_service_trace_report(
|
|||
"0x00406050 city-connection bonus/news owner".to_string(),
|
||||
"0x00409950 linked-transit train-roster balancer".to_string(),
|
||||
"0x004014b0 near-city industry acquisition and news owner".to_string(),
|
||||
"0x0040dc40 station-detail linked-site mutation validator/apply owner".to_string(),
|
||||
"0x00401c50 annual finance-policy owner".to_string(),
|
||||
"0x00420030 / 0x00420280 peer-site boolean/selector pair over 0x006cec20".to_string(),
|
||||
"0x004093d0 / 0x00407bd0 linked-transit refresh tails".to_string(),
|
||||
|
|
@ -4724,6 +4727,12 @@ fn build_periodic_company_service_trace_report(
|
|||
"0x0047efe0 placed_structure_query_linked_company_id returning owner company id from [site+0x276]".to_string(),
|
||||
"0x0047fd50 linked-peer candidate-class gate returning true only for class-byte values 0/1/2 at [candidate+0x8c]".to_string(),
|
||||
"0x004131f0 / 0x00412fb0 / 0x004120b0 / 0x00412ab0 aux-candidate load and stem-policy chain owning subtype byte [candidate+0x32]".to_string(),
|
||||
"0x0040dc40 station-detail linked-site mutation validator/apply path consuming [site+0x276], candidate field [candidate+0x22], and company stat-family 0x2329/0x0d"
|
||||
.to_string(),
|
||||
"0x00417840 / 0x004197e0 / 0x004142c0 / 0x004142d0 projected-cell validation and compact-grid replay strip ahead of the linked-site mutation"
|
||||
.to_string(),
|
||||
"0x0040d1f0 / 0x00480710 / 0x0045b160 / 0x0045b9b0 / 0x00418be0 / 0x0040cd70 linked-site mutation-side side-state rebuild strip"
|
||||
.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(),
|
||||
|
|
@ -4906,6 +4915,9 @@ fn build_periodic_company_service_trace_report(
|
|||
notes.push(
|
||||
"The shellless acquisition frontier is narrower now too: the peer-site selector/linked-peer seam is grounded enough to plan around, the company/chairman side now includes the save-native route-anchor tuple used by 0x00401860, the live owner-company meaning of [site+0x276] is grounded through 0x0047efe0 / 0x0040d210, the self-id meaning of [site+0x2a4] is grounded through 0x0041f7e0 / 0x0041f810 / 0x0041f850, and the subtype owner strip is bounded under the aux-candidate load chain 0x004131f0 -> 0x00412fb0 -> 0x004120b0 -> 0x00412ab0. The remaining blocker is the placed-structure-side restore or replay ownership for [site+0x276], [site+0x2a4], and the cached tri-lane [site+0x310/+0x338/+0x360], plus the projection from [site+0x04] back into the loaded candidate subtype row.".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"The acquisition-side consumer family is tighter now too. The checked-in station-detail action path 0x0040dc40 already consumes live owner company [site+0x276], candidate field [candidate+0x22], company stat-family 0x2329/0x0d, projected-cell validation 0x00417840 -> 0x004197e0, and compact-grid replay 0x004142c0/0x004142d0 before it commits the linked-site mutation through 0x0040d1f0 -> 0x00480710 -> 0x0045b160 / 0x0045b9b0 / 0x00418be0 / 0x0040cd70. That means these lanes are already grounded as live preconditions and mutation-side rebuild inputs, even though the save or replay owner that populates them for shellless acquisition is still the open question.".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(),
|
||||
);
|
||||
|
|
@ -27910,8 +27922,8 @@ 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(), 7);
|
||||
assert_eq!(trace.known_bridge_helpers.len(), 44);
|
||||
assert_eq!(trace.atlas_candidate_consumers.len(), 8);
|
||||
assert_eq!(trace.known_bridge_helpers.len(), 47);
|
||||
assert_eq!(trace.next_owner_questions.len(), 4);
|
||||
assert_eq!(trace.companies.len(), 1);
|
||||
assert_eq!(
|
||||
|
|
@ -28052,7 +28064,7 @@ mod tests {
|
|||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
.len(),
|
||||
10
|
||||
11
|
||||
);
|
||||
assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 4);
|
||||
assert_eq!(trace.near_city_acquisition_region_lane_statuses.len(), 4);
|
||||
|
|
@ -28061,6 +28073,10 @@ mod tests {
|
|||
&& line.contains("0x006cec20")
|
||||
&& line.contains("peer-site boolean/selector pair")
|
||||
}));
|
||||
assert!(trace.atlas_candidate_consumers.iter().any(|line| {
|
||||
line.contains("0x0040dc40")
|
||||
&& line.contains("linked-site mutation validator/apply owner")
|
||||
}));
|
||||
assert!(trace.next_owner_questions.iter().any(|line| {
|
||||
line.contains("remaining placed-structure-side 0x004014b0 inputs")
|
||||
&& line.contains("0x004014b0")
|
||||
|
|
@ -28125,6 +28141,14 @@ mod tests {
|
|||
&& line.contains("[candidate+0x32]")
|
||||
)
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0040dc40")
|
||||
&& line.contains("[site+0x276]")
|
||||
&& line.contains("0x0040d1f0 / 0x00480710"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
|
|
@ -28273,6 +28297,23 @@ mod tests {
|
|||
.iter()
|
||||
.any(|line| line.contains("0x004160aa") && line.contains("0x0040ee10"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.known_bridge_helpers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0040dc40")
|
||||
&& line.contains("[site+0x276]")
|
||||
&& line.contains("0x2329/0x0d"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.known_bridge_helpers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x00417840 / 0x004197e0 / 0x004142c0 / 0x004142d0"))
|
||||
);
|
||||
assert!(trace.known_bridge_helpers.iter().any(|line| line.contains(
|
||||
"0x0040d1f0 / 0x00480710 / 0x0045b160 / 0x0045b9b0 / 0x00418be0 / 0x0040cd70"
|
||||
)));
|
||||
let city_branch = trace.companies[0]
|
||||
.branches
|
||||
.iter()
|
||||
|
|
|
|||
|
|
@ -93,8 +93,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 = `owner_strip_grounded_backing_record_projection_missing`
|
||||
- backing-record selector bridge = `selector_owner_grounded_projection_sufficient_for_peer_helpers_not_candidate_row`
|
||||
- candidate subtype lane = `cached_candidate_id_bridge_grounded_projection_missing`
|
||||
- backing-record selector bridge = `cached_source_candidate_bridge_grounded_projection_missing`
|
||||
- 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`
|
||||
|
|
@ -115,6 +115,14 @@ Working rule:
|
|||
- 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
|
||||
`0x00417840 -> 0x004197e0`, then commits the linked-site mutation through
|
||||
`0x0040d1f0 / 0x00480710 / 0x0045b160 / 0x0045b9b0 / 0x00418be0 / 0x0040cd70`
|
||||
- so the acquisition blocker is no longer “is there any real consumer family above these
|
||||
lanes?”; it is specifically the restore or replay owner that populates those live preconditions
|
||||
for shellless acquisition
|
||||
- direct disassembly now shows the generic base constructor `0x0052edf0` clearing base state
|
||||
through `0x0052ecd0` and then writing `[this+0x04]` from caller arg `1`
|
||||
- `0x00455b70` is the concrete placed-structure specialization constructor feeding
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue