Skip to content

feat: Define post-publication consumer smoke receipt contract and fixtures - #167

Merged
StatPan merged 4 commits into
mainfrom
issue-166-define-post-publication-consumer-smoke-receipt-contract-and-fixtures
Jul 22, 2026
Merged

feat: Define post-publication consumer smoke receipt contract and fixtures#167
StatPan merged 4 commits into
mainfrom
issue-166-define-post-publication-consumer-smoke-receipt-contract-and-fixtures

Conversation

@StatPan

@StatPan StatPan commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Closes #166

Scope

  • Adds the consumer-owned post-publication Registry smoke receipt schema, offline contract fixtures, schema-first admission validation, and documentation.
  • No CLI smoke command, Hugging Face download/install, datapan init, doctor execution, rollback action, Registry checkout, Registry workflow, or CLI Registry pin change.

Verification

  • go test ./... passes locally.
  • CI run 29925805913 passed Go test on Ubuntu, macOS, and Windows.
  • Admission rejects minimal three-field payloads, unknown fields containing a secret, fixtures, malformed/future/stale timestamps, and ambiguous rollback shapes.

Regression CI boundary

  • The first PR-triggered Registry Journey run 29925366068 was canceled under the earlier conservative boundary before retained journey evidence was produced.
  • The current head passed existing Registry Journey regression CI on Ubuntu, macOS, and Windows in 29925806645. This is regression feedback for the pre-existing workflow only.
  • Neither Journey run is an observed datapan.registry-consumer-smoke-receipt.v1 receipt, Registry publication evidence, rollback proof, or parent goal Verify published Registry compatibility and emit rollback receipts #165 completion evidence.

Residual boundary

Actual observed receipt production/admission and rollback proof remain blocked until a named immutable published Registry revision and release assets are authorized.

@StatPan

StatPan commented Jul 22, 2026

Copy link
Copy Markdown
Owner Author

Decision

Decision — existing regression CI is not #166 smoke evidence

#166 does not add a Hugging Face execution path, public smoke command, or rollback action. The existing CLI-owned Registry Journey workflow remains a regression CI gate and may run for this PR after the current head is pushed.

Its outcome must not be treated as an observed datapan.registry-consumer-smoke-receipt.v1 receipt, Registry publication evidence, rollback proof, or completion of parent goal #165. It is only regression feedback for the already-existing journey.

The first run 29925366068 was canceled under the earlier conservative boundary before retained journey evidence was produced. The current head will use the existing CI policy without changing the workflow.

Context:

@StatPan

StatPan commented Jul 22, 2026

Copy link
Copy Markdown
Owner Author

Check

Self-review packet for ticket #166 and PR #167.

  • PR readiness: needs_revision
  • Finish ready: false
  • Blockers: draft
  • Diff summary: 8 files changed, +629/-0
    • docs/cli-contract.md: +24/-0
    • internal/cli/registry_consumer_smoke_receipt.go: +61/-0
    • internal/cli/registry_consumer_smoke_receipt_test.go: +240/-0
    • internal/cli/testdata/registry-consumer-smoke-receipt/compatible-fixture.json: +40/-0
    • internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-no-safe-target-fixture.json: +41/-0
    • internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-with-target-fixture.json: +40/-0
    • internal/datago/schema_files_test.go: +1/-0
    • schemas/datapan.registry-consumer-smoke-receipt.v1.schema.json: +182/-0
  • Acceptance mapping candidates:
    • Receipt schema and admission validator reject missing or mutable revision bindings, incomplete/unknown fields, invalid observation times, unredacted sensitive values, and ambiguous rollback outcomes. -> internal/cli/registry_consumer_smoke_receipt.go, internal/cli/registry_consumer_smoke_receipt_test.go, internal/cli/testdata/registry-consumer-smoke-receipt/compatible-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-no-safe-target-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-with-target-fixture.json, internal/datago/schema_files_test.go, schemas/datapan.registry-consumer-smoke-receipt.v1.schema.json
    • Offline fixtures are rejected by observed-evidence admission and cannot claim installation, doctor execution, compatibility, publication, or rollback completion. -> manual verification required
    • Synthetic observed test vectors (not fixtures or retained receipts) prove the schema requires either an immutable rollback target for a failed result or manual hold with explicit no-safe-target. -> internal/cli/registry_consumer_smoke_receipt_test.go, internal/cli/testdata/registry-consumer-smoke-receipt/compatible-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-no-safe-target-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-with-target-fixture.json, internal/datago/schema_files_test.go, schemas/datapan.registry-consumer-smoke-receipt.v1.schema.json
    • Documentation makes clear that this child performs no Hugging Face download/install, datapan init, public smoke, or rollback execution. -> internal/cli/registry_consumer_smoke_receipt.go, internal/cli/registry_consumer_smoke_receipt_test.go, internal/cli/testdata/registry-consumer-smoke-receipt/compatible-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-no-safe-target-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-with-target-fixture.json, schemas/datapan.registry-consumer-smoke-receipt.v1.schema.json
    • No Registry workflow, Registry checkout, or CLI registry pin is changed. -> internal/cli/registry_consumer_smoke_receipt.go, internal/cli/registry_consumer_smoke_receipt_test.go, internal/cli/testdata/registry-consumer-smoke-receipt/compatible-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-no-safe-target-fixture.json, internal/cli/testdata/registry-consumer-smoke-receipt/incompatible-with-target-fixture.json, schemas/datapan.registry-consumer-smoke-receipt.v1.schema.json
  • Risk areas: Go runtime code changed, documentation changed
  • Full diff: gh pr diff 167 --repo StatPan/datapan-cli

Reviewer notes:

  • Findings: none recorded by this self-review command.
  • Test gaps: verify local and CI evidence before finish.
  • Recommended action: continue normal review/check/finish flow.

Context:

@StatPan
StatPan marked this pull request as ready for review July 22, 2026 13:55
@StatPan
StatPan marked this pull request as draft July 22, 2026 13:56
@StatPan
StatPan marked this pull request as ready for review July 22, 2026 14:03
@StatPan
StatPan merged commit 72ddfa4 into main Jul 22, 2026
6 checks passed
@StatPan
StatPan deleted the issue-166-define-post-publication-consumer-smoke-receipt-contract-and-fixtures branch July 22, 2026 14:03
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.

Define post-publication consumer smoke receipt contract and fixtures

1 participant