Skip to content

fix(ceremony): align CCDP catalogs, Worker selection and trust boundaries - #80

Merged
Wondertan merged 13 commits into
mainfrom
fix/ccdp-conformance
Oct 2, 2026
Merged

Wondertan merged 13 commits into
mainfrom
fix/ccdp-conformance

Conversation

@Wondertan

@Wondertan Wondertan commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Stacked on #74. Aligns the implementation with PR13 at 66096eb:

  • Publish and validate the { ccdpVersions, platforms } catalog; refuse an unsupported CCDP version before launch.
  • Pin Prefetch to the content-addressed Worker and dispatch only to that script, including a waiting replacement. Reconcile managed cache entries against the complete release graph on activation.
  • Enforce core-event sender origins and the canonical /auth/callback redirect path. Release retained OAuth captures on terminal cleanup.

Updates the cross-origin browser fixtures, package documentation and requirement traceability alongside the fixes.

Validation: 989 ceremony unit tests; 39 build/distribution/native-server checks; 51 ceremony browser checks and 99 dev-app checks across Chromium, Firefox and WebKit; typechecks, builds and lint. Live OAuth and verifier qualification were not rerun.

@Wondertan
Wondertan force-pushed the fix/ccdp-conformance branch from b7cb6df to 6ac469a Compare October 2, 2026 02:34
@cloudflare-workers-and-pages

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

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Failed ❌

View logs ↗
6ac469a 2026-10-02T02:34:36.109Z View logs ↗

@Wondertan
Wondertan force-pushed the refactor/notarized-layering branch from 6fbc40d to d6f0e25 Compare October 2, 2026 13:03
Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Report authorization observations from a Bridge-origin Callback in the development application fixtures. Pin the documentation to the reviewed specification revision and record the added conformance checks.

Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: Claude Opus 5.5
Recognize older content-addressed CCDP scripts when retiring the known nested scope, so it cannot prevent the root Worker from claiming Prover. Preserve unrelated registrations and exercise an older script in the browser regression.

Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Retire only /ccdp/v1/worker.js at the old nested scope. Content-addressed scripts have only been registered at root scope, so remove the speculative matcher and make regression fixtures use the actual legacy path.

Assisted-by: GPT-6
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Registration needs no popup connection, yet Prefetch started it only
after authenticated readiness. It now starts at entry for a supported
profile, so installing the pinned Worker overlaps the handshake, which
matters most when the handshake is slow. Dispatch still waits for both
readiness and that Worker. worker-ready-ms now measures only the part
the handshake did not hide.

Assisted-by: Claude Opus 5.5
Signed-off-by: Wondertan <hlibwondertan@gmail.com>
The migration e2e seeded the root scope with the current content-addressed Worker, so the transition every existing browser makes on its first visit, from /ccdp/v1/worker.js, ran only in unit tests. The seed now registers the earlier release's Worker at both scopes. It answers nothing, so the run completes only if Prefetch dispatches to the Worker it pins, including a waiting one.

Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: Claude Opus 5.5
Traceability no longer describes the removed update check for LIBID-ASSET-014, and no longer claims Prover tests that clear retained captures for LIBID-OAUTH-023 (#95). The Worker entry names its content-addressed path, worker-ready-ms says registration starts once the connection is accepted, and the dev README pins the current spec.

Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: Claude Opus 5.5
@Wondertan
Wondertan force-pushed the fix/ccdp-conformance branch from fa8d3c0 to f9d303f Compare October 2, 2026 13:41
No released build registered a nested /ccdp/v1/ Service Worker, so Prefetch no longer looks for one to retire. The Worker-transition e2e now starts from an earlier release's content-addressed Worker, the change every release makes. LIBID-ASSET-020 keeps the root-registration resolution and claim it still tests. Spec links pin PR13 at 66096eb, which drops the matching stale-registration rules.

Signed-off-by: Wondertan <hlibwondertan@gmail.com>
Assisted-by: Claude Opus 5.5
Base automatically changed from refactor/notarized-layering to main October 2, 2026 13:56
@Wondertan
Wondertan merged commit 2f66119 into main Oct 2, 2026
15 checks passed
@Wondertan
Wondertan deleted the fix/ccdp-conformance branch October 2, 2026 13:56
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