Add repository external reference pin guard#425
Conversation
|
@algora-pbc /claim #10 #425 Claim indexing follow-up: PR #425 is open, non-draft, CLEAN, and has a top-level /claim #10 line in the PR body. It adds the distinct repository external reference pinning guard for submodules, linked datasets, API sources, model weights, and external code/data references before DOI/citation publication or export bundle release. |
|
Hardening update pushed in 0445f37: floating version aliases such as latest, main, stable, and nightly no longer satisfy durable identifier requirements unless the reference also has checksum or DOI evidence. I added a regression that failed before the fix with release_repository_references == hold_repository_release and now passes. Validation refreshed locally: npm test (4 tests), npm run demo, npm run video, npm run check, ffprobe on demo.mp4, git diff --check, and sensitive-term scan returned no matches. |
|
Follow-up competitive hardening pass for the repository external reference pin guard. What changed:
Why this matters:
Validation:
|
|
Follow-up competitive hardening pass for the repository external reference pin guard. What changed in 0026dde:
Validation:
|
|
Follow-up competitive hardening pass for the repository external reference pin guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the repository external reference pin guard. What changed in
Why this matters:
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the repository external reference pin guard. What changed in
Why this matters:
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the repository external reference pin guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the repository external reference pin guard. What changed in
Why this matters:
Validation refreshed locally:
|
|
Hardening update pushed in This closes a release-gate gap where malformed checksum or DOI fields could be ignored when another durable identifier was valid. The guard now emits explicit Fresh validation from
This remains non-overlapping with #407: #425 focuses on immutable external reference/citation evidence for release and export bundles, while #407 covers component-owner approval quorum. |
|
Pushed an additional hardening commit: What changed:
Fresh verification:
|
|
Pushed a focused hardening commit for the reference manifest edge case: Fresh verification from |
/claim #10 ## Summary - Adds
repository-external-reference-pin-guard/, a focused issue #10 Project Repository & Version Control slice. - Validates repository releases and export bundles that depend on Git submodules, linked datasets, API snapshots, model weights, or external code/data references. - Blocks DOI publication/export when references are floating, authenticated-only, stale, future-dated, missing verification evidence, invalid placeholder checksum or DOI evidence, or missing checksum/parseable DOI/non-floating immutable version evidence. - Blocks malformed supplied checksum/DOI metadata even when another durable identifier is present, preventing poisoned integrity or citation fields from slipping into export packets. - Stages metadata-only revision when immutable references still lack license or attribution metadata. - Emits deterministic JSON, Markdown, SVG, and MP4 reviewer artifacts with SHA-256 audit digests. ## Hardening Updateseferences manifests now emit MALFORMED_REFERENCE_MANIFEST blockers plus
epair_reference_manifest:* actions instead of being treated as clean empty audits.- Invalid checksum placeholders such as
pendingno longer count as durable identifier or API snapshot evidence. - Invalid DOI placeholders such aspendingno longer count as durable identifier evidence for linked datasets or model weights. - Truncated SHA checksum values such assha256:abcdefno longer count as API snapshot evidence; checksum validation now requires algorithm-specific hex lengths. - Malformed checksum/DOI fields now emit explicit evidence-repair blockers even when another durable identifier is valid. - All-zero Git commit placeholders are now rejected as unpinned Git references instead of being accepted as immutable release evidence. - Floating version aliases such aslatest,main,stable, andnightlyno longer satisfy durable identifier requirements unless the reference also has checksum or DOI evidence. - Future-dated verification timestamps are treated as stale evidence requiring refresh. - Future-dated API snapshots do not count as pinned snapshot evidence. - Otherwise pinned references without verification timestamps now block release until verification evidence is refreshed. ## Non-overlap This is scoped to immutable external reference pins and exportable citation evidence for submodules, linked datasets, API sources, model weights, and external code/data pointers. It does not duplicate the broad repository ledger, release engine, structured diff/rollback, provenance attestation, release embargo, notebook replay, schema migration, citation impact, API/export verifier, merge queue, environment drift, access review, DOI tombstone, metadata readiness, branch hypothesis lineage, sensitive-artifact, dependency-license, legal-hold, component-owner approval, restore rehearsal, compute sandbox, or semantic version-tag slices. ## Validation - Wrote failing tests first. Latest red regression failed before implementation withrelease_repository_referencesinstead ofhold_repository_releasefor a packet carrying truncated checksum evidence and a placeholder DOI while other identifiers were valid. - Added explicitINVALID_CHECKSUM_EVIDENCEandINVALID_DOI_EVIDENCEblockers plusrepair_reference_evidence:*actions. -npm testfromrepository-external-reference-pin-guardpassed: 13 tests. -npm run checkfromrepository-external-reference-pin-guardpassed: JS syntax checks and Python compile check. -npm run demoregenerated deterministic JSON/Markdown/SVG reviewer artifacts with expected blocked/clean/warning statuses. -npm run videoregeneratedreports/demo.mp4. -ffprobeverifiedrepository-external-reference-pin-guard/reports/demo.mp4as H.264, 1280x720, 24 fps, 7.5s, 53,699 bytes. - Parsed all JSON reviewer reports successfully; blocked/clean/warning packets reported 7/0/2 findings with SHA-256 audit digests. -git diff --checkandgit diff --cached --checkpassed; only Windows line-ending normalization warnings appeared. - Sensitive-term scan ofrepository-external-reference-pin-guardreturned no matches. - GitHub PR merge state after push:CLEAN. - Added a red regression for object-shaped reference manifests; before the fix it returnedrelease_repository_referencesinstead ofhold_repository_release.npm testfromrepository-external-reference-pin-guardpassed: 15 tests.npm run check,npm run demo, andnpm run videopassed after the manifest hardening.malformed-manifest-packet.jsonreportshold_repository_release, oneMALFORMED_REFERENCE_MANIFESTfinding, and digestcd76d8b327ff.ffprobeverifiedreports/demo.mp4as H.264, 1280x720, 24 fps, 7.5s, 68,232 bytes.git diff --check,git diff --cached --check, allowlist staging, and restricted-string scan passed.Safety Synthetic data only. No external repositories, live APIs, DOI registries, object stores, credentials, private research data, identity providers, payment systems, or private services are contacted. AI-assisted with OpenAI Codex; I reviewed and locally verified the diff before submitting.