3e6f609dda
Source governance schema: append-only source_approval table enforcing approval before ingestion. Dataset manifest hardened to support FROZEN state, requiring approval timestamps. Boundaries tested (6/6 passing). Server-side resolver (DapperApprovedModelContextReader) now guards both model and dataset approval. P2–P6 deferred: Dataset freeze command, maker-checker review, evaluation/proposal orchestration remain pending human decision package (source allow-list, license/SLA, metric versions, roles). No source/model seeded per CLAUDE.md governance. Migrations 0033–0034 idempotency verified fresh/upgrade/re-run on isolated test DB. AGENTS.md: Maturity (contract-first); Necessity (governance prerequisite). Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
797 B
797 B
AEG-X-009 Server-side VersionSet Resolver
Traceability
- WBS:
AEG-X-009 - Contract:
src/KArtSell.BuildingBlocks/Versioning/VersionSet.cs - Implementation:
src/KArtSell.Modules.ModelOperations/Infrastructure/DapperApprovedModelContextReader.cs - Test evidence:
evidence/AEG-X-009/versionset-resolver-boundary.trx
Change
The resolver now selects dataset manifests in APPROVED or FROZEN state only, requires dataset approval fields, and requires model registry approval fields. It continues to load all authoritative VersionSet values from the server-side database; client evidence/version values are not accepted.
Verification
Model Operations boundary tests: 6/6 passed
No dataset/model rows were seeded and no operation request or Shadow Run was created.