Skip to content

fix(registry): parse-integrity invariants + honest staleness (#68) - #87

Merged
huiyu merged 1 commit into
3.0from
fix/68-registry-integrity
Aug 24, 2026
Merged

fix(registry): parse-integrity invariants + honest staleness (#68)#87
huiyu merged 1 commit into
3.0from
fix/68-registry-integrity

Conversation

@huiyu

@huiyu huiyu commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Fifth fix off the 3.0 audit — #68 correctness.

  • parseRegistryFile now enforces kind-match, id-uniqueness, and revision presence (it previously accepted a test-case in the product-use-case file, duplicate IDs, and revision-less assets as valid).
  • staleness — missing comparison evidence is now unknown, and an empty binding is uncovered; only fully-matched revisions are covered (previously a bound axis with no current revision falsely read covered).

28 registry tests; full suite + generated-drift green. Base 3.0. Resolves the PR #81 registry and staleness threads.

Relates to #68

Addresses the #68 correctness findings from the external review of PR #81.

- **registry.mjs** parseRegistryFile now enforces the identity invariants it
  skipped: every asset's kind must match the file's kind (no test-case in the
  product-use-case file), IDs are unique within a file, and a canonical asset
  must carry its content-hash revision (in addition to the existing
  revision-match check).
- **staleness.mjs** missing comparison evidence is no longer reported as
  covered: a bound axis with no current revision is `unknown` (not `covered`),
  and a result that bound nothing is `uncovered`. Only a full set of matching
  bound/current revisions is `covered`.
- Tests for kind-mismatch / duplicate-id / missing-revision and for
  unknown/uncovered staleness; corrected the prior test that encoded the
  false-covered behavior.

Relates to #68. Resolves the PR #81 registry and staleness threads.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KwyFyRC6pepaK6DuMK7YeT
@huiyu
huiyu merged commit ecf7bd5 into 3.0 Aug 24, 2026
1 check 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.

1 participant