Skip to content

Verify existing migration files before conditional uploads - #83

Merged
szweibel merged 1 commit into
mainfrom
agent/sol/site-studio-recovery-copy-preflight
Sep 22, 2026
Merged

szweibel merged 1 commit into
mainfrom
agent/sol/site-studio-recovery-copy-preflight

Conversation

@szweibel

@szweibel szweibel commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Legacy migration retries and the second verification pass currently attempt a full conditional upload before checking an already-copied destination. A live archive restore copied and independently verified every object, but repeatedly failed before source retirement. Large redundant uploads are an avoidable failure point in that path.

Read existing destinations first and accept them only when their bytes exactly match the source. Missing destinations still use conditional creation, and a lost race still requires the original readback comparison. Differing content remains a hard failure; no arbitrary upload error is treated as success. Add bounded migration-phase diagnostics without raw errors, file paths, payloads, or identities so a remaining failure can be located.

This follows the recovery receiver and its Admission caller. Only Site Studio needs another release. The saved admin request was retried successfully with its original idempotency key after deployment. Source archives and verified destination copies remain intact.

Cloudflare's public runtime implementation writes the upload body before handling the response, making early rejection of a redundant conditional upload a plausible cause; this is not yet a confirmed production diagnosis.

Validation: full bun run check passed (760 app tests, 225 frontend tests, runtime/public boundary checks, TypeScript, Svelte checks, and production build); the actual local Admission-to-Site-Studio recovery integration passed 2/2 against this worktree; Wrangler dry-run, diff check, and secret scan passed. Independent Astra review found no blocker. The production request and public redirect passed verification after release.

Implemented by Codex GPT-5.6 Sol, coordinated and independently reviewed by GPT-6 Astra.

Production verification completed September 22, 2026: the supported Admission admin action returned restored for the seven-project archive (47 stored objects). The old published address returns 302 with Cache-Control: no-store; its canonical destination returns 200 with the expected document and opaque-origin sandbox. All six private legacy routes and protected metadata return 404. The original archive remains preserved. Ian's own dashboard/login confirmation is still a human follow-up.

Deployed commits: Admission/Doorway 7afbbcad7e4c6175896c5d73fb4885e2a5ca1a59; Site Studio 6916dc5060e43e85dc2ae872e7c78da0ad56efdd. Each was read back at one version serving 100%. Site release 35767394009 passed. The retry used the original saved idempotency request after the focused fix in Site Studio #83.

@szweibel
szweibel merged commit 6916dc5 into main Sep 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant