feat(prism): enable unattested Lium dispatch for PRISM jobs (T14) - #54
feat(prism): enable unattested Lium dispatch for PRISM jobs (T14)#54echobt wants to merge 3 commits into
Conversation
T14 unattested path: execution_backend=lium no longer requires a constation bundle at PrismWorker construction. Bundle remains optional API-compat; remote_provider/local_cpu stay rejected. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Mock FakeLiumClient proves bridge+tick provisions a pod and empty inventory stays queued with capacity_wait. No live billable rentals. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ops keys for BASE_LIUM_TRAINING__*, worker PRISM_EXECUTION_BACKEND=lium, fail-closed defaults, and live 1M e2e handoff. Not TEE. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
📝 WalkthroughWalkthroughThis change documents the PRISM-to-Lium dispatch flow, adds a ChangesLium dispatch
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
🔧 Fix failing CI
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/unit/test_lium_dispatch_unattested.py`:
- Around line 120-124: Fix the Ruff E501 violations in
test_dispatch_enqueue_and_tick_provisions_mocked_pod by wrapping the overlong
docstring or statements at lines 121 and 181–182 to stay within the configured
88-character limit, without changing test behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 854b0c70-5cbb-4403-b787-50db7ae20760
📒 Files selected for processing (4)
docs/lium-dispatch.mdpackages/challenges/prism/config.example.yamlpackages/challenges/prism/tests/test_execution_backend_constation_gate.pytests/unit/test_lium_dispatch_unattested.py
| async def test_dispatch_enqueue_and_tick_provisions_mocked_pod() -> None: | ||
| """Given Prism pending work + fake Lium inventory, When bridge+tick, Then pod provisioned. | ||
|
|
||
| End-to-end master-owned dispatch without constation and without live API. | ||
| """ |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fix the Ruff E501 failures.
Lines 121 and 182 exceed the configured 88-character limit, blocking CI.
Proposed fix
- """Given Prism pending work + fake Lium inventory, When bridge+tick, Then pod provisioned.
+ """Given pending Prism work and fake Lium inventory, bridge+tick provisions a pod.
...
- """Given empty Lium inventory, When tick, Then lease stays queued (capacity_wait)."""
+ """Given empty Lium inventory, tick leaves the lease queued (capacity_wait)."""Also applies to: 181-182
🧰 Tools
🪛 GitHub Actions: CI / 8_ruff.txt
[error] 121-121: ruff check failed (E501): Line too long (94 > 88).
🪛 GitHub Actions: CI / ruff
[error] 121-121: ruff E501 Line too long (94 > 88).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@tests/unit/test_lium_dispatch_unattested.py` around lines 120 - 124, Fix the
Ruff E501 violations in test_dispatch_enqueue_and_tick_provisions_mocked_pod by
wrapping the overlong docstring or statements at lines 121 and 181–182 to stay
within the configured 88-character limit, without changing test behavior.
Source: Pipeline failures
Summary
Make PRISM actually dispatch training/eval jobs to our Lium machines (plan todo #14).
execution_backend=liumis allowed withoutconstation_bundle(compute-only; not TEE).test_lium_without_bundle_rejectedremoved.LiumCapacityScheduler.tickprovisions viaFakeLiumClient(no live billable rentals).docs/lium-dispatch.mdwith ops config keys + T15 1M e2e handoff.How to trigger dispatch
Master path:
try_build_lium_capacity_scheduler→bridge_pending_workenqueue →run_oncetick → provision when inventory free.Changes
packages/challenges/prism/tests/test_execution_backend_constation_gate.pytests/unit/test_lium_dispatch_unattested.pydocs/lium-dispatch.mdpackages/challenges/prism/config.example.yamlliumbackendTest plan
pytestgate: 5 passed (test_lium_without_bundle_accepted_unattested, …)pytestdispatch + adjacent: 27 passedrequire_execution_backend("lium")OK.omo/evidence/attested-isolated-platform/T14-lium-dispatch/ORCH-VERIFY.txtMust not
liumexecution_backendremainsbase_gpuRefs
BASE_LIVE_PROVIDER_TESTS=1onlySummary by CodeRabbit
New Features
Documentation
Bug Fixes