Repository navigation
fix(OMN-13405): workspace build vendors omnibase_core from dev-HEAD clone - #2058
Conversation
…lone
The workspace-mode runtime image installed omnibase_core ONLY from
omnibase_infra/uv.lock + pyproject [tool.uv.sources] (a released 0.45.0 wheel
pinned at a commit predating dev enum modules). omnimarket dev imports
omnibase_core.enums.enum_correction_failure_axis at module import, so the
enum-less lock wheel crash-looped projection-api and the runtime kernel
(ModuleNotFoundError). The dev core clone (which HAS the enum) was never installed.
Fix (workspace mode only; no PyPI release):
- stage_workspace.sh: stage omnibase_core (first) into the build context.
- Dockerfile.runtime workspace branch: after uv sync, reinstall core from the
staged dev tree. Defeating [tool.uv.sources] requires running the install from
/ (no project scope) with --no-sources, an explicit file:// direct reference,
--no-cache, and --reinstall-package. release mode unchanged (core from lock).
- compute_workspace_provenance.py: add omnibase_core to WORKSPACE_PACKAGES so the
build asserts core was installed local-path; a regression now fails the build.
Proven: cold dev-lane bring-up came up HEALTHY — runtime/effects/projection-api
running/healthy restarts=0, projection-api no longer crash-loops, the new image
imports the enum + omnimarket.intelligence.events, broker EventBusKafka, migration
ledger 0017/0018/0019 applied.
Evidence: .onex_state/runtime-e2e-2026-06-21/02-dev-deploy/a6/{diagnosis.md,CAPTURE.md,build.log}
|
Warning Review limit reached
More reviews will be available in 7 minutes and 42 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?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 credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. 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, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. 📝 WalkthroughWalkthroughAdds a new Changesomnibase_core workspace-mode dev-HEAD reinstall (OMN-13405)
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
contract-validation (ModelTicketContract) rejected kind: build / runtime — the enum is tests|docs|ci|benchmark|manual. Map build->tests, runtime->manual.
|
Merge-sweep maintenance: briefly cycling PR state to trigger required pull_request checks on the current head after OCC evidence metadata was updated; reopening immediately. |
|
Reopened to let required pull_request checks run on current head for merge-queue eligibility. |
|
Merge-sweep blocker: dequeued after queue accepted the PR but remained at Observed failing workflow on head
Failure signature from the runtime image build: Receipt, CR thread gate, CI Summary, Handler Contract Compliance, and skip-token gates are green. This appears to be runtime image/release integration fallout, so I am leaving it for the integration workstream rather than patching it in the merge-sweep lane. |
OMN-13405 — Workspace build vendors omnibase_core from the dev-HEAD clone
Closes the dev cold-bring-up blocker surfaced by Runtime E2E Closeout Phase 2 (v4): projection-api + omninode-runtime crash-looped with
ModuleNotFoundError: omnibase_core.enums.enum_correction_failure_axis.Problem (verified)
The workspace-mode runtime image installed
omnibase_coreonly fromomnibase_infra/uv.lock+pyproject.toml[tool.uv.sources]— a git rev (d6e9c3d, released-tag0.45.0) that predates dev-only core enum modules.omnimarketdev (7e970f1e) importsomnibase_core.enums.enum_correction_failure_axis.EnumCorrectionFailureAxisat module-import time (omnimarket/intelligence/events.py), so the enum-less lock wheel crash-loopedomnimarket-projection-api(12 restarts) and the runtime kernel never reached healthy.The dev
omnibase_coreclone (8a53a063, label0.45.0, has the enum — added by OMN-13234/OMN-12846) was never installed: the workspace sibling loop only vendoredomnibase_compat/onex_change_control/omnimarket(omnimarket installed--no-deps, so its correct core pin was never honored).d6e9c3dand8a53a063both carry version0.45.0(version-never-bumped), so no version-mismatch guard caught it.Evidence:
.onex_state/runtime-e2e-2026-06-21/02-dev-deploy/v4-evidence/CAPTURE.md+a6/diagnosis.md.Fix (workspace mode only; no PyPI release)
scripts/runtime_build/stage_workspace.sh— stageomnibase_core(first) into the build context.docker/Dockerfile.runtime(workspace branch) — afteruv sync, reinstall core from the staged dev tree. Defeating[tool.uv.sources](which forces the git rev even with a@ file://ref) requires running the install from/(no project scope) with--no-sources, an explicitomnibase-core @ file:///workspace/sibling-repos/omnibase_coredirect reference,--no-cache(bypass the cached git wheel in the BuildKit uv cache mount), and--reinstall-package omnibase-core. release mode is unchanged — core still comes from the lock.scripts/runtime_build/compute_workspace_provenance.py— addomnibase_coretoWORKSPACE_PACKAGESso the build asserts core was installed from a local path (file://); a future regression (core silently reverting to the git wheel) now fails the build, not at runtime.Proof — cold dev-lane bring-up came up HEALTHY
Workspace build on
.201(infradb3ae8527b, core8a53a063, market7e970f1e):Building omnibase-core @ file:///workspace/sibling-repos/omnibase_core→+ omnibase-core==0.45.0 (from file:///…); All 4 workspace provenance proofs passed.omnibase-infra-omninode-runtime:latest(sha256:d68b8972202c…) importsomnibase_core.enums.enum_correction_failure_axisandomnimarket.intelligence.events.ModelUserCorrectionEvent; coredirect_url.json=file:///workspace/sibling-repos/omnibase_core.Cold
--profile runtimebring-up (projectomnibase-infra):omninode-runtimerunning/healthy restarts=0,/health8085 = 200.omninode-runtime-effectsrunning/healthy restarts=0.omnimarket-projection-apirunning/healthy restarts=0,/health= 200, NOT crash-looping (the v4ModuleNotFoundErroris GONE).RUNTIME_SOURCE_HASH=db3ae8527b5f== infra dev short.EventBusKafka(NOT InMemory), Redpanda clusterredpanda.23e7aed5-…, host:19092.node:node_projection_delegation:0017/0018/0019applied (0007–0019 all applied).delegation_events/generation_eventsqueryable.dev infisical
:8880collision with stability is non-blocking (runtime data path independent); the runtime tier was started withup -d --no-deps.dod_evidence
Cited contract:
contracts/OMN-13405.yaml.file://), build-provenance passes:uv run pytest tests/scripts/test_deploy_runtime_build_context.py tests/scripts/test_check_sibling_lock_pins.py -q→ 15 passed.Evidence:
.onex_state/runtime-e2e-2026-06-21/02-dev-deploy/a6/CAPTURE.md+build.log.ruff format/ruff checkclean;pre-commit run --files <changed>→ all hooks Passed/Skipped.Evidence-Source: be26de8ad29bc431fecd0f851ec5240b5cba52ef
Evidence-Ticket: OMN-13405
OCC receipt pairing
Paired OCC PR: OmniNode-ai/onex_change_control#2875 (
evidence(OMN-13405)), carryingcontracts/OMN-13405.yaml+ PASSdod_receipts. Evidence-Source pins the merged OCC squash commit (= OCC dev HEAD) rather than the OCC PR number, to avoid the dead pre-squash head tripping the Receipt Gate ancestry check in the merge_group context.