Skip to content

Update CHANGELOG.md for 16.6.0#3078

Merged
justin808 merged 2 commits intomainfrom
jg/changelog-16.6.0.rc.1
Apr 9, 2026
Merged

Update CHANGELOG.md for 16.6.0#3078
justin808 merged 2 commits intomainfrom
jg/changelog-16.6.0.rc.1

Conversation

@justin808
Copy link
Copy Markdown
Member

@justin808 justin808 commented Apr 8, 2026

Summary

  • Consolidate rc.0 and rc.1 prerelease sections into a single 16.6.0 stable release section
  • Add new entries for PRs merged since rc.1 (PR 3086, PR 2877, PR 3083)
  • Reorder sections per changelog guidelines (Removed -> Added -> Improved -> Fixed)
  • Remove orphaned RC diff links

Test plan

  • Verify changelog formatting is correct
  • Verify version diff links at bottom of file

After merge, run rake release to publish and auto-create the GitHub release.

Summary by CodeRabbit

  • Bug Fixes

    • Fixed third-party dependency version pinning in the generator.
  • Improvements

    • Enhanced exception messages for clearer context in node-renderer requests.
    • Improved diagnostic output for invalid render requests with updated documentation guidance.

Note

Low Risk
Documentation-only change updating release notes and compare links; no runtime behavior is modified.

Overview
Publishes the 16.6.0 changelog section (dated 2026-04-09) by consolidating the prior RC content and reordering entries to match the changelog guidelines.

Adds release-note entries for recently merged work (notably Pro node-renderer diagnostic/error-message improvements and generator npm dependency pinning), and updates the bottom compare links to reference v16.6.0 instead of the RC tag.

Reviewed by Cursor Bugbot for commit 956cc0f. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 8, 2026

Walkthrough

The CHANGELOG.md file was updated to promote the release candidate version 16.6.0.rc.1 to final release 16.6.0 (dated April 9), adjust comparison links accordingly, reorganize fixed/improved entries, and add documentation for node-renderer exception messages and render-request diagnostics.

Changes

Cohort / File(s) Summary
Changelog Release Update
CHANGELOG.md
Promoted version from 16.6.0.rc.1 (April 7) to 16.6.0 (April 9); updated range comparison links; reorganized fixed and improved entries; added documentation for node-renderer context and renderer timeout guidance.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Poem

🐰 A version hops from test to true,
From sixteen-six point-oh-rc we flew,
The changelog dances, links arranged,
Documentation fresh and changed,
Hop, hop—release day's here! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 44.44% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: updating CHANGELOG.md to document the 16.6.0 release, which is the primary objective of the pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jg/changelog-16.6.0.rc.1

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 8, 2026

Greptile Summary

This PR stamps ### [16.6.0.rc.1] - 2026-04-07, collapses the previously un-stamped rc.0 unreleased entries into it, adds changelog entries for PRs merged since rc.0, and updates the comparison links at the bottom of the file. The content, structure, PR attribution, and link references all look correct.

Confidence Score: 5/5

Safe to merge — documentation-only change with no code modifications.

The PR only modifies CHANGELOG.md. All new entries are accurately attributed to their PRs, the section headers are well-formed, the [Unreleased] section is correctly left empty, and the comparison links at the bottom correctly point from v16.5.1 to v16.6.0.rc.1. No issues found.

No files require special attention.

Vulnerabilities

No security concerns identified.

Important Files Changed

