Skip to content

Commit f1217ed

Browse files
justin808claude
andcommitted
Move changelog entry to Unreleased and waive bundle-size gate
The rebase replayed the changelog entry into the now-stamped 17.0.0.rc.3 section; this PR is unmerged so the entry belongs under Unreleased. The bundle-size skip file records the maintainer-approved waiver: the +0.75KB gzip client growth is the rootErrorHandlers feature itself (91% of the module-level delta) with no accidental imports, per the audit posted on PR #3933. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 703fd89 commit f1217ed

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

.bundle-size-skip-branch

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
# This file allows skipping the bundle size CI check for a specific branch.
2-
# When a branch name in this file matches the PR branch, the size check is skipped.
3-
#
4-
# Usage: Run `bin/skip-bundle-size-check` to set the current branch, then commit and push.
5-
#
6-
# This is useful when you have an intentional size increase that exceeds the 0.5KB threshold.
7-
jg-conductor/3209-fix
1+
# Audited intentional growth for PR #3933 (rootErrorHandlers feature, +0.75KB gzip client):
2+
# 91% of the module-level delta is the new feature module; no accidental imports.
3+
# Audit evidence: https://github.com/shakacode/react_on_rails/pull/3933#issuecomment-4688270487
4+
# Clear this file in a follow-up after the PR merges.
5+
jg/3892-react19-root-error-callbacks

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ After a release, run `/update-changelog` in Claude Code to analyze commits, writ
2424

2525
### [Unreleased]
2626

27+
#### Added
28+
29+
- **React 19 root error callbacks**: `ReactOnRails.setOptions({ rootErrorHandlers: { onRecoverableError, onCaughtError, onUncaughtError } })` registers React's root error callbacks globally; React on Rails applies them to every `hydrateRoot`/`createRoot` call it makes and invokes them with an extra context argument containing the component name and DOM id. In development, recoverable hydration errors now log an actionable React on Rails message (component name, dom id, component stack, and a link to the new [Debugging Hydration Mismatches guide](https://reactonrails.com/docs/building-features/debugging-hydration-mismatches)) alongside React's default error reporting, which stays intact so window-'error'-based tooling keeps working. Partial `rootErrorHandlers` updates merge per key, so registering one callback later does not drop the others. On React <19 (and <18 for `onRecoverableError`), registration is a graceful no-op with a console warning. On React on Rails Pro RSC/streaming hydration paths, user callbacks chain with (never replace) Pro's internal recoverable-error handler. Addresses [Issue 3892](https://github.com/shakacode/react_on_rails/issues/3892). [PR 3933](https://github.com/shakacode/react_on_rails/pull/3933) by [justin808](https://github.com/justin808).
30+
2731
### [17.0.0.rc.3] - 2026-06-11
2832

2933
#### Added
@@ -34,7 +38,6 @@ After a release, run `/update-changelog` in Claude Code to analyze commits, writ
3438
- **Stable SmartError codes and generated error reference**: SmartError messages now include stable `ROR###` codes and canonical documentation URLs, and `docs/oss/reference/error-reference.md` is generated from the SmartError definitions with a drift check. Fixes [Issue 3894](https://github.com/shakacode/react_on_rails/issues/3894). [PR 3936](https://github.com/shakacode/react_on_rails/pull/3936) by [justin808](https://github.com/justin808).
3539
- **Preload link helper for generated component packs**: Added `react_on_rails_preload_links` so layouts can emit preload, modulepreload, and stylesheet preload tags for auto-bundled component packs from the Shakapacker manifest. Fixes [Issue 3889](https://github.com/shakacode/react_on_rails/issues/3889). [PR 3935](https://github.com/shakacode/react_on_rails/pull/3935) by [justin808](https://github.com/justin808).
3640
- **Tailwind CSS v4 generator option**: `rails generate react_on_rails:install --tailwind` and `create-react-on-rails-app --tailwind` now install Tailwind CSS v4, wire `@tailwindcss/postcss` for Webpack or Rspack, and style the generated server-rendered HelloWorld example with extracted component CSS support. Interactive `create-react-on-rails-app` runs recommend Tailwind by default while still allowing users to opt out. Fixes [Issue 3895](https://github.com/shakacode/react_on_rails/issues/3895). [PR 3937](https://github.com/shakacode/react_on_rails/pull/3937) by [justin808](https://github.com/justin808).
37-
- **React 19 root error callbacks**: `ReactOnRails.setOptions({ rootErrorHandlers: { onRecoverableError, onCaughtError, onUncaughtError } })` registers React's root error callbacks globally; React on Rails applies them to every `hydrateRoot`/`createRoot` call it makes and invokes them with an extra context argument containing the component name and DOM id. In development, recoverable hydration errors now log an actionable React on Rails message (component name, dom id, component stack, and a link to the new [Debugging Hydration Mismatches guide](https://reactonrails.com/docs/building-features/debugging-hydration-mismatches)) alongside React's default error reporting, which stays intact so window-'error'-based tooling keeps working. Partial `rootErrorHandlers` updates merge per key, so registering one callback later does not drop the others. On React <19 (and <18 for `onRecoverableError`), registration is a graceful no-op with a console warning. On React on Rails Pro RSC/streaming hydration paths, user callbacks chain with (never replace) Pro's internal recoverable-error handler. Addresses [Issue 3892](https://github.com/shakacode/react_on_rails/issues/3892). [PR 3933](https://github.com/shakacode/react_on_rails/pull/3933) by [justin808](https://github.com/justin808).
3841

3942
#### Fixed
4043

0 commit comments

Comments
 (0)