Skip to content

refactor(evidence): share inventory producer primitives - #95

Merged
Brad-Edwards merged 7 commits into
devfrom
94-REP-005-shared-inventory
Aug 19, 2026
Merged

refactor(evidence): share inventory producer primitives#95
Brad-Edwards merged 7 commits into
devfrom
94-REP-005-shared-inventory

Conversation

@doublewhy

Copy link
Copy Markdown

Plain-language summary

  • Context: feat(cli): verify offline evidence bundle integrity #93 introduces a generic offline integrity verifier, while existing CLI and CybORG producers already emit the same four-field inventory entries.
  • Problem: Producers duplicated byte-level inventory mechanics, and CybORG semantic verification did not first prove generic transitive integrity.
  • Fix: Add private simulator-free inventory primitives, preserve producer wrappers and exact bytes, and run generic integrity before backend-local semantic recomputation.

Issues closed

Closes #94

Verification

  • Focused inventory, generic-verifier, and CybORG reproduction suite: 67 passed.
  • Exact canonical JSON bytes and legacy media types are frozen for both current producer wrappers.
  • Generic tamper rejection is proven to occur before backend semantic parsing.
  • Ruff formatting/checks passed; strict mypy passed across 87 source files.
  • Repository policy, REP-005 requirement governance, identity policy, ADR immutability, 40 tooling tests, and all five optional-extra typecheck lanes passed under Python 3.12.
  • The macOS ARM canonical base lane reached 491 passed / 21 skipped, then reproduced an existing parent-branch CybORG source-snapshot test failure; the same test fails unchanged on feat(cli): verify offline evidence bundle integrity #93. Authoritative Ubuntu CI remains required after retargeting.
  • git diff --check passed.

Merge order

ADR boundary

ADR-002 permits shared mechanical plumbing but keeps RAES and backend modules authoritative. The new private module imports no simulator or RAES contract and defines no schema, protocol, aggregate, privacy rule, semantic check, or scientific claim. ADR-003's single-distribution boundary remains unchanged.

Base automatically changed from 92-REP-005-offline-bundle-verifier to dev August 14, 2026 19:30
@Brad-Edwards

Copy link
Copy Markdown
Collaborator

Required before merge:

  • Merge current dev into this branch and retain the hardened verifier, command-dispatch, and verifier-test implementations from feat(cli): verify offline evidence bundle integrity #93 when resolving the add/add conflicts; rerun the complete verification graph.
  • Pass the original CybORG bundle root to generic integrity verification before resolving it, so a root symlink remains rejected; add an end-to-end regression test.
  • Preserve the incumbent generic producer ordering. Sorting relative POSIX strings reorders cases such as a/b.json versus a-b.json and changes canonical inventory bytes; add a parity regression test.

The private, simulator-free helper boundary is otherwise consistent with the repository ADRs.

@Brad-Edwards
Brad-Edwards merged commit 0272949 into dev Aug 19, 2026
13 checks passed
@Brad-Edwards
Brad-Edwards deleted the 94-REP-005-shared-inventory branch August 19, 2026 04:20
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.

2 participants