Repository navigation
Add a public portable audit API and offline SV replay CLI - #455
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sid audit evidence can now be preserved, moved and replayed from an installed Isovar package without the original machine paths or a repository/LLM session. The public
AuditBundlePython API andisovar audit-bundle/isovar-audit-bundleCLI create and verify manifests, pack/restore tar.gz backups, import existing Sid regional inputs and replay structured SV RNA plans offline. Generic file bundles and documented replay plans support other datasets too.Original receipts and reconstruction bytes are retained. Runtime files resolve through logical names; complete replay output is compared with the frozen reconstruction. Changed inputs, software identities, misspelled plans and corrupt resume checkpoints fail explicitly. Incomplete/unassessable outcomes and product/geometry/orientation identities remain visible. The implementation calls the existing reconstruction engine and does not add a consequence model or a second small-variant pipeline.
The selected Sid inputs are preserved in three movable bundles: 239 focused vaccine/control files, 535 additions files (including eight pinned annotation files), and 34 dense-control files. Their 60 completed SV views, frozen manifests, archive identities and installed-wheel proof are documented in the preservation report. All three backups total 2.02 GiB and remain in durable local storage; no whole RNA library was downloaded. API/CLI guide.
Validation:
./lint.sh,git diff --checkand all 5,794 tests pass. Real original-read regressions restore after deleting the original directory, preserve the expected PARD3B sequence/four full-ORF witnesses and acquisition limitations, and reject archive/input/checkpoint corruption. A clean built wheel installed in a separate environment ran outside the checkout with Python isolated mode and networking blocked: it restored the real focused archive, exactly reproduced the entire ONT T2 TPST1–CRCP reconstruction (172 full-interval fragments / 139 barcode labels), and resumed through the installed CLI. Native result tuples are normalized at the JSON checkpoint boundary. Import verifies repeated annotation pins once per unique file while still enforcing expected pins during copying, avoiding the measured 1.74 TB of redundant hashing.Shipped: merged at
5bfd7b5649cffc03b257ded87f793c9e9cb2fd57and Isovar 1.45.2 is live on PyPI. CI is green on Python 3.9, 3.10 and 3.11. The required clean-master./deploy.shpassed lint and all 5,794 tests, verified both published artifact hashes and pushedv1.45.2at the merged commit. A normal PyPI install into the isolated environment passed the source/dependency identity check and resumed the exact frozen result through the public Python API and installed CLI outside the checkout, with Python networking blocked. The wheel guard also detected an obsolete module inherited from an existing developerbuild/lib; validation then used a clean checkout, consistent withdeploy.sh. That separate incremental-build problem is tracked in #454; existing developer build artifacts were preserved.Fixes #440.
Fixes #452.
Fixes #453.