Filename Overview
CHANGELOG.md Adds the 16.6.0.rc.1 release section, moves Fixed entries from the old rc.0 position, adds new entries for PRs #2834, #3063, #3069, #2921, #3070, #3068, #2932, #2881, #2918, and updates comparison links — all structurally correct and complete.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["### [Unreleased] (empty)"] --> B["### [16.6.0.rc.1] - 2026-04-07"]
    B --> C[Removed\nimmediate_hydration – PR 2834]
    B --> D[Added\nENV password, interactive prompt,\nkeep-alive timeout, Pro upgrade – PRs 2921/3063/3069/2822]
    B --> E[Improved\nDoctor, error messages, sync_versions,\nnode renderer errors – PRs 3070/3068/2823/2849]
    B --> F[Fixed\nTanStack, fork loop, generator rewrites,\nSSR stale connections, etc. – PRs 2932/2881/2918/3069/2901/2891/2652/2885]
    B --> G["### [16.5.1] - 2026-03-27 (unchanged)"]
    H["[unreleased] link → compare/v16.6.0.rc.1...main"]
    I["[16.6.0.rc.1] link → compare/v16.5.1...v16.6.0.rc.1"]
Loading

Reviews (1): Last reviewed commit: "Update CHANGELOG.md for 16.6.0.rc.1" | Re-trigger Greptile

Comment thread CHANGELOG.md

