fix(broker): isolate workspace lifecycle queue lane
Problem
The lifecycle effect broker and standalone host-lease worker used the same provider host class. A worker could claim an outer workspace:create job and reject it as an invalid lease operation.
Fix
Route lifecycle effects through a durable workspace:<provider> queue lane, preserving provider host classes for lease adapters. Add a regression assertion for the lane identity.
Validation
bun test --isolate tests/persistent-workspace-broker-lifecycle.test.ts tests/persistent-workspace.test.ts tests/persistent-workspace-route.test.ts tests/runtime-composition.test.ts(14 passed)bun run typecheckunavailable in this checkout becausetsgois not installed; previously passed on the merged staging snapshot.
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Routes workspace lifecycle effects through a dedicated workspace:<provider> queue lane so workspace:create jobs can't be claimed by lease adapters and rejected as invalid lease operations. This PR also introduces durable runtime persistence, a provider-neutral agent broker, host lease transport, persistent workspaces, and run attempt promotion.
Key changes
- Route lifecycle effects through a dedicated
workspace:<provider>queue lane, preserving provider host classes for lease adapters, with a regression assertion on lane identity. - Persist runtime lifecycle state, placement generation, lease fences, and idempotency keys for
cloud_runtimes. - Add an agent broker with idempotent job enqueue, leased claims, and replay receipts, plus cross-host contract tests.
- Add a provider-neutral VM host lease store and transport with Huge Blue and Freestyle adapters.
- Add persistent workspace lifecycle management with idempotent creation and promotion of run attempts.
- Remove the staging-only composition, workspace HTTP harness, and legacy attach-token FK migration.