Skip to content

fix(OMN-11946): enforce LLM contract overlay boundaries - #839

Merged
jonahgabriel merged 3 commits into
mainfrom
jonah/omn-11946-llm-closeout-proof
May 25, 2026
Merged

jonahgabriel merged 3 commits into
mainfrom
jonah/omn-11946-llm-closeout-proof

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented May 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • removes hardcoded served model IDs, model route names, and endpoint URLs from node contract defaults
  • converts remaining runtime values to logical route keys or overlay/env-owned references
  • removes the generation-consumer served-model fallback so missing overlay config fails loud

Evidence

  • uv run python scripts/validation/validate_contract_overlay_boundary.py --root .
  • uv run ruff check src/omnimarket/nodes/node_adr_segmentation_llm_effect/handlers/handler_segmentation.py src/omnimarket/nodes/node_ci_fix_effect/handlers/handler_ci_fix.py src/omnimarket/nodes/node_generation_consumer/handlers/handler_generation_consumer.py tests/nodes/node_ci_fix_effect/test_handler_ci_fix.py tests/unit/nodes/node_generation_consumer/test_handler_generation_consumer.py
  • uv run pytest tests/validation/test_contract_overlay_boundary.py tests/nodes/node_thread_reply_effect/test_handler_thread_reply.py src/omnimarket/nodes/node_adr_segmentation_llm_effect/tests/test_handler_segmentation.py tests/test_golden_chain_golden_chain_sweep.py tests/test_golden_chain_build_loop_events.py tests/test_node_model_router_contract_boundary.py tests/test_model_router_routes_to_local_first.py tests/test_model_router_health_check_degrades.py tests/test_model_router_publishes_degradation_event.py tests/test_model_router_authorization_and_ttl.py tests/nodes/node_ci_fix_effect/test_handler_ci_fix.py tests/unit/nodes/node_generation_consumer/test_handler_generation_consumer.py -q
  • uv run python -m omnimarket.nodes.node_golden_chain_sweep --chains routing,delegation --projected-rows ...

Ticket

OMN-11946

Evidence-Source: b63923360b58fe7537c1ccafe3e2a6b064423935
Evidence-Ticket: OMN-11946

@coderabbitai

coderabbitai Bot commented May 25, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@jonahgabriel, we couldn't start this review because you've used your available PR reviews for now.

Your plan includes 5 reviews of capacity. Refill in 55 minutes and 6 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4ec16b40-d1f4-4bd0-bbba-cc6c13ac77b5

📥 Commits

Reviewing files that changed from the base of the PR and between 4ba1c23 and e55a09f.

📒 Files selected for processing (14)
  • src/omnimarket/nodes/node_adr_segmentation_llm_effect/contract.yaml
  • src/omnimarket/nodes/node_adr_segmentation_llm_effect/handlers/handler_segmentation.py
  • src/omnimarket/nodes/node_ci_fix_effect/contract.yaml
  • src/omnimarket/nodes/node_ci_fix_effect/handlers/handler_ci_fix.py
  • src/omnimarket/nodes/node_conflict_hunk_effect/contract.yaml
  • src/omnimarket/nodes/node_generation_consumer/contract.yaml
  • src/omnimarket/nodes/node_generation_consumer/handlers/handler_generation_consumer.py
  • src/omnimarket/nodes/node_hostile_reviewer/contract.yaml
  • src/omnimarket/nodes/node_kreuzberg_parse_effect/contract.yaml
  • src/omnimarket/nodes/node_local_supervisor/contract.yaml
  • src/omnimarket/nodes/node_projection_savings/contract.yaml
  • src/omnimarket/nodes/node_thread_reply_effect/contract.yaml
  • tests/nodes/node_ci_fix_effect/test_handler_ci_fix.py
  • tests/unit/nodes/node_generation_consumer/test_handler_generation_consumer.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-11946-llm-closeout-proof

Comment @coderabbitai help to get the list of available commands and usage tips.

@jonahgabriel
jonahgabriel force-pushed the jonah/omn-11946-llm-closeout-proof branch from 444937a to d86e288 Compare May 25, 2026 01:32
@github-actions

github-actions Bot commented May 25, 2026 •

Copy link
Copy Markdown

⚠️ Architectural Review — WARNINGS

Errors: 0
Warnings: 1

What this checks

Rule Description
ARCH-TOPIC-001 No hardcoded Kafka topic strings in handler code
ARCH-DI-001 No event_bus=None bypass
ARCH-DI-002 No direct Handler instantiation outside workflow_runner/adapters
ARCH-DI-003 No reinvented DI containers
ARCH-TOPIC-002 contract.yaml topics follow `onex.{cmd

ARCH-DI-002: Direct Handler instantiation (warning)\n\n\nsrc/omnimarket/nodes/node_generation_consumer/handlers/handler_generation_consumer.py:272: self._effect = HandlerLlmOpenaiCompatible(transport=_Transport())\n\n\nHandler classes should be wired only in workflow_runner.py or adapter modules. Direct instantiation elsewhere bypasses the contract system.\n\n

Powered by node_pr_review_bot

@jonahgabriel
jonahgabriel enabled auto-merge May 25, 2026 01:32
@github-actions

github-actions Bot commented May 25, 2026 •

Copy link
Copy Markdown

✅ PR Review Bot — CLEAN

Findings: 0
Run ID: ``

Required gate: This check blocks merge when verdict is blocking_issue.


Verdict semantics

Verdict Meaning
clean No blocking findings
risks_noted Findings noted; threads passed judge verification
blocking_issue MAJOR/CRITICAL findings not resolved — do not merge

Powered by node_pr_review_bot — Qwen3-Coder-30B reviewer + DeepSeek-R1 judge (OMN-7963)

@github-actions

github-actions Bot commented May 25, 2026 •

Copy link
Copy Markdown

⚠️ Hostile Reviewer — DEGRADED (informational)

Blocking findings (critical/error): 0
Total findings: 0
Models succeeded: none

Note: All reviewer models failed or were unavailable. Degraded results are informational during the pilot phase (OMN-8524) and do not block merge. Error: cli_review exited non-zero (all models failed or binary error)


Gate semantics (pilot phase)

Verdict Meaning Blocks merge?
passed No critical/error findings No
blocked CRITICAL or ERROR findings found Yes
degraded All models unavailable (infra) No (pilot)

Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524)

@jonahgabriel
jonahgabriel added this pull request to the merge queue May 25, 2026
Merged via the queue into main with commit 488d382 May 25, 2026
48 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-11946-llm-closeout-proof branch May 25, 2026 01:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant