Skip to content

Consolidate source-derived metadata read/write parity work - #779

Merged
swackhamer merged 259 commits into
refactor/tag-machineryfrom
codex/hydrated-reader-layout-baseline-20260914
Sep 15, 2026
Merged

swackhamer merged 259 commits into
refactor/tag-machineryfrom
codex/hydrated-reader-layout-baseline-20260914

Conversation

@swackhamer

@swackhamer swackhamer commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

This consolidates the source-derived metadata inventory, generated QuickTime readers, public scalar writers, recovered Nikon generation and upgrade rehearsal into one review. All four original PR heads remain ancestors of the consolidated PR branch. PRs #682 and #683 remain separate; feature expansion is paused after this landing.

The generated catalog joins account for all 33,487 BuildTagLookup entries and keep declarations, explicit refusals and observed behavior separate. The published authenticated snapshot records 26 catalog entries observed read and 19 written at its original runtime be0ffe0c; it does not claim full catalog read/write parity.

Final repairs preserve the source-derived contracts: JPEG mandatory-only IFD1 cleanup now checks existing physical encodings with the shared captured predicate and JFIF defaults; the rehearsal adapter derives its complete matrix cohort from authenticated generated inputs; CI replays its own source-bound IFD ledger while requiring equality of all 17,851 identities and canonical generated Rust. The numeric regression remains in the full tag database suite while the standalone composition harness also stays enabled. The complete native verification job retains every check with a finite 60-minute cap.

Validation:

  • Official regen-all.sh at 980d5efe, explicit Perl 5.38.2 and pinned ExifTool 13.59: both tiers passed, zero generated delta; 16,789 expression comparisons matched, 14 native-rejected probes skipped.
  • Final native writer proof at clean 7b1cf056 (integrated as 31e87191), executed locally on Apple M5: 48/48 TIFF/JPEG physical cleanup cases and 1,530/1,530 public matrix cases passed. Authenticated native readback credits 1,353 positive write operations across 38 Group1 names. The two exact whole-EXIF-clear/ExtendedEXIF regressions passed. Historical M4 evidence remains labeled separately.
  • Adapter/executor: 45 tests passed; actual selected-release report replay accepted 1,530/1,530 rows with zero mismatches and all 876 original-subset cases.
  • Numeric standalone composition failure reproduced and repaired: exact test passed; independent reviews of the JPEG and test-only changes found no actionable issues.
  • Final integrated local gate at fbf46068: formatting and workspace/all-feature Clippy passed; 6,123 Rust tests passed, zero failed, 126 ignored; 172 focused Python tests completed successfully, one skipped. HEAD and tracked files were unchanged throughout. The Linux tool suite at that head also completed 1,459 tests successfully (37 skipped), but a later directory comparison misclassified two independently checked QuickTime fixtures as generated staleness outputs. 7c90b559 adds those two exclusions in CI and the matching local recipe; it changes no runtime, generator or test source. Fresh local generation/diff, recipe/YAML syntax and Clippy pass; the seven enum-drift targets and 39 Perl anchors also pass. Final GitHub CI at 7c90b559 passed (run 34983143346), including all 1,459 tool tests (37 skipped), regenerated fixture comparison, seven enum-drift baselines and 39 Perl anchors. Docs Build also passed.
  • All 14 carried review comments have validation replies and are resolved on their original threads. PR Consolidate source-derived metadata read/write parity work #779 has no unresolved review threads at this checkpoint.

The materialized ExifTool 11.78 rehearsal passed its native probe, then explicitly refused unsupported SetNewValue caller control flow during generation. Promotion is forbidden; historical read/write and 12.64 stages did not execute. This remains documented resumption work, not a successful historical-upgrade claim.

Checkpoint · Review record · Resume guide

Replace substring admission with complete executable-body recognition and transitive validation/packing dependency joins. Capture SetByteOrder and its live endian maps; authenticate TIFF registry provenance and mapping consistency.

The finite grammar specializes count-one u16/u32 integer operands and explicitly refuses unsupported source changes. It is not a general numeric translator or automatic arbitrary-upgrade support. No Rust implementation or public route changed.

Validation: canonical Perl 5.38.2 and Exif-only captures under the shared validation lock. 50 distinct unittest cases passed across mandatory defaults, scalar WriteValue, and dump-facts suites. Native insertion preserving all former required tokens changes 0048 to 0049 and refuses; copied packing-helper mutations refuse; 14 native/Rust endian-boundary comparisons match.
Compile complete finite native dispatcher/reader source grammar plus live DATAMEMBER, RawConv, format and endian facts into generic raw segment operands. Preserve missing fields and raw zero without using displayed metadata. Register both generated artifacts in tier-1 regeneration.

Unknown source controls refuse. This is a bounded unedited-JFIF/default-options specialization, not automatic arbitrary native-upgrade support or public file activation.

Validation under shared native lock: 24 raw/artifact tests passed; final 5 native/Rust raw differential tests passed after skip and control-alias additions. Copied offset/type/property/order/payload-start changes propagate and match native WriteInfo; unsupported source changes refuse. Standalone changed-module Clippy passed with -D warnings; integrated workspace gates remain with root.
@swackhamer
swackhamer merged commit b52e73e into refactor/tag-machinery Sep 15, 2026
6 checks passed
@swackhamer
swackhamer deleted the codex/hydrated-reader-layout-baseline-20260914 branch September 15, 2026 15:22
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