Repository navigation
feat(OMN-14830): regenerate node_runner_fleet_health_compute to canonical def-B - #2363
Merged
jonahgabriel merged 2 commits intoJul 20, 2026
Merged
Conversation
…ical def-B Flip HandlerRunnerFleetHealthEvaluate to canonical ONEX definition B via the OMN-14781 hand-flip path (Class-B Tier-1 fan-out under OMN-14355). The handler's entrypoint moves from the multi-positional handle(self, correlation_id, snapshot) to the single typed-payload handle(self, request: ModelRunnerFleetHealthEvaluateCommand) -> ModelRunnerFleetHealthVerdict the shared runtime adapter binds. correlation_id and snapshot are unpacked from the command; the three business-logic helpers (_classify_runner / _annotate_indeterminate / _recommend_for_assessment) are byte-identical base_ref<->HEAD. No ModelEventEnvelope; COMPUTE stays pure. - shrink scripts/ci/canonical_handler_shape_baseline.py NON_CANONICAL (drop this node) - repoint the unit suite to handle(command); add a dispatch-entrypoint parity test driving the REAL _make_dispatch_callback (RED multi-positional -> GREEN def-B) - adequacy receipt (coverage-guided, 80.67% branch coverage, meets_target) + hand-flip proof bound to one 9-input selected set verify_flip_bundle (OMN-14809 seam gate) PASSES all six assertions. Ticket: OMN-14830 (parent OMN-14355) Evidence-Ticket: OMN-14830 Evidence-Source: OMN-14830
📝 WalkthroughWalkthroughThe fleet health evaluation handler now accepts a typed command payload. Existing tests and workflows pass that command through direct and dispatch-based paths, while new adequacy receipts and the canonical baseline record the handler’s canonical shape and parity. ChangesFleet health handler contract
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
jonahgabriel
added a commit
to OmniNode-ai/onex_change_control
that referenced
this pull request
Jul 20, 2026
…ibase_infra#2363 Merge OCC evidence companion for OMN-14830 / omnibase_infra#2363.
jonahgabriel
deleted the
jonah/omn-14830-node_runner_fleet_health_compute-defb
branch
July 20, 2026 07:05
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.
OMN-14830 — Class-B Tier-1 def-B flip:
node_runner_fleet_health_computeFlips
omnibase_infra.nodes.node_runner_fleet_health_compute(
HandlerRunnerFleetHealthEvaluate) to canonical ONEX definition B via thesanctioned HAND-FLIP path (OMN-14781), the same template as canary #2349. Parent
epic OMN-14355 (canonical-shape ratchet-gate); shrinks the
NON_CANONICALbaselineby one (90 → 89).
Generated vs hand-flip — why HAND-FLIP is the correct proof here
This node's def-A→def-B transform is a pure signature adaptation, not a body rewrite.
The pre-flip handler was already a
handlemethod, but with a multi-positionalsignature
handle(self, correlation_id: UUID, snapshot: ModelRunnerFleetSnapshot)— which_handle_is_adaptableclassifiesnonadaptable(multi-positional), so the shared runtimeadapter's
_make_dispatch_callbackcould not bind it. The flip moves it to the canonicalsingle typed-payload
handle(self, request: ModelRunnerFleetHealthEvaluateCommand) -> ModelRunnerFleetHealthVerdictand unpacksrequest.correlation_id/request.snapshot.The three business-logic helpers (
_classify_runner/_annotate_indeterminate/_recommend_for_assessment) are byte-identical base_ref↔HEAD (AST-normalized), so thisis an EQUIVALENCE flip. The RSD/
onex delegateregen-vs-legacy path was assessed andrejected for this node: regenerating byte-identical classification logic would (a) risk
divergence for zero behavior benefit and (b) break the byte-identical-preservation that
makes the hand-flip proof non-forgeable (git-re-derived), which is exactly why OMN-14781
exists. No
ModelEventEnvelope; COMPUTE stays pure/deterministic.What changed
handle→ singlerequest: ModelRunnerFleetHealthEvaluateCommanddef-Bsignature; correlation id + snapshot unpacked from the command; classification body and
the three helpers preserved verbatim. Dropped the now-unused
UUID/ModelRunnerFleetSnapshotimports.
test_runner_fleet_health_compute.py) + the workflowintegration test repointed to the def-B command form; new dispatch-entrypoint parity
test drives the REAL
_make_dispatch_callbackover a 4-case corpus (RED against themulti-positional handler → GREEN def-B) and asserts per-case equivalence to a direct
handlecall.scripts/ci/canonical_handler_shape_baseline.pyNON_CANONICAL(shrink-only).scripts/ci/adequacy_receipts/): coverage-guided adequacy receipt +hand-flip proof, bound to one 9-input selected set.
dod_evidence
verify_flip_bundle (OMN-14809 seam gate) — ALL SIX assertions PASS
Run from the omnibase_core seam gate against this flip (PR-discovery path, exit 0):
Assertions covered: (1) full
ModelAdequacyReceiptinvariants; (2) realverify_flip_receiptverdict (re-derived adequacy + hand-flip verbatim-preservation +input-set binding); (3) full-node canonicality across all bindings; (4) twin-baseline
shrink + no growth vs origin/dev; (5) ordering seam (live handler sha == recorded +
ruff-format-clean, receipt minted post-format); (6) hand-flip path (git-re-derived
verbatim preservation) — exempt from the independent-author attestation.
Tests-as-proof: RED → GREEN on a broken tree
Restoring the pre-flip (multi-positional) handler and running the new dispatch test:
That
TypeErroron the REAL dispatch callback IS the reachability defect the flip closes.Post-flip, the full node suite is green:
Behavior equivalence
Each dispatch-entrypoint case asserts the dispatch-produced
ModelRunnerFleetHealthVerdictequals a direct
handle(command)call (per-runner states, online_count, saturation_ratio,recommended-action types). The three business-logic helpers are byte-identical base_ref↔HEAD
(the hand-flip proof's
preserved_symbols).Adequacy receipt (coverage-guided, real measurement)
Recorded via
scripts/ci/adequacy_receipt.py::build_receiptover a 17-command candidatepool covering every classification branch; greedy selection kept the minimal 9-input covering
subset.
handler_module_sha256pinned to the post-ruff formathandler file; the hand-flipproof's
parity.selected_input_hashesare bound to the SAME 9 hashes.Canonical-shape ratchet
--full(package=omnibase_infra) — green with exactly this flipLocal gates
ruff format --check+ruff check: clean on all changed filesmypy src/omnibase_infra/nodes/node_runner_fleet_health_compute/:Success: no issues found in 11 source filesNOTICE_COMPANION_UNMERGED(companion authored separately by OCC-autobind)OCC companion (deploy-gate / receipt-gate)
This flip touches a deploy-scoped runtime handler, so the required deploy-gate and
Receipt-Gate need the OMN-14830 OCC companion (net-new file in
onex_change_control,authored separately per the no-self-authored-evidence rule and handled by OCC-autobind). Until
it lands, the hosted
deploy-gate/occ-preflight/Receipt-Gateremain pending/RED — thisis EXPECTED. Do not merge until the OCC companion resolves. No skip tokens, no fabricated
companion.
Ticket: OMN-14830 (parent OMN-14355)
Summary by CodeRabbit
Updates
Bug Fixes
Tests
Evidence-Source: OCC#4460
Evidence-Ticket: OMN-14830
Evidence-Commit: 292292d306bb722ae2e4f2000a138519bf6be749