Bound peer-site persistence versus rebuild seams

This commit is contained in:
Jan Petykiewicz 2026-04-18 18:26:04 -07:00
commit 3c2acdee41
2 changed files with 52 additions and 11 deletions

View file

@ -4084,13 +4084,19 @@ fn build_periodic_company_service_trace_report(
.to_string(), .to_string(),
"0x0040d540 weighted region-to-company proximity scorer with pending-bonus context" "0x0040d540 weighted region-to-company proximity scorer with pending-bonus context"
.to_string(), .to_string(),
"0x00481390 / 0x00480210 subtype-1 linked-site allocation and constructor".to_string(),
"0x00480710 linked-site runtime side-buffer and route-entry-anchor refresh owner"
.to_string(),
"0x0048abc0 / 0x00493cf0 route-entry-anchor rebind and synthesis strip".to_string(),
"0x0047dda0 linked-peer route-entry-anchor validator".to_string(),
"0x00420030 / 0x00420280 peer-site boolean/selector pair over the placed-structure collection".to_string(), "0x00420030 / 0x00420280 peer-site boolean/selector pair over the placed-structure collection".to_string(),
"0x0047efe0 placed-structure linked-company resolver".to_string(), "0x0047efe0 placed-structure linked-company resolver".to_string(),
"0x00406050 city-connection bonus/news sibling owner".to_string(), "0x00406050 city-connection bonus/news sibling owner".to_string(),
"0x00409950 linked-transit roster sibling owner".to_string(), "0x00409950 linked-transit roster sibling owner".to_string(),
]; ];
let next_owner_questions = vec![ let next_owner_questions = vec![
"Which persisted placed-structure peer-site fields on 0x006cec20 rows are the minimum shellless set for 0x004014b0: current region key [site+0x00], linked region id [site+0x04], route-anchor or linked-site handle [site+0x08], and linked company peer id [site+0x2a8]?".to_string(), "Which rebuild or restore owner re-seeds the live peer-site backing-record selector at [site+0x04] once the direct 0x36b1 load and 0x4a9d side-buffer load complete, now that 0x0047efe0 and 0x0047fd50 both consume that lane directly?".to_string(),
"How far do the subtype-1 linked-site constructor strip 0x0040f6d0 -> 0x00481390 -> 0x00480210 and the refresh/rebind strip 0x00480710 -> 0x0048abc0 / 0x00493cf0 replay [site+0x2a8] and [peer+0x08] shelllessly after load?".to_string(),
"Which persisted linkage fields behind 0x0047efe0, [region+0x2a4], and [region+0x276] are sufficient to rehost the 0x004014b0 proximity-and-news branch without shell state?".to_string(), "Which persisted linkage fields behind 0x0047efe0, [region+0x2a4], and [region+0x276] are sufficient to rehost the 0x004014b0 proximity-and-news branch without shell state?".to_string(),
"Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(), "Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(),
]; ];
@ -4205,11 +4211,15 @@ fn build_periodic_company_service_trace_report(
"0x00425b90 pending-bonus/company-state gate", "0x00425b90 pending-bonus/company-state gate",
"0x0040d360 region type/class filter", "0x0040d360 region type/class filter",
"0x0040d540 weighted region-to-company proximity scorer", "0x0040d540 weighted region-to-company proximity scorer",
"0x00481390 / 0x00480210 subtype-1 linked-site allocation and constructor",
"0x00480710 linked-site runtime side-buffer and route-entry-anchor refresh owner",
"0x0048abc0 / 0x00493cf0 route-entry-anchor rebind and synthesis strip",
"0x0047dda0 linked-peer route-entry-anchor validator",
"0x00420030 / 0x00420280 peer-site boolean/selector pair", "0x00420030 / 0x00420280 peer-site boolean/selector pair",
"0x00406050 city-connection bonus/news sibling owner", "0x00406050 city-connection bonus/news sibling owner",
], ],
&[ &[
"Direct disassembly now shows this branch iterating the live class-0 region collection, skipping regions with pending amount [region+0x276], 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 regions against company proximity and aging through 0x0040d540 and 0x0040cac0, and then publishing the winning linked company id from [region+0x2a4].", "Direct disassembly now shows this branch iterating the live class-0 region collection, skipping regions with pending amount [region+0x276], 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 regions against company proximity and aging through 0x0040d540 and 0x0040cac0, and then publishing the winning linked company id from [region+0x2a4]. The remaining peer-site identity gap is now narrower too: [site+0x04] is a live backing-record selector consumed by 0x0047efe0 and 0x0047fd50, [site+0x2a8] is still the linked peer id written by the subtype-1 construction strip 0x0040f6d0 -> 0x00481390 -> 0x00480210, and [peer+0x08] remains the route-entry anchor id validated by 0x0047dda0 and rebound through 0x00480710 -> 0x0048abc0 / 0x00493cf0.",
], ],
)); ));
SmpPeriodicCompanyServiceTraceEntry { SmpPeriodicCompanyServiceTraceEntry {
@ -4240,7 +4250,10 @@ fn build_periodic_company_service_trace_report(
"Direct disassembly now closes the collection identity too: 0x00420030 is the boolean peer gate and 0x00420280 is the first-match selector over the live placed-structure / peer-site collection 0x006cec20, combining 0x0042b2d0, the optional linked-company filter through 0x0047efe0, the station-or-transit gate 0x0047fd50, and the linked-region status branch 0x0047de00 -> 0x0040c990.".to_string(), "Direct disassembly now closes the collection identity too: 0x00420030 is the boolean peer gate and 0x00420280 is the first-match selector over the live placed-structure / peer-site collection 0x006cec20, combining 0x0042b2d0, the optional linked-company filter through 0x0047efe0, the station-or-transit gate 0x0047fd50, and the linked-region status branch 0x0047de00 -> 0x0040c990.".to_string(),
); );
notes.push( notes.push(
"That means the acquisition frontier is no longer a generic near-city owner gap or a collection-identity question. The remaining non-hook question is the minimum persisted 0x006cec20 site-row field set that must survive save/load above 0x004010f0 / 0x00405920 / 0x00420030 / 0x00420280: current region key [site+0x00], linked region id [site+0x04], route-anchor or linked-site handle [site+0x08], and linked company peer id [site+0x2a8].".to_string(), "Direct disassembly now closes the negative persistence side too: the direct 0x36b1 per-record callbacks serialize the shared base scalar triplets rooted at [this+0x206/+0x20a/+0x20e] plus the subordinate payload callback strip, while the 0x4a9d/0x4a3a/0x4a3b side-buffer owner only persists route-entry lists, three byte arrays, five proximity buckets, and the sampled-cell list. That means neither checked-in save owner seam currently persists the core peer-site identity fields [site+0x04], [site+0x2a8], or [peer+0x08] directly.".to_string(),
);
notes.push(
"So the acquisition frontier is no longer a generic near-city owner gap or a collection-identity question. The next non-hook target is the rebuild strip that repopulates those peer-site identity fields shelllessly: the subtype-1 linked-site constructor 0x0040f6d0 -> 0x00481390 -> 0x00480210, the linked-site side-buffer and route-entry-anchor refresh owner 0x00480710, the route-entry rebind/synthesis pair 0x0048abc0 / 0x00493cf0, and whichever upstream owner re-seeds the live backing-record selector [site+0x04] before 0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50 consume it.".to_string(),
); );
SmpPeriodicCompanyServiceTraceReport { SmpPeriodicCompanyServiceTraceReport {
@ -25901,8 +25914,8 @@ mod tests {
let trace = build_periodic_company_service_trace_report(&analysis); let trace = build_periodic_company_service_trace_report(&analysis);
assert_eq!(trace.selected_company_id, Some(7)); assert_eq!(trace.selected_company_id, Some(7));
assert_eq!(trace.atlas_candidate_consumers.len(), 7); assert_eq!(trace.atlas_candidate_consumers.len(), 7);
assert_eq!(trace.known_bridge_helpers.len(), 16); assert_eq!(trace.known_bridge_helpers.len(), 20);
assert_eq!(trace.next_owner_questions.len(), 3); assert_eq!(trace.next_owner_questions.len(), 4);
assert_eq!(trace.companies.len(), 1); assert_eq!(trace.companies.len(), 1);
assert!(trace.atlas_candidate_consumers.iter().any(|line| { assert!(trace.atlas_candidate_consumers.iter().any(|line| {
line.contains("0x00420030 / 0x00420280") line.contains("0x00420030 / 0x00420280")
@ -25910,9 +25923,14 @@ mod tests {
&& line.contains("peer-site boolean/selector pair") && line.contains("peer-site boolean/selector pair")
})); }));
assert!(trace.next_owner_questions.iter().any(|line| { assert!(trace.next_owner_questions.iter().any(|line| {
line.contains("current region key [site+0x00]") line.contains("[site+0x04]")
&& line.contains("linked region id [site+0x04]") && line.contains("0x0047efe0")
&& line.contains("linked company peer id [site+0x2a8]") && line.contains("0x0047fd50")
}));
assert!(trace.next_owner_questions.iter().any(|line| {
line.contains("0x0040f6d0 -> 0x00481390 -> 0x00480210")
&& line.contains("[site+0x2a8]")
&& line.contains("[peer+0x08]")
})); }));
let acquisition_branch = trace.companies[0] let acquisition_branch = trace.companies[0]
.branches .branches
@ -25959,6 +25977,12 @@ mod tests {
.iter() .iter()
.any(|line| line.contains("0x0041f6e0") && line.contains("0x0042b2d0")) .any(|line| line.contains("0x0041f6e0") && line.contains("0x0042b2d0"))
); );
assert!(
trace
.known_bridge_helpers
.iter()
.any(|line| line.contains("0x00480710") && line.contains("route-entry-anchor"))
);
let city_branch = trace.companies[0] let city_branch = trace.companies[0]
.branches .branches
.iter() .iter()

View file

@ -44,11 +44,28 @@ Working rule:
- `0x00420030 / 0x00420280` is the boolean/selector peer-site pair over `0x006cec20`, combining - `0x00420030 / 0x00420280` is the boolean/selector peer-site pair over `0x006cec20`, combining
`0x0042b2d0`, the optional company filter through `0x0047efe0`, the station-or-transit gate `0x0042b2d0`, the optional company filter through `0x0047efe0`, the station-or-transit gate
`0x0047fd50`, and the status branch `0x0047de00 -> 0x0040c990` `0x0047fd50`, and the status branch `0x0047de00 -> 0x0040c990`
- `0x0047efe0` and `0x0047fd50` both consume `[site+0x04]` as the live backing-record selector
- the subtype-`1` constructor strip `0x0040f6d0 -> 0x00481390 -> 0x00480210` is still the only
grounded writer of linked peer id `[site+0x2a8]`
- `0x0047dda0` consumes `[peer+0x08]` as the linked route-entry anchor id
- `0x00480710 -> 0x0048abc0 / 0x00493cf0` is the linked-site refresh and route-entry rebind or
synthesis strip above that anchor lane
- the direct `0x36b1` per-record callbacks serialize base scalar triplets
`[this+0x206/+0x20a/+0x20e]` plus the subordinate payload callback strip, and the
`0x4a9d/0x4a3a/0x4a3b` side-buffer owner only persists route-entry lists, three byte arrays,
five proximity buckets, and the sampled-cell list
- the winning linked company id comes from `[region+0x2a4]` - the winning linked company id comes from `[region+0x2a4]`
So the next owner question is no longer “what does the acquisition branch do?” but “which So the next owner question is no longer “what does the acquisition branch do?” but “which
persisted peer-site row fields above `0x004010f0/0x00405920/0x00420030/0x00420280` are the rebuild owner repopulates the live peer-site identity lanes `[site+0x04]`, `[site+0x2a8]`, and
minimum shellless set: current region key `[site+0x00]`, linked region id `[site+0x04]`, `[peer+0x08]` once those two save-owner seams finish?”
route-anchor or linked-site handle `[site+0x08]`, and linked company peer id `[site+0x2a8]`?” - Make the next static/rehost slice the peer-site rebuild seam above persistence, not another save
scan:
- rehost or bound how far `0x0040f6d0 -> 0x00481390 -> 0x00480210` already recreates linked
peer id `[site+0x2a8]` and route-entry anchor `[peer+0x08]`
- rehost or bound how `0x00480710 -> 0x0048abc0 / 0x00493cf0` refreshes or synthesizes the
linked route-entry anchor after load
- find the first upstream non-hook owner that reseeds `[site+0x04]` before
`0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50` consume it
- Use the higher-layer probes as the standard entry point for the current blocked frontier instead - Use the higher-layer probes as the standard entry point for the current blocked frontier instead
of generic save scans: of generic save scans:
`runtime inspect-periodic-company-service-trace <save.gms>`, `runtime inspect-periodic-company-service-trace <save.gms>`,