diff --git a/contracts/OMN-13092.yaml b/contracts/OMN-13092.yaml index 4bdbfd154db..ff811f6833f 100644 --- a/contracts/OMN-13092.yaml +++ b/contracts/OMN-13092.yaml @@ -38,6 +38,22 @@ dod_evidence: grep -q '^status: PASS$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-13092/dod-omnimarket-pr-1201/command.yaml" && grep -q '^ticket_id: "OMN-13092"$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-13092/dod-omnimarket-pr-1201/command.yaml" && grep -q '^pr_number: 1201$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-13092/dod-omnimarket-pr-1201/command.yaml" + - id: "dod-emit-daemon-standalone-deploy" + description: >- + Deploy verification for the registry change: the emit daemon (the deployable runtime unit for topics.yaml) + was started standalone (no-kafka) from the omnimarket PR #1201 head via `python -m omnimarket.nodes.node_emit_daemon + start`, and both new event types were round-tripped through the real Unix socket with the EmitClient. + artifact.captured and tool.output.captured were accepted and queued; an under-specified artifact.captured + payload was rejected with the exact missing required fields — proving the daemon loads and enforces + the new registry entries at runtime. Full package-level runtime adoption (omnimarket release + plugin + venv update) is Phase 2a/3 of the OMN-13089 epic, not this ticket. + source: "manual" + status: "verified" + checks: + - check_type: "command" + check_value: >- + grep -q '^status: PASS$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-13092/dod-emit-daemon-standalone-deploy/command.yaml" + && grep -q '^ticket_id: "OMN-13092"$' "$CONTRACT_REPO_DIR/drift/dod_receipts/OMN-13092/dod-emit-daemon-standalone-deploy/command.yaml" - id: "dod-occ-pr" description: >- This OCC PR carries the central OMN-13092 contract and the dod receipts that the omnimarket and diff --git a/drift/dod_receipts/OMN-13092/dod-emit-daemon-standalone-deploy/command.yaml b/drift/dod_receipts/OMN-13092/dod-emit-daemon-standalone-deploy/command.yaml new file mode 100644 index 00000000000..3c2710a8a92 --- /dev/null +++ b/drift/dod_receipts/OMN-13092/dod-emit-daemon-standalone-deploy/command.yaml @@ -0,0 +1,32 @@ +--- +schema_version: "1.0.0" +ticket_id: "OMN-13092" +evidence_item_id: "dod-emit-daemon-standalone-deploy" +check_type: "command" +check_value: "cd /Users/jonah/Code/omni_home/omni_worktrees/OMN-13092/omnimarket && uv run python -m omnimarket.nodes.node_emit_daemon + start --socket-path .onex_state/omn13092-deploy-probe/emit.sock & sleep 4; EmitClient round-trip of + artifact.captured + tool.output.captured + under-specified rejection probe" +status: PASS +run_timestamp: "2026-06-12T00:00:00Z" +commit_sha: "4bf2a3a448b871e2761a7dbc343963ec96b09847" +branch: "jonah/omn-13092-capture-topics" +pr_number: 1201 +runner: "claude-omn-13092-phase0c-lane" +verifier: "receipt-gate-ci" +contract_sha256: "sha256:3d867c80b89ea1831d0246d839597bf826109737b9d4c79e07a5d0513d48073f" +probe_command: "uv run python -m omnimarket.nodes.node_emit_daemon start --socket-path /emit.sock + --pid-path /daemon.pid --spool-dir /spool; EmitClient(socket_path).health_sync(); emit_sync('artifact.captured', + {...}); emit_sync('tool.output.captured', {...}); emit_sync('artifact.captured', under-specified)" +probe_stdout: | + health: {'healthy': True, 'circuit_state': 'closed', 'consecutive_failures': 0, 'memory_queue_size': 0, 'spool_queue_size': 0, 'events_published': 0, 'events_dropped': 0, 'events_buffered': 0, 'last_publish_at': None, 'last_failure_at': None, 'circuit_opened_at': None, 'uptime_seconds': 2.414349, 'kafka_connected': True} + artifact.captured queued: 95d97bcf-c111-4e08-bf6c-547c80a9fa8c + tool.output.captured queued: dd37bcdf-47a0-4a00-bf72-5134adbedddd + under-specified payload rejected: Daemon rejected event: Missing required fields for artifact.captured: ['artifact_ref', 'artifact_hash', 'artifact_size_bytes', 'artifact_kind', 'source_system'] +actual_output: >- + The emit daemon started from omnimarket PR #1201 head in standalone (no-kafka) mode, loaded the updated + registries/topics.yaml, accepted and queued both new duty-critical event types over the real Unix socket, + and rejected an under-specified artifact.captured payload listing the exact missing required fields. + This proves the deployable daemon unit enforces the new registry entries at runtime. Package-level runtime + adoption (omnimarket release + plugin venv update) is parent-epic Phase 2a/3 scope. +exit_code: 0 +working_dir: "/Users/jonah/Code/omni_home/omni_worktrees/OMN-13092/omnimarket" diff --git a/drift/dod_receipts/OMN-13092/dod-occ-pr/command.yaml b/drift/dod_receipts/OMN-13092/dod-occ-pr/command.yaml index b3abbdb44bb..578c5c38b57 100644 --- a/drift/dod_receipts/OMN-13092/dod-occ-pr/command.yaml +++ b/drift/dod_receipts/OMN-13092/dod-occ-pr/command.yaml @@ -11,7 +11,7 @@ branch: "jonah/omn-13092-occ-receipt" pr_number: 2575 runner: "claude-omn-13092-phase0c-lane" verifier: "receipt-gate-ci" -contract_sha256: "sha256:c986afcbeef292d7e7ba28643b00d890e59f179c0664cfd0c38b1f35d09d36b3" +contract_sha256: "sha256:3d867c80b89ea1831d0246d839597bf826109737b9d4c79e07a5d0513d48073f" probe_command: "gh api repos/OmniNode-ai/onex_change_control/pulls/2575 --jq '.state'" probe_stdout: | open diff --git a/drift/dod_receipts/OMN-13092/dod-omnimarket-pr-1201/command.yaml b/drift/dod_receipts/OMN-13092/dod-omnimarket-pr-1201/command.yaml index 5a36abf97a2..a74e853516a 100644 --- a/drift/dod_receipts/OMN-13092/dod-omnimarket-pr-1201/command.yaml +++ b/drift/dod_receipts/OMN-13092/dod-omnimarket-pr-1201/command.yaml @@ -12,7 +12,7 @@ branch: "jonah/omn-13092-capture-topics" pr_number: 1201 runner: "claude-omn-13092-phase0c-lane" verifier: "receipt-gate-ci" -contract_sha256: "sha256:c986afcbeef292d7e7ba28643b00d890e59f179c0664cfd0c38b1f35d09d36b3" +contract_sha256: "sha256:3d867c80b89ea1831d0246d839597bf826109737b9d4c79e07a5d0513d48073f" probe_command: "uv run pytest tests/test_golden_chain_emit_daemon.py -q && uv run python -m omnimarket.validators.event_registry_drift --omniclaude-root $OMNI_HOME/omniclaude" probe_stdout: |