Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions contracts/OMN-12848.yaml
Original file line number Diff line number Diff line change
@@ -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"
Original file line number Diff line number Diff line change
@@ -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"
22 changes: 22 additions & 0 deletions drift/dod_receipts/OMN-12848/dod-occ-pr/command.yaml
Original file line number Diff line number Diff line change
@@ -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"
Original file line number Diff line number Diff line change
@@ -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"
Loading