104 lines
4.7 KiB
Markdown
104 lines
4.7 KiB
Markdown
# Tier2 Rebuild Sequencing (2026-04-21)
|
|
|
|
This note preserves the currently grounded sequencing around the active Tier-2 queue head, so the
|
|
short queue does not have to restate the same late bringup strip every time.
|
|
|
|
## Preserved Artifact Notes
|
|
|
|
- `artifacts/exports/rt3-1.06/runtime-effect-kind8-tier2-sequencing-note.md`
|
|
- `artifacts/exports/rt3-1.06/runtime-effect-kind8-tier2-recipe-runtime-note.md`
|
|
|
|
## Coupled Rebuild Strip
|
|
|
|
The current Tier-2 bringup evidence no longer reads as one isolated helper. The grounded rebuild
|
|
owners form one coupled strip:
|
|
|
|
- `0x00435630`
|
|
- rebuilds scenario-side port/warehouse recipe runtime tables
|
|
- re-enters `0x00412d70`
|
|
- `0x00412d70`
|
|
- rebuilds candidate runtime records from scenario state
|
|
- runs two explicit bank passes, first on `[candidate+0xba]` and then on `[candidate+0xbb]`
|
|
- does not consult the scenario-side recipe-book name at `[state+0x0fe8]`
|
|
- picks one availability-qualified seed row and either reuses or clones its full `0x1f2`-dword body
|
|
- re-enters `0x00435630`
|
|
- also re-enters `0x00411ce0` and `0x00411ee0`
|
|
- `0x00412fb0`
|
|
- broader collection-load owner
|
|
- directly loops through the stock/import stream via `0x004120b0`
|
|
- `0x004120b0` itself explicitly loads selector bytes `[candidate+0xba/+0xbb]` from the stream
|
|
- then calls `0x00412d70`
|
|
- then calls `0x00412ab0`
|
|
- and only after the later catalog rebuild re-enters `0x00412c10`
|
|
- `0x00437737`
|
|
- late preseed of named candidate-availability records from the live pool
|
|
- upserts through `0x00434f20`
|
|
- `0x00434f20`
|
|
- writes the boolean named-availability override bit
|
|
- immediately re-enters `0x00412c10` when the live candidate pool exists
|
|
- `0x00412c10`
|
|
- refreshes `[candidate+0x7ac]` from named availability
|
|
- then tails into `0x0041eac0`
|
|
- `0x00434d40`
|
|
- late post-refresh sweep over collection `0x0062b26c`
|
|
- sets `[entry+0x7b0] = 1` for subtype-`2` rows
|
|
|
|
## Late Bringup Placement
|
|
|
|
The preserved sequencing note keeps the late `0x197` checkpoint concrete too:
|
|
|
|
- `0x00444ac1` sits after:
|
|
- `0x004354a0`
|
|
- territory overlay sweep `0x00487de0`
|
|
- and then falls through into:
|
|
- `0x00437737`
|
|
- followed by the later candidate-side availability refresh `0x00412c10`
|
|
|
|
So the late Tier-2 strip begins with named-availability preseed and latch refresh, not with the
|
|
shell progress or territory overlay helpers that precede it.
|
|
|
|
## Direct Checkpoint Order
|
|
|
|
Fresh `objdump` over `RT3.exe` now makes the two key bringup checkpoints explicit too:
|
|
|
|
- early checkpoint `0x00443ebc`
|
|
- calls `0x00435630`
|
|
- then calls `0x00412c10` only if live candidate pool `0x0062b268` is non-null
|
|
- then unconditionally calls `0x00412bd0`
|
|
- then follows with `0x00434130` and `0x00436af0`
|
|
- late checkpoint `0x00444ac1`
|
|
- calls `0x00435630`
|
|
- then immediately calls `0x00437737`
|
|
- then unconditionally calls `0x00412c10`
|
|
- then calls `0x00434d40`
|
|
|
|
So the late bringup strip is not just “somewhere after `0x004354a0`.” It explicitly reruns the
|
|
recipe/runtime rebuild before the named-availability preseed and the later unconditional latch
|
|
refresh, and then runs one final subtype-`2` mark pass through `0x00434d40`.
|
|
|
|
## Current Reading
|
|
|
|
This keeps the active Tier-2 owner question on sequencing and data handoff, not on bare naming:
|
|
|
|
- one side of the strip is the coupled recipe/runtime rebuild family
|
|
`0x00435630 -> 0x00412d70 -> 0x00412fb0`
|
|
- the loader edge is explicit now: `0x004120b0` is the stream-side owner that reads
|
|
`[candidate+0xba/+0xbb]` as one-byte parser fields before `0x00412fb0` falls into the runtime
|
|
projection pass
|
|
- the projection edge is explicit in the same way: `0x00412d70` does not just “see banked bytes”
|
|
abstractly, it runs one pass that accepts only nonzero `[candidate+0xba]` rows and one pass that
|
|
accepts only nonzero `[candidate+0xbb]` rows, reusing a matching prior ordinal when available and
|
|
otherwise cloning the full seed-row body
|
|
- the other side is the later named-availability preseed/latch family
|
|
`0x00437737 -> 0x00434f20 -> 0x00412c10`
|
|
- the early checkpoint only refreshes `0x00412c10` when the live candidate pool already exists,
|
|
while the late checkpoint always reruns `0x00435630 -> 0x00437737 -> 0x00412c10`
|
|
- the same late checkpoint then follows with `0x00434d40`, which walks `0x0062b26c` and stamps
|
|
`[entry+0x7b0] = 1` on subtype-`2` rows
|
|
- the remaining non-hook question is how that interaction lets candidate-table rows
|
|
`35/43/45..66` reach `0x00412d70` with nonzero `[candidate+0xba/+0xbb]` before the later
|
|
`0x00419230` rebank-or-clone pass consumes them
|
|
|
|
So the next Tier-2 pass should keep tracing the handoff between those two late rebuild bands,
|
|
rather than reopening the direct `Warehouse05` availability bit or the already-bounded stock asset
|
|
corpus.
|