Repository navigation
fix(OMN-16761): retire the legacy onex run alias — core owns the run verb - #2934
Conversation
… verb
OMN-8938 renamed this repo's node runner `onex run` -> `onex node` in April and
left `run` behind as an alias pointing at the IDENTICAL callable
(`cli_node:run_node_by_name`). The alias was never retired.
omnibase_core 0.46.13 (OMN-16677) then legitimately reused the freed name for
the tier-0 local workflow harness. Core's built-in wins the entry-point race, so
every CLI invocation in an environment with both packages installed printed:
onex.cli extension 'run' conflicts with an existing command, skipping
and `onex run <node>` silently stopped running nodes.
Canonical resolution (doctrine: no backwards-compat shims): delete the alias.
`node` already provides the command and is the canonical name from OMN-8938.
- pyproject.toml: drop the `run` onex.cli entry point
- tests/unit/cli/test_onex_run.py: deleted -- it existed only to test the alias
NAME; every behavior it asserted is already covered by test_cli_node.py
- tests/unit/cli/test_onex_run_alias_retired.py: new guard pinning the boundary
from the side this repo controls
- docker/runners/runner-image.lock.json: regenerated (pyproject.toml is a
MANIFEST_INPUTS member, so the identity digest moves with it)
- prose: `onex run` -> `onex node` where it meant this repo's alias
Evidence-Ticket: OMN-16761
|
Warning Review limit reachedNext included review available in 15 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 130 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (9)
Comment |
|
| Verdict | Meaning | Blocks merge? |
|---|---|---|
passed |
No critical findings | No |
blocked |
CRITICAL findings found | Yes |
degraded |
All models unavailable (infra) | No (pilot) |
Powered by omniintelligence.review_pairing.cli_review — multi-model adversarial review (OMN-8468/OMN-8524)
#7314) * evidence: OCC companion pass 1 for OmniNode-ai/omnibase_infra#2934 * evidence: OCC companion self-bind for #7314 --------- Co-authored-by: node-occ-companion-effect <occ-companion-effect@omninode.ai> Co-authored-by: Jonah Gray <jonah@omninode.ai>
BREAKING:
onex run <node>was an undocumented alias ofonex nodesince April — removed. Useonex node.If you script
onex run <some_node>, change it toonex node <some_node>. Flags are unchanged (--contract,--input,--state-root,--backend,--timeout,--verbose).In practice this alias already stopped working when omnibase_core 0.46.13 landed (see below) — this PR removes the corpse and the warning it emitted, it does not take away a working command.
What was wrong
OMN-8938 (Done, 2026-04-16) renamed this repo's node runner
onex run→onex nodeand leftrunbehind as an alias pointing at the identical callable. The alias was never retired:omnibase_core 0.46.13 (OMN-16677) then legitimately reused the freed name for the tier-0 local workflow harness. Core's extension loader gives the built-in priority and skips the entry point (
cli_commands.pyL738-750), so every CLI invocation in an environment with both packages installed printed:…and
onex run <node>silently stopped running nodes, failing instead withInvalid value for '{delegation|sea}'.Resolution
Canonical, per repo doctrine (no backwards-compatibility shims; core owns the
runverb): delete the alias.nodealready provides the command and has been the canonical name since April. Verified live that core 0.46.13 ships a built-inrunand no built-innode— so the two names have unambiguous owners, and removingrunhere cannot affectonex node.Changes
pyproject.toml— drop therunonex.clientry point.tests/unit/cli/test_onex_run.py— deleted. It existed only to assert the alias name; every behavior it covered (unknown-node error shape,--contractoverride,--inputnot-found, drift-guard wiring) is already covered bytest_cli_node.py. Its most recent revision on this branch's parent had been retargeted at core's harness flags as a stopgap to unblock chore(deps): bump omnibase-core to 0.46.13 (OMN-16677) #2929 — asserting core's CLI surface from this repo couples us to core internals and breaks on unrelated harness changes. Core tests core's command.tests/unit/cli/test_onex_run_alias_retired.py— new guard, pinning the boundary from the side this repo controls: norundeclared,nodeintact, and the node runner reachable under exactly one name (so no future alias recreates this defect).docker/runners/runner-image.lock.json— regenerated.pyproject.tomlis aMANIFEST_INPUTSmember ofscripts/ci/runner_image_identity.py, so the identity digest moves with any entry-point edit.onex run→onex nodeinreceipt_mode.py,model_receipt_runtime_summary.py,omnimarket_drift_guard.py(incl. the user-facing repair message, which named a command that no longer exists),tests/unit/cli/conftest.py,test_cli_node.py.Deliberately not touched:
scripts/fire-build-loop.shandsrc/omnibase_infra/workflows/merge_sweep_workflow.yamlreferenceonex run <workflow>.yaml. That is neither this alias (which takes a node name) nor core's new harness (which takes{delegation|sea}) — it is a stale pre-OMN-7068onex run <contract_path>form, a separate pre-existing defect out of scope here.Evidence — all four ACs proven live on core 0.46.13
TDD: the new guard was written first and failed RED on the alias (
2 failed, 1 passed), then passed GREEN after removal (3 passed).AC1 — no collision warning:
AC2 —
onex runresolves to core's harness:AC3 —
onex nodeunaffected, flags intact:AC4 — the
Tests (Split 4/15)failures are gone:tests/unit/cli/+tests/ci/test_runner_image_identity.py+test_fallback_matrix_sync.py+test_seam_released_core_pin.py→ 411 passed, 21 skipped (skips areomnimarketabsent from this venv, pre-existing).AC5 — #2929 landed as
381c13ed3(2026-08-27T16:07:38Z); this branch is rebased on top of it.Installed entry-point table after the change:
Evidence-Ticket: OMN-16761
Evidence-Source: OCC#7314