feat(triggers): persist isolated Standard allocation - #5624
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (12 files)
Reviewed by grok-4.6 · Input: 239.7K · Output: 13K · Cached: 377.7K Review guidance: REVIEW.md from base branch |
Manual local smoke — 2026-08-27Ran the real local webhook Worker → TriggerDO → delivery queue → Cloud Agent service binding → Docker sandbox → wrapper/CLI → completion callback path. Used a disposable local user/profile, an existing authorized GitHub App installation with read-only use of a small public repository, and
Caveat: this was not a completely clean first-pass smoke. The first scheduled execution hit an unresolved runtime stall after successful allocation and prompt acceptance. The wrapper SDK stream ended and the no-output watchdog eventually failed the message; a fresh scheduled run passed. This is not enough evidence to assign the stall to allocation or rule out a separate runtime issue. Boundaries: validates real configuration propagation, container identity/class, execution, real cron firing, and callback completion. It does not validate production Cloudflare CPU/RAM/disk limits, actual billing charges, PR 3 authorization/UI, or containment-enabled execution (local containment flags remained disabled). The driver was temporary/manual, reusing the Cloud Agent E2E helpers; no permanent webhook E2E harness was added. Cleanup verified: three triggers deleted; all five sessions deleted; owned sandbox/proxy containers stopped; no fake-inference waiters; smoke user/profile/integration/CLI session rows removed. Original four-service core dev stack restored. Working tree remains clean. |
Summary
PR 2 of the three-PR Dedicated Standard trigger rollout, following merged #5520.
sandboxAllocation: "isolated-standard"in TriggerDO SQLite and its existing KV configuration mirror. Generated Durable SQLite migration0004_bumpy_firebirdadds nullablesandbox_allocation; existing rows remain Automatic. No shared PostgreSQL migration.nullclears it, andisolated-standardsets it. Direct DO calls are guarded too.prepareSession; omit it for Automatic. Queue messages and captured request payloads are unchanged.Verification
Manual local smoke exercised real webhook and scheduled execution through Docker sandboxes and completion callbacks, plus clearing allocation back to Automatic. Two isolated webhook runs, a fresh scheduled run, and the Automatic run completed. The first scheduled attempt allocated correctly but failed with an unresolved wrapper_no_output runtime stall. Full evidence and limitations: #5624 (comment)
No deployed production or UI tests were run; no services were deployed.
Automated checks
pnpm --filter cloudflare-webhook-agent-ingest test— 115 tests passed.pnpm --filter cloudflare-webhook-agent-ingest test:integration— 36 tests passed using real Durable Object SQLite.pnpm --filter cloudflare-webhook-agent-ingest typecheck— passed.pnpm --filter cloudflare-webhook-agent-ingest lint— passed, zero warnings/errors.git diff --check— passed.Visual Changes
N/A
Reviewer Notes
workspace_*control-plane sessions.