Skip to content

fix: reader notes state what is known instead of unvalidated - #74

Merged
Paullo9 merged 2 commits into
mainfrom
issue-unvalidated-notes
Nov 1, 2026
Merged

Paullo9 merged 2 commits into
mainfrom
issue-unvalidated-notes

Conversation

@Paullo9

@Paullo9 Paullo9 commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Requested by Paul · project thread

No app or export should show "unvalidated" wording. Each reader note now gives the plain fact and names where in the file the value is stored.

Note Old New
TIFFVeloxCalibration.unvalidatedNote (= TIFFAppImage.Note.veloxUnvalidated) scale unvalidated (one acquisition) scale as Velox stores it (BinaryResult/PixelSize), not checked against a calibration standard
AcquisitionMetadata.unvalidatedNote (generic) unvalidated: no published reader reads it no published reader reads this field; read as the file stores it
DM reader same no published reader reads this field; read as stored in the DM image tags
Velox EMD reader same no published reader reads this field; read as stored in the Velox metadata
MRC reader (FEI record) same no published reader reads this field; read as stored in the FEI extended header, at the offset mrcfile declares
TIFF, Velox XML same no published reader reads this field; read as stored in the Velox XML of the TIFF
TIFF, FEI header same no published reader reads this field; read as stored in the FEI header of the TIFF
Velox detector unvalidated: RosettaSciIO names some detectors from another field read from BinaryResult.Detector; RosettaSciIO names some detectors from another field
MRC camera length unvalidated: the mode is not checked shown as stored; the instrument mode is not checked, as no published reader decodes it

Call sites that used the generic note now attach their own format's wording.

API. No symbol was removed or renamed, so consumers compile unchanged. There are three new aliases for the same strings: AcquisitionMetadata.noPublishedReaderNote, TIFFVeloxCalibration.storedScaleNote and TIFFAppImage.Note.veloxStoredScale.

Consumers display these notes verbatim. On update, their own snapshot or literal tests of these notes may need re-pinning.

Fixtures. The six pins files were re-recorded in their own commit. Only the note strings changed, plus the TIFF source line that contains the scale note. No number moved. tools/acq-metadata/generate.py now applies the same wording to the pinned app output, and a check of its mapping against the old pins reproduces the new files exactly.

Tests. The tests pin the new texts and check that the aliases equal the old names and that no note contains "unvalidated". Gate results are below.

  • tools/test.sh --skip FormatoKitParityTests: green; 444 tests and no build warnings.
  • Parity target (--filter FormatoKitParityTests): green; 18 tests, 5 skipped because owner data is absent.
  • SwiftLint --strict and SwiftFormat --lint (repo configs): clean.
  • tools/fixture-index/index.py --check: current.
  • A reviewer read the diff before commit: the note wording matches each call site, no public symbol was removed, and only note text changed in the fixtures.

docs/parity.md still describes these fields as labelled "unvalidated" in prose. It is left for a follow-up because two open PRs already edit that file.

🤖 Generated with Claude Code

Paullo9 and others added 2 commits November 1, 2026 17:10
Apps show the reader notes verbatim, so each note now states the plain
fact and names where in the file the value is stored:

- TIFFVeloxCalibration: "scale as Velox stores it (BinaryResult/PixelSize),
  not checked against a calibration standard".
- AcquisitionMetadata (generic): "no published reader reads this field;
  read as the file stores it". Each format now attaches its own wording:
  DM image tags, Velox metadata, the FEI extended header at the offset
  mrcfile declares, the Velox XML or the FEI header of a TIFF.
- Velox detector: "read from BinaryResult.Detector; RosettaSciIO names
  some detectors from another field".
- MRC camera length: "shown as stored; the instrument mode is not
  checked, as no published reader decodes it".

The public names stay (unvalidatedNote, veloxUnvalidated); the new
names noPublishedReaderNote, storedScaleNote and veloxStoredScale are
aliases of the same strings. Only note text changes; no value moves.
tools/acq-metadata/generate.py applies the same wording to the pinned
app output, so a regeneration reproduces the pins.

Done: notes reworded, tests pin the new texts. Next: consumers re-pin
their snapshot tests when they update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reason: the readers now word their notes as plain facts instead of
"unvalidated" (previous commit). The six pins files hold the pinned app
output, notes included; only the note strings (and the TIFF source line
that embeds the Velox scale note) change. No number, key or value
moves. tools/acq-metadata/generate.py now applies the same wording, and
a check of its mapping against the old pins reproduces these files
exactly. Tests/Fixtures/README.md: the size column of the six files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Paullo9 Paullo9 self-assigned this Nov 1, 2026
@Paullo9
Paullo9 enabled auto-merge (squash) November 1, 2026 16:11
@Paullo9
Paullo9 merged commit c9b6387 into main Nov 1, 2026
7 checks passed
@Paullo9
Paullo9 deleted the issue-unvalidated-notes branch November 1, 2026 16:27
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