Repository navigation
feat: make TanStack Redact the default React runtime - #264
Merged
Merged
Conversation
Rsdoctor Bundle Diff Analysis📊 Quick Summary
Generated by Rsdoctor GitHub Action |
…rver and client Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nt aliases win over React externals Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oth runtimes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ration stream Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…th on macOS Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BleedingDev
force-pushed
the
feat/redact-default-20261028
branch
from
October 29, 2026 12:07
1a5f4e6 to
c3cce8a
Compare
…-redact sidecar app-tools now declares `@tanstack/redact` as the exact npm alias `npm:@bleedingdev/tanstack-redact@0.2.1`, the signed publish of the reviewed patch. The repository exempts that exact owned version from the 24-hour release-age gate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With the alias in source, upstream `@tanstack/redact` is rejected on every staging and publish path. The CI-only rewrite to the reconstructed sidecar and its qualification-only consumer bypass are gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lient-rendered boundaries The aliased runtime resolves under its physical @bleedingdev/tanstack-redact directory. A remote that fails before the first read now lands inline as a client-rendered boundary marker instead of a late <template> instruction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BleedingDev
force-pushed
the
feat/redact-default-20261028
branch
from
October 29, 2026 12:26
3a03d5d to
925c56b
Compare
A finished compile emits its hot update even when a later edit supersedes it before publication, or when Rsbuild never hands it to an aggregate callback. A runtime that applies that update addresses the compile's immutable graph directory, so its first lazy import answered 404. Each compiler now records its finished graph in its done hook, before Rspack can drop the compilation, and every publication pass retains those graphs within the existing budget. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Redact | npm @bleedingdev/tanstack-redact | rsbuild-redact-plugin | Redact fixes #102 #103 #104 #108 #109 #110 #112 | plugin #1
Why the change
Every UltraModern React app, new or upgraded, now renders with TanStack Redact on the server and in the browser with no app edits, so it ships far less React runtime JS while server HTML,
useIdvalues and hydration stay consistent.Special things to note
npm:@bleedingdev/tanstack-redact@0.2.1. That is the signed, provenance-attested publish of the reviewed patch from chore(supply): publish the patched Redact sidecar from main #266. It is our own sidecar, so that exact version is exempt from the 24-hour release-age gate. Any cohort manifest that names upstream@tanstack/redactfails to publish.useIdorder, duplicate IDs, table/SVG streaming, segment IDs, element-root metadata, error bubbling, pending-range deletion, and boundaries that finish before the first read never being inlined, which breaks no-JS MF pages). The sidecar carries the fixes, and they are sent upstream in the PRs linked above. The framework refuses to build with an unpatched Redact.redact: falsekeeps real React everywhere. RSC apps stay on real React automatically, because the Flight client needs React internals that Redact does not have.Change outline
The default comes from the framework, not from templates, so upgrades get it too.
defineConfig({ renderer: 'react', ... }) // unchanged app config composeReactRenderer + @modern-js/ultramodern-redact-integration + redact === false -> real React + server.rsc -> real React (logged once) + CSR only -> rsbuild-redact-plugin (pluginRedact) + SSR / workerd / MF SSR -> same alias table on web + node + workerSSR + assert installed Redact carries the reviewed patch markerRuntime identity follows what is actually aliased, not the package name.
Supply chain and release:
One dev-server race fixed along the way. It already failed macOS CI on #263 and #266:
Small generic runtime hooks in upstream-owned files, recorded in
FORK-DIVERGENCE.md:Generator and proofs:
Validation before the rebase onto
main-ultramodernwith the signed sidecar:After switching to the published sidecar:
🤖 Generated with Claude Code