- **[Pro]** **Auto-resolve renderer password from ENV**: `setup_renderer_password` now falls back to `ENV["RENDERER_PASSWORD"]` when neither `config.renderer_password` nor a URL-embedded password is set, aligning Rails-side behavior with the Node Renderer defaults. Blank values (`nil` or `""`) are treated identically and fall through the full resolution chain: config → URL → ENV. [PR 2921](https://github.com/shakacode/react_on_rails/pull/2921) by [justin808](https://github.com/justin808).
- **Interactive mode prompt for `create-react-on-rails-app`**: Running `npx create-react-on-rails-app` without `--pro` or `--rsc` now shows an interactive prompt to choose between Standard, Pro, and RSC modes (default: RSC recommended). Explicit flags skip the prompt, and non-interactive environments fall back to standard mode automatically. [PR 3063](https://github.com/shakacode/react_on_rails/pull/3063) by [justin808](https://github.com/justin808).
- **[Pro] Configurable HTTP keep-alive timeout for node renderer connections**: Added `renderer_http_keep_alive_timeout` configuration option (default: 30s) to control how long idle persistent HTTP/2 connections to the node renderer are kept alive, preventing SSR failures from stale connections. [PR 3069](https://github.com/shakacode/react_on_rails/pull/3069) by [justin808](https://github.com/justin808).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The [Pro] tag formatting here (and on lines 47, 54, 55, 56) differs from the project's documented convention. Per .claude/docs/changelog-guidelines.md, the format should be **[Pro]** as a separate bold token followed by a separate bold feature name:

Suggested change
- **[Pro] Configurable HTTP keep-alive timeout for node renderer connections**: Added `renderer_http_keep_alive_timeout` configuration option (default: 30s) to control how long idle persistent HTTP/2 connections to the node renderer are kept alive, preventing SSR failures from stale connections. [PR 3069](https://github.com/shakacode/react_on_rails/pull/3069) by [justin808](https://github.com/justin808).
- **[Pro]** **Configurable HTTP keep-alive timeout for node renderer connections**: Added `renderer_http_keep_alive_timeout` configuration option (default: 30s) to control how long idle persistent HTTP/2 connections to the node renderer are kept alive, preventing SSR failures from stale connections. [PR 3069](https://github.com/shakacode/react_on_rails/pull/3069) by [justin808](https://github.com/justin808).

Affected lines using the merged **[Pro] Feature name** style: 47, 54, 55, 56 (same fix needed on each).

Comment thread CHANGELOG.md
- **[Pro]** **Fixed TanStack Router SSR hydration mismatches in the async path**: Client hydration now restores server match data before first render, uses `RouterProvider` directly to match the server-rendered tree, and stops the post-hydration load when a custom `router.options.hydrate` callback fails instead of continuing with partially hydrated client state. [PR 2932](https://github.com/shakacode/react_on_rails/pull/2932) by [justin808](https://github.com/justin808).
- **[Pro] Fixed infinite fork loop when node renderer worker fails to bind port**: When a worker failed during `app.listen()` (e.g., `EADDRINUSE`), the master previously reforked unconditionally, causing an infinite fork/crash loop that consumed CPU and filled logs. Workers now send a `WORKER_STARTUP_FAILURE` IPC message to the master before exiting; the master sets an abort flag and exits with a clear error message instead of reforking. Scheduled restarts and runtime crashes continue to refork as before. [PR 2881](https://github.com/shakacode/react_on_rails/pull/2881) by [justin808](https://github.com/justin808).
- **[Pro] Fixed Pro generator multiline and template-literal rewrites**: The Pro install generator now correctly handles multiline non-parenthesized `gem "react_on_rails"` declarations while preserving trailing options, and correctly rewrites module specifiers around template literals by preserving escaped sequences and detecting multiline template-literal starts after a closed inline template. [PR 2918](https://github.com/shakacode/react_on_rails/pull/2918) by [justin808](https://github.com/justin808).
- **[Pro] Fixed SSR failures from stale persistent HTTP/2 connections to the node renderer**: When idle connections became stale (closed by the node renderer but still considered active by the Ruby side), render requests could be truncated mid-flight, producing confusing `FST_ERR_CTP_INVALID_CONTENT_LENGTH` and "INVALID NIL or NULL result for rendering" errors. The new `renderer_http_keep_alive_timeout` config (default: 30s) prevents this by closing idle connections before they go stale. Content-Length mismatches now produce specific diagnostic messages instead of generic errors, and sensitive field names are filtered from diagnostic output. Fixes [Issue 3071](https://github.com/shakacode/react_on_rails/issues/3071). [PR 3069](https://github.com/shakacode/react_on_rails/pull/3069) by [justin808](https://github.com/justin808).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #3069 also appears in the Added section above (the renderer_http_keep_alive_timeout config entry). That's intentional and accurate — one PR contributing both a new feature and a bug fix — but it's worth a quick sanity-check that the two entries together tell a complete, non-redundant story. The current split looks fine: the Added entry describes the new knob, this Fixed entry describes the underlying stale-connection bug it solves.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 8, 2026

Changelog Review — 16.6.0.rc.1

This is a changelog-only PR and the overall structure is correct: empty [Unreleased] placeholder, consolidated rc.1 section, updated footer comparison links.

Issues

[Pro] tag formatting inconsistency (minor, flagged inline)

The project convention (per .claude/docs/changelog-guidelines.md) is:

- **[Pro]** **Feature name**: Description...

Several new entries in this PR use a merged form (**[Pro] Feature name**) instead. Affected lines: 39, 47, 54, 55, 56. Suggestion posted on line 39; same pattern applies to the rest.

PR #3069 appears in both Added and Fixed (noted inline, not a bug)

The dual appearance is accurate — the PR introduced a new config option and fixed a stale-connection bug — but it's called out on line 56 for awareness.

Everything else looks good

  • All entries include PR links and author attribution ✓
  • [16.6.0.rc.0] section correctly collapsed and removed (its link reference in the footer is also removed consistently) ✓
  • Footer comparison links updated to v16.6.0.rc.1
  • PR Update CHANGELOG.md unreleased section #3077 supersession noted in the description ✓

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/react-on-rails-pro-node-renderer/src/worker/handleRenderRequest.ts (1)

177-194: ⚠️ Potential issue | 🟠 Major

Please keep handleNewBundlesProvided on Promise.all to preserve the existing protocol behavior.

Line 182’s Promise.allSettled migration changes the established per-bundle orchestration contract in this path. This should stay on Promise.all unless protocol-level behavior changes are coordinated end-to-end.

Suggested patch
-  // Defensive: use allSettled so that if handleNewBundleProvided ever throws
-  // unexpectedly, all in-flight operations still complete before the handler
-  // returns and the onResponse hook deletes req.uploadDir. Currently
-  // handleNewBundleProvided catches its own errors, so Promise.all would also
-  // wait for every promise.
-  const settled = await Promise.allSettled(handlingPromises);
-  const firstFailure = settled.find((r): r is PromiseRejectedResult => r.status === 'rejected');
-  if (firstFailure) {
-    throw firstFailure.reason;
-  }
-
-  // handleNewBundleProvided returns undefined on success or a ResponseResult on
-  // failure (e.g., lock timeout). Find the first error response, if any.
-  const results = settled
-    .filter((r): r is PromiseFulfilledResult<ResponseResult | undefined> => r.status === 'fulfilled')
-    .map((r) => r.value);
+  const results = await Promise.all(handlingPromises);
   return results.find((result) => result !== undefined);

Based on learnings: In packages/react-on-rails-pro-node-renderer, the Promise.all pattern for per-bundle operations is intentional, and switching to Promise.allSettled requires Ruby-side protocol changes.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-on-rails-pro-node-renderer/src/worker/handleRenderRequest.ts`
around lines 177 - 194, The code changed per-bundle orchestration from
Promise.all to Promise.allSettled, altering the protocol; revert to using
Promise.all on the handlingPromises array so failures short-circuit as before:
replace the Promise.allSettled(handlingPromises) call with
Promise.all(handlingPromises), remove the
PromiseRejectedResult/PromiseFulfilledResult handling (the
settled/find-first-failure logic), and then treat the resolved array directly
(it will be an array of ResponseResult | undefined) and return the first
non-undefined result; reference symbols: handlingPromises,
handleNewBundleProvided, and the surrounding function in handleRenderRequest.ts.
🧹 Nitpick comments (3)
react_on_rails/lib/generators/react_on_rails/templates/base/base/bin/switch-bundler (1)

93-96: Consider extracting package-name normalization into a helper.

The same regex appears in both loops (Line 93 and Line 96). A tiny helper would reduce duplication and make future edits safer.

♻️ Optional refactor
+  def package_name(dep)
+    dep[%r{\A(@[^/]+/[^@]+|[^@]+)}]
+  end
+
   def update_dependencies
@@
     remove_deps[:dependencies].each do |dep|
-      package_json["dependencies"]&.delete(dep[%r{\A(@[^/]+/[^@]+|[^@]+)}])
+      package_json["dependencies"]&.delete(package_name(dep))
     end
     remove_deps[:dev_dependencies].each do |dep|
-      package_json["devDependencies"]&.delete(dep[%r{\A(@[^/]+/[^@]+|[^@]+)}])
+      package_json["devDependencies"]&.delete(package_name(dep))
     end
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@react_on_rails/lib/generators/react_on_rails/templates/base/base/bin/switch-bundler`
around lines 93 - 96, The package-name extraction regex is duplicated in the
loops that delete entries from package_json ("dependencies" and
"devDependencies"); extract that regex into a small helper (e.g.,
normalize_package_name or package_basename) and replace the inline
dep[%r{\A(@[^/]+/[^@]+|[^@]+)}] calls with a call to that helper in both
remove_deps[:dependencies] and remove_deps[:dev_dependencies] loops, keeping
behavior identical; ensure the helper is defined near the surrounding code so
it’s visible to the deletion logic and reuse it wherever this pattern appears.
react_on_rails/spec/react_on_rails/generators/js_dependency_manager_spec.rb (1)

713-714: Reduce duplicated Babel preset literal to avoid drift.

These three selectors can reference the existing constant instead of repeating the versioned string.

♻️ Proposed refactor
+  let(:babel_preset) do
+    ReactOnRails::Generators::JsDependencyManager::BABEL_REACT_DEPENDENCIES.first
+  end
+
   describe "#add_js_dependencies" do
@@
       babel_calls = instance.add_npm_dependencies_calls.select do |call|
-        call[:packages].include?("@babel/preset-react@^7.0.0")
+        call[:packages].include?(babel_preset)
       end
@@
       babel_calls = instance.add_npm_dependencies_calls.select do |call|
-        call[:packages].include?("@babel/preset-react@^7.0.0")
+        call[:packages].include?(babel_preset)
       end
@@
       babel_calls = instance.add_npm_dependencies_calls.select do |call|
-        call[:packages].include?("@babel/preset-react@^7.0.0")
+        call[:packages].include?(babel_preset)
       end

Also applies to: 725-726, 749-750

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@react_on_rails/spec/react_on_rails/generators/js_dependency_manager_spec.rb`
around lines 713 - 714, The spec duplicates the literal
"@babel/preset-react@^7.0.0" in multiple selectors (e.g.,
call[:packages].include?("@babel/preset-react@^7.0.0") at the shown diff and
also at lines referenced 725-726 and 749-750); replace those repeated string
literals with the existing constant that already holds that versioned preset
value (use the project's defined Babel preset constant instead of repeating the
string) so all include? checks reference the single constant.
packages/react-on-rails-pro-node-renderer/src/worker/handleRenderRequest.ts (1)

84-91: Update stale JSDoc params for handleNewBundleProvided.

The doc block still references bundleFilePathPerTimestamp and renderingRequest, but Line 91 now takes requestContext: RequestInfo. Please sync the param docs with the current signature.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-on-rails-pro-node-renderer/src/worker/handleRenderRequest.ts`
around lines 84 - 91, Update the JSDoc for the function handleNewBundleProvided
to match its current signature by replacing or removing outdated params like
bundleFilePathPerTimestamp and renderingRequest and documenting the actual
parameter requestContext: RequestInfo (and any other real params used in the
function). Ensure the JSDoc `@param` entries reference the correct symbol names
(e.g., requestContext) and describe their types/roles consistently with the
implementation in handleNewBundleProvided.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@packages/react-on-rails-pro-node-renderer/src/worker/handleRenderRequest.ts`:
- Around line 177-194: The code changed per-bundle orchestration from
Promise.all to Promise.allSettled, altering the protocol; revert to using
Promise.all on the handlingPromises array so failures short-circuit as before:
replace the Promise.allSettled(handlingPromises) call with
Promise.all(handlingPromises), remove the
PromiseRejectedResult/PromiseFulfilledResult handling (the
settled/find-first-failure logic), and then treat the resolved array directly
(it will be an array of ResponseResult | undefined) and return the first
non-undefined result; reference symbols: handlingPromises,
handleNewBundleProvided, and the surrounding function in handleRenderRequest.ts.

---

Nitpick comments:
In `@packages/react-on-rails-pro-node-renderer/src/worker/handleRenderRequest.ts`:
- Around line 84-91: Update the JSDoc for the function handleNewBundleProvided
to match its current signature by replacing or removing outdated params like
bundleFilePathPerTimestamp and renderingRequest and documenting the actual
parameter requestContext: RequestInfo (and any other real params used in the
function). Ensure the JSDoc `@param` entries reference the correct symbol names
(e.g., requestContext) and describe their types/roles consistently with the
implementation in handleNewBundleProvided.

In
`@react_on_rails/lib/generators/react_on_rails/templates/base/base/bin/switch-bundler`:
- Around line 93-96: The package-name extraction regex is duplicated in the
loops that delete entries from package_json ("dependencies" and
"devDependencies"); extract that regex into a small helper (e.g.,
normalize_package_name or package_basename) and replace the inline
dep[%r{\A(@[^/]+/[^@]+|[^@]+)}] calls with a call to that helper in both
remove_deps[:dependencies] and remove_deps[:dev_dependencies] loops, keeping
behavior identical; ensure the helper is defined near the surrounding code so
it’s visible to the deletion logic and reuse it wherever this pattern appears.

In `@react_on_rails/spec/react_on_rails/generators/js_dependency_manager_spec.rb`:
- Around line 713-714: The spec duplicates the literal
"@babel/preset-react@^7.0.0" in multiple selectors (e.g.,
call[:packages].include?("@babel/preset-react@^7.0.0") at the shown diff and
also at lines referenced 725-726 and 749-750); replace those repeated string
literals with the existing constant that already holds that versioned preset
value (use the project's defined Babel preset constant instead of repeating the
string) so all include? checks reference the single constant.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e86c4fc5-8ada-49f6-86c0-bb95ab75e49e

📥 Commits

Reviewing files that changed from the base of the PR and between 874c2a1 and cbd4fc4.

⛔ Files ignored due to path filters (6)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • react_on_rails/Gemfile.lock is excluded by !**/*.lock
  • react_on_rails/spec/dummy/Gemfile.lock is excluded by !**/*.lock
  • react_on_rails_pro/Gemfile.lock is excluded by !**/*.lock
  • react_on_rails_pro/spec/dummy/Gemfile.lock is excluded by !**/*.lock
  • react_on_rails_pro/spec/execjs-compatible-dummy/Gemfile.lock is excluded by !**/*.lock
📒 Files selected for processing (18)
  • CHANGELOG.md
  • package.json
  • packages/create-react-on-rails-app/package.json
  • packages/react-on-rails-pro-node-renderer/package.json
  • packages/react-on-rails-pro-node-renderer/src/shared/utils.ts
  • packages/react-on-rails-pro-node-renderer/src/worker.ts
  • packages/react-on-rails-pro-node-renderer/src/worker/handleRenderRequest.ts
  • packages/react-on-rails-pro-node-renderer/src/worker/vm.ts
  • packages/react-on-rails-pro/package.json
  • packages/react-on-rails/package.json
  • react_on_rails/lib/generators/react_on_rails/js_dependency_manager.rb
  • react_on_rails/lib/generators/react_on_rails/templates/base/base/bin/switch-bundler
  • react_on_rails/lib/react_on_rails/version.rb
  • react_on_rails/spec/dummy/package.json
  • react_on_rails/spec/react_on_rails/generators/install_generator_spec.rb
  • react_on_rails/spec/react_on_rails/generators/js_dependency_manager_spec.rb
  • react_on_rails_pro/lib/react_on_rails_pro/version.rb
  • react_on_rails_pro/spec/dummy/package.json
✅ Files skipped from review due to trivial changes (12)
  • packages/create-react-on-rails-app/package.json
  • react_on_rails_pro/spec/dummy/package.json
  • react_on_rails/spec/dummy/package.json
  • package.json
  • react_on_rails/lib/react_on_rails/version.rb
  • packages/react-on-rails-pro-node-renderer/package.json
  • packages/react-on-rails-pro/package.json
  • packages/react-on-rails/package.json
  • react_on_rails/lib/generators/react_on_rails/js_dependency_manager.rb
  • react_on_rails_pro/lib/react_on_rails_pro/version.rb
  • react_on_rails/spec/react_on_rails/generators/install_generator_spec.rb
  • CHANGELOG.md

@justin808 justin808 changed the title Update CHANGELOG.md for 16.6.0.rc.1 Update CHANGELOG.md for 16.6.0 Apr 9, 2026
@coderabbitai coderabbitai Bot added the P3 Parked priority label Apr 9, 2026
justin808 and others added 2 commits April 9, 2026 12:35
Adds missing changelog entries to the `[Unreleased]` section for PRs
merged since `v16.6.0.rc.0`. Analyzed 19 commits on `origin/main` since
the last tag, identified 1 missing user-visible PR (#3069), and skipped
10 non-user-visible PRs (docs, tests, internal refactors).

**New entries added:**
- **Added**: `[Pro] Configurable HTTP keep-alive timeout for node
renderer connections` (PR #3069)
- **Fixed**: `[Pro] Fixed SSR failures from stale persistent HTTP/2
connections` (PR #3069)

**Entries already present** (added in prior changelog updates): PRs

**Skipped** (not user-visible): #2893 (docs), #2916 (docs), #2922 (test
fix), #2923 (test fix), #2925 (internal refactor), #3064 (docs), #3065
(docs), #3066 (docs), #3067 (docs), #3072 (docs).

- [x] ~Add/update test to cover these changes~
- [x] ~Update documentation~
- [x] Update CHANGELOG file

No code changes — CHANGELOG.md only.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk because this PR only changes documentation (`CHANGELOG.md`)
and does not modify runtime code.
>
> **Overview**
> Updates `CHANGELOG.md` *[Unreleased]* to include missing Pro release
notes for PR `#3069`, documenting the new
`renderer_http_keep_alive_timeout` config and the associated fix for SSR
failures from stale persistent HTTP/2 connections to the node renderer.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
8d1a480. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **New Features**
* Interactive mode selection prompt for CLI tool when no explicit mode
is specified
* Configurable keep-alive timeout setting for Pro users (default 30
seconds)

* **Bug Fixes**
  * Enhanced validation and error handling for invalid request payloads
  * Improved template literal handling in code generation
  * Better HTTP connection stability with enhanced diagnostic messaging

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@justin808 justin808 force-pushed the jg/changelog-16.6.0.rc.1 branch from c15b4f2 to 956cc0f Compare April 9, 2026 22:35
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 9, 2026

Review: LGTM

This is a clean documentation-only changelog update. All changes look correct:

  • RC → stable: ### [16.6.0.rc.1] - 2026-04-07 correctly renamed to ### [16.6.0] - 2026-04-09
  • New entries added to the right sections:
    • Improved: PR 2877 (clearer exception labels), PR 3086 (cleaner diagnostic output)
    • Fixed: PR 3083 (dependency version pinning, moved from [Unreleased])
  • Section ordering follows guidelines: Removed → Added → Improved → Fixed
  • Compare links correctly updated: v16.6.0.rc.1v16.6.0 for both [unreleased] and [16.6.0]
  • No orphaned RC references remain in the file

One minor note: the PR description says "consolidate rc.0 and rc.1" but only rc.1 appears in the diff — rc.0 content was presumably already folded into rc.1 in a prior PR. No action needed, just noting it in case the description is revised.

@justin808 justin808 merged commit 2a08780 into main Apr 9, 2026
9 checks passed
@justin808 justin808 deleted the jg/changelog-16.6.0.rc.1 branch April 9, 2026 22:40
justin808 added a commit that referenced this pull request Apr 12, 2026
## Summary
- Consolidate rc.0 and rc.1 prerelease sections into a single 16.6.0
stable release section
- Add new entries for PRs merged since rc.1 (PR 3086, PR 2877, PR 3083)
- Reorder sections per changelog guidelines (Removed -> Added ->
Improved -> Fixed)
- Remove orphaned RC diff links

## Test plan
- [ ] Verify changelog formatting is correct
- [ ] Verify version diff links at bottom of file

After merge, run `rake release` to publish and auto-create the GitHub
release.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
  * Fixed third-party dependency version pinning in the generator.

* **Improvements**
* Enhanced exception messages for clearer context in node-renderer
requests.
* Improved diagnostic output for invalid render requests with updated
documentation guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Documentation-only change updating release notes and compare links; no
runtime behavior is modified.
> 
> **Overview**
> Publishes the **`16.6.0`** changelog section (dated 2026-04-09) by
consolidating the prior RC content and reordering entries to match the
changelog guidelines.
> 
> Adds release-note entries for recently merged work (notably Pro
node-renderer diagnostic/error-message improvements and generator npm
dependency pinning), and updates the bottom compare links to reference
`v16.6.0` instead of the RC tag.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
956cc0f. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
justin808 added a commit that referenced this pull request Apr 12, 2026
## Summary
- Consolidate rc.0 and rc.1 prerelease sections into a single 16.6.0
stable release section
- Add new entries for PRs merged since rc.1 (PR 3086, PR 2877, PR 3083)
- Reorder sections per changelog guidelines (Removed -> Added ->
Improved -> Fixed)
- Remove orphaned RC diff links

## Test plan
- [ ] Verify changelog formatting is correct
- [ ] Verify version diff links at bottom of file

After merge, run `rake release` to publish and auto-create the GitHub
release.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
  * Fixed third-party dependency version pinning in the generator.

* **Improvements**
* Enhanced exception messages for clearer context in node-renderer
requests.
* Improved diagnostic output for invalid render requests with updated
documentation guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Documentation-only change updating release notes and compare links; no
runtime behavior is modified.
> 
> **Overview**
> Publishes the **`16.6.0`** changelog section (dated 2026-04-09) by
consolidating the prior RC content and reordering entries to match the
changelog guidelines.
> 
> Adds release-note entries for recently merged work (notably Pro
node-renderer diagnostic/error-message improvements and generator npm
dependency pinning), and updates the bottom compare links to reference
`v16.6.0` instead of the RC tag.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
956cc0f. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
justin808 added a commit that referenced this pull request Apr 12, 2026
## Summary
- Consolidate rc.0 and rc.1 prerelease sections into a single 16.6.0
stable release section
- Add new entries for PRs merged since rc.1 (PR 3086, PR 2877, PR 3083)
- Reorder sections per changelog guidelines (Removed -> Added ->
Improved -> Fixed)
- Remove orphaned RC diff links

## Test plan
- [ ] Verify changelog formatting is correct
- [ ] Verify version diff links at bottom of file

After merge, run `rake release` to publish and auto-create the GitHub
release.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
  * Fixed third-party dependency version pinning in the generator.

* **Improvements**
* Enhanced exception messages for clearer context in node-renderer
requests.
* Improved diagnostic output for invalid render requests with updated
documentation guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Documentation-only change updating release notes and compare links; no
runtime behavior is modified.
> 
> **Overview**
> Publishes the **`16.6.0`** changelog section (dated 2026-04-09) by
consolidating the prior RC content and reordering entries to match the
changelog guidelines.
> 
> Adds release-note entries for recently merged work (notably Pro
node-renderer diagnostic/error-message improvements and generator npm
dependency pinning), and updates the bottom compare links to reference
`v16.6.0` instead of the RC tag.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
956cc0f. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
justin808 added a commit that referenced this pull request Apr 12, 2026
…ages

* origin/main: (44 commits)
  Consolidate CSP nonce sanitization into shared module (#2828)
  Add comprehensive --rsc-pro generator tests (#3098)
  fix: cross-env validation and docs for renderer password (#3090)
  Improve package metadata and Pro upgrade CTAs (#3112)
  docs: standardize warning syntax to GFM alert format (#3115)
  docs: improve react-intl documentation for React Server Components (#3085)
  Fix generator CI SSR regression on main (#3110)
  Refocus GitHub README on docs navigation (#3113)
  Add manual dev environment testing checklist for coding agents (#3074)
  Bump version to 16.6.0
  Update CHANGELOG.md for 16.6.0 (#3078)
  fix: node-renderer diagnostic improvements (#3086)
  fix: pin third-party npm deps in generator to prevent peer dep conflicts (#3083)
  chore(deps): bump lodash from 4.17.23 to 4.18.1 in the npm-security group across 1 directory (#2920)
  fix: refactor formatExceptionMessage to accept generic request context (#2877)
  Bump version to 16.6.0.rc.1
  Update CHANGELOG.md for 16.6.0.rc.1 (#3079)
  Update CHANGELOG.md unreleased section (#3077)
  Fix Content-Length mismatch and null renderingRequest errors in node renderer (#3069)
  Improve memory debugging docs with simpler heap snapshot approach (#3072)
  ...

# Conflicts:
#	docs/pro/home-pro.md
#	docs/pro/react-on-rails-pro.md
#	docs/sidebars.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Parked priority review-needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant