Skip to content

feat: validate maps and NR metrics and score JXL trace iterations - #114

Open
lilith wants to merge 11 commits into
feat/typed-psy-orchestrationfrom
feat/psy-maps-nr-integration
Open

lilith wants to merge 11 commits into
feat/typed-psy-orchestrationfrom
feat/psy-maps-nr-integration

Conversation

@lilith

@lilith lilith commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Consume the checked zenpsy-api construction/planar/lending contract and add map/NR validation plus selected-metric scoring of saved JXL trace iterations. This review is stacked on PR 113's typed execution path. The core map/NR contract landed in zenpixels PR 131; PR 144 supplies the forward-compatible extension pinned here at 20cbfe10.

Native adapters preserve complete structured results, named scalar bits, borrowed map samples and actual preparation. Butteraugli uses native independent plane strides and lends its map before scratch recycling; Zensim and SSIMULACRA2 use explicit reusable RGBA float packing. Frozen selected Margarine retains its vendor, teacher and arithmetic. The existing qualified RGB byte-stride repair is included. PIQE preserves one-image, paired and cached native results/refusal categories and rejects overriding color contexts. Diagnostics remain off by default.

The workbench's Score iterations with selected metric control uses existing CPU/NR/learned dispatch without requesting maps. It retains all named outputs at full precision, reports per-frame refusals, selects trace frames and prevents stale asynchronous publication. These scores describe saved sRGB8 reconstructions and do not change encoder steering. Weight consent/provider settings remain intact. The helper shares the immutable asset generation.

JXL PR 143 implements the native owned-preparation/lending consumer. A real 97×73 encode matches native Butteraugli bytes, scalar/map bits and block distances. Its qualified SDR BT.709/D65/80 cd/m² path refuses unsupported color, units or geometry. The browser's separate WASM instances still need memory/conversion integration. Generic diagnostic maps do not establish a steering policy.

Validation:

  • Native cold/prepared/lending scalar/map parity, independent pitches/minimal row storage/NaN padding, erased collections, original map/RGB8-stride and orchestrator controls; strict Clippy.
  • Selected Margarine exact five scalars/native maps at 64×64, 97×73 and 131×129; original frontend compilation and strict Clippy. Native and Margarine i686 Cross controls pass.
  • Root lock regenerated/checked against recorded CI siblings. The checkpoint packaging fixture path follows the existing zensimx pin; fixture SHA256, numerical inputs and expectations are unchanged, and archive roundtrip/tamper controls pass.
  • Existing workbench routing oracle covers all 102 runnable catalog entries, with deterministic RPC/UI controls for FR/NR/learned dispatch, named outputs, frame selection, refusal/cancellation and immutable assets. This is routing coverage, not execution of 102 algorithms. The configured full viewer/native-WASM gate was not run locally for this follow-up.

Reproduce: just iqa-native-check, just iqa-margarine-check, just iqa-cross-check, just browser-loop-score-check, just browser-loop-ui-check. Construction, validation and copy limits; remaining legacy surfaces.

These are standalone validation adapters and an opt-in orchestrator path: 0 of the 22 legacy normal-dependency packages is production-migrated here. No crate publication or site deployment is performed.

Exercise the actual UI with deterministic FR, NR and learned RPC responses,
including named outputs, frame selection, refusals and stale-result cancellation.
Verify the helper module shares the immutable app asset generation and add PR
CI controls. The production viewer gate also checks native PSNR trace scoring;
that full WASM gate is configured but not run locally.
Keep typed PIQE bridge error categories and original causes rather than
classifying every native refusal as invalid input. Real small/unsupported
input controls and strict native lint pass. Keep map adapter plumbing private.
@lilith lilith self-assigned this Nov 9, 2026
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

API surface report

No public-API surface change. ✅

— api-guard (advisory; rules)

The validation bridge qualifies native RGB sample interpretation only; refuse
an overriding ICC context rather than relabeling it. Native adapter tests and
strict lint pass, including the explicit refusal witness.
Pin the forward-compatible zenpsy API and native Butteraugli lending extension.
Validate independent plane strides, owned warm state, structured lending and
erased collections against native score/map bits. Zensim and SSIMULACRA2 retain
explicit reusable packing; frozen selected Margarine arithmetic is unchanged.
Document construction policy, JXL boundary costs and remaining legacy callers.
The CI sibling pin exports zensimx, while packaging still searched zensim.
Preserve the original 1420-byte fixture and hash; archive roundtrip/tamper
controls pass. No checkpoint numerical input or expectation changes.

This branch has not been deployed

No deployments
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