Rule out base placed-structure load callback

This commit is contained in:
Jan Petykiewicz 2026-04-19 12:50:46 -07:00
commit 39fdf444ba
3 changed files with 16 additions and 0 deletions

View file

@ -5600,6 +5600,9 @@ fn build_periodic_company_service_trace_report(
notes.push( notes.push(
"One nearby live helper strip is narrower now too: 0x004337a0 is exactly the raw selected-company getter over [world+0x21], used in the replay-side sibling around 0x0040e775 only to compare the current selection against [site+0x276]. The adjacent world-side helpers 0x00452d80 / 0x00452db0 / 0x00452fa0 are separate live selected-site or active service-state setters/dispatchers over [world+0x217d/+0x2181] gated by mode byte [world+0x2175]; they can clear or republish currently-selected site ids through 0x00413620 / 0x00413750, but they do not repopulate [site+0x276] for already-restored rows.".to_string(), "One nearby live helper strip is narrower now too: 0x004337a0 is exactly the raw selected-company getter over [world+0x21], used in the replay-side sibling around 0x0040e775 only to compare the current selection against [site+0x276]. The adjacent world-side helpers 0x00452d80 / 0x00452db0 / 0x00452fa0 are separate live selected-site or active service-state setters/dispatchers over [world+0x217d/+0x2181] gated by mode byte [world+0x2175]; they can clear or republish currently-selected site ids through 0x00413620 / 0x00413750, but they do not repopulate [site+0x276] for already-restored rows.".to_string(),
); );
notes.push(
"The base placed-structure load callback is narrower now too: local .rdata at 0x005cb4c0 shows that the shared base table, not the 0x005c8c50 specialization table, owns the 0x0045c150 / 0x0045b560 / 0x00455870 / 0x00455930 load-save quartet. Direct disassembly of 0x0045c150 -> 0x00455fc0 then shows that callback only reloads the generic 0x55f1/0x55f2/0x55f3 triplet/scalar bands and re-enters the same base triplet/scalar slots 0x00455870 / 0x00455930, so the missing placed-structure owner-company lane [site+0x276] still lies outside the checked-in base load path.".to_string(),
);
notes.push( notes.push(
"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(), "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(),
); );

View file

@ -3712,6 +3712,13 @@ The low helper strip beneath that shared family is tighter now too: `0x0052ecd0`
`[world+0x217d/+0x2181]` gated by mode byte `[world+0x2175]`; they can clear or republish `[world+0x217d/+0x2181]` gated by mode byte `[world+0x2175]`; they can clear or republish
currently-selected site ids through `0x00413620 / 0x00413750`, but they do not repopulate currently-selected site ids through `0x00413620 / 0x00413750`, but they do not repopulate
`[site+0x276]` for already-restored rows. `[site+0x276]` for already-restored rows.
The base load callback underneath the same family is narrower now too. Local `.rdata` at
`0x005cb4c0` shows that the shared base table, not the `0x005c8c50` specialization table, owns
the `0x0045c150 / 0x0045b560 / 0x00455870 / 0x00455930` load-save quartet. Direct disassembly of
`0x0045c150 -> 0x00455fc0` then shows that callback only reloads the generic
`0x55f1/0x55f2/0x55f3` triplet/scalar bands and re-enters the same base triplet/scalar slots
`0x00455870 / 0x00455930`, so the missing placed-structure owner-company lane `[site+0x276]`
still lies outside the checked-in base load path.
On the wider chooser question, the current evidence is also tighter than before: every recovered On the wider chooser question, the current evidence is also tighter than before: every recovered
external owner of `0x00402cb0` is still in the city-connection family, so the two later direct external owner of `0x00402cb0` is still in the city-connection family, so the two later direct
placement lanes currently read as city-connection fallback behavior rather than a broadly shared placement lanes currently read as city-connection fallback behavior rather than a broadly shared

View file

@ -67,6 +67,12 @@ Working rule:
world-side helpers `0x00452d80 / 0x00452db0 / 0x00452fa0` are live selected-site or active world-side helpers `0x00452d80 / 0x00452db0 / 0x00452fa0` are live selected-site or active
service-state setters/dispatchers over `[world+0x217d/+0x2181]` gated by mode byte service-state setters/dispatchers over `[world+0x217d/+0x2181]` gated by mode byte
`[world+0x2175]`, not restore-time republishers for `[site+0x276]` `[world+0x2175]`, not restore-time republishers for `[site+0x276]`
- the base placed-structure load callback is narrower now too:
local `.rdata` at `0x005cb4c0` shows the shared base table, not the `0x005c8c50`
specialization table, owns the `0x0045c150 / 0x0045b560 / 0x00455870 / 0x00455930`
load-save quartet; direct disassembly of `0x0045c150 -> 0x00455fc0` shows that callback only
reloads the generic `0x55f1/0x55f2/0x55f3` triplet/scalar bands and then re-enters the base
triplet/scalar slots `0x00455870 / 0x00455930`, so it does not repopulate `[site+0x276]`
- that makes the next linked-transit question narrower: - that makes the next linked-transit question narrower:
identify which earlier restore or service owner feeds `[site+0x276]` and the live linked-peer identify which earlier restore or service owner feeds `[site+0x276]` and the live linked-peer
rows before replay continuation `0x0040e360..0x0040edf6`, beyond the already-grounded rows before replay continuation `0x0040e360..0x0040edf6`, beyond the already-grounded