docs(ssr): add SSR-feature surface pages + extend Hydration guide
- New pages for /ssr subpath components and hooks: Await, ClientOnly,
ServerOnly, Streamed, Lazy, useDeferred, HttpStatusCode,
HttpStatusProvider
- SSR-Hydration: cover Solid (generateHydrationScript) and Vue SSR flow,
document options.serialize / options.deserialize for devalue / superjson
- rsc-server-plugin: update example e2e suite to 27 scenarios
docs(rsc-server-plugin): cover invalidate, getSsrRscMode, rscActionPluginFactory, errors, scratchpad
The wiki page documented only the original rscServerPluginFactory + 4
gotchas — it predated the cluster of additions shipped on the rsc/ssr
branches: invalidate(router, "rsc") + cancellation-aware loaders,
getSsrRscMode + per-route SSR mode, rscActionPluginFactory + buildRscPayload,
the typed loader errors at /errors subpath, and the post-hydration
scratchpad skip.
Restructure to surface the new APIs as first-class sections:
- §4 / §4a — Updated RscLoaderFn signature to include the cancellation
context arg (`(params, ctx?: { signal })`), added per-route SSR mode
with the function-form resolver
- §8 / §8a — Replaced the single-paragraph "Revalidation" with the full
invalidate flow + flag-preservation contract + cancellation-aware
loader pattern
- §9 / §9a — New: Server Actions via rscActionPluginFactory + the
buildRscPayload wire-format helper (root override, omit semantics)
- §10 — New: typed loader errors and withTimeout, structural code
discriminator, mapping to HTTP statuses
- §11 — New: post-hydration scratchpad skip, with the honest caveat
that excludeContext: ["rsc"] makes it rare in practice
- §13 — Expanded gotchas: getResult validation, invalidate fire-and-forget,
scratchpad rarely-fires, coverage skipFull stdout
- §12-15 — Renumbered Per-request Isolation / Gotchas / End-to-end /
Related to make room for the new sections
docs: update example paths to ssr-examples/ subgroup
After grouping React SSR examples under examples/web/react/ssr-examples/
(mirroring the animation-examples/ pattern), update GitHub `tree/master/`
links in:
- RSC-Integration.md (2 references)
- rsc-server-plugin.md (1 reference)
Streaming-SSR.md was already created with the new path layout.
docs(rsc): add RSC Integration guide + complete plugin documentation
- New: RSC-Integration.md — end-to-end integration guide covering the
three-environment runtime model (rsc/ssr/client), two-endpoint
architecture (HTML + /__rsc), Server Components in entry.rsc.tsx,
Flight streaming via rsc-html-stream, client mount with hydrateRouter
+ createFromReadableStream, single source of truth in App.tsx, and
revalidation pattern. Reference implementation:
examples/web/react/ssr-rsc/.
- New: rsc-server-plugin.md — plugin reference page (12 sections:
overview, sibling-of-ssr-data-plugin comparison, installation,
configuration, serialization with excludeContext, ReactNode rationale,
SSR-only design, revalidation, per-request isolation, gotchas, e2e
integration link, related pages).
- Updated: SSR-Hydration.md — document excludeContext option for
serializeRouterState + cross-link to rsc-server-plugin.
- Updated: plugin-architecture.md — add rsc namespace to built-in
context table; list rsc-server-plugin alongside ssr-data-plugin in
start-interceptor row; bump count from "Five plugins" to "Six".
- Updated: Data-Loading.md — new "Server-Rendered Data" section with
ssr-data-plugin vs rsc-server-plugin comparison + cross-link to
RSC Integration guide.
- Updated: _Sidebar.md — RSC Integration link in Concepts section
(next to Data Loading) + RSC Server section (next to plugin page).
Closes RFC-A Stage 2 (rfc-rsc-server-plugin.md) wiki announcements +
RFC-B Stage 5 (rfc-rsc-vite-example.md) documentation.