Skip to content

v1.4: test clean KFPS 3.1.31 livery decoder - #34

Draft
Datamining00 wants to merge 18 commits into
v1.4-parser-boundary-compact-fixfrom
v1.4-kfps-3.1.31-clean-decoder-test
Draft

v1.4: test clean KFPS 3.1.31 livery decoder#34
Datamining00 wants to merge 18 commits into
v1.4-parser-boundary-compact-fixfrom
v1.4-kfps-3.1.31-clean-decoder-test

Conversation

@Datamining00

@Datamining00 Datamining00 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Goal

Replace the pinned KFPS 3.1.27 backend with KFPS 3.1.31 (004b3b61a57d901e65957b6099805835f91e32f6) for an A/B test, and remove FH6 Assistant's decoder-side recovery stack from runtime.

Clean-decoder policy

This branch does not install:

  • compact-shape guard;
  • populated-section boundary override;
  • decoder recovery;
  • bare-parent transform fix;
  • consecutive-transform-pair fix;
  • structural parser audit;
  • source-offset layer-order normalization.

The established v1.4 rendering/UI pipeline remains enabled. Warning-only integrity handling and persistent preview scale are retained through a small clean-baseline wrapper that deliberately does not rewrite decoder order. Clean-decoder cache identities are isolated so stale previews from the previous parser cannot be reused.

Why

KFPS 3.1.31 upstream reworked FH6 full-livery stream decoding and validated scene semantics against ForzaLiveryStudio across a large local corpus. This branch tests whether the upstream decoder now supersedes the local parser patches.

Build notes

  • vendors exact KFPS commit 004b3b61a57d901e65957b6099805835f91e32f6;
  • includes the new kfps_shapes package required by current json_preview_renderer.py;
  • adds a smoke test that verifies the 3.1.31 occupancy model and rejects unknown framed shape word 0x0100 as a native shape;
  • legacy patch unit tests remain available, but their app-wiring assertions recognize that this clean branch intentionally does not install those patches.

Startup regression fixed

The first clean-decoder EXE crashed during startup because the wrapper called a non-existent helper baseline._install_scale_persistence(). The actual helper in the baseline module is baseline._install_scale_persistence_and_warning_ui().

The wrapper now calls the existing helper, and a regression test explicitly checks that the startup wrapper references a real function and does not reintroduce the obsolete name.

Current validation

  • Windows CI: success (32388631530)
  • Regression suite: 189 tests, OK
  • PyInstaller one-file build: success
  • EXE bytes: 82,640,239
  • EXE SHA-256: 52bf2e3877bb94600b6fbf834a93d9917ca9634b79b3cc9e6a41beec2c5dd5a0
  • Artifact ZIP SHA-256: d447d9a3e173a47bc7c40bfa23aceea9b6eea29b77e7bd89dabf00e6b6c6c406

Draft until the previously problematic real liveries are visually checked. Do not merge before that verification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant