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
51 changes: 51 additions & 0 deletions contracts/OMN-12471.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-12471"
title: "node_kafka_ingress_effect replaces kafka_runner.py daemon"
summary: >
Phase 2b / PR-5 of the SEA stack-vs-dev reconciliation. Replaces the bespoke src/pipeline/kafka_runner.py
daemon (its __main__, SIGINT/SIGTERM handlers, the for-msg KafkaConsumer/KafkaProducer loop, the three
inline onex.*.omnimarket.* topic literals, and the direct generate_with_retry call) with a contract-bound
EFFECT transport-adapter node. node_kafka_ingress_effect declares the full transport lifecycle as typed,
validated config (ModelKafkaIngressContract, extra=forbid): source_topic_ref + dead_letter topic_ref
resolved from src/pipeline/topics.py constants (never inline literals), consumer_group, offset_policy,
dedupe_key, invalid_message_handling, and first-class typed dead_letter + replay sub-models. The pure
map_ingress_envelope maps a validated external command envelope into ModelNodeGenerationRequestedCommand
and the handler republishes it onto the in-process bus as DEMO_REQUESTED_TOPIC. The node does NOT call
inference — zero httpx.post added; all config from the contract. Manually re-applied onto onex-self-extending-agent
origin/dev @ 0984678 (NOT cherry-picked from the abandoned OMN-12468 stack branches).
is_seam_ticket: false
interface_change: false
interfaces_touched: []
evidence_requirements:
- kind: "tests"
description: "onex-self-extending-agent PR #185 carries the ingress node, the kafka_runner.py deletion,
and unit + broker-gated integration tests."
command: "See drift/dod_receipts/OMN-12471/dod-sea-pr-185/command.yaml"
- kind: "manual"
description: "onex_change_control PR carrying this contract binds the central evidence publication."
command: "See drift/dod_receipts/OMN-12471/dod-occ-pr/command.yaml"
emergency_bypass:
enabled: false
justification: ""
follow_up_ticket_id: ""
dod_evidence:
- id: "dod-sea-pr-185"
description: >
onex-self-extending-agent PR #185 deletes src/pipeline/kafka_runner.py and adds node_kafka_ingress_effect
(contract-declared transport lifecycle, pure map_ingress_envelope, fail-closed mapping, no httpx,
no off-bus topic literals). Full suite green: uv run pytest tests/ -v (1211 passed, 15 skipped)
+ mypy --strict + ruff + pre-commit.
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-12471/dod-sea-pr-185/command.yaml
&& grep -q '^pr_number: 185$' drift/dod_receipts/OMN-12471/dod-sea-pr-185/command.yaml"
- id: "dod-occ-pr"
description: "onex_change_control publishes the OMN-12471 central contract and receipts."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-12471/dod-occ-pr/command.yaml"
20 changes: 20 additions & 0 deletions drift/dod_receipts/OMN-12471/dod-occ-pr/command.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-12471"
evidence_item_id: "dod-occ-pr"
check_type: "command"
check_value: "gh pr view 1992 --repo OmniNode-ai/onex_change_control --json number,headRefOid,headRefName,title,state,baseRefName"
contract_sha256: "sha256:a9a1da9e65e0dd5a41e4069135f3274f388c0985ebbd673f34d91861ef19ec15"
status: PASS
run_timestamp: "2026-05-31T11:32:35Z"
commit_sha: "9cb29f3c31e4719324d0837e0169035e46551d5f"
runner: "claude-code-subagent"
verifier: "manual-merge-sweep"
probe_command: "gh pr view 1992 --repo OmniNode-ai/onex_change_control --json number,headRefOid,headRefName,title,state,baseRefName"
probe_stdout: |
{"baseRefName":"dev","headRefName":"jonah/omn-12471-kafka-ingress-evidence","headRefOid":"9cb29f3c31e4719324d0837e0169035e46551d5f","number":1992,"state":"OPEN","title":"evidence(OMN-12471): bind node_kafka_ingress_effect proof"}
actual_output: "PASS: onex_change_control publishes the OMN-12471 central contract and receipts."
exit_code: 0
pr_number: 1992
branch: "jonah/omn-12471-kafka-ingress-evidence"
working_dir: "/Users/jonah/Code/omni_worktrees/kafka-ingress/onex_change_control"
27 changes: 27 additions & 0 deletions drift/dod_receipts/OMN-12471/dod-sea-pr-185/command.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-12471"
evidence_item_id: "dod-sea-pr-185"
check_type: "command"
check_value: "test ! -f src/pipeline/kafka_runner.py && test -f src/nodes/node_kafka_ingress_effect/handlers/handler_kafka_ingress.py
&& ! grep -rq 'httpx' src/nodes/node_kafka_ingress_effect/"
contract_sha256: "sha256:a9a1da9e65e0dd5a41e4069135f3274f388c0985ebbd673f34d91861ef19ec15"
status: PASS
run_timestamp: "2026-05-31T11:32:35Z"
commit_sha: "5b70998c6909f5a0c64631ebc859c50097277608"
runner: "claude-code-subagent"
verifier: "filesystem-probe + uv run pytest tests/ -v"
probe_command: "test ! -f src/pipeline/kafka_runner.py; test -f src/nodes/node_kafka_ingress_effect/handlers/handler_kafka_ingress.py;
grep -rn httpx src/nodes/node_kafka_ingress_effect/; uv run pytest tests/ -q"
probe_stdout: |
kafka_runner.py: DELETED (absent)
handler_kafka_ingress.py: PRESENT
no httpx in node_kafka_ingress_effect
1211 passed, 15 skipped
PR meta: {"baseRefName":"dev","headRefName":"jonah/sea-canon-kafka-ingress","headRefOid":"5b70998c6909f5a0c64631ebc859c50097277608","number":185,"state":"OPEN","title":"feat(OMN-12471): node_kafka_ingress_effect replaces kafka_runner.py daemon"}
actual_output: "PASS: onex-self-extending-agent PR #185 deletes kafka_runner.py, adds the contract-bound
node_kafka_ingress_effect with zero httpx, full suite green (1211 passed, 15 skipped)."
exit_code: 0
pr_number: 185
branch: "jonah/sea-canon-kafka-ingress"
working_dir: "/Users/jonah/Code/omni_worktrees/kafka-ingress/sea"
Loading