Skip to content

feat(core): PublicError — user-facing errors render unredacted through ErrorBoundary - #8868

Merged
maiieul merged 19 commits into
claude/gracious-poitras-0f1723from
claude/public-error
Jul 26, 2026
Merged

feat(core): PublicError — user-facing errors render unredacted through ErrorBoundary#8868
maiieul merged 19 commits into
claude/gracious-poitras-0f1723from
claude/public-error

Conversation

@maiieul

@maiieul maiieul commented Jul 18, 2026

Copy link
Copy Markdown
Member

What is it?

  • Feature / enhancement

Description

Adds PublicError (from the error-rework RFC): throwing one under an <ErrorBoundary> shows its message and .data in the fallback unredacted, even in production — constructing it is the consent. Everything else keeps the fail-closed generic redaction.

Class identity survives resume without a new serdes TypeId: a reserved marker pair inside the ordinary Error payload restores the prototype on inflate, so plain instanceof PublicError works everywhere (pinned by a prod e2e that probes the deserialized error in the browser). transformError still runs first and wins.

Based on #8745 — retarget to main once that merges.

@maiieul
maiieul requested review from a team as code owners July 18, 2026 22:26
@changeset-bot

changeset-bot Bot commented Jul 18, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: db955b9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@qwik.dev/core Major
@qwik.dev/router Major
eslint-plugin-qwik Major
@qwik.dev/react Major
create-qwik Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@maiieul maiieul self-assigned this Jul 18, 2026
@maiieul maiieul moved this to Waiting For Review in Qwik Development Jul 18, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jul 18, 2026

Copy link
Copy Markdown

Open in StackBlitz

@qwik.dev/core

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/core@8868

@qwik.dev/router

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/router@8868

eslint-plugin-qwik

npm i https://pkg.pr.new/QwikDev/qwik/eslint-plugin-qwik@8868

create-qwik

npm i https://pkg.pr.new/QwikDev/qwik/create-qwik@8868

@qwik.dev/optimizer

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/optimizer@8868

@qwik.dev/devtools

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/devtools@8868

commit: db955b9

@github-actions

github-actions Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor
built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
qwik-docs ✅ Ready (View Log) Visit Preview db955b9

maiieul added 11 commits July 26, 2026 20:26
15 intended reds form the red-proof baseline for the stateless redesign; e2e additions are green preservation pins.
…tore shape

Raw in-memory storage makes the store a black box for hostile values; the display membrane is what guarantees an Error. Cyclic and toString-trap rows cannot both stay raw and be instanceof Error.
The qErr DOM script owns the errored end state; live styles subscribed to store.error would un-hide inert content after a stateless resume.
@maiieul
maiieul merged commit db955b9 into claude/gracious-poitras-0f1723 Jul 26, 2026
48 checks passed
@maiieul
maiieul deleted the claude/public-error branch July 26, 2026 20:38
@github-project-automation github-project-automation Bot moved this from Waiting For Review to Done in Qwik Development Jul 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant