Skip to content

OMN-9359 implement demo market skill runtime nodes - #958

Merged
github-actions[bot] merged 1 commit into
devfrom
jonah/omn-9359-demo-runtime
May 28, 2026
Merged

github-actions[bot] merged 1 commit into
devfrom
jonah/omn-9359-demo-runtime

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented May 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Implement node_demo_fanout_orchestrator with deterministic dry-run provider fixtures and explicit live-provider preflight.
  • Implement node_demo_cost_compute cost aggregation and node_demo_renderer_effect ASCII chart output.
  • Mark the three demo node contracts implemented and add RuntimeLocal/EventBusInmemory proof coverage.

Verification

  • uv run ruff check src/omnimarket/events/demo.py src/omnimarket/nodes/node_demo_cost_compute src/omnimarket/nodes/node_demo_fanout_orchestrator src/omnimarket/nodes/node_demo_renderer_effect tests/test_demo_runtime_path.py
  • uv run pytest src/omnimarket/nodes/node_demo_cost_compute/tests/test_golden_chain.py src/omnimarket/nodes/node_demo_fanout_orchestrator/tests/test_golden_chain.py src/omnimarket/nodes/node_demo_renderer_effect/tests/test_golden_chain.py tests/test_demo_runtime_path.py -q

Notes

  • Dry-run fixtures are provider inputs inside node_demo_fanout_orchestrator; successful demo output still flows through native OmniMarket nodes and local runtime/event-bus dispatch.
  • Live runs preflight GEMINI_API_KEY and claude CLI before provider execution.

Evidence-Source: OCC#1812

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jonahgabriel, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 6 minutes. Learn how PR review limits work.

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

⌛ How to resolve this issue?

After more reviews become available, 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 include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 57f40d37-7bae-4447-81da-f77c61c4a337

📥 Commits

Reviewing files that changed from the base of the PR and between 67c2c83 and 88ce1f9.

📒 Files selected for processing (12)
  • src/omnimarket/events/demo.py
  • src/omnimarket/nodes/node_demo_cost_compute/contract.yaml
  • src/omnimarket/nodes/node_demo_cost_compute/handlers/handler_cost_compute.py
  • src/omnimarket/nodes/node_demo_cost_compute/tests/test_golden_chain.py
  • src/omnimarket/nodes/node_demo_fanout_orchestrator/contract.yaml
  • src/omnimarket/nodes/node_demo_fanout_orchestrator/handlers/handler_fanout.py
  • src/omnimarket/nodes/node_demo_fanout_orchestrator/models/model_fanout_request.py
  • src/omnimarket/nodes/node_demo_fanout_orchestrator/tests/test_golden_chain.py
  • src/omnimarket/nodes/node_demo_renderer_effect/contract.yaml
  • src/omnimarket/nodes/node_demo_renderer_effect/handlers/handler_renderer.py
  • src/omnimarket/nodes/node_demo_renderer_effect/tests/test_golden_chain.py
  • tests/test_demo_runtime_path.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-9359-demo-runtime

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

@github-actions

Copy link
Copy Markdown

✅ Architectural Review — PASSED

Errors: 0
Warnings: 0

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

No architectural violations found.

Powered by node_pr_review_bot

@github-actions

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)

@github-actions

github-actions Bot commented May 28, 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)

Merged via the queue into dev with commit ff7ce7a May 28, 2026
34 of 39 checks passed
jonahgabriel added a commit that referenced this pull request Aug 25, 2026
…ver the body (#2139)

_extract_tickets keyed a minted OCC companion to the shared
_extract_ticket_ids(body, title) result — body closing-keyword matches
exclusive, title only as fallback. The Receipt Gate's own identity check
(_verify_ticket_identity Axis 1) requires the PR TITLE, never the body,
to reference whatever ticket the companion's Evidence-Ticket names, so a
body-first extraction is structurally unable to satisfy the gate it feeds
whenever the body cites an unrelated ticket via a closing keyword.

Live incident: omninode_infra PR #958 (title cited OMN-16368; body cited
OMN-15757 as related context via a closing keyword) minted a companion
keyed to OMN-15757, which could never pass OMN-16368's Receipt Gate run —
a second, hand-authored companion was required and the wrong one closed
as dead weight.

Fix: _extract_tickets now takes only `title` and delegates to
_extract_ticket_ids("", title) — same title-token regex the gate itself
falls back to, body structurally excluded from the call.

Regression tests reproduce the exact OMN-16368/#958 shape (title=A,
body cites unrelated B via a closing keyword) both as a direct
_extract_tickets assertion and end-to-end through _emit_companion_sync,
asserting the minted contract/receipts key to A and that no
contracts/<B>.yaml or receipt tree for B is ever authored.
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