Repository navigation
feat(OMN-14816): regenerate node_broker_disk_watermark_compute to canonical def-B - #2354
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 35 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThe broker disk watermark handler now uses ChangesBroker disk watermark dispatch
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant ModelEventEnvelope
participant _make_dispatch_callback
participant HandlerBrokerDiskWatermark
participant ModelDispatchResult
ModelEventEnvelope->>_make_dispatch_callback: dispatch coerced ModelBrokerDiskWatermarkInput
_make_dispatch_callback->>HandlerBrokerDiskWatermark: call handle(input)
HandlerBrokerDiskWatermark-->>_make_dispatch_callback: ModelBrokerDiskWatermarkOutput
_make_dispatch_callback-->>ModelDispatchResult: return successful dispatch result
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…onical def-B Behavior-preserving hand-flip (OMN-14781) of HandlerBrokerDiskWatermark: the op-method probe_disk_watermark(inp) is renamed to the canonical def-B handle(inp) dispatch entrypoint that auto-wiring's _make_dispatch_callback binds. The probe body and every business-logic helper (_classify / _probe_path / _real_docker_info / _real_disk_usage / _resolve_volume_mountpoint) are preserved byte-identically; no envelope import, no Plugin* base. - Removes the node from BOTH baselines (shrink-only): canonical-shape NON_CANONICAL (91->90) and handler-dispatch-entrypoint known_entrypointless (37->36). - Adds the adequacy receipt + hand-flip proof under scripts/ci/adequacy_receipts/ bound to one selected-input corpus; verify_flip_bundle (OMN-14809) passes all six assertions. - Adds the sync-handle generic-name exemption (mirrors handler_release_identity). - Repoints the existing unit suite to handle() (behavior-equivalence parity) and adds a new dispatch-entrypoint test driving the REAL _make_dispatch_callback (RED->GREEN: pre-flip binds _missing_handle and raises ModelOnexError). Class-B Tier-1 flip under epic OMN-14355 (hand-flip path, canary #2349 template). Evidence-Ticket: OMN-14816 Evidence-Source: OMN-14816
564d4fc to
f6aa9ce
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@src/omnibase_infra/nodes/node_broker_disk_watermark_compute/handlers/handler_broker_disk_watermark.py`:
- Around line 6-15: Update the dispatch path around handle() and
_make_dispatch_callback so the synchronous docker info, docker volume inspect,
and shutil.disk_usage operations execute off the event loop via a worker thread
or async entrypoint. Preserve handle()’s typed
ModelBrokerDiskWatermarkInput-to-ModelBrokerDiskWatermarkOutput contract and
existing classification/helper behavior while ensuring dispatch no longer
invokes the blocking implementation inline.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 76c06fe8-9742-4e95-ad5f-935e219815ff
📒 Files selected for processing (9)
config/validation/handler_dispatch_entrypoint_baseline.yamlscripts/ci/adequacy_receipts/omnibase_infra.nodes.node_broker_disk_watermark_compute.handflip.jsonscripts/ci/adequacy_receipts/omnibase_infra.nodes.node_broker_disk_watermark_compute.jsonscripts/ci/canonical_handler_shape_baseline.pysrc/omnibase_infra/nodes/node_broker_disk_watermark_compute/contract.yamlsrc/omnibase_infra/nodes/node_broker_disk_watermark_compute/handlers/handler_broker_disk_watermark.pysrc/omnibase_infra/validation/validation_exemptions.yamltests/unit/nodes/test_broker_disk_watermark_dispatch_entrypoint_omn14816.pytests/unit/nodes/test_handler_broker_disk_watermark.py
💤 Files with no reviewable changes (2)
- config/validation/handler_dispatch_entrypoint_baseline.yaml
- scripts/ci/canonical_handler_shape_baseline.py
…roker_disk_watermark_compute-defb # Conflicts: # scripts/ci/canonical_handler_shape_baseline.py
Summary
Flips
node_broker_disk_watermark_compute(HandlerBrokerDiskWatermark, omnibase_infra) to canonical definition B as part of the Class-B Tier-1 fan-out under the canonical-shape ratchet-gate (parent OMN-14355). Proof path = HAND-FLIP (OMN-14781), mirroring canary omnibase_infra#2349: a pure behavior-preserving rename of the op-methodprobe_disk_watermark(inp)to the canonicalhandle(inp)dispatch entrypoint, with the probe body and every business-logic helper preserved byte-identically.omnibase_infra(auto-merge disabled → non-draft; do not merge/arm).Local RSD path unavailable → hand-flip (documented escape)
The mandated local RSD /
onex delegatepath is genuinely unavailable in this environment: the local model fleet (192.168.86.201:19092) is unreachable (off-LAN) andnode_delegate_skill_orchestratoris not registered in omnibase_infra (it is an omnimarket-provided node). This is also a pure behavior-preserving rename where git-verbatim-preservation of the business-logic helpers is a strictly stronger equivalence proof than an LLM regen — matching the #2349 canary explicitly cited as the template for this node class.What changed
probe_disk_watermark(self, inp)→ the canonical def-Bhandle(self, inp: ModelBrokerDiskWatermarkInput) -> ModelBrokerDiskWatermarkOutputdispatch entrypoint that auto-wiring's_make_dispatch_callbackbinds. Body byte-identical; helpers (_classify/_probe_path/_real_docker_info/_real_disk_usage/_resolve_volume_mountpoint) untouched. No envelope import, noPlugin*base.scripts/ci/canonical_handler_shape_baseline.pyNON_CANONICAL(91→90) andconfig/validation/handler_dispatch_entrypoint_baseline.yamlknown_entrypointless(37→36).scripts/ci/adequacy_receipts/): adequacy receipt + hand-flip proof, bound to one 5-input corpus.handleadded tovalidation_exemptions.yaml(mirrorshandler_release_identity).probe_disk_watermark→handle(behavior-equivalence parity); new dispatch-entrypoint test drives the REAL_make_dispatch_callback.dod_evidence
tests-as-proof RED → GREEN
RED (pre-flip tree, real
_make_dispatch_callback): all 3 dispatch tests fail withModelOnexError: Auto-wired handler HandlerBrokerDiskWatermark does not expose a callable handle() or handle_async() dispatch entrypoint.(bound_missing_handle).GREEN (post-flip): 3 dispatch tests + 18 repointed equivalence tests = 21 passed.
LOCAL SEAM GATE — verify_flip_bundle (OMN-14809) PASS
Assertions: typed-adequacy, real-gate-verdict (
reviewed-waiver+handflip-verbatim-preserved(5 symbol(s))), full-node-canonical, twin-baseline-shrink, ordering-seam, independent-author (hand-flip exempt).Canonical-shape ratchet
--full— green with exactly this 1 proven flipDispatch-entrypoint validator — green
Gates
ruff format --check+ruff check: cleanmypy(node package):Success: no issues foundhandleexemption)@pytest.mark.slow/@pytest.mark.performanceload-sensitive benchmarks flaked under concurrent fan-out saturation, each passing in isolation and unrelated to this change) + deploy-scope-dod (NOTICE_COMPANION_UNMERGED)generated-vs-handflip
Hand-flip (OMN-14781 path), not RSD-generated: the local RSD path is unavailable here (see above), and for a behavior-preserving rename git-verbatim-preservation is the stronger equivalence proof.
OCC companion / deploy-gate
This flip touches a deploy-scoped runtime node handler, so the required deploy-gate + Receipt-Gate need the OCC companion for OMN-14816 (net-new file in
onex_change_control, authored separately per the no-self-authored-evidence rule). Central OCC evidence is merged inonex_change_control#4480; hostedocc-preflight/receipt-gate/deploy-gateshould resolve fromEvidence-Source: OCC#4480. Do not use bypass tokens. No live deploy, .201 mutation, docker exec, or rpk topic produce is authorized by this PR.Evidence-Ticket: OMN-14816
Evidence-Source: OCC#4480
Summary by CodeRabbit
Bug Fixes
handle()entrypoint.Tests