Skip to content

test(react-start): wait for SSR between HMR saves - #8913

Merged
schiller-manuel merged 1 commit into
mainfrom
codex/stabilize-react-start-hmr
Nov 9, 2026
Merged

schiller-manuel merged 1 commit into
mainfrom
codex/stabilize-react-start-hmr

Conversation

@schiller-manuel

@schiller-manuel schiller-manuel commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

🎯 Changes

Wait for the server to render the first loader edit before saving the child route again. This reuses the suite’s existing SSR readiness helper between edits. Both edits still happen on the home page, and the final client navigation still has to show the second loader value.

The second edit timed out in two runs of #8912. The unmodified test passed locally on both pnpm versions, so this PR isolates the synchronization change on the pnpm 11 baseline.

Codex authored this change and PR description.

Validation

  • Ten focused Chromium repetitions passed on pnpm 11.21.0.
  • The full HMR target passed, including Vite, Vite bundled dev, and Rsbuild.

✅ Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested code changes locally with the relevant test commands, or tests do not apply to this pull request.
  • I fully understand the code in this pull request, including any code generated with AI assistance.

🚀 Release Impact

  • This change affects published code, and I have generated a changeset.
  • This change is docs/CI/dev-only (no release).

Summary by CodeRabbit

  • Tests
    • Improved coverage for development-time updates by verifying that refreshed child content appears in the server-rendered page before a subsequent edit. This helps catch issues where updated content is not visible after an initial change.

@changeset-bot

changeset-bot Bot commented Nov 9, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: f578e6a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@nx-cloud

nx-cloud Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit f578e6a

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 5m 51s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 1m 24s View ↗

☁️ Nx Cloud last updated this comment at 2026-11-09 11:53:51 UTC

@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The child-loader HMR test now waits for hydration-safe server-rendered HTML containing Child Updated after the first loader edit and before making the second edit.

Changes: Child-loader HMR test

Layer / File(s) Summary
Wait for the first child-loader update
e2e/react-start/hmr/tests/app.spec.ts
The test waits for server-rendered HTML to contain Child Updated after the first loader edit and before the second edit.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Other

Suggested reviewers: sheraff

Merge Risk: Minimal · up to f578e

The test waits for the first server-rendered update before the second edit. No merge-blocking risk was identified.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title "test(react-start): wait for SSR between HMR saves" matches the change. The PR makes the child-loader HMR test wait for the server to render the first loader edit before the second save. The…
Description check Passed The description covers the change and its motivation. It explains the SSR wait between the two loader edits, the timeout seen in #8912, and the validation runs (Chromium repetitions on pnpm 11.21.0 an…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "test(react-start): wait for SSR between HMR saves" matches the change. The PR makes the child-loader HMR test wait for the server to render the first loader edit before the second save. The title names the test scope, the synchronization change, and the affected suite. It is concise and specific, and it does not describe anything absent from the changeset.

Full details: Description check

Explanation

The description covers the change and its motivation. It explains the SSR wait between the two loader edits, the timeout seen in #8912, and the validation runs (Chromium repetitions on pnpm 11.21.0 and the full HMR target). It also includes the checklist and release-impact sections from the template. Two checklist items are incomplete: the box for fully understanding the code, including AI-assisted code, is unchecked, and the AI-authorship disclosure is present but the author has not confirmed understanding. The release-impact choice is marked as docs/CI/dev-only, which fits a test-only change.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files.

Finishing Touches

Generate docstrings

  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 70bbd11 and f578e6a.

Files selected for processing: 1

  • e2e/react-start/hmr/tests/app.spec.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

1 package(s) bumped directly, 4 bumped as dependents.

🟨 Minor bumps

Package Version Reason
@tanstack/start-plugin-core 1.171.57 → 1.172.0 Changeset

🟩 Patch bumps

Package Version Reason
@tanstack/react-start 1.169.6 → 1.169.7 Dependent
@tanstack/react-start-rsc 0.1.67 → 0.1.68 Dependent
@tanstack/solid-start 1.169.6 → 1.169.7 Dependent
@tanstack/vue-start 1.169.6 → 1.169.7 Dependent

@pkg-pr-new

pkg-pr-new Bot commented Nov 9, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/@tanstack/arktype-adapter@8913

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/@tanstack/eslint-plugin-router@8913

@tanstack/eslint-plugin-start

npm i https://pkg.pr.new/@tanstack/eslint-plugin-start@8913

@tanstack/history

npm i https://pkg.pr.new/@tanstack/history@8913

@tanstack/react-router

npm i https://pkg.pr.new/@tanstack/react-router@8913

@tanstack/react-router-devtools

npm i https://pkg.pr.new/@tanstack/react-router-devtools@8913

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/@tanstack/react-router-ssr-query@8913

@tanstack/react-start

npm i https://pkg.pr.new/@tanstack/react-start@8913

@tanstack/react-start-client

npm i https://pkg.pr.new/@tanstack/react-start-client@8913

@tanstack/react-start-rsc

npm i https://pkg.pr.new/@tanstack/react-start-rsc@8913

@tanstack/react-start-server

npm i https://pkg.pr.new/@tanstack/react-start-server@8913

@tanstack/router-cli

npm i https://pkg.pr.new/@tanstack/router-cli@8913

@tanstack/router-core

npm i https://pkg.pr.new/@tanstack/router-core@8913

@tanstack/router-devtools

npm i https://pkg.pr.new/@tanstack/router-devtools@8913

@tanstack/router-devtools-core

npm i https://pkg.pr.new/@tanstack/router-devtools-core@8913

@tanstack/router-generator

npm i https://pkg.pr.new/@tanstack/router-generator@8913

@tanstack/router-plugin

npm i https://pkg.pr.new/@tanstack/router-plugin@8913

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/@tanstack/router-ssr-query-core@8913

@tanstack/router-utils

npm i https://pkg.pr.new/@tanstack/router-utils@8913

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/@tanstack/router-vite-plugin@8913

@tanstack/solid-router

npm i https://pkg.pr.new/@tanstack/solid-router@8913

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/@tanstack/solid-router-devtools@8913

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/@tanstack/solid-router-ssr-query@8913

@tanstack/solid-start

npm i https://pkg.pr.new/@tanstack/solid-start@8913

@tanstack/solid-start-client

npm i https://pkg.pr.new/@tanstack/solid-start-client@8913

@tanstack/solid-start-server

npm i https://pkg.pr.new/@tanstack/solid-start-server@8913

@tanstack/start-client-core

npm i https://pkg.pr.new/@tanstack/start-client-core@8913

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/@tanstack/start-fn-stubs@8913

@tanstack/start-plugin-core

npm i https://pkg.pr.new/@tanstack/start-plugin-core@8913

@tanstack/start-server-core

npm i https://pkg.pr.new/@tanstack/start-server-core@8913

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/@tanstack/start-static-server-functions@8913

@tanstack/start-storage-context

npm i https://pkg.pr.new/@tanstack/start-storage-context@8913

@tanstack/valibot-adapter

npm i https://pkg.pr.new/@tanstack/valibot-adapter@8913

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/@tanstack/virtual-file-routes@8913

@tanstack/vue-router

npm i https://pkg.pr.new/@tanstack/vue-router@8913

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/@tanstack/vue-router-devtools@8913

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/@tanstack/vue-router-ssr-query@8913

@tanstack/vue-start

npm i https://pkg.pr.new/@tanstack/vue-start@8913

@tanstack/vue-start-client

npm i https://pkg.pr.new/@tanstack/vue-start-client@8913

@tanstack/vue-start-server

npm i https://pkg.pr.new/@tanstack/vue-start-server@8913

@tanstack/zod-adapter

npm i https://pkg.pr.new/@tanstack/zod-adapter@8913

commit: f578e6a

@schiller-manuel
schiller-manuel merged commit fd5b0b8 into main Nov 9, 2026
10 checks passed
@schiller-manuel
schiller-manuel deleted the codex/stabilize-react-start-hmr branch November 9, 2026 11:57
Sheraff added a commit that referenced this pull request Nov 12, 2026
Takes main's pnpm 12 upgrade (#8912), the RSC dependency bump (#8919) and
the react-start HMR e2e fix (#8913).

The lockfile is main's, regenerated with pnpm 12 for the slice's packages.
pnpm 12 merges a version a package names directly into the other
packages' ranges, so two ranges of the slice are set to the versions main
already resolves, to leave every other package's resolution as on main:
the harness's `esbuild` (^0.28.1; ^0.28.2 added a second esbuild and moved
webpack's peer variant) and router-plugin's `@babel/preset-typescript`
(7.27.1; ^7.28.5 moved esbuild-plugin-solid's preset and the preset's own
helpers). The only change left outside the slice's packages is the css-modules
e2e apps' sass bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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