From ee98ab83020144c542eed0f7d66ba5446bd03bf6 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Tue, 21 Apr 2026 23:16:07 -0700 Subject: [PATCH] Track missing engine side view resources --- crates/rrt-runtime/src/inspect/engine_types.rs | 8 ++++++++ docs/rehost-queue.md | 2 +- .../engine-types-parser-semantics-2026-04-21.md | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/rrt-runtime/src/inspect/engine_types.rs b/crates/rrt-runtime/src/inspect/engine_types.rs index df1bb7f..db3d73f 100644 --- a/crates/rrt-runtime/src/inspect/engine_types.rs +++ b/crates/rrt-runtime/src/inspect/engine_types.rs @@ -153,6 +153,7 @@ pub struct EngineTypesInspectionReport { pub car_side_view_resource_counts: BTreeMap, pub car_side_view_resource_pk4_match_count: usize, pub car_side_view_resource_pk4_missing_count: usize, + pub car_side_view_resource_pk4_missing_counts: BTreeMap, pub car_auxiliary_stem_counts: BTreeMap, pub car_auxiliary_stem_relation_counts: BTreeMap, pub internal_ne_profile_pk4_match_count: usize, @@ -383,6 +384,12 @@ pub fn inspect_engine_types_dir( .iter() .filter(|family| family.side_view_resource_found_in_pk4 == Some(false)) .count(); + let car_side_view_resource_pk4_missing_counts = count_named_values( + family_entries + .iter() + .filter(|family| family.side_view_resource_found_in_pk4 == Some(false)) + .filter_map(|family| family.side_view_resource.as_deref()), + ); let car_auxiliary_stem_counts = count_named_values( family_entries .iter() @@ -493,6 +500,7 @@ pub fn inspect_engine_types_dir( car_side_view_resource_counts, car_side_view_resource_pk4_match_count, car_side_view_resource_pk4_missing_count, + car_side_view_resource_pk4_missing_counts, car_auxiliary_stem_counts, car_auxiliary_stem_relation_counts, internal_ne_profile_pk4_match_count, diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 8b0bf43..a2bb805 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -15,7 +15,7 @@ This file is the short active queue for the current runtime and reverse-engineer The checked 1.05 corpus now also splits `.car` auxiliary stems into `126` direct matches, `14` role-neutral roots, and only `5` truly distinct cases, while `.cgo` collapses into five stable scalar ladders instead of arbitrary floats. The early `.lco` lane block is now partially partitioned too: only offsets `0x20`, `0x34`, `0x38`, `0x3c`, `0x44`, `0x48`, and `0x54` behave like low-cardinality buckets, while the other early lanes still look high-variance. The side-view resource path is now grounded into `Data/2D/rt3_2IMB.PK4`, and the `.imb` parser now decodes shipped comment-suffixed numeric rows plus `_NE` profile fields such as `HorizontalScaleModifier` and `ImageWHScaled`. - The checked PK4 linkage split is now explicit too: `132 / 145` side-view resource names resolve directly, but the remaining `13` are the missing `CarSideView_3.imb` cohort, while `43 / 145` derived `{internal_stem}_NE.imb` names resolve and all of those hits belong to matched locomotive pairs. + The checked PK4 linkage split is now explicit too: `132 / 145` side-view resource names resolve directly, but the remaining `13` are the missing `CarSideView_3.imb` cohort and that hole exists in both checked installs, while `43 / 145` derived `{internal_stem}_NE.imb` names resolve and all of those hits belong to matched locomotive pairs. The next honest static work is to keep promoting those fixed lanes into stable parser fields, explain the five remaining distinct auxiliary-stem cases, and decide how far the `.cgo` ladders plus the low-cardinality `.lco` lanes can be grounded without overclaiming semantics. Preserved checked parser detail now lives in [EngineTypes parser semantics](rehost-queue/engine-types-parser-semantics-2026-04-21.md). Preserved checked format inventory detail now lives in [RT3 format inventory](rehost-queue/format-inventory-2026-04-21.md). diff --git a/docs/rehost-queue/engine-types-parser-semantics-2026-04-21.md b/docs/rehost-queue/engine-types-parser-semantics-2026-04-21.md index 32205b9..cff9555 100644 --- a/docs/rehost-queue/engine-types-parser-semantics-2026-04-21.md +++ b/docs/rehost-queue/engine-types-parser-semantics-2026-04-21.md @@ -64,6 +64,8 @@ first `.car` / `.lco` / `.cgo` / `.cct` inspector pass landed. - `43 / 145` derived `{internal_stem}_NE.imb` names resolve directly inside `rt3_2IMB.PK4` - every one of those `43` `_NE` hits belongs to a matched locomotive `.car/.lco` pair - no freight-car or tender family currently resolves to a packaged `{internal_stem}_NE.imb` +- That `CarSideView_3.imb` hole is now confirmed across both checked installs (`rt3` and + `rt3_105`): neither shipped `rt3_2IMB.PK4` contains a `CarSideView_3.imb` entry. ## What The Current Parser Now Owns