287 lines
22 KiB
Markdown
287 lines
22 KiB
Markdown
# Rehost Queue
|
||
|
||
Working rule:
|
||
|
||
- Do not stop after commits.
|
||
- After each commit, check this queue and continue.
|
||
- Only stop if the queue is empty, the remaining work cannot be advanced by any non-hook analysis
|
||
or rehosting path without guessing, or you need approval.
|
||
- Before any final response, state which stop condition is true. If none is true, continue.
|
||
|
||
## Next
|
||
|
||
- Use the higher-layer probes as the standard entry point for the current blocked frontier instead
|
||
of generic save scans:
|
||
`runtime inspect-periodic-company-service-trace <save.gms>`,
|
||
`runtime inspect-region-service-trace <save.gms>`, and
|
||
`runtime inspect-infrastructure-asset-trace <save.gms>`.
|
||
- Follow the new higher-layer probe outputs instead of another blind save scan:
|
||
`runtime inspect-infrastructure-asset-trace <save.gms>` now shows that the `0x38a5`
|
||
infrastructure-asset seam is grounded and the old alias hypothesis is disproved on `q.gms`, so
|
||
the next placed-structure slice should target the consumer mapping above that seam rather than
|
||
more collection discovery; the same trace now also carries atlas-backed candidate consumers
|
||
(`0x0048a1e0`, `0x0048dd50`, `0x00490a3c`, `0x004559d0`, `0x00455870`, `0x00455930`,
|
||
`0x00448a70/0x00493660/0x0048b660`, `0x004133b0`) plus bridge/tunnel/track-cap name-family
|
||
counts, so the next pass can start at those concrete owners instead of the whole
|
||
placed-structure family.
|
||
- Rehost or bound the next concrete `Infrastructure` consumer above `0x38a5` instead of treating
|
||
“consumer mapping missing” as a stop: start with the checked-in candidate strip
|
||
`0x0048a1e0`, `0x0048dd50`, `0x00490a3c`, `0x004559d0`, `0x00455870`, `0x00455930`,
|
||
`0x00448a70/0x00493660/0x0048b660`, `0x004133b0`, and narrow that list to the first true
|
||
shellless owner that consumes the side-buffer seam. The infrastructure trace now ranks the
|
||
current best hypothesis as the child attach/rebuild strip
|
||
(`0x0048a1e0`, `0x0048dd50`, `0x00490a3c`), with the serializer/load companions next and the
|
||
route/local-runtime follow-on family explicitly secondary.
|
||
- For that top-ranked infrastructure strip, treat the next pass as three exact owner questions
|
||
rather than a general “map the consumer” task: whether the `0x38a5` compact-prefix/name-pair
|
||
groups feed the first-child triplet clone lane, the caller-supplied payload-stem lane, or only a
|
||
later route/local-runtime refresh lane; whether cached primary-child slot `[this+0x248]` is the
|
||
first owner-visible bridge from the side-buffer seam into route-entry rebuild; and which child
|
||
fields or grouped rows absorb the side-buffer payload before `0x00448a70/0x00493660/0x0048b660`
|
||
become relevant.
|
||
- Targeted disassembly now tightens that strip further: `0x0048a1e0` clones the first child through
|
||
`0x0052e880/0x0052e720`, destroys the prior child, seeds a literal `Infrastructure` child
|
||
through `0x00455b70` with payload seed `0x005c87a8`, and republishes the two sampled bands
|
||
through `0x0052e8b0/0x00530720` after attaching through `0x005395d0`; the non-clone branch
|
||
attaches through `0x0053a5d0`. So the next unknown is no longer whether this strip owns the
|
||
child/rebuild seam, but which `0x38a5` compact-prefix groups drive the clone-vs-payload choice.
|
||
- Reconstruct the save-side region record body on top of the newly corrected non-direct tagged
|
||
region seam (`0x5209/0x520a/0x520b`, stride hint `0x06`, `Marker09` record stems) now that the
|
||
`0x55f3` payload is known to be fully consumed by the embedded profile collection on grounded
|
||
real saves: the remaining blocker is no longer a hidden trailing payload tail, but finding the
|
||
separate save-owner seam for the pending bonus lane `[region+0x276]`, completion latch
|
||
`[region+0x302]`, one-shot notice latch `[region+0x316]`, severity/source lane `[region+0x25e]`,
|
||
and any stable region-id or class discriminator that can drive shellless city-connection
|
||
service. The newly grounded queue-node probe for the atlas-backed kind-`7` notice records is a
|
||
negative result on `q.gms`, `p.gms`, and `Autosave.gms`, so the next region pass should not
|
||
assume that the transient `[world+0x66a6]` queue family is persisted in ordinary saves; the
|
||
region trace now also carries the concrete queued/service owners (`0x00422100`, `0x004337c0`,
|
||
`0x00437c00`, `0x004c7520`, `0x004358d0`, `0x00438710`, `0x00420030/0x00420280`,
|
||
`0x0047efe0`) so the next pass can focus on the missing saved latches and stable region id/class
|
||
rather than on rediscovering the outer service family.
|
||
- Rehost or bound the next concrete region owner above the missing latches instead of treating the
|
||
absent persisted queue as a stop: start with the checked-in owner strip `0x00422100`,
|
||
`0x004337c0`, `0x00437c00`, `0x004c7520`, `0x004358d0`, `0x00438710`,
|
||
`0x00420030/0x00420280`, `0x0047efe0`, and reduce it to the first true save-owned or rebuild
|
||
owner that can explain `[region+0x25e/+0x276/+0x302/+0x316]` plus a stable region id/class. The
|
||
region trace now ranks the current best hypothesis as the pending bonus service owner
|
||
(`0x004358d0`) plus the peer/linkage strip (`0x00420030/0x00420280`, `0x0047efe0`), with the
|
||
transient producer/queue family explicitly secondary and the queued kind-`7` modal dispatch kept
|
||
as shell-adjacent reference only.
|
||
- For that top-ranked region strip, treat the next pass as three exact owner questions too: which
|
||
persisted owner seam restores or rebuilds `[region+0x25e/+0x276/+0x302/+0x316]`, which stable
|
||
region id or class discriminator survives save/load strongly enough to drive `0x004358d0`, and
|
||
how far the grounded city-connection peer/linkage helpers
|
||
(`0x00420030/0x00420280`, `0x0047efe0`) can be reused directly before the transient queued-notice
|
||
family matters again.
|
||
- Targeted disassembly now tightens that strip too: `0x004358d0` calls `0x00420030` twice plus
|
||
`0x00420280`, then resolves the linked company through `0x0047efe0`, posts company stat slot `4`
|
||
on success, and stamps `[region+0x302]` or `[region+0x316]` while clearing `[region+0x276]`.
|
||
`0x00420030` itself now reads as the real peer gate over collection `0x006cec20`, combining
|
||
`0x0042b2d0`, the optional company filter through `0x0047efe0`, the station-or-transit gate
|
||
`0x0047fd50`, and the status branch `0x0047de00 -> 0x0040c990`; `0x00420280` is the same scan
|
||
returning the first matching site id. So the remaining unknown is the persisted latch/id seam,
|
||
not the live peer/service logic.
|
||
- The checked-in constructor owner `0x00421200`
|
||
`world_region_construct_entry_with_id_class_and_default_marker09_profile_seed` now also grounds
|
||
the initialization side of this family: it clears `[region+0x276]`, `[region+0x302]`,
|
||
`[region+0x316]`, and neighboring cached bands at construction time while seeding
|
||
`[region+0x25a/+0x25e] = 100.0f` and `[region+0x31b] = 1.0f`. That means the remaining queue item
|
||
is specifically post-construction restore or rebuild of the same latches, not their basic field
|
||
identity.
|
||
- The next restore-side target is explicit now too: the checked-in function map already grounds
|
||
`0x00421510` as the tagged region-collection load owner that dispatches each live region through
|
||
vtable slot `+0x40`, and `0x0041f5c0` as the per-record load slot that reloads the tagged payload
|
||
through `0x00455fc0` before rebuilding profile collection `[region+0x37f]`. So the next region
|
||
pass should ask whether `[region+0x276/+0x302/+0x316]` are restored directly inside that payload
|
||
load or rebuilt immediately after it, rather than treating “restore seam” as a generic unknown.
|
||
- Direct disassembly of `0x00455fc0` now answers part of that question: the shared loader clears and
|
||
reseeds the common `0x23a`-family string/scalar bands, then dispatches object vtable slot `+0x48`
|
||
and re-enters `0x0052ebd0`; it does not touch `[region+0x276/+0x302/+0x316]` directly. That
|
||
narrows the remaining restore target further to the world-region table’s region-specific
|
||
`+0x48` callback or the immediate post-load owner above it.
|
||
- Reconstruct the save-side placed-structure collection body on top of the newly grounded
|
||
`0x36b1/0x36b2/0x36b3` header seam so the blocked city-connection / linked-transit branch can
|
||
stop depending on atlas-only placed-structure and local-runtime refresh notes, especially the
|
||
semantics of the now-grounded compact `0x55f3` footer dword/status lane and the newly exposed
|
||
separate tagged side-buffer seam candidates, especially the exact `0x38a5/0x38a6/0x38a7`
|
||
family whose compact `6`-byte header pattern and embedded placed-structure-style `0x55f1`
|
||
name rows now make it the grounded placed-structure dynamic side-buffer owner; the remaining
|
||
blocker is semantic closure of the compact prefix regimes now summarized in real saves as seven
|
||
stable patterns on `q.gms` and their relation to the embedded `0x55f1/0x55f2/0x55f3` row
|
||
subset, especially now that the side-buffer name-pair corpus is proven disjoint from the
|
||
grounded `0x36b1` triplet name-pair corpus on `q.gms`; the next pass should treat `0x38a5` as
|
||
a separate infrastructure-asset owner seam, not a compact alias over the triplet records.
|
||
- Extend shellless clock advancement so more periodic-company service branches consume owned
|
||
runtime time state directly instead of only the explicit periodic service command.
|
||
- Keep widening selected-year world-owner state only when a full owning reader/rebuild family is
|
||
grounded strongly enough to avoid one-off leaf guesses.
|
||
|
||
## In Progress
|
||
|
||
- Widen shellless simulation from explicit service commands toward “advance the runtime clock and
|
||
the simulation-owned services advance with it.”
|
||
|
||
## Queued
|
||
|
||
- Rehost additional periodic finance/service branches that still depend on frozen world restore
|
||
fields instead of advanced runtime-owned time state.
|
||
- Reduce remaining company/chairman save-native gaps that still block standalone simulation
|
||
quality, especially controller-kind closure and any deeper finance/state fields that still rely
|
||
on conservative defaults.
|
||
- Rehost bounded live economy owner state beyond selector/catalog/override surfaces when a
|
||
concrete non-shell-owned seam is grounded.
|
||
- Keep tightening shell-owned parity families only when that directly supports later rehosting.
|
||
|
||
## Blocked
|
||
|
||
- Full shell/dialog ownership remains intentionally out of scope.
|
||
- Any candidate slice that requires guessing rather than rehosting owning state or real
|
||
reader/setter families stays blocked until a better owner seam is grounded.
|
||
- Missing owner seams or dispatch mappings are not by themselves a stop condition when a targeted
|
||
static-mapping pass or a higher-layer rehosted trace/evaluator surface can still narrow them
|
||
further without guessing.
|
||
- The city-connection announcement / linked-transit roster-maintenance branch is still blocked at
|
||
the record-body level, not the collection-identity level: the runtime now has a corrected
|
||
non-direct tagged region seam, a tagged train header-plus-directory seam, and a tagged
|
||
placed-structure header seam, but it does not yet reconstruct the live region or
|
||
placed-structure record bodies those service owners need.
|
||
|
||
## Recently Done
|
||
|
||
- `rrt-runtime` now exposes three higher-layer probe surfaces and matching CLI inspectors:
|
||
`runtime inspect-periodic-company-service-trace <save.gms>`,
|
||
`runtime inspect-region-service-trace <save.gms>`, and
|
||
`runtime inspect-infrastructure-asset-trace <save.gms>`. These reports separate grounded outer
|
||
owner inputs, runnable shellless branches, and explicit missing owner seams instead of leaving
|
||
the current city-connection / linked-transit frontier as an opaque blocker.
|
||
- Those same probes now also sharpen the next queue choice on grounded real saves: the periodic
|
||
company outer owner shows annual finance and route-preference override as grounded shellless
|
||
branches while city-connection and linked-transit stay blocked on region/infrastructure owner
|
||
seams; the region trace keeps the queued kind-`7` notice family on the transient side; and the
|
||
infrastructure trace now makes the `0x38a5` consumer-mapping blocker first-class after
|
||
disproving any alias to the `0x36b1` placed-structure triplet corpus.
|
||
- The infrastructure trace now also carries one small atlas-backed static-analysis layer above that
|
||
seam: bridge/tunnel/track-cap name-family counts from the real side-buffer corpus plus concrete
|
||
consumer candidates rooted at the `Infrastructure` child attach/rebuild/serializer helpers and
|
||
the later route/local-runtime follow-on owners. That means the next `0x38a5` pass can be
|
||
targeted static mapping instead of another generic scan.
|
||
- That same trace now also ranks those consumers into explicit hypotheses, so the next
|
||
infrastructure pass should start with the attach/rebuild strip instead of treating all
|
||
candidate owners as equally likely.
|
||
- The region trace now also carries the corresponding atlas-backed candidate owner strip above the
|
||
unresolved save latches, so the region frontier is now explicitly “missing persisted owner seam
|
||
for `[region+0x25e/+0x276/+0x302/+0x316]` and stable region id/class,” not “unknown service
|
||
family.”
|
||
- That same trace now also ranks those owners into explicit hypotheses, so the next region pass
|
||
should start with the pending bonus service owner and peer/linkage strip rather than the queued
|
||
modal family.
|
||
- Save inspection now splits the shared `0x5209/0x520a/0x520b` family correctly: the smaller
|
||
direct `0x1d5` collection is the live train family and now exposes a live-entry directory rooted
|
||
at metadata dword `16`, while the actual region family is the larger non-direct `Marker09`
|
||
collection with live_id/count `0x96/0x91`; the tagged placed-structure header
|
||
(`0x36b1/0x36b2/0x36b3`) remains grounded alongside them.
|
||
- That same corrected region seam now also exposes repeated `0x55f1/0x55f2/0x55f3` serialized
|
||
record triplets with len-prefixed names plus fixed policy/profile chunk lengths, so the next
|
||
city-connection pass can target the real record envelope instead of another blind scan.
|
||
- The fixed `0x55f2` row inside each region triplet is now decoded structurally as three leading
|
||
`f32` lanes, three reserved `u32` lanes, and a trailing `u16` word, so the next save-region
|
||
slice can focus on the larger `0x55f3` payload where the pending/completion/one-shot latches are
|
||
most likely to live.
|
||
- The larger `0x55f3` payload now also exposes an embedded direct profile collection with grounded
|
||
live-id/count headers, fixed `0x22`-byte rows, profile names, and trailing weight scalars, so
|
||
the remaining region work is on the unresolved payload fields above that collection rather than
|
||
on the profile subcollection itself.
|
||
- Grounded real saves now also show that the region-side `0x55f3` payload has zero trailing
|
||
padding beyond that embedded profile collection, so the remaining region blocker has shifted
|
||
from “find the hidden tail inside this payload” to “find the separate owner seam that backs the
|
||
runtime latches the city-connection branch still reads.”
|
||
- Save inspection now also exports a generic low-tag unclassified collection scan over plausible
|
||
indexed-collection headers, now through a lightweight CLI path that does not require full bundle
|
||
inspection and now filters out candidates nested inside already-grounded company/chairman/train/
|
||
region/placed-structure spans.
|
||
- That lightweight scan now also narrows the real save frontier to a much smaller stable candidate
|
||
set across `p.gms`, `q.gms`, and `Autosave.gms`, with the exact `0x38a5/0x38a6/0x38a7` family
|
||
standing out as the strongest current placed-structure dynamic side-buffer candidate.
|
||
- The `0x38a5/0x38a6/0x38a7` family now also has a first dedicated parser scaffold in
|
||
`rrt-runtime`: its synthetic regression is grounded, its header shape is checked in, and the
|
||
parser now expects a compact 6-byte prefix plus separator byte before an embedded
|
||
placed-structure-style dual-name row rather than treating the family as anonymous residue.
|
||
- That exact `0x38a5/0x38a6/0x38a7` parser is now also wired through a lightweight CLI inspector
|
||
and the normal save company/chairman analysis output, and grounded real saves now prove the
|
||
same seam directly:
|
||
`q.gms` exposes `live_record_count=3865`, prefix `0x0005d368/0x0001/0xff`, and first embedded
|
||
names `TrackCapST_Cap.3dp` / `Infrastructure`; `p.gms` exposes the same structure with
|
||
`live_record_count=2467`.
|
||
- That same direct `0x38a5` probe now also samples multiple embedded name rows with their
|
||
preceding compact prefixes, showing that the seam is not a one-off wrapper: grounded `q.gms`
|
||
samples include repeated `TunnelSTBrick_*` names under `Infrastructure` with compact leading
|
||
dwords like `0x000055f3` and `0xff0000ff`, so the next pass can target the semantics of those
|
||
compact prefix patterns instead of hunting the owner seam itself.
|
||
- The `0x38a5` probe now also summarizes all embedded compact prefix regimes instead of just the
|
||
first few samples: grounded `q.gms` currently exposes seven stable pattern groups across 138
|
||
embedded rows, with the dominant `0xff000000/0x0001/0xff` group carrying 62 bridge-section
|
||
rows, the `0xff0000ff/0x0001/0xff` and `0xf3010100/0x0055/0x00` groups concentrating cap-like
|
||
rows, and a smaller `0x000055f3/0x0001/0xff` group carrying 17 tunnel-section / cap rows whose
|
||
leading dword matches the embedded placed-structure profile tag directly.
|
||
- The save-company/chairman analysis path now also compares that grounded `0x38a5` side-buffer
|
||
name-pair corpus against the grounded `0x36b1` triplet name-pair corpus directly; on `q.gms`
|
||
the overlap is currently zero (`0/138` decoded side-buffer rows and `0/5` unique side-buffer
|
||
name pairs match the 56-triplet corpus), which shifts the remaining placed-structure work away
|
||
from “prove these are aliases” toward “find how the separate infrastructure-asset owner seam is
|
||
consumed by city-connection / linked-transit service.”
|
||
- Save inspection now also has a dedicated probe for the atlas-backed region queued-notice node
|
||
shape (`payload seed 0x005c87a8`, kind `7`, zero promotion latch, region id, amount, `-1/-1`
|
||
tails), plus a matching lightweight CLI inspector. Grounded `q.gms`, `p.gms`, and `Autosave.gms`
|
||
all currently return `null`, which is useful negative evidence: the transient region notice
|
||
queue is not obviously persisted in these ordinary saves.
|
||
- The placed-structure tagged save stream now also exposes repeated `0x55f1/0x55f2/0x55f3`
|
||
triplets with dual name stems, a fixed five-`f32` policy row, and a compact `0x5dc1...0x5dc2`
|
||
footer carrying one raw `u32` payload lane plus one live `i32` status lane, so the remaining
|
||
placed-structure work is semantic closure of those owned fields rather than envelope discovery.
|
||
- That compact placed-structure `i32` footer status lane is now partially grounded as owned
|
||
semantics too: observed non-farm families stay at `-1`, while farm families use nonnegative
|
||
`0..11` buckets that are now exported as farm growth-stage indices instead of opaque raw status
|
||
residue.
|
||
- Stepped calendar progression now also refreshes save-world owner time fields, including packed
|
||
year, packed tuple words, absolute counter, and the derived selected-year gap scalar.
|
||
- Automatic year-rollover calendar stepping now invokes periodic-boundary service.
|
||
- Save-native world locomotive policy owner state now flows through runtime restore state,
|
||
summaries, and keyed world-flag execution for the grounded `All Steam/Diesel/Electric Locos
|
||
Avail.` descriptor strip plus the cached available-locomotive rating.
|
||
- The selected-year bucket ladder rooted in `0x00433bd0` is now checked in as a static artifact,
|
||
and runtime restore state now derives both the selected-year bucket scalar and the
|
||
`[world+0x0bde]` economic-tuning mirror from owner-family inputs instead of preserving stale
|
||
load-time residue.
|
||
- That same selected-year owner family now also rebuilds the direct bucket trio
|
||
`[world+0x65/+0x69/+0x6d]`, the complement trio `[world+0x71/+0x75/+0x79]`, and the scaled
|
||
companion trio `[world+0x7d/+0x81/+0x85]` from the checked-in `0x00433bd0` artifact instead of
|
||
preserving stale save-time residue.
|
||
- The save-native company direct-record seam now also carries the full outer periodic-company
|
||
side-latch trio rooted at `0x0d17/0x0d18/0x0d56`, including the preferred-locomotive
|
||
engine-type chooser byte beside the city-connection and linked-transit finance gates.
|
||
- That same side-latch trio now also has a runtime-owned service-state map and summary surface,
|
||
so later periodic company-service work can stop reading those lanes directly from imported
|
||
market/cache residue.
|
||
- The periodic-boundary owner now also clears the transient preferred-locomotive side latch every
|
||
cycle and reseeds the finance latches from market state where present, while preserving
|
||
side-latch-only company context when no market projection exists.
|
||
- The outer periodic-company seam now also has a first-class runtime reader:
|
||
selected-company summaries and finance readers can resolve the base `[world+0x4c74]`
|
||
route-preference byte, the effective electric-only override fed by `0x0d17`, and the matching
|
||
`1.4x` versus `1.8x` route-quality multiplier through owned periodic-service state instead of
|
||
leaving that bridge in atlas notes.
|
||
- That same periodic-company seam now also owns a first-class route-preference apply/restore
|
||
mutation lane: runtime service state tracks the active and last electric override, beginning the
|
||
override rewrites `[world+0x4c74]` to the effective route preference for the selected company
|
||
service pass, and ending the override restores the base world byte instead of leaving the seam as
|
||
a pure reader bridge.
|
||
- The same route-preference mutation seam now also carries explicit apply/restore service counters
|
||
through runtime service state and summaries, so later periodic-company branches can assert that
|
||
override activity happened even before the missing city-connection / linked-transit service
|
||
owners are fully rehosted.
|
||
- Company cash, confiscation, and major governance effects now write through owner state instead of
|
||
drifting from market/cache readers.
|
||
- Company credit rating, prime rate, book value per share, investor confidence, and management
|
||
attitude now refresh from grounded owner-state readers.
|
||
- Annual finance service persists structured news events and grounded debt/share flow totals.
|