Skip to content

0.42.0-alpha.5 — audit round 1 remediation (TP-5.5) - #574

Merged
SisyphusZheng merged 5 commits into
mainfrom
dev
Jul 28, 2026
Merged

0.42.0-alpha.5 — audit round 1 remediation (TP-5.5)#574
SisyphusZheng merged 5 commits into
mainfrom
dev

Conversation

@SisyphusZheng

Copy link
Copy Markdown
Member

0.42.0-alpha.5 — audit round 1 remediation (TP-5.5)

Target version / plan: 0.42.0-alpha.5 under docs/current/VERSION_PLAN.md TP-5.5 (audit round 1 remediation), inserted between TP-5 and TP-6 by the first implementation audit of the 0.42 WC Application Loop.

ADRs added/changed: ADR-0121 (PROPOSED, docs/adr/ADR-0121-0-42-action-protocol-hardening-amendment.md) — 12 protocol-visible decisions from the audit (header negotiation, Response-return policy, redirect algebra, PRG target, fetch-channel symmetry, no-cache, POST error parity, region semantics, morph architecture + identity, popstate, open:action-failure, CSRF threat model). ADR index updated.

Version-plan tasks completed: all of TP-5.5 — the 35 audit issues (#539#573) are fixed with code + test/gate evidence posted per issue (issues intentionally left open for maintainer review).

Headline: the alpha.3 morph enhancement never fired (submit is not composed; page content lives in page-element DSD) — the client is rewritten around shadow-root interception and shadow-content morphing. Errata appended to the alpha.3/alpha.4 release notes.

Local commands run:

  • deno task autoflow:ci — full suite green (unit 971; fixture e2e 42 × 3 engines = 126; www e2e; consumer local+packaged; third-party WC smoke; package artifacts)
  • deno task nitro:proof:node / nitro:proof:workers — green
  • deno task pack:dry-run — five 0.42.0-alpha.5 tarballs (publish dry-run)
  • deno task docs:truth, workflow:check, interface:snapshot (re-baselined: only the four Spa* type exports), check:static-output-freeze --self-check (422 files byte-identical), lint/format

CI status: dev CI pending on this PR's HEAD (link follows in checks).

Release-document impact: docs/release/v0.42.0-alpha.5.md added; CHANGELOG entry added; errata appended to v0.42.0-alpha.3.md / v0.42.0-alpha.4.md; PACKAGE_SURFACE.md 0.42 section completed; MORPH_CONTRACT.md added; www roadmap current entry rewritten; docs/integrations/validation.md now names the CI gate.

DevBot added 4 commits July 28, 2026 02:50
…d 1 remediation (TP-5.5)

Protocol hardening per ADR-0121: hasAction covers named actions, own-key
named-action dispatch, unified x-openelement-action header (true/enhance)
with Vary, Response-return contract violation, PRG action-marker strip,
3xx-to-303 coercion on POST + redirect() status validation, fetch-channel
404/500 JSON symmetry with PROD scrub, no-store default on request-time
responses, POST error-boundary parity, bodyLimit on action POSTs, defined
405 for non-GET/POST, renderIntent.mode validation.

Morph client rewrite (alpha.3 enhancement never fired: submit is not
composed and page content lives in page-element DSD): per-shadow-root
submit interception, shadow-content morph, id-keyed + bounded-lookahead
matching, form-scoped regions with navigation fallback, popstate reload,
open:action-failure restored, submitter-preserving body, 500/cross-origin
navigation fallback, double-submit guard, fragment preservation,
state-mirroring attribute skip list.

Evidence and gates: fixture three-engine e2e in ci+release gate tiers,
static-output freeze tool (release tier), dev/build parity contract test,
dev SSR customElements polyfill (dev SSR 500 fix), perf baseline with
environment fields, alpha.3/alpha.4 release-note errata (false survival
claims), MORPH_CONTRACT survival matrix doc.

Manifest and surface: self-contained matchRequestTimeRoute host contract,
[...path] wildcard fix, /item/[id] fixture, zero-island enhancement with
conditional enhancement layer (lean bundles for form-less sites),
Spa* loader/action type split, PACKAGE_SURFACE completion, starter
contact.tsx shipping fix + Nitro-node POST smoke, CSRF threat-model
guide page, dev customElements polyfill shared with the build banner.

Refs #539-#573 (fix evidence posted per issue).
…tion precision

- contact.tsx drops the redundant customElements.define (the generated
  server registers route defaults): the call fails typecheck against
  packed npm types (OpenElement vs HTMLElement), breaking consumer:packaged.
- hasEnhancedForms detection requires attribute shape (= or >) so prose
  mentioning data-open-enhance (e.g. the www guide) no longer pulls the
  enhancement layer — and the popstate reload listener now only fires
  after an actual enhanced navigation, keeping SPA-style client routing
  on the same bundle unaffected (www router-guard e2e).
.map((route) => {
const params = route.paramNames.map((name) => JSON.stringify(name)).join(', ');
// '/' must be escaped or it would terminate the regex literal.
const pattern = routePatternToRegExpSource(route.path).replace(/\//g, '\\/');
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

Copy link
Copy Markdown
Contributor

APIError: Insufficient Balance

opencode session  |  github run

The fixture dist is not committed and the coverage/test gates run before
any build gate, so the dev/build parity test failed in CI with 'fixture
not built' while always passing locally. Build the fixture in the test
when dist is missing (no-op when present).
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 28, 2026

Copy link
Copy Markdown

Deploying openelement with  Cloudflare Pages  Cloudflare Pages

Latest commit: e38976c
Status: ✅  Deploy successful!
Preview URL: https://9719ae80.lessjs.pages.dev
Branch Preview URL: https://dev.lessjs.pages.dev

View logs

@github-actions

Copy link
Copy Markdown
Contributor

APIError: Insufficient Balance

opencode session  |  github run

@SisyphusZheng
SisyphusZheng merged commit d2685b0 into main Jul 28, 2026
9 of 10 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