Skip to content

Reject alignment source dates that disagree with frozen inventories - #113

Merged
iskandr merged 1 commit into
mainfrom
fix/alignment-inventory-modification-date
Oct 6, 2026
Merged

iskandr merged 1 commit into
mainfrom
fix/alignment-inventory-modification-date

Conversation

@iskandr

@iskandr iskandr commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Remote header inspection and regional read acquisition now reject a BAM whose HTTP Last-Modified date disagrees with the numeric timestamp in its frozen inventory. Previously, an object replaced before the first request could pass when its size was unchanged. The same check rejects mismatched dates in cached header/read receipts, including legacy receipts, without network access or rewriting provenance.

The comparison shares the whole-file downloader's logic and existing one-second tolerance. New header and regional receipts expose inventory_modification: matched, inventory_timestamp_unavailable, or last_modified_unavailable. Missing timestamp evidence retains the documented available-evidence policy; malformed server dates and nonfinite numeric inventory times raise IntegrityError. Public acquisition signatures and scientific/read-filter behavior stay unchanged.

Validation: lint passes; 416 tests pass, with 17 optional consumer tests skipped locally and covered by the consumer CI jobs. Regression tests serve actual BAM bytes from a local HTTP server, exercise inspection/extraction/linked-read recovery, reject mismatches in both directions before GET, preserve exact matching records and multiplicity, and reject mismatched cached receipts offline. Strict documentation build and wheel/sdist build pass. Version: 0.15.5.

This is the source-identity prerequisite for the remaining targeted Sid SV recovery in openvax/isovar#436. Shipped at ded74a7eaac74f1cd9d617c2c2bf26a0c5644afc: CI is green on Python 3.9–3.14 and both consumer configurations, with documentation CI green. Clean-main release checks passed again; fresh wheel/sdist were published and both PyPI hashes verified. Osteosarc 0.15.5 is live, v0.15.5 points to the merged commit, and normal PyPI installation into the Sid recovery environment succeeds.

Fixes #112.

@iskandr
iskandr merged commit ded74a7 into main Oct 6, 2026
18 checks passed
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.

Alignment extraction does not enforce the snapshot inventory modification date

1 participant