Document 16.4.0.rc.3 changelog: collapse RCs, add missing entries#2448
Document 16.4.0.rc.3 changelog: collapse RCs, add missing entries#2448
Conversation
Move entries from Unreleased to new 16.4.0.rc.3 section and add missing PR #2444 (RSC stream tee backpressure deadlock fix). Update version comparison links. Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
No actionable comments were generated in the recent review. 🎉 WalkthroughThe CHANGELOG.md was updated to replace the Unreleased RC block with Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Greptile SummaryThis PR has a critical configuration error - the base and head branches appear to be reversed, causing it to merge an older version (16.2.0 from Jan 2026) over a newer version (16.4.0.rc.3 from Feb 2026). Key Issues:
Root Cause: Confidence Score: 0/5
Important Files Changed
Last reviewed commit: bf64c86 |
|
|
||
| - Fix several generator-related issues. | ||
|
|
There was a problem hiding this comment.
Version links show this PR is merging 16.2.0 into a branch that already has 16.4.0.rc.3, going backwards in version history.
PR title says "Add 16.4.0.rc.3" but HEAD actually contains 16.2.0 (an older release from 2026-01-14), while BASE contains 16.4.0.rc.3 (from 2026-02-18).
Check that base/head branches are correct - this appears to be merging the wrong direction.
|
|
||
| ### [16.2.0.rc.1] - 2026-01-11 | ||
| ### [16.2.0] - 2026-01-14 | ||
|
|
||
| #### Fixed | ||
|
|
||
| - **Component Registration**: Fixed "component not registered" error on core `react-on-rails` package that could occur when components were referenced before registration completed. [PR 2295](https://github.com/shakacode/react_on_rails/pull/2295) by [AbanoubGhadban](https://github.com/AbanoubGhadban). | ||
| - **JSON Parse Race Condition in Immediate Hydration (Pro)**: Fixed a race condition where `immediate_hydration` could attempt to parse incomplete JSON props during HTML streaming on slow networks. When the JS bundle executes before the props `<script>` tag content is fully received, `el.textContent` returns truncated JSON, causing `SyntaxError: Unterminated string in JSON`. The fix uses a `nextSibling` check to verify the props script's closing tag has been parsed before attempting hydration; incomplete elements are deferred to the fallback `reactOnRailsComponentLoaded()` path. [PR 2290](https://github.com/shakacode/react_on_rails/pull/2290) by [AbanoubGhadban](https://github.com/AbanoubGhadban). |
There was a problem hiding this comment.
PR description mentions adding changelog entry for PR 2444 (RSC stream tee backpressure fix), but that PR doesn't exist in the commit history leading to this HEAD.
HEAD (bf64c86) history includes PRs 2295, 2302, 2304 while PR 2444 is in the BASE branch history. This confirms the branches are reversed.
Merge all RC changelog entries into a single 16.4.0.rc.3 section covering everything since 16.3.0. Remove the separate rc.1 section and update version comparison links. Co-Authored-By: Claude Opus 4.6 <[email protected]>
bf64c86 to
be4453e
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CHANGELOG.md`:
- Around line 26-30: The changelog currently finalizes "### [16.2.0] -
2026-01-14" but the PR title/description claim adding "### [16.4.0.rc.3] -
2026-02-18" and a missing PR `#2444` entry; decide which was intended and make the
changelog consistent: if the intent was to finalize 16.2.0, add the PR `#2444`
entry (RSC stream tee backpressure deadlock fix for large payloads) under the
appropriate section (either the finalized 16.2.0 or the Unreleased section if it
belongs to a later release); if the intent was to add the 16.4.0.rc.3 release,
create the "### [16.4.0.rc.3] - 2026-02-18" heading and move the Unreleased
entries (including PR `#2444`) into that new section and update the PR description
to match the change. Ensure references to "### [16.2.0] - 2026-01-14", "###
[16.4.0.rc.3] - 2026-02-18", and "PR `#2444`" are corrected so the title,
description, and file contents align.
- Around line 1890-1891: The `[16.2.0]` reference link includes an inconsistent
`v` prefix ("16.1.1...v16.2.0"); update the URL in the `[16.2.0]` link so it
matches the other 16.x release links by removing the `v` prefix (change the
right-side tag from `v16.2.0` to `16.2.0`) to yield a consistent compare URL
like the pattern used by `[unreleased]` and other 16.x entries.
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.2.0...master | ||
| [16.2.0]: https://github.com/shakacode/react_on_rails/compare/16.1.1...v16.2.0 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check what git tags exist for 16.2.0
git tag --list | grep -E '^v?16\.2\.0$'Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Get a broader view of git tags for version 16.x and 14.x to understand the pattern
git tag --list | grep -E '^v?1[46]\.' | sort -VRepository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Check the CHANGELOG.md context around lines 1890-1891 to see the full picture
sed -n '1885,1900p' CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 683
🏁 Script executed:
#!/bin/bash
# Check total lines in CHANGELOG.md and find where lines 1890-1891 are
wc -l CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 85
🏁 Script executed:
#!/bin/bash
# Show lines 1880-1895 from CHANGELOG.md to see the context
tail -n +1880 CHANGELOG.md | head -n 20Repository: shakacode/react_on_rails
Length of output: 753
🏁 Script executed:
#!/bin/bash
# Check all git tags in the repository to understand the naming pattern
git tag --list | tail -20Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Check if there are any tags for version 16 at all
git tag --list | grep '16\.' | head -20Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Search for the unreleased link mentioned in the review
grep -n "unreleased.*v16.2.0" CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Search for any v16.2.0 references in CHANGELOG.md
grep -n "16.2.0" CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 746
🏁 Script executed:
#!/bin/bash
# Get the end of the CHANGELOG.md file to see reference-style links
tail -50 CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 3830
🏁 Script executed:
#!/bin/bash
# Search for the unreleased section
grep -n "unreleased" CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 160
🏁 Script executed:
#!/bin/bash
# Check lines 2000-2010 to see the context around lines 2003-2004
sed -n '2000,2010p' CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 952
🏁 Script executed:
#!/bin/bash
# Look for all 16.x version reference links to see the full pattern
grep -n "16\." CHANGELOG.md | grep "^\[16"Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Check what git tags actually exist for the 16.x versions
git tag --list | grep '^v\?16\.[0-4]' | sort -VRepository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Verify if the tag 16.2.0 exists (without v) and v16.2.0 exists (with v)
git tag --list | grep -E '^(v)?16\.2\.0$'Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Check what git tags exist at all - just get all tags
git tag --list | head -30Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Check if there are any tags and what the latest ones are
git tag --list --sort=-version:refname | head -20Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Look at the git log to see if 16.2.0 was ever released
git log --oneline --all | grep -i "16.2.0" | head -10Repository: shakacode/react_on_rails
Length of output: 552
🏁 Script executed:
#!/bin/bash
# Try to check the actual git tag - let's see what objects exist
git rev-parse v16.2.0 2>&1 || echo "v16.2.0 not found"
git rev-parse 16.2.0 2>&1 || echo "16.2.0 not found"Repository: shakacode/react_on_rails
Length of output: 492
🏁 Script executed:
#!/bin/bash
# Let's check the git refs to see what actually exists
git show-ref | grep "16.2.0"Repository: shakacode/react_on_rails
Length of output: 50
🏁 Script executed:
#!/bin/bash
# Let's understand the full scope - check if line numbers in review match current file state
# The review says lines 1890-1891, but we found the content around lines 2000+
# Let's see what's actually at lines 1890-1891
sed -n '1888,1893p' CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 155
🏁 Script executed:
#!/bin/bash
# And let's verify the current pattern inconsistency more broadly
# Check the 16.x and nearby release links to understand the full inconsistency
sed -n '2003,2008p' CHANGELOG.mdRepository: shakacode/react_on_rails
Length of output: 538
Fix inconsistent v prefix in the [16.2.0] reference link.
Line 2004 has a mixed format (16.1.1...v16.2.0) while all other recent 16.x releases use consistent formatting: 16.1.1, 16.1.0, and 16.0.0 all omit the v prefix. The [16.2.0] link should align with this established pattern:
🔧 Proposed fix
-[16.2.0]: https://github.com/shakacode/react_on_rails/compare/16.1.1...v16.2.0
+[16.2.0]: https://github.com/shakacode/react_on_rails/compare/16.1.1...16.2.0📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.2.0...master | |
| [16.2.0]: https://github.com/shakacode/react_on_rails/compare/16.1.1...v16.2.0 | |
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.2.0...master | |
| [16.2.0]: https://github.com/shakacode/react_on_rails/compare/16.1.1...16.2.0 |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` around lines 1890 - 1891, The `[16.2.0]` reference link
includes an inconsistent `v` prefix ("16.1.1...v16.2.0"); update the URL in the
`[16.2.0]` link so it matches the other 16.x release links by removing the `v`
prefix (change the right-side tag from `v16.2.0` to `16.2.0`) to yield a
consistent compare URL like the pattern used by `[unreleased]` and other 16.x
entries.
Changelog PR ReviewOverall this is a clean changelog consolidation for the 16.4.0.rc.3 release, but there are a few issues worth addressing: 1. Section order violates project guidelinesPer
In the 2. Unexplained jump from rc.1 to rc.3The PR removes
3. Historical comparison link for rc.1 is droppedThe old If collapsing all RC entries into a single 4. Greptile bot's concern is unfoundedThe Greptile bot flagged this as a "backwards merge" — that assessment is incorrect. The diff correctly moves entries from the Minor:
|
| - **Precompile Hook Self-Guard for HMR**: Added self-guard to the generator template's `bin/shakapacker-precompile-hook` to prevent duplicate execution in HMR mode where two webpack processes (client dev-server + server watcher) each trigger the hook. The script now exits early when `SHAKAPACKER_SKIP_PRECOMPILE_HOOK=true` is set by `bin/dev`, regardless of Shakapacker version. The version warning is now smarter: it only warns for hooks that lack the self-guard or use direct commands. **Existing users**: add `exit 0 if ENV["SHAKAPACKER_SKIP_PRECOMPILE_HOOK"] == "true"` near the top of your `bin/shakapacker-precompile-hook` script. [PR 2388](https://github.com/shakacode/react_on_rails/pull/2388) by [justin808](https://github.com/justin808). | ||
| - **Fix generator inheriting BUNDLE_GEMFILE from parent process**: The `react_on_rails:install` generator now wraps bundler commands with `Bundler.with_unbundled_env` to prevent inheriting `BUNDLE_GEMFILE` from the parent process, which caused "injected gems" conflicts when running generators inside a bundled context. [PR 2288](https://github.com/shakacode/react_on_rails/pull/2288) by [ihabadham](https://github.com/ihabadham). | ||
|
|
||
| #### Improved |
There was a problem hiding this comment.
The #### Improved section appears after #### Fixed here, but the project guidelines define the preferred section order as: Added → Changed → Improved → Fixed. These two sections should be swapped to match the defined order.
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.4.0.rc.1...master | ||
| [16.4.0.rc.1]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.1 | ||
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.4.0.rc.3...master | ||
| [16.4.0.rc.3]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.3 |
There was a problem hiding this comment.
The [16.4.0.rc.1] comparison link from the previous changelog state has been removed. If v16.4.0.rc.1 was published to RubyGems, users of that version lose the ability to track what changed. Consider preserving it:
| [16.4.0.rc.3]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.3 | |
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.4.0.rc.3...master | |
| [16.4.0.rc.3]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.3 | |
| [16.4.0.rc.1]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.1 |
If rc.1 was never actually published as a gem, this can be ignored.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
CHANGELOG.md (1)
47-53: Optional: move#### Fixedafter#### Improvedfor consistency.The existing convention in this file (e.g.,
### [16.2.0]) places#### Improvedbefore#### Fixed. The new#### Fixedsection lands before the pre-existing#### Improvedblock, inverting that order.♻️ Suggested reordering
-#### Fixed - -- **Fixed string values interpolated into generated JS code without proper escaping**. ... -- **Precompile Hook Detection**: ... -- **Precompile Hook Self-Guard for HMR**: ... -- **Fix generator inheriting BUNDLE_GEMFILE from parent process**: ... - #### Improved - **Smarter duplicate registration warnings**: ... + +#### Fixed + +- **Fixed string values interpolated into generated JS code without proper escaping**. ... +- **Precompile Hook Detection**: ... +- **Precompile Hook Self-Guard for HMR**: ... +- **Fix generator inheriting BUNDLE_GEMFILE from parent process**: ...🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@CHANGELOG.md` around lines 47 - 53, Move the newly added "#### Fixed" block so it appears after the existing "#### Improved" block to match the file's established ordering; locate the "#### Fixed" header inserted around the new bullet list and cut/paste it so it follows the existing "#### Improved" header and its content (preserving the PR links and author attributions).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@CHANGELOG.md`:
- Around line 47-53: Move the newly added "#### Fixed" block so it appears after
the existing "#### Improved" block to match the file's established ordering;
locate the "#### Fixed" header inserted around the new bullet list and cut/paste
it so it follows the existing "#### Improved" header and its content (preserving
the PR links and author attributions).
Address PR review: reorder sections in 16.4.0.rc.3 to match project guidelines (Added → Changed → Improved → Fixed). Co-Authored-By: Claude Opus 4.6 <[email protected]>
PR Review: Document 16.4.0.rc.3 ChangelogThe changelog consolidation is clean overall — the restructuring from rc.1 to rc.3 is logical and the entries are well-written. A few things worth addressing: Issues1. Missing comparison link for The PR removes the If the tag exists in git, consider preserving: (This is separate from the changelog section — you can collapse the section text while keeping the link.) 2. rc.2 gap is unexplained The PR jumps from rc.1 to rc.3 with no mention of rc.2. Was 3. Compare link format inconsistency with guidelines The That said, all existing links in the file also use the Not Issues
|
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.4.0.rc.1...master | ||
| [16.4.0.rc.1]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.1 | ||
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.4.0.rc.3...master | ||
| [16.4.0.rc.3]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.3 |
There was a problem hiding this comment.
The [16.4.0.rc.1] reference link was removed here. If v16.4.0.rc.1 was ever pushed as a git tag and published to RubyGems, its comparison link should be preserved even when collapsing the changelog section — this allows users on that gem version to see what changed.
| [16.4.0.rc.3]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.3 | |
| [unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.4.0.rc.3...master | |
| [16.4.0.rc.3]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.3 | |
| [16.4.0.rc.1]: https://github.com/shakacode/react_on_rails/compare/v16.3.0...v16.4.0.rc.1 |
Skip this if v16.4.0.rc.1 was never actually tagged/published.
Summary
Adds missing changelog sections for versions 16.4.0.rc.3, covering everything since 16.3.0. Collapses the separate
16.4.0.rc.1section into a single16.4.0.rc.3section for cleaner history. Also adds a missing entry for PR 2444 (RSC stream tee backpressure deadlock fix). Updates version comparison links so[16.4.0.rc.3]compares againstv16.3.0.Pull Request checklist
Add/update test to cover these changes(changelog only)Update documentationSummary by CodeRabbit
Documentation
New Features
Bug Fixes