Skip to content

Phase 2 step 7: the release review and the single-host beta plan (documentation only) - #111

Merged
ryandmonk merged 4 commits into
mainfrom
claude/blocks-release-review
Oct 17, 2026
Merged

ryandmonk merged 4 commits into
mainfrom
claude/blocks-release-review

Conversation

@ryandmonk

@ryandmonk ryandmonk commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

What this is

Documentation only. Phase 2 step 7, the release review of the frozen release candidate (main at 7ff13c96c7b0ef6d8d7bacc91b9e3c2d839a771c), revised for the owner's single-host amendment of 2026-10-17.

No application, Worker, config or workflow file changes. It changes no Cloudflare setting and makes no model call. The deployed code stays the release candidate's. A merge redeploys the same block-free default artifact through Workers Builds.

The owner's single-host amendment

The owner's decision, recorded in their words in docs/blocks/PHASE-2-DECISION-RECORD.md, "The single-host amendment":

  • No new host. No new hostname, subdomain or Worker. The invite-only beta runs on composer.aesthetic-function.com and its existing Worker, dspack-studio-composer.
  • Access. Cloudflare Access protects it with email one-time PIN. At first it admits only the owner's exact email, which the owner enters in the dashboard; it is not recorded here.
  • No password, no service token. There is no shared password and no client-side gate. No service token exists yet, so the hosted canary is blocked until the owner authorizes a temporary machine credential.
  • The rollback anchor. The block-free release candidate stays the rollback anchor on the same hostname.
  • The cutover order. Steps A to I: Access first and verified, then the experimental deploy with the block switch off, then the baseline and a rollback rehearsal, the zero-cost checks, and a stop before any paid call.

Files

  • docs/blocks/RELEASE-REVIEW.md. The §12 matrix with evidence links: 16 pass, 4 fail, 7 pending. It also holds the findings in the owner's frozen blocking classes, the decisions D1 to D11, and the recommendation, CONDITIONAL GO, which separates what can proceed now from what is blocked.
  • docs/blocks/BETA-DEPLOY-PLAN.md. The single-host plan:
    • the cutover order with the dashboard paths and the checks;
    • the cutover change, prepared and not merged;
    • Workers Builds' interplay with the beta;
    • the rollback to the block-free release candidate;
    • shared browser storage;
    • the blocked canary, with its exact capped command;
    • the invitation draft.
  • docs/blocks/MANUAL-A11Y-PACKET.md. The manual keyboard and screen-reader checks only a person can run. It claims no NVDA, VoiceOver or TalkBack evidence.
  • docs/blocks/POST-BETA-BACKLOG.md. Everything outside the blocking classes. The UI redesign is the next planning phase.
  • docs/blocks/PHASE-2-DECISION-RECORD.md. The owner's waivers, the freeze and the amendment, in their words.
  • docs/blocks/BETA.md. Who can use the beta, opting in, eligibility, storage, the runbook, the metrics and the known gaps.
  • docs/blocks/BETA-OPERATIONS.md, docs/blocks/ACCESSIBILITY.md (the waivers named), docs/BLOCKS.md, docs/deployment.md, docs/release-checklist.md and the status note of docs/blocks/PHASE-2-RELEASE-PLAN.md. Revised for the single host. The separate beta Worker's config and workflow stay on main only until the cutover change replaces them, are marked superseded, and must never be dispatched.

Checks

  • Only docs/ changes: git diff --name-only 7ff13c9 lists docs files only.
  • Every relative link and every pinned GitHub link resolves.
  • No em-dash is added.
  • One independent factual review checked the docs against:
    • the deployment configuration;
    • the code at 7ff13c9;
    • wrangler 4.146.0's source;
    • the release plan.
  • How the review went:
    • 9311fb2: 2 material findings, both in the rollback and kill-switch class, and 19 minor ones.
    • f2a433f: fixes them. Verified: both material findings resolved, 0 material remaining, and 7 new minor issues.
    • 7ea6af7: fixes those 7. Verified: all resolved, no new contradiction, MATERIAL findings remaining: 0.
  • The fixes also add what the cutover work found: step D now covers custom-domain Preview URLs and routes attached in the dashboard.

🤖 Generated with Claude Code

https://claude.ai/code/session_01R6Ax8qvfN3gYUC85oSGnoi

…nd the invite-only deployment plan

Documentation only: no code, config or workflow changes. The release
candidate stays main at 7ff13c9.

- RELEASE-REVIEW.md: the release candidate, the post-merge evidence of
  #110, and the §12 matrix with evidence links: 16 pass, 4 fail (none in
  the owner's blocking classes), 7 pending; the findings, the owner's
  decisions and a conditional go.
