Skip to content

evidence(OMN-19970): bind each criterion to the tests that decide it - #11906

Merged
jonahgabriel merged 2 commits into
devfrom
lakshman/omn-19970-bind-ac-to-tests
Sep 30, 2026
Merged

jonahgabriel merged 2 commits into
devfrom
lakshman/omn-19970-bind-ac-to-tests

Conversation

@onexbot-occ-writer

@onexbot-occ-writer onexbot-occ-writer Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Binds each acceptance criterion of OMN-19970 to the omnimarket tests that decide it. The autobind companion bound all three to one check that counts def _publish in cli_seed.py, which proves a function exists and no criterion's behaviour, so the sweep could never read any of them as receipt-proven. Same shape as OMN-19997's onex_change_control#11828.

What changed

  • contracts/OMN-19970.yaml: three appended dod_evidence items, source: manual, each with binds_ac, an ac_bindings entry and a supersedes_ac_binding retiring the grep binding on dod-OmniNode-ai-omnimarket-pr-3082 for that label. No existing entry is edited.
    • ac1-seeding-twice-leaves-the-same-rows → AC1: tests/test_omn19970_dev_seed.py::test_seeding_twice_leaves_the_same_rows_all_labelled_fixture.
    • ac2-measured-savings-exclude-fixtures → AC2: test_metering_excludes_fixture_rows_unless_asked (SQLite) and test_summary_view_keeps_fixture_savings_out_of_the_measured_total (real PostgreSQL).
    • ac3-fixture-label-reaches-the-rows → AC3: test_seed_wire_messages_land_labelled_through_the_runner_seam and test_runner_labels_from_the_envelope_tag_and_defaults_to_real (real PostgreSQL).
  • drift/dod_receipts/OMN-19970/<item>/test_passes.yaml: one PASS receipt per item.
  • Not done: the grep bindings on the omnimarket#3103 and #3104 items are left alone; those PRs are open and not this change's.

How it was verified

  • Criterion hashes recomputed with onex_change_control.validation.ac_criteria.criterion_hash from the ticket's live criteria (read 2026-09-30 09:4xZ): all three match the hashes carried here.
  • Each item's exact check_value run on omnimarket dev 532ec1f53 (on .201, PostgreSQL 16 binaries on PATH, nothing skipped): 1 passed (AC1), 2 passed (AC2), 2 passed (AC3). Negative control: the same selection against 43cbc9035^ (the commit before omnimarket#3082 merged) fails to collect, 2 errors, pytest exit 4.
  • check_ac_binding_acceptance.py --ticket-bodies <live body>: exit 0. Control: binds_ac: AC9 is refused with ac_binding_unknown_criterion, exit 1.
  • check_receipt_hardening.py --paths-file0 <the 4 changed files>: exit 0. Control: a zeroed contract_entry_sha256 is refused as a mismatch, exit 1; restored byte-identical, exit 0.
  • check_contract_change_rebinds_receipts.py: self-test exit 0; gate "3 touched dod_evidence entr(ies) … every receipt bound to one of them re-verifies".
  • validator_occ_append_only --ticket-id OMN-19970: "No append-only violations".
  • AC3's exposure half: the lab readback on the lakshman lane (Runs exposure, 20 of 20 rows data_source: fixture) is posted on omnimarket#3082 and cited in the AC3 receipt. It is not a check here, because the hosted sweep cannot reach the lab lane.

Failure paths

n/a: this change adds evidence items and receipts; it writes no runtime receipt, verdict or report of its own.

Open defects

none

Local gates

  • No gate was bypassed — no --no-verify, no SKIP=, no --no-gpg-sign, no core.hooksPath override. Every pre-commit and pre-push hook ran.
  • Any hook that failed was fixed at the input, not worked around.

The one hook that failed on the first commit attempt, reject-deploy-gate-skip-token, failed on the laptop's Bash 3.2 ("requires Bash 4+"); it passed once Homebrew Bash 5.3 was first on PATH.

Not in this change

  • A readback check for AC3's exposure rows: the sweep cannot reach .201, so it would fail by construction.
  • Any edit to the autobind-generated items.

Evidence-Ticket: OMN-19970

Patel230 and others added 2 commits September 30, 2026 15:22
The autobind companion bound AC1, AC2 and AC3 to one check that counts
`def _publish` in cli_seed.py. That proves a function exists, not that a
second seed leaves the same rows, that fixture savings stay out of the
measured total, or that the label reaches the rows, so the sweep could
never read any criterion as receipt-proven.

Append one item per criterion, each bound to the omnimarket tests that
decide it and retiring the grep binding with supersedes_ac_binding, in the
shape of OMN-19997 (onex_change_control#11828). Receipts are real runs on
omnimarket dev 532ec1f53, the PostgreSQL tests on a real cluster; the same
selection fails to collect on 43cbc9035^. AC3's exposure half is the lab
readback on the lakshman lane, cited in its receipt, because the hosted
sweep cannot reach the lab.
@jonahgabriel
jonahgabriel enabled auto-merge (squash) September 30, 2026 10:09
@jonahgabriel
jonahgabriel merged commit f4b841d into dev Sep 30, 2026
87 checks passed
@jonahgabriel
jonahgabriel deleted the lakshman/omn-19970-bind-ac-to-tests branch September 30, 2026 10:33
@Patel230

Copy link
Copy Markdown
Contributor

Merged as f4b841d9d3. OMN-19970's three acceptance criteria are now each bound to the tests that decide them: seeding twice leaves the same rows, measured savings exclude fixtures, and the fixture label reaches the rows.

Thank you!

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