Split acquisition owner constructor and finalize families
This commit is contained in:
parent
8bec4d1c1b
commit
859c040462
2 changed files with 144 additions and 15 deletions
|
|
@ -4635,6 +4635,10 @@ 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(),
|
||||
"direct site constructor 0x004134d0 allocates through 0x00518900 and seeds broad row state through 0x0040f6d0, including [site+0x2a4], copied name bytes, [site+0x276], [site+0x3d4/+0x3d5], and cleared tri-lane-adjacent caches"
|
||||
.to_string(),
|
||||
"shared finalize helper 0x0040ef10 now has both create-side callers 0x00403ef3 / 0x00404489 and data-driven loader callers 0x0046f073 / 0x004707ff, so the [site+0x276] owner lane is grounded under constructor-plus-finalize families rather than only the post-load local replay strip"
|
||||
.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(),
|
||||
"city-connection direct-placement family 0x00402cb0 -> 0x00403ed5/0x0040446b -> 0x004134d0 -> 0x0040ef10 already grounds the shared allocator/finalize path for newly created site rows"
|
||||
|
|
@ -4652,7 +4656,8 @@ fn build_periodic_company_service_trace_report(
|
|||
.to_string(),
|
||||
];
|
||||
let near_city_acquisition_site_owner_company_projection_status =
|
||||
"live_meaning_grounded_projection_missing".to_string();
|
||||
"live_meaning_grounded_constructor_and_finalize_families_bounded_projection_missing"
|
||||
.to_string();
|
||||
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 =
|
||||
|
|
@ -4705,12 +4710,17 @@ fn build_periodic_company_service_trace_report(
|
|||
let near_city_acquisition_projection_hypotheses = vec![
|
||||
SmpServiceConsumerHypothesis {
|
||||
label: "site_owner_replay_from_post_load_refresh_self_id_reconstructible".to_string(),
|
||||
status: "ruled_down_local_runtime_only".to_string(),
|
||||
status: "local_runtime_replay_ruled_down_constructor_and_finalize_families_bounded".to_string(),
|
||||
candidate_consumers: vec![
|
||||
"0x00444690 late world bring-up caller".to_string(),
|
||||
"0x004133b0 placed-structure local-runtime replay owner".to_string(),
|
||||
"0x0040ee10 live-site position/scalar refresh helper".to_string(),
|
||||
"0x00480710 linked-site runtime side-buffer and route-entry refresh".to_string(),
|
||||
"0x004134d0 allocator plus direct site constructor 0x0040f6d0".to_string(),
|
||||
"0x00403ef3 / 0x00404489 create-side callers of shared finalize helper 0x0040ef10"
|
||||
.to_string(),
|
||||
"0x0046f073 / 0x004707ff data-driven loader callers of shared finalize helper 0x0040ef10"
|
||||
.to_string(),
|
||||
"0x004269b0 acquisition commit owner resolving live site rows by id".to_string(),
|
||||
],
|
||||
evidence: vec![
|
||||
|
|
@ -4720,12 +4730,16 @@ fn build_periodic_company_service_trace_report(
|
|||
"0x00444690 -> 0x004133b0 -> 0x0040ee10 is the current checked-in replay family above live placed structures".to_string(),
|
||||
"0x004133b0 rebuilds cloned local-runtime records through 0x0040e450 and 0x0040ee10 only republishes local position/scalar triplets before 0x0040e360".to_string(),
|
||||
"direct local replay-strip inspection now splits that family more precisely: bounded 0x0040ee10 itself only reads cached source lane [site+0x3cc], and the bounded 0x00480710 neighborhood is working from [site+0x04], [site+0x08], and [site+0x3cc]; the broader immediate continuation 0x0040e360..0x0040edf6 still consumes [site+0x2a8], [site+0x2a4], and [site+0x276] around 0x0040d230 / 0x0040d1f0 / 0x00480710 / 0x00426b10 / 0x00455860, but in the checked range those [site+0x276] uses are still reads/queries rather than a direct rehydrating store".to_string(),
|
||||
"direct constructor control-flow now shows 0x004134d0 allocating a new placed-structure row through 0x00518900 and then calling 0x0040f6d0, which seeds [site+0x2a4], clears broad row state, copies the display name bytes, and writes [site+0x276] from an incoming argument before any later service logic runs".to_string(),
|
||||
"0x0040f6d0 immediately zeroes [site+0x2a8/+0x272/+0x27a/+0x29e], stamps [site+0x3d4/+0x3d5], and seeds further local caches, which makes it a create-side initializer rather than a replay-only refresh".to_string(),
|
||||
"shared finalize helper 0x0040ef10 now has create-side callers 0x00403ef3 / 0x00404489 and data-driven callers 0x0046f073 / 0x004707ff; the latter feed it from tuple-backed loads after 0x0040eba0 / 0x0052eb90 rather than from the checked-in local replay strip".to_string(),
|
||||
"inside 0x0040ef10 the [site+0x276] write at 0x0040f047 only clears owner-company under a world-flag branch, while the paired [site+0x276]/[site+0x27a] write at 0x0040f5d4 follows a 0x00436590 event/scalar path and is not the generic post-load republisher".to_string(),
|
||||
"direct local writer census now shows the grounded [site+0x276] write side clustering under live mutation families such as 0x004269b0 / 0x00426a10, the create-side 0x0040ef10 / 0x0040f6d0 strip, and the bulk reassignment families 0x00426dce..0x00426ea1 and 0x00430040..0x004300d6 rather than under the known replay strip".to_string(),
|
||||
"direct local control-flow reconstruction now shows those same writer families hanging under the 0x00431b20 opcode dispatcher over 0x0061039c: opcodes 0x04..0x07 dispatch to 0x00430040, opcodes 0x08/0x10..0x13 dispatch to 0x00426d60, and opcodes 0x0d/0x16 dispatch to 0x0042fc90".to_string(),
|
||||
"0x0042fc90 itself iterates the live placed-structure collection 0x0062b26c, filters rows through 0x0040c990 plus optional company match [site+0x276], and then dispatches row vtable slot +0x70, which keeps that branch on the live application side rather than replay".to_string(),
|
||||
],
|
||||
blockers: vec![
|
||||
"current atlas evidence does not tie 0x004133b0 / 0x0040ee10 directly to [site+0x276], and the grounded write side now looks create-side or control-transfer-side rather than replay-side, so another restore or persisted owner strip is still needed for the owner-company lane".to_string(),
|
||||
"current atlas evidence now bounds [site+0x276] under constructor-plus-finalize and live mutation families, but it still does not identify which persisted tuple fields and later restore/finalize calls are sufficient to repopulate the owner-company lane for shellless acquisition without guessing".to_string(),
|
||||
],
|
||||
},
|
||||
SmpServiceConsumerHypothesis {
|
||||
|
|
@ -4777,11 +4791,11 @@ fn build_periodic_company_service_trace_report(
|
|||
},
|
||||
];
|
||||
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(),
|
||||
"persisted tuple-to-live projection of placed-structure owner-company field [site+0x276] for the acquisition-side owner-present gate; the live meaning is grounded through 0x0047efe0 and the owner family is now bounded under 0x004134d0 / 0x0040f6d0 plus shared finalize helper 0x0040ef10".to_string(),
|
||||
"exact persisted inputs and shellless service semantics for the now-grounded live cached tri-lane writer family over [site+0x310/+0x338/+0x360], especially 0x0040d450 and 0x00410b30..0x004118f4 above 0x00412560".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+0x276] owner-present gate: consumed directly by 0x004014b0, the live owner-company meaning is grounded through 0x0047efe0, and the write family is now bounded under 0x004134d0 / 0x0040f6d0 plus shared finalize helper 0x0040ef10; the remaining gap is which persisted tuple or restore path repopulates that lane for shellless acquisition".to_string(),
|
||||
"[site+0x2a4] placed-structure id lane: peer-chain helpers already ground this as the record's own site id, constructor-side 0x00480210 seeds it for new linked-site rows, and 0x004269b0 resolves the chosen site id back through 0x0062b26c before mutating [site+0x276], so this lane is reconstructible from collection identity for the 0x004014b0 commit path".to_string(),
|
||||
"[site+0x310/+0x338/+0x360] cached tri-lane: exact delta reader grounded at 0x0040cac0, deferred additive accumulator/reset helper grounded at 0x0040c9a0, and direct live producers now grounded at 0x0040d450 plus the broader 0x00410b30..0x004118f4 candidate-processing loop above 0x00412560; the remaining gap is exact service semantics and persisted inputs, not writer existence".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(),
|
||||
|
|
@ -4868,6 +4882,8 @@ fn build_periodic_company_service_trace_report(
|
|||
"0x0042fc90 live placed-structure mutator iterating 0x0062b26c through 0x0040c990, optional owner-company match [site+0x276], and row vtable slot +0x70".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(),
|
||||
"0x004134d0 direct allocator calling constructor 0x0040f6d0 for new placed-structure rows".to_string(),
|
||||
"0x0040f6d0 create-side initializer seeding [site+0x2a4], [site+0x276], [site+0x3d4/+0x3d5], and cleared local caches".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"
|
||||
|
|
@ -4876,7 +4892,9 @@ fn build_periodic_company_service_trace_report(
|
|||
.to_string(),
|
||||
"0x00402cb0 / 0x00403ed5 / 0x0040446b city-connection direct-placement commit family"
|
||||
.to_string(),
|
||||
"0x004134d0 / 0x0040ef10 shared placed-structure allocator and finalize-or-rebuild lane for newly created site rows"
|
||||
"0x00403ef3 / 0x00404489 create-side callers of shared finalize helper 0x0040ef10".to_string(),
|
||||
"0x0046f073 / 0x004707ff data-driven loader callers of shared finalize helper 0x0040ef10".to_string(),
|
||||
"0x004134d0 / 0x0040ef10 shared placed-structure allocator and finalize-or-rebuild lane for newly created or tuple-loaded site rows"
|
||||
.to_string(),
|
||||
"0x00481430 / 0x0047d8e0 dynamic side-buffer stream-load owner repopulating route-entry lists, three byte arrays, five proximity buckets, and trailing scratch band"
|
||||
.to_string(),
|
||||
|
|
@ -28112,7 +28130,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(), 69);
|
||||
assert_eq!(trace.known_bridge_helpers.len(), 73);
|
||||
assert_eq!(trace.next_owner_questions.len(), 5);
|
||||
assert_eq!(trace.companies.len(), 1);
|
||||
assert_eq!(
|
||||
|
|
@ -28197,7 +28215,7 @@ mod tests {
|
|||
);
|
||||
assert_eq!(
|
||||
trace.near_city_acquisition_site_owner_company_projection_status,
|
||||
"live_meaning_grounded_projection_missing"
|
||||
"live_meaning_grounded_constructor_and_finalize_families_bounded_projection_missing"
|
||||
);
|
||||
assert_eq!(
|
||||
trace.near_city_acquisition_site_self_id_projection_status,
|
||||
|
|
@ -28256,7 +28274,7 @@ mod tests {
|
|||
);
|
||||
assert_eq!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0].status,
|
||||
"ruled_down_local_runtime_only"
|
||||
"local_runtime_replay_ruled_down_constructor_and_finalize_families_bounded"
|
||||
);
|
||||
assert_eq!(
|
||||
trace.near_city_acquisition_projection_hypotheses[1].label,
|
||||
|
|
@ -28280,6 +28298,24 @@ mod tests {
|
|||
.iter()
|
||||
.any(|line| line.contains("0x004133b0"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.candidate_consumers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x004134d0") && line.contains("0x0040f6d0"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.candidate_consumers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x00403ef3 / 0x00404489"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.candidate_consumers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0046f073 / 0x004707ff"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.evidence
|
||||
|
|
@ -28295,6 +28331,40 @@ mod tests {
|
|||
&& line.contains("0x00455860")
|
||||
&& line.contains("reads/queries"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.evidence
|
||||
.iter()
|
||||
.any(|line| line.contains("0x004134d0")
|
||||
&& line.contains("0x00518900")
|
||||
&& line.contains("0x0040f6d0")
|
||||
&& line.contains("[site+0x2a4]")
|
||||
&& line.contains("[site+0x276]"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.evidence
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0040f6d0")
|
||||
&& line.contains("[site+0x2a8/+0x272/+0x27a/+0x29e]")
|
||||
&& line.contains("[site+0x3d4/+0x3d5]"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.evidence
|
||||
.iter()
|
||||
.any(|line| line.contains("0x00403ef3 / 0x00404489")
|
||||
&& line.contains("0x0046f073 / 0x004707ff")
|
||||
&& line.contains("0x0040ef10"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[0]
|
||||
.evidence
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0040f047")
|
||||
&& line.contains("0x0040f5d4")
|
||||
&& line.contains("[site+0x27a]"))
|
||||
);
|
||||
assert!(
|
||||
trace.near_city_acquisition_projection_hypotheses[1]
|
||||
.candidate_consumers
|
||||
|
|
@ -28382,7 +28452,7 @@ mod tests {
|
|||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
.len(),
|
||||
15
|
||||
17
|
||||
);
|
||||
assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 2);
|
||||
assert_eq!(trace.near_city_acquisition_region_lane_statuses.len(), 4);
|
||||
|
|
@ -28444,6 +28514,24 @@ mod tests {
|
|||
.any(|line| line.contains("[company+0x0d35]")
|
||||
&& line.contains("[company+0x7664/+0x7668/+0x766c]"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
.iter()
|
||||
.any(|line| line.contains("0x004134d0")
|
||||
&& line.contains("0x0040f6d0")
|
||||
&& line.contains("[site+0x2a4]")
|
||||
&& line.contains("[site+0x276]")
|
||||
&& line.contains("[site+0x3d4/+0x3d5]"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0040ef10")
|
||||
&& line.contains("0x00403ef3 / 0x00404489")
|
||||
&& line.contains("0x0046f073 / 0x004707ff"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
|
|
@ -28686,7 +28774,10 @@ mod tests {
|
|||
trace
|
||||
.near_city_acquisition_remaining_owner_gaps
|
||||
.iter()
|
||||
.any(|line| line.contains("[site+0x276]") && line.contains("0x0047efe0"))
|
||||
.any(|line| line.contains("[site+0x276]")
|
||||
&& line.contains("0x0047efe0")
|
||||
&& line.contains("0x004134d0 / 0x0040f6d0")
|
||||
&& line.contains("0x0040ef10"))
|
||||
);
|
||||
assert!(
|
||||
!trace
|
||||
|
|
@ -28702,6 +28793,16 @@ mod tests {
|
|||
&& line.contains("0x00410b30..0x004118f4")
|
||||
&& line.contains("0x00412560"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_region_lane_statuses
|
||||
.iter()
|
||||
.any(|line| line.contains("[site+0x276]")
|
||||
&& line.contains("0x004014b0")
|
||||
&& line.contains("0x0047efe0")
|
||||
&& line.contains("0x004134d0 / 0x0040f6d0")
|
||||
&& line.contains("0x0040ef10"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_region_lane_statuses
|
||||
|
|
@ -28854,6 +28955,24 @@ mod tests {
|
|||
&& line.contains("[site+0x276]")
|
||||
&& line.contains("vtable slot +0x70"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.known_bridge_helpers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x004134d0") && line.contains("0x0040f6d0"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.known_bridge_helpers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x00403ef3 / 0x00404489"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.known_bridge_helpers
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0046f073 / 0x004707ff"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.known_bridge_helpers
|
||||
|
|
|
|||
|
|
@ -103,11 +103,13 @@ Working rule:
|
|||
- `site_owner_replay_from_post_load_refresh_self_id_reconstructible`
|
||||
- `site_cached_tri_lane_payload_or_restore_owner`
|
||||
- `cached_source_candidate_id_to_subtype_projection`
|
||||
- the first of those is now partly ruled down by the checked-in atlas:
|
||||
- the first of those is now bounded more tightly:
|
||||
`0x004133b0 -> 0x0040e450 / 0x0040ee10` rebuilds cloned local-runtime records and local
|
||||
position/scalar triplets, but current evidence still does not tie that replay family directly
|
||||
to `[site+0x276]`
|
||||
- the same replay strip is narrower than before now:
|
||||
position/scalar triplets, but direct constructor and caller recovery now shows the
|
||||
owner-company lane also living under the create-side allocator/finalize family
|
||||
`0x004134d0 -> 0x0040f6d0 -> 0x0040ef10`, plus data-driven loader callers
|
||||
`0x0046f073 / 0x004707ff -> 0x0040ef10`
|
||||
- the checked-in replay strip is narrower than before now:
|
||||
direct local inspection now splits it more precisely:
|
||||
`0x0040ee10` itself only reads cached source lane `[site+0x3cc]` in the checked range, and
|
||||
the bounded `0x00480710` neighborhood is working from `[site+0x04]`, `[site+0x08]`, and
|
||||
|
|
@ -116,6 +118,14 @@ Working rule:
|
|||
`0x0040d230 / 0x0040d1f0 / 0x00480710 / 0x00426b10 / 0x00455860`, so the replay family is
|
||||
narrowed rather than ruled out for owner-company rehydration; in the checked range those
|
||||
`[site+0x276]` uses are still reads/queries rather than a direct rehydrating store
|
||||
- the create-side owner family is grounded too now:
|
||||
`0x004134d0` allocates a new row through `0x00518900`, `0x0040f6d0` seeds `[site+0x2a4]`,
|
||||
copied name bytes, `[site+0x276]`, `[site+0x3d4/+0x3d5]`, and cleared local caches, and the
|
||||
shared finalize helper `0x0040ef10` has both create-side callers `0x00403ef3 / 0x00404489`
|
||||
and data-driven loader callers `0x0046f073 / 0x004707ff`
|
||||
- the remaining owner-company question is therefore narrower than “find any replay seam”:
|
||||
identify which persisted tuple fields and later restore/finalize calls are sufficient to
|
||||
repopulate `[site+0x276]` for shellless acquisition
|
||||
- the second is narrower in the same way:
|
||||
the checked-in `0x36b1/0x36b2/0x36b3` triplet seam and the
|
||||
`0x4a9d/0x4a3a/0x4a3b` side-buffer seam still do not serialize `[site+0x310/+0x338/+0x360]`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue