feat(worker): flip route from staging to production for Phase 4a (#503)

Phase 2 container validation passed against
pkg-staging.claude-desktop-debian.dev — APT (debian:stable,
ubuntu:24.04, debian:testing) and DNF (fedora:latest, rockylinux:9)
both install the current pool version via the Worker chain. The one
remaining failure is #500's sha256 mismatch on RPM download, and
PR #502's gh release upload --clobber fix runs on the next release
that reaches update-dnf-repo.

This flip binds the Worker to pkg.claude-desktop-debian.dev. Once
this is deployed, the strip step's liveness probe in update-apt-repo
and update-dnf-repo will start succeeding, stripping .debs/.rpms from
the local pool tree before push — the original #493 blocker.

Pre-merge checklist (manual, outside this PR):

1. Add CNAME file containing pkg.claude-desktop-debian.dev to the
   gh-pages branch root (via Pages settings UI or direct push).
2. Wait for GitHub Pages cert provisioning. Typical ~1h; verify in
   repo Settings > Pages that the green cert indicator shows.
3. Merge this PR. CI deploys the Worker to the new route via
   deploy-worker.yml.
4. Confirm production probe responds:
     curl -fsI https://pkg.claude-desktop-debian.dev/dists/stable/InRelease
5. Re-run the failed update-apt-repo + update-dnf-repo jobs from the
   v2.0.3+claude1.3883.0 run (gh run rerun 24836419696 --failed) —
   this simultaneously validates #500's fix and completes the v2.0.3
   release for apt/dnf users.

Rollback: remove the CNAME file from gh-pages, unbind the Worker
route via the Cloudflare dashboard. gh-pages .deb assets from the
pre-strip history still exist and serve directly via github.io.

Refs #493, #500

Co-authored-by: Claude <claude@anthropic.com>
This commit is contained in:
Aaddrick
2026-04-23 10:09:46 -04:00
committed by GitHub
parent 0bcf7a473f
commit b9bc02dd8b

View File

@@ -1,10 +1,10 @@
# Cloudflare Worker configuration for the APT/DNF binary redirect.
# See docs/worker-apt-plan.md for the architecture.
#
# Initially deployed to pkg-staging.<domain> only. Phase 4a switches the
# route to pkg.<domain> after Phase 2 container validation passes. The
# strip step in .github/workflows/ci.yml gates on the production route's
# liveness, so the production route's existence is the cutover signal.
# Production route is live. Phase 2 container validation passed against
# pkg-staging.<domain>; Phase 4a cuts the Worker over to pkg.<domain>.
# The strip step in .github/workflows/ci.yml gates on this route's
# liveness, so flipping here is what unblocks the >100MB .deb push path.
name = "claude-desktop-debian-pkg-redirect"
main = "src/worker.js"
@@ -12,8 +12,6 @@ compatibility_date = "2026-04-22"
# Custom Domain (auto-DNS) routing. Cloudflare creates the DNS record
# automatically when this is deployed; no separate dummy A record needed.
# Switch `pattern` to "pkg.claude-desktop-debian.dev" when cutting to
# production in Phase 4a.
routes = [
{ pattern = "pkg-staging.claude-desktop-debian.dev", custom_domain = true },
{ pattern = "pkg.claude-desktop-debian.dev", custom_domain = true },
]