fix(broker): isolate workspace lifecycle queue lane

Merged
TE
19d ago
+60-221

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 typecheck unavailable in this checkout because tsgo is not installed; previously passed on the merged staging snapshot.

View with [code]smith Autofix with [code]smith
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.