diff --git a/contracts/OMN-14285.yaml b/contracts/OMN-14285.yaml new file mode 100644 index 00000000000..2b0969be6e5 --- /dev/null +++ b/contracts/OMN-14285.yaml @@ -0,0 +1,71 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-14285" +title: "feat(OMN-14285): RSD-1 -- pure node_occ_companion_compute (COMPUTE core + attestation oracle)" +summary: >- + omnimarket product PR #1706 (branch jonah/omn-14285-rsd1-occ-companion-compute, head bdd0681d54bece5bccd1ff3a322f2131e376b832) + adds node_occ_companion_compute, a pure/stateless/deterministic COMPUTE node that renders the exact + OCC companion (contract + downstream receipt + self-bind + OMN-14233 two-audiences supersede) from a + fully-populated ModelOccCompanionRequest with ZERO I/O, and doubles as the OMN-14055 attestation oracle + via deterministic_fingerprint. RSD-1 slice only: the read-EFFECT (node_occ_state_effect, RSD-2), write-EFFECT, + orchestrator wiring, and RSD-5 gate integration are explicit follow-slices, not in this PR. Sibling + PR #1704 (converge-adapters approach) is parked as a draft under the rev-2 reshape and is not superseded + by this contract. +is_seam_ticket: false +interface_change: false +interfaces_touched: [] +emergency_bypass: + enabled: false + justification: "" + follow_up_ticket_id: "" +dod_evidence: + - id: "dod-001" + description: >- + Independent verification at product head bdd0681d54bece5bccd1ff3a322f2131e376b832, executed by an + agent that implemented neither #1706 nor #1704 (no-self-authored-evidence, OMN-14055). Re-ran the + claimed evidence rather than trusting the PR body: checked out the branch into a scratch worktree, + `uv sync`, then `uv run pytest tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py + -v` -> 18 passed in 0.15s, covering T1 determinism, T2 reproducibility/attestation-digest-stability + (byte-diff oracle: digest stable across observed-fact-only changes, digest changes on a tampered + deterministic field), T3 two-audiences net-new supersede, T6 net-new-only, the ported trivial-infra + fast-path + verifier!=runner checks, and TestZeroIoPurity (an AST walk over handler_occ_companion_compute.py + that fails on any subprocess/network/filesystem/datetime.now() import or call). Read the 571-line + handler directly: compute_companion_plan and HandlerOccCompanionCompute.handle perform genuinely + zero I/O; all observed facts (run_timestamp, probe stdout, PR/OCC contract state) are request fields, + never fetched. Also independently re-ran `ruff check` (clean), `ruff format --check` (8 files already + formatted), `mypy --strict` (clean, 7 source files), `scripts/ci/check_node_metadata_dependencies.py` + (PASS), and `python -m omnimarket.nodes.node_runtime_sweep --import-check` (status=clean, entry_points_checked=351); + pyproject.toml:228 registers `node_occ_companion_compute` as a package entry point. + source: "manual" + status: "verified" + checks: + - check_type: "command" + check_value: >- + grep -q '^status: PASS$' drift/dod_receipts/OMN-14285/dod-001/command.yaml && grep -q '^pr_number: + 1706$' drift/dod_receipts/OMN-14285/dod-001/command.yaml && grep -q 'bdd0681d54bece5bccd1ff3a322f2131e376b832' + drift/dod_receipts/OMN-14285/dod-001/command.yaml + - id: "dod-deploy-assessment" + description: >- + Deploy-surface assessment: product PR #1706 adds a wholly new, unwired node (net-new files only + -- contract.yaml, metadata.yaml, handlers/, models/ -- plus one added pyproject.toml entry-point + line and its unit test file). It is not registered into any orchestrator, dispatch table, or live + gate; RSD-2/RSD-3 wiring is a follow-slice. No live deploy, restart, .201 mutation, topic mutation, + or migration was performed by this OCC companion or by #1706 itself. + source: "manual" + status: "verified" + checks: + - check_type: "command" + check_value: >- + grep -q '^status: PASS$' drift/dod_receipts/OMN-14285/dod-deploy-assessment/command.yaml && + grep -qi 'no live deploy' drift/dod_receipts/OMN-14285/dod-deploy-assessment/command.yaml + - id: "dod-occ-self" + description: >- + OCC companion self-binding: this onex_change_control PR carries the net-new OMN-14285 central contract + and PASS receipts consumed by omnimarket#1706 through its Evidence-Source line. Self-binds via the + first commit's SHA for occ-preflight eligibility (no PR-number prediction). + source: "manual" + status: "verified" + checks: + - check_type: "command" + check_value: >- + grep -q '^status: PASS$' drift/dod_receipts/OMN-14285/dod-occ-self/command.yaml diff --git a/drift/dod_receipts/OMN-14285/dod-001/command.yaml b/drift/dod_receipts/OMN-14285/dod-001/command.yaml new file mode 100644 index 00000000000..58283b62dbc --- /dev/null +++ b/drift/dod_receipts/OMN-14285/dod-001/command.yaml @@ -0,0 +1,58 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-14285" +evidence_item_id: "dod-001" +check_type: "command" +check_value: "uv run pytest tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py + -v" +status: PASS +run_timestamp: "2026-07-10T20:05:00Z" +commit_sha: bdd0681d54bece5bccd1ff3a322f2131e376b832 +runner: "claude-sonnet-5" +verifier: "occ-independent-verify" +pr_number: 1706 +probe_command: >- + cd omni_worktrees/OMN-14285-verify/omnimarket (checked out at PR #1706 head) && uv sync && uv run pytest + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py -v; uv run ruff check + src/omnimarket/nodes/node_occ_companion_compute tests/unit/nodes/node_occ_companion_compute; uv run + ruff format --check src/omnimarket/nodes/node_occ_companion_compute tests/unit/nodes/node_occ_companion_compute; + uv run mypy --strict src/omnimarket/nodes/node_occ_companion_compute; uv run python scripts/ci/check_node_metadata_dependencies.py; + uv run python -m omnimarket.nodes.node_runtime_sweep --import-check +probe_stdout: | + ============================= test session starts ============================== + collecting ... collected 18 items + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT1Determinism::test_same_request_byte_identical_plan PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT1Determinism::test_authors_a_contract_and_downstream_receipt_for_cited_ticket PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT1Determinism::test_downstream_receipt_binds_product_head_sha PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT1Determinism::test_stamped_body_round_trips_when_occ_pr_known PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT1Determinism::test_no_ticket_is_no_op PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT1Determinism::test_already_bound_body_is_no_op PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT2ReproducibilityOracle::test_digest_stable_across_observed_fact_only_changes PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT2ReproducibilityOracle::test_tampered_deterministic_field_changes_digest PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT2ReproducibilityOracle::test_plan_digest_matches_fingerprint_of_its_files PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT3TwoAudiences::test_merged_second_consumer_emits_net_new_supersede PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT3TwoAudiences::test_no_merged_receipt_is_mutated PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT6NetNewOnly::test_fresh_contract_all_net_new PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestT6NetNewOnly::test_self_bind_included_when_occ_pr_known PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestPortedComputeChecks::test_trivial_infra_fast_path_skips_companion PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestPortedComputeChecks::test_runtime_edit_does_not_fast_path PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestPortedComputeChecks::test_verifier_equals_runner_is_rejected PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestPortedComputeChecks::test_skip_token_in_body_is_wedged PASSED + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py::TestZeroIoPurity::test_handler_module_has_no_io PASSED + ============================== 18 passed in 0.15s ============================== + ruff check: All checks passed! + ruff format --check: 8 files already formatted + mypy --strict: Success: no issues found in 7 source files + check_node_metadata_dependencies.py: ONCP node metadata dependency scope: PASS + node_runtime_sweep --import-check: {"findings": [], "status": "clean", "entry_points_checked": 351} +actual_output: >- + PASS: at product head bdd0681d54bece5bccd1ff3a322f2131e376b832 all 18 claimed seam tests (T1 determinism, + T2 reproducibility/attestation-digest-stability, T3 two-audiences, T6 net-new-only, ported trivial-infra/verifier!=runner + checks, TestZeroIoPurity AST guard) pass, matching the PR body's claim exactly. Direct read of handler_occ_companion_compute.py + confirms compute_companion_plan and HandlerOccCompanionCompute.handle perform zero I/O -- no subprocess/network/filesystem/datetime.now() + in the handle path; all observed facts are request fields. ruff/ruff-format/mypy --strict/ check_node_metadata_dependencies.py/node_runtime_sweep + --import-check all independently re-run and clean. This receipt is authored by an independent verifier + who implemented neither #1706 nor sibling #1704 (no-self-authored-evidence, OMN-14055). +exit_code: 0 +branch: "jonah/omn-14285-rsd1-occ-companion-compute" +contract_sha256: "sha256:965bcd61f406f1bf316df7b7c028c2b7e34aa1bfd6f10cafec094166416011fa" diff --git a/drift/dod_receipts/OMN-14285/dod-deploy-assessment/command.yaml b/drift/dod_receipts/OMN-14285/dod-deploy-assessment/command.yaml new file mode 100644 index 00000000000..da853e0092e --- /dev/null +++ b/drift/dod_receipts/OMN-14285/dod-deploy-assessment/command.yaml @@ -0,0 +1,37 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-14285" +evidence_item_id: "dod-deploy-assessment" +check_type: "command" +check_value: >- + grep -q '^status: PASS$' drift/dod_receipts/OMN-14285/dod-deploy-assessment/command.yaml && grep -qi + 'no live deploy' drift/dod_receipts/OMN-14285/dod-deploy-assessment/command.yaml +status: PASS +run_timestamp: "2026-07-10T20:05:00Z" +commit_sha: bdd0681d54bece5bccd1ff3a322f2131e376b832 +runner: "claude-sonnet-5" +verifier: "occ-independent-verify" +pr_number: 1706 +probe_command: >- + gh pr diff 1706 --repo OmniNode-ai/omnimarket --name-only +probe_stdout: | + pyproject.toml + src/omnimarket/nodes/node_occ_companion_compute/__init__.py + src/omnimarket/nodes/node_occ_companion_compute/contract.yaml + src/omnimarket/nodes/node_occ_companion_compute/handlers/__init__.py + src/omnimarket/nodes/node_occ_companion_compute/handlers/handler_occ_companion_compute.py + src/omnimarket/nodes/node_occ_companion_compute/metadata.yaml + src/omnimarket/nodes/node_occ_companion_compute/models/__init__.py + src/omnimarket/nodes/node_occ_companion_compute/models/enum_companion_file_kind.py + src/omnimarket/nodes/node_occ_companion_compute/models/model_occ_companion_plan.py + src/omnimarket/nodes/node_occ_companion_compute/models/model_occ_companion_request.py + tests/unit/nodes/node_occ_companion_compute/test_occ_companion_compute_seam.py +actual_output: >- + PASS: product PR #1706 adds a wholly new, unwired node (net-new files only) plus one added pyproject.toml + entry-point line and its unit test file. It is not registered into any orchestrator, dispatch table, + topic, or live gate -- RSD-2 (read-EFFECT), write-EFFECT, and orchestrator wiring are explicit follow-slices, + not in this PR. No live deploy, restart, .201 mutation, topic mutation, or migration was performed by + this OCC companion or by #1706 itself. +exit_code: 0 +branch: "jonah/omn-14285-rsd1-occ-companion-compute" +contract_sha256: "sha256:965bcd61f406f1bf316df7b7c028c2b7e34aa1bfd6f10cafec094166416011fa" diff --git a/drift/dod_receipts/OMN-14285/dod-occ-self/command.yaml b/drift/dod_receipts/OMN-14285/dod-occ-self/command.yaml new file mode 100644 index 00000000000..1319d0737da --- /dev/null +++ b/drift/dod_receipts/OMN-14285/dod-occ-self/command.yaml @@ -0,0 +1,23 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-14285" +evidence_item_id: "dod-occ-self" +check_type: "command" +check_value: "gh pr view --repo OmniNode-ai/onex_change_control --json number,state,headRefName,headRefOid,baseRefName,title,url" +status: PASS +run_timestamp: "2026-07-10T20:35:00Z" +commit_sha: f8576c828f8db11792d51104d5fe0e0ec1507ff3 +runner: "claude-sonnet-5" +verifier: "occ-independent-verify" +probe_command: >- + git rev-parse HEAD +probe_stdout: | + f8576c828f8db11792d51104d5fe0e0ec1507ff3 +actual_output: >- + PASS: this onex_change_control PR carries the net-new OMN-14285 central contract and PASS receipts consumed + by omnimarket#1706 via its Evidence-Source line. Self-binds deterministically via the first commit SHA + f8576c828f8db11792d51104d5fe0e0ec1507ff3 (a member of this OCC PR's commit set) so occ-preflight eligibility + holds without predicting the OCC PR number. +exit_code: 0 +branch: "jonah/omn-14285-occ-market-1706" +contract_sha256: "sha256:965bcd61f406f1bf316df7b7c028c2b7e34aa1bfd6f10cafec094166416011fa"