Repository navigation
fix(OMN-20074): drop the onex_change_control boundary from the kafka manifest - #1972
Merged
Merged
Conversation
Remove the boundary onex.evt.onex-change-control.contract-drift-detected.v1 (producer_repo onex_change_control, consumer_repo omniclaude) from src/omnibase_core/contracts/boundaries/kafka_boundaries.yaml. The packaged manifest now holds 5 boundaries. Why: the only producer of that topic is onex_change_control's own check_drift emitter; omniclaude holds only a topic constant (src/omniclaude/hooks/topics.py) with no subscriber; no omnimarket node produces it. With onex_change_control absent from the repos root the parity handler exited 1 with "producer file missing: onex_change_control/src/onex_change_control/nodes/node_contract_drift_effect/contract.yaml". tests/unit/handlers/test_handler_boundary_parity.py: replaced the hash pin to the onex_change_control manifest with three tests: - the packaged manifest names no onex_change_control repo (5 entries) - the packaged manifest exits 0 on a repos root with no onex_change_control - a control entry produced by onex_change_control exits 1 with the producer-file-missing error tests/fixtures/occ_boundaries/manifest.yaml: dropped kafka_boundaries_parsed_sha256 (the migration inventory hash is kept). handler_boundary_parity.load_manifest_yaml docstring no longer says byte-for-byte OCC manifest. ci.yml is NOT changed here: its validate-boundaries pin still points at an older sha whose packaged manifest still has the boundary, so dropping onex_change_control from its repos list waits for a pin bump to this commit's merge sha.
…s/OMN-20074.yaml PR #1972. repo-evidence / dod-verify failed because every bound evidence item was carried unchanged from the merge base. Appended AC46 and dod-omn-20074-ac46-pr1972 to contracts/OMN-20074.yaml, preserving all inherited requirements and dod_evidence. Bound the existing three boundary-removal tests and a hosted deploy command loading the packaged manifest and asserting five boundaries without onex_change_control. The focused head tests pass.
jonahgabriel
added a commit
that referenced
this pull request
Oct 14, 2026
…ate action The validate-boundaries action now includes a "Resolve required boundary repositories" step that derives every producer and consumer repository from the packaged boundary manifest, unions them with the caller's repositories while preserving caller order and extras and deduplicating, and adds nothing for migration-only checks, with the clone step reading that output and degraded clone handling unchanged. This commit rebases PR #1973 onto dev c1f8e8f (PR #1972, which dropped the onex_change_control boundary from the packaged kafka manifest, leaving five boundaries over omniclaude, omniintelligence and omnimarket). In contracts/OMN-20074.yaml, both sides added AC46; the base's AC46 and dod-omn-20074-ac46-pr1972 are kept unchanged, and this PR's requirement is renumbered AC47 with dod item dod-omn-20074-ac47 binding tests/ci/test_validate_boundaries_peer_closure_omn20074.py. Two tests that assumed six boundaries and the onex_change_control peer now assert five boundaries and use omniintelligence as the omitted peer. Focused tests: 17 passed (the peer-closure test file and tests/unit/handlers/test_handler_boundary_parity.py). ruff and pre-commit including yamlfmt passed.
jonahgabriel
added a commit
that referenced
this pull request
Oct 15, 2026
…ry clone list (#2010) * fix(OMN-20074): correct workflow shape check rejecting retired boundary clone list Separate check-only fix for #2009. The existing test_cross_repo_boundary_validation_clones_all_boundary_repos expects onex_change_control for every action revision. The audited #1942 action de3398d requires eight repositories; #1972 c1f8e8f has no change-control boundary and uses seven. The test now validates the exact action/list pair, with negative controls rejecting every missing peer, mismatched list, unknown action or owner and duplicate peers. Only tests/unit/validation/test_ci_workflow_shape.py and contracts/OMN-20074.yaml change, with appended AC55 and dod_evidence plus a hosted deploy check. Focused tests: 125 passed for the workflow shape file and two contract validation files against base dev, 25 passed for boundary cases reading PR #2009 dispatch workflow. Ruff and yamlfmt passed. * fix(OMN-20074): align contract node selector with pytest evidence token format PR #2010 dispatched at 71e2cd3. Tests (Split 14/40) and repo-evidence / dod-verify fail because test_every_repo_contract_binds_every_criterion requires an existing relative .py path token in pytest evidence and the new hosted deploy check uses a file.py::test_name token. Only contracts/OMN-20074.yaml changes: replace that node selector with the same file path plus -k test_cross_repo_boundary_validation_clones_all_boundary_repos in both the evidence_requirements command and dod_evidence check_value. Test assertions and validation stay unchanged. Local verification: 19 contract/caller tests passed, 22 boundary_repo_contract tests passed, selected hosted workflow check 1 passed; yamlfmt and git diff --check passed. CI status is unverified.
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.
Summary
Removes the single onex_change_control boundary (
onex.evt.onex-change-control.contract-drift-detected.v1,onex_change_control->omniclaude) from the packagedsrc/omnibase_core/contracts/boundaries/kafka_boundaries.yaml; the manifest now has 5 boundaries. (OMN-20074)Why
omniintelligence, omniclaude and omnibase_core pass
onex_change_controlin the repos input of the validate-boundaries action only because that boundary needs it. With it absent, the parity handler exits 1 withproducer file missing: onex_change_control/src/onex_change_control/nodes/node_contract_drift_effect/contract.yaml.Producer search (canonical clones at origin HEAD):
onex_change_control:src/onex_change_control/scripts/check_drift.pycallsemit_drift_detected(kafka/governance_emitter.py), the only emitter.omniclaude: hasCONTRACT_DRIFT_DETECTEDonly as a constant insrc/omniclaude/hooks/topics.pyplus atopic_allowlist.yamlentry, no subscriber.omnimarket: has the string only insidenode_duplication_sweep/contracts/kafka_boundaries.yaml(a copy of this manifest), no producer.omnidash: no reference.So no live producer moved elsewhere and the boundary is removed rather than repointed.
Changes
kafka_boundaries.yamlentry removed.tests/unit/handlers/test_handler_boundary_parity.pyreplaces the hash pin to the onex_change_control manifest with three tests: packaged manifest names no onex_change_control repo and has 5 entries; packaged manifest exits 0 on a repos root with no onex_change_control; a control entry produced by onex_change_control exits 1 with the producer-file-missing error.tests/fixtures/occ_boundaries/manifest.yamldropskafka_boundaries_parsed_sha256and keeps the migration inventory hash.load_manifest_yamldocstring no longer says byte-for-byte OCC manifest.Lab
h202, laneomn20074-kbnd, sha3ba054854687dc59793d18a09beb323e02ccfcbe.uv run python -m omnibase_core.handlers.handler_boundary_parity --repos-root <dir holding symlinks to omniclaude, omnidash, omniintelligence, omnibase_infra, omnimemory, omnimarket and this checkout as omnibase_core; no onex_change_control>--manifest): MISMATCH foronex_change_control->omniclaude,producer file missing: onex_change_control/src/onex_change_control/nodes/node_contract_drift_effect/contract.yaml, exit=1.uv run pytest tests/unit/handlers/test_handler_boundary_parity.py tests/unit/handlers/test_handler_migration_conflicts.py tests/ci/test_validate_boundaries_action_omn20074.py tests/ci/test_validate_boundaries_caller_omn20962.py -n 0=> 31 passed.Follow-ups
.github/workflows/ci.ymlunchanged on purpose. Its boundary-validation job pins the validate-boundaries action atde3398d1fcf7a6f48451f680b74b1a6c6c383b8a, whose packaged manifest still has the boundary, so droppingonex_change_controlfrom that job's repos list fails until the pin moves to this PR's merge sha.omn20074-cor2-remaining-occ-refs) already dropsonex_change_controlfrom that repos list and its Cross-repo boundary validation check is red in the watcher state; it needs itsuses:pin bumped to this PR's merge sha.