Repository navigation
fix(runtime): revert ProtocolDomainPlugin to inline — omnibase_spi.protocols.runtime not published [OMN-8550] - #1262
Conversation
…otocols.runtime not yet published [OMN-8550] OMN-8550 moved ProtocolDomainPlugin to omnibase_spi and added a re-export, but the omnibase_spi.protocols.runtime subpackage does not exist in the published PyPI package (0.20.4). This broke main CI with ModuleNotFoundError on every import of omnibase_infra. Restore the inline ProtocolDomainPlugin definition until omnibase_spi 0.21+ ships the runtime subpackage. The OMN-8550 migration should land as a coordinated 2-step: 1. Publish omnibase_spi with protocols.runtime 2. Re-apply the omnibase_infra re-export
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 0 minutes and 34 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the 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 the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…7484] Adds 6 integration tests covering the D2/D3 contract invariants: - D3: no snapshot emitted when measurements_captured == 0 - D3: snapshot emitted when measurements_captured > 0 - D2: lookback_hours capped at 168 - No publisher -> snapshot_emitted always False - DB errors captured in result.errors tuple Required by Integration Test Coverage CI gate (post-2026-04-13). This also satisfies the gate requirement for the revert commit in this PR.
| Returns: | ||
| Unique string identifier (e.g., "registration", "intelligence"). | ||
| """ | ||
| ... |
| Returns: | ||
| Display name (e.g., "Registration", "Intelligence"). | ||
| """ | ||
| ... |
| return bool(os.getenv("OMNIBASE_INFRA_DB_URL")) | ||
| ``` | ||
| """ | ||
| ... |
| ) | ||
| ``` | ||
| """ | ||
| ... |
| ) | ||
| ``` | ||
| """ | ||
| ... |
| Returns: | ||
| Result indicating success/failure and dispatchers registered. | ||
| """ | ||
| ... |
| Returns: | ||
| Result with unsubscribe_callbacks for cleanup during shutdown. | ||
| """ | ||
| ... |
| return ModelDomainPluginResult.succeeded(plugin_id=self.plugin_id) | ||
| ``` | ||
| """ | ||
| ... |
|
|
||
| # Patch datetime.now to capture the `since` value passed to the query | ||
| captured_since: list[datetime] = [] | ||
| original_fetchrow = pool.acquire.return_value.__aenter__.return_value.fetchrow |
Fallout from PRs #1264 (OMN-8605) and #1262 (OMN-8550) which landed on main without test verification, blocking PR #1266 from going green. Fix 1 — test_topic_suffix_exports.py: `from omnibase_infra.topics import __init__ as topics_init` resolved to a method-wrapper, not the module. Replace with a standard module import. Fix 2 — test_protocol_ownership.py: KNOWN_DUPLICATE_LOCATIONS["ProtocolPublisher"] was missing the node_baseline_capture entry added by OMN-7484. Also allowlists ProtocolDomainPlugin (still present in runtime/ as a backward-compat shim post OMN-8550 SPI migration). Fix 3 — test_topic_parity.py / check_contract_topic_parity.py: 8 SUFFIX_* constants added in #1264 had no spec group entries: - 6 omniclaude injection-effectiveness topics (OMN-1889, OMN-2942) added to _OMNICLAUDE_AGENT_OBSERVABILITY_TOPIC_SUFFIXES in platform_topic_suffixes.py, and to _LEGACY_ALLOWLIST (cross-repo, contract.yaml lives in omniclaude). - onex.evt.git.hook.v1 and onex.evt.linear.snapshot.v1 added to ALL_OMNIBASE_INFRA_TOPIC_SPECS (3 partitions, 7-day retention), and to _LEGACY_ALLOWLIST (CLI relay producers, no node contract). No new tickets filed per standing rule — OMN-8605 and OMN-8550 are the parent tickets for these regressions.
Summary
omnibase_spi.protocols.runtimesubpackage does not exist in the published PyPI package (0.20.4)Root Cause
PR#1249 (OMN-8550) added
from omnibase_spi.protocols.runtime.protocol_domain_plugin import ...but the corresponding code was never added to the omnibase_spi source repo and never published. Every import ofomnibase_infracascades to this missing module, breaking CI-wide.Correct Migration Path
src/omnibase_spi/protocols/runtime/protocol_domain_plugin.pyto omnibase_spiTest Plan