- MANUAL-A11Y-PACKET.md: the minimum manual checks before an official
  beta (keyboard in Safari and Firefox; VoiceOver and NVDA on the three
  Astryx blocks), who runs each, what may wait, and a results table. No
  screen-reader evidence is claimed.
- BETA-DEPLOY-PLAN.md: one Access allowlist policy for
  composer.aesthetic-function.com and the beta hostname, not applied;
  the invite information needed; the deploy with the switch off, the
  baseline, the rollback rehearsal and the zero-cost smoke; the proposed
  Stage 1 canary (at most $5.00, about $0.20 expected), not authorized.
- POST-BETA-BACKLOG.md: everything non-blocking, and the UI redesign as
  the next planning phase.
- The owner's 2026-10-17 decisions recorded; the waivers decided in
  ACCESSIBILITY.md and BETA.md; BETA.md completes the release plan's §11
  sections; release-checklist.md gains the blocks beta section;
  deployment.md covers the new audience, the first deploy under the
  zone's wildcard record, naming the rollback anchor, and production's
  kill switch; stale status lines corrected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R6Ax8qvfN3gYUC85oSGnoi
…mendment

The owner amended the deployment on 2026-10-17: no new hostname, subdomain
or Worker. The invite-only beta runs on composer.aesthetic-function.com and
its existing Worker, behind Cloudflare Access with email one-time PIN,
admitting at first only the owner's exact email (entered by the owner, not
recorded here). No shared password, no client-side gate, no service token.

- PHASE-2-DECISION-RECORD.md: the amendment, its accepted consequences, the
  cutover order A to I, the OTP and edge-auth rule, the canary options and
  the no-hardening rule, in the owner's words; earlier decisions marked as
  superseded where they are.
- BETA-DEPLOY-PLAN.md: rewritten as the single-host plan: what can proceed
  now and what is blocked, the cutover order with dashboard paths and
  checks, the cutover change (prepared, not merged), Workers Builds
  interplay, rollback to the block-free release candidate on the same
  hostname, shared storage, the blocked canary, the invitation.
- RELEASE-REVIEW.md: matrix rows, findings, decisions and the CONDITIONAL GO
  recommendation revised; criterion 21 is blocked on a machine credential.
- BETA.md, MANUAL-A11Y-PACKET.md, BETA-OPERATIONS.md, POST-BETA-BACKLOG.md,
  BLOCKS.md, PHASE-2-RELEASE-PLAN.md status, deployment.md and
  release-checklist.md: single host throughout; the separate beta Worker's
  config and workflow are marked superseded and must never be dispatched.

Documentation only: no application, Worker, config or workflow change, no
Cloudflare change and no model call.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R6Ax8qvfN3gYUC85oSGnoi
…docs

The independent review of 9311fb2 found two material errors, both in the
rollback and kill-switch class, and nineteen minor ones. All are fixed:

- A rollback restores the variables the target version had, so the plan now
  sets HOSTED_AI, BLOCKS_BETA and BETA_OPERATOR_LOG again after every rollback
  or roll-forward; otherwise a rollback after a pause turns hosted generation
  back on.
- The beta ends by a forward change, never by reverting the cutover change,
  whose revert would restore the superseded separate-Worker files and
  redeclare HOSTED_AI without keep_vars.
- One rule for the POST check (a redirect to the Access login), the C
  command's prerequisites, the anchor's definition, the invitation's scripted
  mode, the credential read without echo, the token's revocation, the order
  of turning off production-branch builds, criteria 10, 11 and 22 with a new
  decision D11, the waivers named, the screen-reader minimum, and superseded
  plan text marked as such.

Also adds to step D what the cutover work found: wrangler 4.146.0 can give
a custom domain its own Preview URLs, outside an Access application for the
exact hostname, and a dashboard route survives every deploy.

Documentation only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R6Ax8qvfN3gYUC85oSGnoi
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
dspack-studio-composer 7ea6af7 Oct 17 2026, 06:12 PM

…ost docs

The reviewer's verification of f2a433f found no material finding left and
seven minor ones, fixed here:

- step C's curl POST asks as a browser would, as the GET probes do;
- HOSTED_AI off, offered at step I, is set on again before the harness
  baseline and the canary, which refuse otherwise;
- after a rollback, BETA_OPERATOR_LOG is checked in the dashboard;
- the harness baseline runs inside the canary's credential block;
- the canary's preflight is compared with the baseline apart from the
  sidecars the run omits;
- BLOCKS.md's artifact wording waits on step F;
- the packet's screen-reader minimum matches decision D7.

Documentation only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R6Ax8qvfN3gYUC85oSGnoi
@ryandmonk
ryandmonk merged commit 260c538 into main Oct 17, 2026
2 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.

2 participants