Repository navigation
chore(OMN-19153): the emit daemon stops fanning out the retired omniclaude DoD-verify-completed spelling - #2882
Merged
jonahgabriel merged 15 commits intoSep 25, 2026
Conversation
…tion accepts Onex-Lane: jev-dod-producer-2 Onex-Session: e0ac582ced0a487f860f431365ab85f4
# Conflicts: # pyproject.toml # uv.lock
Onex-Lane: land-3959-1330 Onex-Session: 825bf9dc4dcf44d4ba2d44657d592eab
…l, and require the run window - Contract: the pure fold is no longer a handler_routing entry. With no event_model it was dispatched on the verdict topic beside the writer and failed every dispatch (22 validation errors for the request model), so each stored verdict was also dead-lettered, replayed five times and quarantined on the .201 dev lane (2026-09-24T22:56Z). Even with the bare dict accepted, a reducer's returned model becomes a projection intent the auto-wired applier has no effect for (RuntimeHostError, probed in-container). The writer calls the fold in-process. - Rule 7a: the dry-run decision moves from the writer into the pure fold (row=None); the writer persists only what the fold hands it. - A declined rehearsal reports rows_refused_by_ordering_guard=1 beside rows_upserted=0, so the runtime logs it as expected (OMN-18992) instead of the 'wrote zero rows' ERROR, and its apply counter does not score it as a silent write-path gap. Pinned against real Postgres. - ModelDodVerifyState.started_at/completed_at are required: no defaulted, construction-time window the projection would store as history. - make_completed_event drops its caller-supplied started_at: one source for the window. - The dod_verify contract's dry_run description says what a rehearsal does. Onex-Lane: dod-verdict-publisher-2779 Onex-Session: e0ac582ced0a487f860f431365ab85f4
…ease tag) into OMN-18901 Onex-Lane: jev-dod-producer-2 Onex-Session: e0ac582ced0a487f860f431365ab85f4
…rify-publishes-completed-event
…anged, so this branch passes the release-identity gate; #2874 lands first Onex-Lane: jev-dod-producer-2 Onex-Session: e0ac582ced0a487f860f431365ab85f4
…routed writer constructs as reachable The rule-7a projection split leaves the pure fold unrouted and runs it inside the writer. The missing-routing check read that as an undispatchable handler and flagged node_projection_dod_verdict. A routed module in the node's own package that imports AND calls the canonical class now proves reachability; an import alone, or a writer in another node, still fires. Onex-Lane: jev-dod-producer-2 Onex-Session: e0ac582ced0a487f860f431365ab85f4
…red DoD-verify-completed spelling Removes the registry rule, the contract publish entry and its externally consumed escape hatch, and the tests pinning them. The surviving spelling is node_dod_verify's own terminal. The two repos check each other's registries, so this lands first with a two-line transient drift carve-out; the omniclaude half lands second, and a follow-up removes the carve-out.
…d topic, which no contract publishes any more
✅ Architectural Review — PASSEDErrors: 0 What this checks
No architectural violations found. Static architectural lint — no model inference (OMN-14176). |
onexbot-occ-writer Bot
added a commit
to OmniNode-ai/onex_change_control
that referenced
this pull request
Sep 25, 2026
…nimarket#2882 The declared checks were executed for real in the OmniNode-ai/omnimarket checkout at the PR head by the product-repo OCC receipt runner, and the results written append-only into this companion. Producer-minted PENDING receipts are superseded by a net-new record; no existing receipt was edited. Ticket: OMN-16859 (AC3b) Onex-Workflow: OCC Receipt Runner Onex-Run: https://github.com/OmniNode-ai/omnimarket/actions/runs/36086681469
✅ Hostile Reviewer — PASSEDBlocking findings (critical/error): 0 Gate semantics
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524) |
…-duplicate-dod-verify-completed-omnimarket # Conflicts: # pyproject.toml # tests/test_omn18901_dod_verify_publishes_completed_event.py # uv.lock
onexbot-occ-writer Bot
pushed a commit
to OmniNode-ai/onex_change_control
that referenced
this pull request
Sep 25, 2026
…2882 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head 62f35e627536c656214af2357890b837af21d542.
onexbot-occ-writer Bot
added a commit
to OmniNode-ai/onex_change_control
that referenced
this pull request
Sep 25, 2026
…nimarket#2882 The declared checks were executed for real in the OmniNode-ai/omnimarket checkout at the PR head by the product-repo OCC receipt runner, and the results written append-only into this companion. Producer-minted PENDING receipts are superseded by a net-new record; no existing receipt was edited. Ticket: OMN-16859 (AC3b) Onex-Workflow: OCC Receipt Runner Onex-Run: https://github.com/OmniNode-ai/omnimarket/actions/runs/36119850360
jonahgabriel
pushed a commit
to OmniNode-ai/onex_change_control
that referenced
this pull request
Sep 25, 2026
…imarket#2882 (#11202) * evidence(OMN-19153): author OCC companion for OmniNode-ai/omnimarket#2882 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head 62f35e627536c656214af2357890b837af21d542. * evidence(OMN-19153): self-bind OCC#11202 + rebind contract_sha256 * evidence(OMN-16859): executed test_passes receipts for OmniNode-ai/omnimarket#2882 The declared checks were executed for real in the OmniNode-ai/omnimarket checkout at the PR head by the product-repo OCC receipt runner, and the results written append-only into this companion. Producer-minted PENDING receipts are superseded by a net-new record; no existing receipt was edited. Ticket: OMN-16859 (AC3b) Onex-Workflow: OCC Receipt Runner Onex-Run: https://github.com/OmniNode-ai/omnimarket/actions/runs/36119850360 --------- Co-authored-by: omnimarket-bot <bot@omninode.ai> Co-authored-by: onexbot-occ-writer[bot] <307849072+onexbot-occ-writer[bot]@users.noreply.github.com>
…ompleted-omnimarket
…d-verify kind The registry drops one event type (67 -> 66) that fanned out to one keyed topic, so published and enriched records go 70 -> 69 and keyed 68 -> 67.
…ompleted-omnimarket
jonahgabriel
deleted the
jonah/omn-19153-retire-duplicate-dod-verify-completed-omnimarket
branch
September 25, 2026 11:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
OMN-19153, omnimarket half. Two spellings of a DoD-verify-completed topic existed. The surviving one is
node_dod_verify's own terminal, whichnode_projection_dod_verdictstores. The omniclaude-namespace spelling had no consumer anywhere. On the.201dev lane it had high-watermark 0 and no consumer group. Its flat telemetry payload was incompatible with the verdict, and it carried aduty_criticaltier here that atelemetrywaiver in omniclaude contradicted. The decision is recorded on the ticket (AC-4) before any merge: the telemetry is deleted, not migrated.What changed
node_emit_daemon/registries/topics.yaml: the event type's fan-out rule is removed.node_emit_daemon/contract.yaml: the publish entry and the externally-consumed escape hatch are removed.durable_outbox.pydocstring: the example now names a topic that still exists..onex_state/dep_health_baseline.json: the orphan finding for the retired topic is removed, because no contract publishes it now.tests/test_omn19153_emit_daemon_drops_duplicate_dod_verify_topic.py, where each assertion has a positive control on the siblingdod.guard.fired.scripts/validation/event_registry_drift_baseline.txtgets a two-line transient carve-out. omnimarket's drift gate reads omniclaude's default branch, and omniclaude's projection gate reads omnimarketdev. So whichever half lands first is red against the other. This half lands first, and the carve-out keeps its own gate green until the omniclaude half lands. The follow-up PR removes it.Proof
Stacking and landing order
This branch is stacked on omnimarket#2779 (OMN-18901), so its diff includes #2779's commits until that lands. Order:
Not runtime-affecting on its own beyond the emit-daemon registry, which the daemon loads at start.
Evidence-Ticket: OMN-19153
Evidence-Source: OCC#11202