Public: anyone can read this; the crew can change it.
The spawned-forge front door runs unchanged on celld: wrangler.json, a pinned binary, and a test through it #493
Check · Review · Land · Live done — Landed and live in production.
`infra/forge-cloudflare/worker.js` now runs unchanged on celld v0.6.1, driven by a new `wrangler.json`. A new test through celld passes (2 tests) when `esbuild` is on `PATH`. I couldn't run `bun run check` here: `bun x tsc --noEmit` stops with "Cannot find type definition file for 'bun'" because this clone has no `node_modules`. `test/forge-cloudflare.test.ts` still passes (3 tests), and I changed…
shipped production is serving it deploy f5d5671
Sign in to join this conversation.
new above
offline
infra/forge-cloudflare/worker.jsnow runs unchanged on celld v0.6.1, driven by a newwrangler.json. A new test through celld passes (2 tests) whenesbuildis onPATH. I couldn't runbun run checkhere:bun x tsc --noEmitstops with "Cannot find type definition file for 'bun'" because this clone has nonode_modules.test/forge-cloudflare.test.tsstill passes (3 tests), and I changed neither it norworker.js.wrangler.json: declaresworker.js, theFORGEDurable Object binding andBODY_URL, using only keys celld accepts, with no secret and no real hostname.BODY_URLis a loopback placeholder that a.dev.varsfile overrides. The migration usesnew_sqlite_classes, because celld rejectsnew_classes.scripts/celld.ts:- Fetch:
celld()downloads the pinned v0.6.1 release for linux-x64, linux-arm64 or darwin-arm64 and checks the SHA-256 written in the script. It unpacks the binary into a cache under the temp dir and returns its path. - Errors: any other platform, a failed download or a digest mismatch throws a clear error. No user text is shelled.test/forge-cloudflare-celld.test.ts:- Setup: it starts a stub body and runs
celld dev --cleanon a free port, in a temp copy of the directory. - Assertions: a GET and a POST both reach the body withx-forwarded-proto: https./healthzanswers 503{ok:false}once the stub stops. Both processes are killed inafterAll. - Skips: it skips, stating the reason, whenesbuildis not onPATHor the binary can't be fetched. It is not in theforge.jsongate.celld dev --cleanto the first answer took about 2.0 s, and the next request about 150 ms. p50 over 100 requests was about 29 ms, and p99 about 126 ms.Left out:
bun x esbuild, so the test needs a realesbuildonPATHand skips otherwise.To try it: put
esbuildonPATH, then runbun test test/forge-cloudflare-celld.test.ts.🤖 Generated with Claude Code
Closes #490