Recorded at the ledger-v2 production deployment closeout (2026-08-04). No change has been made to the Cloudflare integration — this is an operational decision requiring review.
Observation
The exhibit Worker dspack-studio receives a new version upload a couple of minutes after every push to main, with no such command in the release procedure:
| Event |
Timestamp (UTC) |
| #31 merge push → CI run started |
2026-08-04T14:00:46Z |
dspack-studio version f671c8d1-eae8-4759-9e55-7e3ae23437c5 created |
2026-08-04T14:02:53Z |
| #29 merge push → CI run started |
2026-08-03T23:43:23Z |
dspack-studio version ee8e7cfb-e2bb-435d-be7b-773b20c14ae4 created |
2026-08-03T23:46:02Z |
During the ledger-v2 release the only Cloudflare write command executed was npx wrangler deploy --config wrangler.composer.jsonc at 2026-08-04T14:11:35Z, which uploaded 8 files to the composer Worker (dspack-studio-composer, version ca1af622). The exhibit version predates it by ~9 minutes.
No repository workflow deploys
grep -rln "wrangler deploy\|cloudflare/wrangler-action" .github/ returns nothing. .github/workflows/ci.yml builds the static export as an artifact ("Static export (the deploy artifact)") but never deploys it, and release-style deploy workflows do not exist in this repo. The consistent ~2–3 minute lag after each push to main is the signature of a Cloudflare Workers Builds Git integration configured on the dspack-studio Worker in the Cloudflare dashboard. Notably the composer Worker (dspack-studio-composer) shows no equivalent uploads — its only versions come from explicit wrangler deploy runs — so if the integration exists it is scoped to the exhibit Worker only.
Why it was harmless this time
The exhibit's entire consumed source surface is byte-identical between the Phase 2 deploy source 177b9ae and merged main 1a56872:
git diff --stat 177b9ae 1a56872 -- apps/web packages/a2ui-ingest packages/replay \
packages/scenarios packages/contracts packages/astryx-renderers packages/shadcn-renderers
# (empty)
apps/web has no dependency on @aestheticfunction/dspack-export, so the ledger-v2 dependency bump could not reach it. Exhibit production smoke after the merge: 86/86 green.
Operational risk
Any future merge to main that touches apps/web or its consumed packages will redeploy the exhibit without an explicit deployment decision, without the pre-deploy rollback anchor being recorded, and without the exhibit production smoke being run as a gate. That contradicts the deployment discipline documented in docs/deployment.md (explicit wrangler deploy per Worker, anchor first, smoke after) and means a red smoke would be discovered after the fact rather than before rollout. It also makes "the exhibit Worker remains untouched" unverifiable as a release criterion, since a merge alone can change it.
Choices (no action taken)
- Retain deliberately — document the auto-deploy in
docs/deployment.md as the intended exhibit path, and add a post-merge exhibit smoke (scheduled or workflow-triggered) so a bad rollout is caught automatically. Keeps merges fast; accepts deploy-on-merge.
- Scope by paths, if supported — restrict the Workers Builds trigger to
apps/web/** plus the packages the exhibit consumes, so unrelated merges (like this one) stop redeploying it. Reduces noise without giving up automation; needs confirmation that path filters are available for this integration.
- Disable and make exhibit deployment explicit — remove the Git integration so the exhibit deploys only via
npx wrangler deploy --config wrangler.jsonc, matching the composer's discipline and the documented anchor→deploy→smoke sequence. Most control, least automation.
Deciding requires dashboard access to confirm the integration exists and how it is configured (Workers → dspack-studio → Settings → Build).
🤖 Generated with Claude Code
Recorded at the ledger-v2 production deployment closeout (2026-08-04). No change has been made to the Cloudflare integration — this is an operational decision requiring review.
Observation
The exhibit Worker
dspack-studioreceives a new version upload a couple of minutes after every push tomain, with no such command in the release procedure:dspack-studioversionf671c8d1-eae8-4759-9e55-7e3ae23437c5createddspack-studioversionee8e7cfb-e2bb-435d-be7b-773b20c14ae4createdDuring the ledger-v2 release the only Cloudflare write command executed was
npx wrangler deploy --config wrangler.composer.jsoncat 2026-08-04T14:11:35Z, which uploaded 8 files to the composer Worker (dspack-studio-composer, versionca1af622). The exhibit version predates it by ~9 minutes.No repository workflow deploys
grep -rln "wrangler deploy\|cloudflare/wrangler-action" .github/returns nothing..github/workflows/ci.ymlbuilds the static export as an artifact ("Static export (the deploy artifact)") but never deploys it, andrelease-style deploy workflows do not exist in this repo. The consistent ~2–3 minute lag after each push tomainis the signature of a Cloudflare Workers Builds Git integration configured on thedspack-studioWorker in the Cloudflare dashboard. Notably the composer Worker (dspack-studio-composer) shows no equivalent uploads — its only versions come from explicitwrangler deployruns — so if the integration exists it is scoped to the exhibit Worker only.Why it was harmless this time
The exhibit's entire consumed source surface is byte-identical between the Phase 2 deploy source
177b9aeand merged main1a56872:apps/webhas no dependency on@aestheticfunction/dspack-export, so the ledger-v2 dependency bump could not reach it. Exhibit production smoke after the merge: 86/86 green.Operational risk
Any future merge to
mainthat touchesapps/webor its consumed packages will redeploy the exhibit without an explicit deployment decision, without the pre-deploy rollback anchor being recorded, and without the exhibit production smoke being run as a gate. That contradicts the deployment discipline documented indocs/deployment.md(explicitwrangler deployper Worker, anchor first, smoke after) and means a red smoke would be discovered after the fact rather than before rollout. It also makes "the exhibit Worker remains untouched" unverifiable as a release criterion, since a merge alone can change it.Choices (no action taken)
docs/deployment.mdas the intended exhibit path, and add a post-merge exhibit smoke (scheduled or workflow-triggered) so a bad rollout is caught automatically. Keeps merges fast; accepts deploy-on-merge.apps/web/**plus the packages the exhibit consumes, so unrelated merges (like this one) stop redeploying it. Reduces noise without giving up automation; needs confirmation that path filters are available for this integration.npx wrangler deploy --config wrangler.jsonc, matching the composer's discipline and the documented anchor→deploy→smoke sequence. Most control, least automation.Deciding requires dashboard access to confirm the integration exists and how it is configured (Workers →
dspack-studio→ Settings → Build).🤖 Generated with Claude Code