From ec7045363c2c53b5d0c55adb1b074aa1e4e23b4b Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 17:54:26 -0700 Subject: [PATCH] Split infrastructure mixed classes by footer flags --- crates/rrt-runtime/src/smp.rs | 3 +++ docs/rehost-queue.md | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 80b0760..b2af3da 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -5260,6 +5260,8 @@ fn build_infrastructure_asset_trace_report( .unwrap_or_else(|| { "no grounded 0xff0000ff/0x0002/0xff compact-prefix correlation was available".to_string() }), + "cross-save q/p corpus checks now sharpen the mixed exact classes further without changing their identity: 0x000055f3/0x0001/0xff stays on prelude 0x0001/0xff with fixed short-flag pair 0x01/0x00 and fixed post-profile span 0x03 in both saves, while 0xff0000ff/0x0001/0xff stays on prelude 0x0001/0xff with fixed short-flag pair 0x00/0x00 and widely scattered post-profile spans in both saves".to_string(), + "that cross-save split keeps the semantic mix stable too: 0x000055f3/0x0001/0xff remains tunnel-dominant with only a small TrackCap residue, while 0xff0000ff/0x0001/0xff remains TrackCap-dominant with the same small tunnel-cap/section residue. So the next infrastructure question is no longer broad class identity; it is what the two short-flag families mean and why a minority of tunnel rows take the sparse 0xff0000ff outlier class instead of the stable span-0x03 tunnel family".to_string(), side_buffer .and_then(|probe| probe.payload_envelope_summary.as_ref()) .and_then(|summary| summary.name_prelude_candidate_summary.as_ref()) @@ -5486,6 +5488,7 @@ fn build_infrastructure_asset_trace_report( ]; let notes = vec![ "Infrastructure asset trace now makes the side-buffer-versus-triplet split explicit: owner seam identity is grounded, the pure bridge-only 0x0002/0xff candidate class is grounded save-side, the upstream chooser above the child attach path is grounded as paired DT/ST siblings at 0x004a2c80 and 0x004a34e0 with decoded Bridge/Tunnel/BallastCap/Overpass families, grounded top-level branch meaning, grounded bridge/tunnel material selector roles, a concrete child-construction/write-side chain through 0x00490960, 0x00491c60, 0x0048a6c0, 0x00455a40, and 0x004559d0, and stable 0x00490960 mode families for BallastCap, TrackCap, Overpass, Tunnel, and Bridge branches. The current save-side name corpus already maps BallastCap, TrackCap, Tunnel, and Bridge rows onto those families directly, the candidate-pattern correlation narrows the dominant mixed 0x0001/0xff class to bridge:62 / track_cap:21 / tunnel:19, and the exact compact-prefix correlation now splits the full prelude corpus into mostly pure classes: 0xff0000ff/0x0002/0xff is pure bridge, 0xff000000/{0x0001,0x0002}/0xff are pure bridge, 0xf3010100/0x0055/0x00 is pure ballast-cap, and 0x0005d368/0x0001/0xff is pure track-cap, leaving only 0xff0000ff/0x0001/0xff and 0x000055f3/0x0001/0xff as the mixed residual classes.".to_string(), + "Cross-save q/p traces now also split those two mixed residual classes by footer and span behavior: 0x000055f3/0x0001/0xff always carries short-flag pair 0x01/0x00 on a fixed span-0x03 tunnel-dominant family, while 0xff0000ff/0x0001/0xff always carries short-flag pair 0x00/0x00 on the scattered-span TrackCap-dominant outlier family. The remaining unknown is therefore the meaning of those short-flag families and the sparse branch that routes a minority of tunnel rows into the 0xff0000ff outlier class.".to_string(), if st_only_name_pair_corpus { "The current save-side side-buffer corpus is ST-only, so this trace directly exercises the ST chooser sibling while the DT sibling remains grounded statically but unexercised in this save.".to_string() } else { diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 5fe8de1..0f56358 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -212,6 +212,15 @@ Working rule: `TunnelSTBrick_Cap.3dp / Infrastructure:2`, `TunnelSTBrick_Section.3dp / Infrastructure:2`. Its rows are spread across many spans rather than one dominant restore span. +- Cross-save `q.gms` / `p.gms` traces sharpen that split further without changing it: + `0x000055f3 / 0x0001 / 0xff` stays on prelude `0x0001 / 0xff`, fixed short-flag pair + `0x01 / 0x00`, and fixed prior profile span `0x03` in both saves, while + `0xff0000ff / 0x0001 / 0xff` stays on prelude `0x0001 / 0xff`, fixed short-flag pair + `0x00 / 0x00`, and widely scattered prior profile spans in both saves. +- That means the remaining infrastructure question is no longer broad exact-class identity. It is + specifically what those two short-flag families mean and why a minority of tunnel rows route + into the sparse `0xff0000ff / 0x0001 / 0xff` outlier class instead of the stable + `0x000055f3 / 0x0001 / 0xff` tunnel family. - Source-side constructor analysis is narrower now too. `0x00490960` takes: - mode at stack arg 1 - stem at stack arg 2