Saga sandbox controller panics on entity ID when creating sandbox
Bug
When running with --labs sagas, the saga sandbox controller panics when trying to create a sandbox. The entity store rejects the saga's persisted state because the ID is passed as a raw string instead of being wrapped with entity.Id().
Error
panic in RPC handler: "entity has db/id attribute with value
create-sandbox-sandbox/bb-go-server-2cae7a-web-CZ1kpRRoP9gMLrUHuE3Qs
(kind String) but it is not recognized as an Id — use entity.Id() to wrap the value"
Impact
Every sandbox creation fails immediately via the saga path — the sandbox is marked DEAD before it ever starts. This means no apps can start when sagas are enabled.
Repro
- Start server with
--labs sagas - Deploy any app (e.g.
miren deploy -a test -d testdata/go-server) - App will show as "crashed" — sandbox never starts
Root cause
In the saga sandbox controller, when persisting initial saga state via EnsureAndCheck, the saga entity ID (e.g. create-sandbox-sandbox/...) is constructed as a plain string rather than wrapped with entity.Id().
Goal
Full blackbox test suite passing with --labs sagas enabled:
DEV_SERVER_FLAGS="--labs sagas" make dev-server-restart
make test-blackbox