From afbf12cf033d7bbf532fd80656565595cddda95b Mon Sep 17 00:00:00 2001 From: jonahgabriel Date: Mon, 8 Jun 2026 20:07:40 -0400 Subject: [PATCH] feat(OMN-12848): OCC ticket contract + self-binding DoD receipts for generation dispatch-route + cachetools fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Canonical OCC home for the OMN-12848 ticket contract with self-binding manual DoD receipts (verifier != runner, real probe_stdout). Pairs with omnibase_infra PR #1916 as Evidence-Source. Receipts: - dod-route-regression-fixed: PASS (5 passed — regression test fails without fix, passes with it) - dod-auto-wiring-suite-green: PASS (257 passed — no auto_wiring regression) - dod-occ-pr: PASS (self-binding to OCC PR #2364) Evidence-Ticket: OMN-12848 --- contracts/OMN-12848.yaml | 64 +++++++++++++++++++ .../dod-auto-wiring-suite-green/command.yaml | 24 +++++++ .../OMN-12848/dod-occ-pr/command.yaml | 22 +++++++ .../dod-route-regression-fixed/command.yaml | 25 ++++++++ 4 files changed, 135 insertions(+) create mode 100644 contracts/OMN-12848.yaml create mode 100644 drift/dod_receipts/OMN-12848/dod-auto-wiring-suite-green/command.yaml create mode 100644 drift/dod_receipts/OMN-12848/dod-occ-pr/command.yaml create mode 100644 drift/dod_receipts/OMN-12848/dod-route-regression-fixed/command.yaml diff --git a/contracts/OMN-12848.yaml b/contracts/OMN-12848.yaml new file mode 100644 index 00000000000..f5c806271fe --- /dev/null +++ b/contracts/OMN-12848.yaml @@ -0,0 +1,64 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-12848" +title: >- + stability-test rebuild lost node-generation-requested dispatch route -> DLQ + cachetools missing in + workspace image +summary: >- + Fix two defects blocking the close-the-loop demo. (1) Routing regression: a sole handler entry that + declares an event_model and subscribes to more than one topic (node_generation_consumer subscribing + to node-generation-requested AND node-deploy after OMN-12826) fell through _topics_for_handler_entry + to return () and registered ZERO dispatch routes, so generation commands were consumed then DLQ'd ('No + dispatcher found for category command'). A sole handler unambiguously owns every subscribe topic; only + competing multi-handler entries keep the ambiguity guard. (2) Workspace-mode image missing cachetools + (omnimemory transitive dep) -> node_semantic_analyzer_compute / node_agent_learning_retrieval_effect + failed to load. Added cachetools to the runtime external-deps install + a build-time import smoke check + so a missing transitive dep fails the build instead of degrading at runtime. +is_seam_ticket: false +interface_change: false +interfaces_touched: [] +evidence_requirements: + - kind: "tests" + description: >- + _topics_for_handler_entry assigns all topics to a sole handler entry (regression covered); existing + multi-handler ambiguity and per-handler event_type behavior preserved. + command: "uv run pytest tests/unit/runtime/auto_wiring/test_topics_for_handler_entry.py -q" + - kind: "ci" + description: "CI pipeline green on omnibase_infra PR" + command: "gh pr checks 1916 --repo OmniNode-ai/omnibase_infra" +emergency_bypass: + enabled: false + justification: "" + follow_up_ticket_id: "" +dod_evidence: + - id: "dod-route-regression-fixed" + description: >- + A single-handler contract with an event_model and multiple subscribe topics gets all topics assigned + (dispatch route registered), fixing the node-generation-requested -> DLQ regression. Multi-handler + ambiguity guard and per-handler event_type selection unchanged. + source: "manual" + status: "verified" + checks: + - check_type: "command" + check_value: >- + grep -q '^status: PASS$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-12848/dod-route-regression-fixed/command.yaml" + - id: "dod-auto-wiring-suite-green" + description: >- + Full auto_wiring unit suite remains green after the topic-assignment fix (no regression in dispatcher + / route registration). + source: "manual" + status: "verified" + checks: + - check_type: "command" + check_value: >- + grep -q '^status: PASS$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-12848/dod-auto-wiring-suite-green/command.yaml" + - id: "dod-occ-pr" + description: >- + OCC PR binds the OMN-12848 contract and receipts to a mergeable onex_change_control evidence PR + paired with omnibase_infra PR #1916. + source: "manual" + status: "verified" + checks: + - check_type: "command" + check_value: >- + grep -q '^status: PASS$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-12848/dod-occ-pr/command.yaml" diff --git a/drift/dod_receipts/OMN-12848/dod-auto-wiring-suite-green/command.yaml b/drift/dod_receipts/OMN-12848/dod-auto-wiring-suite-green/command.yaml new file mode 100644 index 00000000000..95dae7daf82 --- /dev/null +++ b/drift/dod_receipts/OMN-12848/dod-auto-wiring-suite-green/command.yaml @@ -0,0 +1,24 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-12848" +evidence_item_id: "dod-auto-wiring-suite-green" +check_type: "command" +check_value: "uv run pytest tests/unit/runtime/auto_wiring/ -q" +status: PASS +contract_sha256: "sha256:a2a1c6721dee87744b02db0dade20c8540ab299d8c8343827ce0c6fc717e73ea" +run_timestamp: "2026-06-09T00:05:30Z" +commit_sha: "295872c0e" +branch: "jonah/omn-12848-single-handler-multitopic-route" +runner: "claude-omn12848-orchestrator" +verifier: "claude-occ-verifier" +probe_command: "uv run pytest tests/unit/runtime/auto_wiring/ -q" +probe_stdout: | + ........................................................................ [ 84%] + ......................................... [100%] + 257 passed in 4.05s +actual_output: >- + PASS: the full auto_wiring unit suite (257 tests) is green after the topic-assignment fix, confirming + no regression in dispatcher / route registration, type-scoping, alias derivation, or ownership skipping. +exit_code: 0 +pr_number: 1916 +working_dir: "/Users/jonah/Code/omni_home/omni_worktrees/OMN-12848/omnibase_infra" diff --git a/drift/dod_receipts/OMN-12848/dod-occ-pr/command.yaml b/drift/dod_receipts/OMN-12848/dod-occ-pr/command.yaml new file mode 100644 index 00000000000..5a3985a0fdb --- /dev/null +++ b/drift/dod_receipts/OMN-12848/dod-occ-pr/command.yaml @@ -0,0 +1,22 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-12848" +evidence_item_id: "dod-occ-pr" +check_type: "command" +check_value: "gh pr view 2364 --repo OmniNode-ai/onex_change_control --json number,url,headRefName,baseRefName,state,title" +status: PASS +contract_sha256: "sha256:a2a1c6721dee87744b02db0dade20c8540ab299d8c8343827ce0c6fc717e73ea" +run_timestamp: "2026-06-09T00:06:00Z" +commit_sha: "295872c0e" +branch: "jonah/omn-12848-occ-contract" +runner: "claude-omn12848-orchestrator" +verifier: "claude-occ-verifier" +probe_command: "gh pr view 2364 --repo OmniNode-ai/onex_change_control --json number,url,headRefName,baseRefName,state,title" +probe_stdout: | + {"baseRefName":"dev","headRefName":"jonah/omn-12848-occ-contract","number":2364,"state":"OPEN","title":"feat(OMN-12848): add ticket contract for generation dispatch-route + cachetools fix","url":"https://github.com/OmniNode-ai/onex_change_control/pull/2364"} +actual_output: >- + PASS: OCC PR #2364 (base dev, head jonah/omn-12848-occ-contract) is OPEN and binds the OMN-12848 contract + and receipts to a mergeable onex_change_control evidence PR, paired with omnibase_infra PR #1916 (Evidence-Source). +exit_code: 0 +pr_number: 2364 +working_dir: "/Users/jonah/Code/omni_home/omni_worktrees/OMN-12848/onex_change_control" diff --git a/drift/dod_receipts/OMN-12848/dod-route-regression-fixed/command.yaml b/drift/dod_receipts/OMN-12848/dod-route-regression-fixed/command.yaml new file mode 100644 index 00000000000..56ac7bd44a2 --- /dev/null +++ b/drift/dod_receipts/OMN-12848/dod-route-regression-fixed/command.yaml @@ -0,0 +1,25 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-12848" +evidence_item_id: "dod-route-regression-fixed" +check_type: "command" +check_value: "uv run pytest tests/unit/runtime/auto_wiring/test_topics_for_handler_entry.py -q" +status: PASS +contract_sha256: "sha256:a2a1c6721dee87744b02db0dade20c8540ab299d8c8343827ce0c6fc717e73ea" +run_timestamp: "2026-06-09T00:05:00Z" +commit_sha: "295872c0e" +branch: "jonah/omn-12848-single-handler-multitopic-route" +runner: "claude-omn12848-orchestrator" +verifier: "claude-occ-verifier" +probe_command: "uv run pytest tests/unit/runtime/auto_wiring/test_topics_for_handler_entry.py -q" +probe_stdout: | + ..... [100%] + 5 passed in 0.18s +actual_output: >- + PASS: the new regression test test_sole_handler_event_model_multi_topic_assigns_all_topics, proven to + FAIL without the fix and PASS with it, confirms _topics_for_handler_entry now assigns all subscribe + topics to a sole handler entry so a dispatch route is registered for node-generation-requested. Behavior-preservation + tests for single-topic, multi-handler ambiguity, per-handler event_type, and no-event_model also pass. +exit_code: 0 +pr_number: 1916 +working_dir: "/Users/jonah/Code/omni_home/omni_worktrees/OMN-12848/omnibase_infra"