Skip to content

fix(OMN-12325): route observability skill nodes through runtime truth - #952

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

github-actions[bot] merged 1 commit into
devfrom
jonah/omn-12325-bus-observability-runtime

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented May 28, 2026 •

Copy link
Copy Markdown
Contributor

Evidence-Source: OCC#1802

Summary

  • Adds thin Codex/ONEX runtime skill shims for recall, observability-sink, dep-cascade-dedup, and adversarial-pipeline in both plugin and packaged Codex adapter surfaces.
  • Wires node_observability_sink_effect through contract handler routing and removes its unimported-handler baseline entry.
  • Replaces the observability stub with a deterministic runtime-routed handler: real Kafka/Postgres persistence requires typed injected adapters; side-effect-free smoke is explicit via sink_kafka=false and sink_postgres=false.
  • Adds regression coverage proving OMN-12325 skill shims use scripts/run_codex_runtime_request.py and do not contain direct HTTP/CLI/API/handler bypass commands.

Validation

  • uv run pytest tests/nodes/node_observability_sink_effect/test_handler_observability_sink_effect.py tests/test_onex_skill_runtime_truth.py tests/test_codex_runtime_client.py::test_observability_sink_local_runtime_smoke_uses_contract_topics tests/test_codex_runtime_client.py::test_market_plugin_commands_compile_without_event_bus tests/test_codex_runtime_client.py::test_market_plugin_commands_can_target_addressed_runtime -q -> 35 passed
  • uv run ruff format src/omnimarket/nodes/node_observability_sink_effect/handlers/handler_observability_sink_effect.py tests/nodes/node_observability_sink_effect/test_handler_observability_sink_effect.py tests/test_onex_skill_runtime_truth.py tests/test_codex_runtime_client.py
  • uv run ruff check src/omnimarket/nodes/node_observability_sink_effect/handlers/handler_observability_sink_effect.py tests/nodes/node_observability_sink_effect/test_handler_observability_sink_effect.py tests/test_onex_skill_runtime_truth.py tests/test_codex_runtime_client.py -> pass
  • uv run mypy src/omnimarket/nodes/node_observability_sink_effect/handlers/handler_observability_sink_effect.py -> pass
  • uv run python scripts/ci/check_unimported_handlers.py -> pass
  • uv run python scripts/validate_catalog.py --check-skill-llm-boundary -> pass
  • uv run python scripts/validation/validate_no_env_fallbacks.py -> pass
  • uv run python scripts/validation/validate_contract_overlay_boundary.py --root . -> pass
  • uv run python scripts/validate_node_drift.py --check-changed origin/dev --strict -> PASS: 1, WARN: 0, FAIL: 0
  • bash scripts/validation/run_topic_lint.sh -> pass with pre-existing baseline suppressions only
  • git diff --cached --check -> pass

Runtime/Dogfood Evidence

Compile-only runtime adapter proof:

  • recall_compute -> ok=true, runtime_mode=compiled, command topic onex.cmd.omnibase-infra.pattern-b-dispatch.v1
  • dep_cascade_dedup_orchestrator -> ok=true, runtime_mode=compiled, dry-run payload preserved
  • adversarial_pipeline_orchestrator -> ok=true, runtime_mode=compiled, dry-run/no-launch payload preserved
  • bus_audit_compute -> ok=true, runtime_mode=compiled, failures-only skip-daemon dry-run payload preserved

Local runtime observability smoke:

  • Command: observability_sink_effect with --runtime-selection local, sink_kafka=false, sink_postgres=false
  • Result: ok=true, runtime_mode=local, event_bus_backend=inmemory, state_store_backend=local_disk
  • Contract route: src/omnimarket/nodes/node_observability_sink_effect/contract.yaml
  • Node command topic: onex.cmd.omnimarket.observability-sink.v1
  • Terminal topic: onex.evt.omnimarket.observability-persisted.v1
  • Output: persisted_event_count=0, empty Kafka/Postgres ids, no error

@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 50 minutes and 26 seconds. 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: 298a5b82-7d6a-495e-969f-e11a1855713f

📥 Commits

Reviewing files that changed from the base of the PR and between cede36d and 2c090a1.

📒 Files selected for processing (14)
  • plugins/onex/skills/adversarial-pipeline/SKILL.md
  • plugins/onex/skills/dep-cascade-dedup/SKILL.md
  • plugins/onex/skills/observability-sink/SKILL.md
  • plugins/onex/skills/recall/SKILL.md
  • scripts/validation/unimported_handler_baseline.txt
  • src/omnimarket/adapters/codex/skills/adversarial-pipeline/SKILL.md
  • src/omnimarket/adapters/codex/skills/dep-cascade-dedup/SKILL.md
  • src/omnimarket/adapters/codex/skills/observability-sink/SKILL.md
  • src/omnimarket/adapters/codex/skills/recall/SKILL.md
  • src/omnimarket/nodes/node_observability_sink_effect/contract.yaml
  • src/omnimarket/nodes/node_observability_sink_effect/handlers/handler_observability_sink_effect.py
  • tests/nodes/node_observability_sink_effect/test_handler_observability_sink_effect.py
  • tests/test_codex_runtime_client.py
  • tests/test_onex_skill_runtime_truth.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-12325-bus-observability-runtime

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

@github-actions
github-actions Bot added this pull request to the merge queue May 28, 2026
@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

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

Merged via the queue into dev with commit 223ee1d May 28, 2026
35 of 39 checks passed
@github-actions

github-actions Bot commented May 28, 2026 •

Copy link
Copy Markdown

✅ PR Review Bot — CLEAN

Findings: 0
Run ID: ``

Note: Reviewer models are running as stubs (OMN-7969–OMN-7972 pending). Architectural findings from Phase 1 (arch-lint) are the authoritative signal until model handlers land.


Verdict semantics

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

Powered by node_pr_review_bot — FSM pipeline with multi-model review fan-out

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