Skip to content

docs: remove stale immediate_hydration references (#3139)#3159

Merged
justin808 merged 6 commits intomainfrom
jg/3139-remove-immediate-hydration-docs
Apr 19, 2026
Merged

docs: remove stale immediate_hydration references (#3139)#3159
justin808 merged 6 commits intomainfrom
jg/3139-remove-immediate-hydration-docs

Conversation

@justin808
Copy link
Copy Markdown
Member

@justin808 justin808 commented Apr 18, 2026

Summary

The immediate_hydration option was removed from the codebase in #2834. The behavior it controlled (Pro users hydrate components before DOMContentLoaded) still exists, but it's now always-on for Pro and always-off for OSS — there is no per-component toggle.

Several docs still presented immediate_hydration as a configurable option, which confused users who tried to set it and found it didn't exist. This PR reframes those sections as descriptions of Pro's built-in early hydration behavior and drops stale code examples.

Files updated

  • docs/pro/streaming-ssr.md — renamed "Immediate Hydration" to "Early Hydration (Pro)"; reworded surrounding prose; removed the immediate_hydration: false code example; updated migration-timeline bullet
  • docs/pro/troubleshooting.md — removed the "Verify immediate_hydration option" bullet from the hydration-failure checklist
  • docs/oss/building-features/turbolinks.md — reframed the Turbo Streams section (Pro's early hydration is automatic, not a per-call option); removed immediate_hydration: true from the code example; reworded the async+Turbolinks warning box; removed the v16.0 migration note that referenced the removed option; fixed GitHub [!WARNING] alert syntax so the callout renders
  • docs/oss/api-reference/ruby-api-pro.md — removed :immediate_hydration from the stream_react_component options list and split the options/hydration note for clarity
  • docs/oss/configuration/configuration-deprecated.md — tightened the migration step (delete both config and per-component immediate_hydration: keys — all are no-ops) and corrected the removal version to v16.6.0
  • docs/oss/upgrading/release-notes/16.2.0.md — dropped the stale "use component-level overrides if needed" hint from the troubleshooting section (per-component keys were also removed in v16.6.0). The historical "Component-level overrides still work" section is preserved as-is since it accurately describes behavior at the 16.2.0 release point.

Files intentionally left alone

Per the issue, release notes and migration guidance still correctly reference immediate_hydration as a historical/deprecated option:

  • docs/oss/upgrading/release-notes/16.0.0.md
  • docs/oss/configuration/README.md
  • docs/oss/upgrading/upgrading-react-on-rails.md (migration guidance)

Fixes #3139

Test plan

  • grep -rn immediate_hydration docs/pro docs/oss/building-features docs/oss/api-reference returns no live/example references (only migration/deprecation guidance remains in upgrade-notes and deprecation docs, as intended)
  • Prettier formatting passes on edited files
  • pre-commit hooks (trailing newlines, markdown link check, prettier) all pass
  • Reviewer: visually scan the updated sections in streaming-ssr.md and turbolinks.md to confirm the reframing reads well

🤖 Generated with Claude Code

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 18, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Removed references and examples for the removed immediate_hydration option across Pro and OSS docs; replaced them with language stating React on Rails Pro performs early hydration automatically for streamed components and updated migration and troubleshooting guidance accordingly. (Documentation-only changes.)

Changes

Cohort / File(s) Summary
Pro docs
docs/pro/streaming-ssr.md, docs/pro/troubleshooting.md
Renamed/reworded "Immediate Hydration" to "Early Hydration (Pro)"; removed per-component immediate_hydration examples and opt-out snippets; updated migration checklist and removed troubleshooting step referencing the option.
OSS docs & API reference
docs/oss/building-features/turbolinks.md, docs/oss/api-reference/ruby-api-pro.md, docs/oss/configuration/configuration-deprecated.md, docs/oss/upgrading/release-notes/16.2.0.md
Removed immediate_hydration from code examples and guidance; clarified that Pro hydrates streamed components early automatically and instructed OSS users to delete any immediate_hydration keys (they are no-ops).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐇 I hopped through lines and nudged an old flag free,
Morning hydration now starts automatically.
No knobs to twiddle, no examples to mend,
Docs neat as a burrow from start to end. 🥕✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly and concisely describes the primary change: removing stale immediate_hydration documentation references after the option was removed from the codebase.
Linked Issues check ✅ Passed All code changes fully address the objectives in #3139: removed stale immediate_hydration examples from streaming-ssr.md, troubleshooting.md, turbolinks.md, and ruby-api-pro.md; reframed docs to describe Pro's automatic early hydration behavior; preserved historical deprecation notes.
Out of Scope Changes check ✅ Passed All changes are in-scope documentation updates directly addressing #3139 objectives; no unrelated code modifications or configuration changes introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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/3139-remove-immediate-hydration-docs

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.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 18, 2026

Code Review

Summary: Documentation-only cleanup that removes stale immediate_hydration references from live docs and accurately reframes the behavior as Pro's always-on early hydration. No runtime code is touched.

What's Good

  • The scope is well-defined: live/example docs are updated; release notes and deprecation docs are correctly left alone.
  • Every removal is accurate — immediate_hydration was removed in Remove immediate_hydration feature from codebase #2834 and the per-component toggle no longer exists.
  • The new prose ("always on for Pro — no per-component toggle is exposed") is clear and prevents the user confusion described in Remove stale immediate_hydration references from docs #3139.
  • The ruby-api-pro.md rewrite is tight: drops the stale option list and replaces it with a single descriptive sentence.
  • The troubleshooting checklist bullet was correctly removed — telling users to "set immediate_hydration: true" was actively misleading.

Minor Nit (pre-existing, touched by this PR)

In docs/oss/building-features/turbolinks.md, the GitHub alert callout has [!WARNING] on the same line as the heading:

> [!WARNING] > **Async Scripts with Turbolinks Require Pro**

GitHub's alert syntax expects [!WARNING] alone on the first line:

> [!WARNING]
> **Async Scripts with Turbolinks Require Pro**

This was pre-existing and the PR only changed the title text, so it's fine to leave it for a follow-up. Worth noting since GitHub renders the two forms differently.

Verdict

Approve. The changes are accurate, well-scoped, and directly fix the user confusion reported in #3139. The test plan grep confirms no live references remain in the targeted directories.

Comment thread docs/oss/building-features/turbolinks.md Outdated
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.

🧹 Nitpick comments (2)
docs/pro/streaming-ssr.md (1)

338-349: LGTM! Section accurately describes Pro's automatic early hydration.

The renamed "Early Hydration (Pro)" section correctly:

  • Describes hydration timing (before DOMContentLoaded)
  • States the feature is always enabled for Pro users
  • Clarifies no per-component toggle is exposed

This aligns perfectly with the PR objectives.

Optional style improvement

Consider hyphenating "full page" → "full-page" on Line 340 for consistency with compound adjective usage:

-React on Rails Pro hydrates components during the page loading state (before `DOMContentLoaded`), rather than waiting for the full page load.
+React on Rails Pro hydrates components during the page loading state (before `DOMContentLoaded`), rather than waiting for the full-page load.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/pro/streaming-ssr.md` around lines 338 - 349, In the "Early Hydration
(Pro)" section update the compound adjective "full page load" to "full-page
load" for consistency; locate the paragraph that lists benefits (the one
mentioning waiting for `DOMContentLoaded` / full page load) and change "full
page load" to "full-page load" within that sentence.
docs/oss/building-features/turbolinks.md (1)

257-267: LGTM! Async scripts warning accurately reflects Pro's automatic behavior.

The warning correctly:

  • States that Pro's early hydration behavior is needed (not that users need to enable it)
  • Lists "early hydration is automatic for Pro users" as an alternative (Line 267)
  • No longer references configuring immediate_hydration

This is consistent with the broader documentation updates.

Optional style improvement

Consider hyphenating "full page" → "full-page" on Line 265 for consistency with compound adjective usage:

-- Use `defer` instead of `async` (waits for full page load before hydration)
+- Use `defer` instead of `async` (waits for full-page load before hydration)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/oss/building-features/turbolinks.md` around lines 257 - 267, Fix the
minor style issue in the Turbolinks warning: update the phrase inside the bullet
"Use `defer` instead of `async` (waits for full page load before hydration)" to
hyphenate the compound adjective, changing "full page load" to "full-page load"
so the sentence reads "(waits for full-page load before hydration)".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/oss/building-features/turbolinks.md`:
- Around line 257-267: Fix the minor style issue in the Turbolinks warning:
update the phrase inside the bullet "Use `defer` instead of `async` (waits for
full page load before hydration)" to hyphenate the compound adjective, changing
"full page load" to "full-page load" so the sentence reads "(waits for full-page
load before hydration)".

In `@docs/pro/streaming-ssr.md`:
- Around line 338-349: In the "Early Hydration (Pro)" section update the
compound adjective "full page load" to "full-page load" for consistency; locate
the paragraph that lists benefits (the one mentioning waiting for
`DOMContentLoaded` / full page load) and change "full page load" to "full-page
load" within that sentence.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3ea904ea-f1f1-4094-b494-5f5d680255d3

📥 Commits

Reviewing files that changed from the base of the PR and between e9e27a2 and 7b50cf7.

📒 Files selected for processing (4)
  • docs/oss/api-reference/ruby-api-pro.md
  • docs/oss/building-features/turbolinks.md
  • docs/pro/streaming-ssr.md
  • docs/pro/troubleshooting.md
💤 Files with no reviewable changes (1)
  • docs/pro/troubleshooting.md

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 18, 2026

Greptile Summary

This PR removes stale immediate_hydration references from four documentation files, replacing them with accurate descriptions of Pro's always-on early hydration behavior (which has been unconditionally enabled since #2834). The rewording is consistent across all four files and correctly distinguishes between the Pro feature (always on) and OSS (unavailable), with no per-component toggle implied.

Confidence Score: 5/5

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

All four changed files are docs-only. The rewording accurately reflects the actual behavior (Pro always-on, OSS unavailable, no per-component toggle). Prose is internally consistent and no immediate_hydration references leak into the updated sections. No P0 or P1 findings.

No files require special attention.

Important Files Changed

Filename Overview
docs/oss/api-reference/ruby-api-pro.md Removed the stale :immediate_hydration option bullet from stream_react_component docs; replaced with accurate prose about Pro's always-on early hydration.
docs/oss/building-features/turbolinks.md Removed immediate_hydration: true from the Turbo Streams code example and surrounding prose; updated warning block and "Learn More" links; dropped stale v16.0 migration note.
docs/pro/streaming-ssr.md Renamed "Immediate Hydration" section to "Early Hydration (Pro)"; removed per-component toggle example (immediate_hydration: false); reworded migration timeline bullet; all prose is consistent and accurate.
docs/pro/troubleshooting.md Removed the now-invalid "Verify immediate_hydration option" bullet from the hydration-failure checklist; no other changes needed.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[React Component Inserted into DOM] --> B{React on Rails Edition?}
    B -->|Pro| C[Early Hydration — before DOMContentLoaded\nalways on, no toggle]
    B -->|OSS| D[Standard Hydration — waits for\npage load events]
    C --> E[Component Interactive]
    D --> F[DOMContentLoaded fires]
    F --> E
Loading

Reviews (1): Last reviewed commit: "docs: remove stale immediate_hydration r..." | Re-trigger Greptile

The `immediate_hydration` option was removed from the codebase in #2834.
The behavior it controlled (Pro users hydrate components before
DOMContentLoaded) still exists, but it's now always-on for Pro and
always-off for OSS — there is no per-component toggle.

Several docs still showed `immediate_hydration: true/false` in code
examples or advised users to "enable" the option. This reframes those
sections as descriptions of Pro's built-in early hydration behavior and
drops the stale code examples.

Files updated:
- docs/pro/streaming-ssr.md — rewrite "Immediate Hydration" as "Early
  Hydration (Pro)", remove code example disabling the option
- docs/pro/troubleshooting.md — drop the stale bullet
- docs/oss/building-features/turbolinks.md — reframe Turbo Streams and
  async+Turbolinks sections; remove `immediate_hydration: true` from
  code examples
- docs/oss/api-reference/ruby-api-pro.md — remove `:immediate_hydration`
  from stream_react_component options

Fixes #3139
@justin808 justin808 force-pushed the jg/3139-remove-immediate-hydration-docs branch from 7b50cf7 to a034bd9 Compare April 18, 2026 07:47
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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/oss/building-features/turbolinks.md`:
- Line 257: The callout line currently merges the marker and title ('>
[!WARNING] > **Async Scripts with Turbolinks Require Pro**'), breaking
rendering; split it so the marker is on its own line ('> [!WARNING]') and move
the title to the following line prefixed with '>' (e.g., '> **Async Scripts with
Turbolinks Require Pro**'), ensuring subsequent callout content lines also start
with '>' to match the document's callout format.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 10e9af2b-f124-43a5-aa13-a2d3ab2e4e4d

📥 Commits

Reviewing files that changed from the base of the PR and between 7b50cf7 and a034bd9.

📒 Files selected for processing (4)
  • docs/oss/api-reference/ruby-api-pro.md
  • docs/oss/building-features/turbolinks.md
  • docs/pro/streaming-ssr.md
  • docs/pro/troubleshooting.md
💤 Files with no reviewable changes (1)
  • docs/pro/troubleshooting.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/oss/api-reference/ruby-api-pro.md

Comment thread docs/oss/building-features/turbolinks.md Outdated
GitHub's alert syntax requires the `[!WARNING]` marker to be alone on
its own line for the callout to render correctly across viewers.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 18, 2026

Code Review

Summary: Clean, focused documentation cleanup. Removes stale immediate_hydration references from active docs while correctly preserving them in release notes, upgrade guides, and the deprecation config page. Low risk — no runtime changes.


What works well

  • The scope boundary is well-reasoned: active docs updated, historical/upgrade docs intentionally left alone
  • The reframing from "configurable option" to "always-on Pro behavior" is applied consistently across all four changed files
  • The grep test plan is solid — confirmed: zero live references remain in docs/pro, docs/oss/building-features, and docs/oss/api-reference
  • Removal of the troubleshooting checklist item is correct; telling users to "set immediate_hydration: true" was actively harmful

Issues

configuration-deprecated.md — migration guidance now misleads (outside PR scope, but worth a follow-up)

The file was intentionally left alone, but its current content reads:

# Pro users can disable for specific components:
react_component("MyComponent", immediate_hydration: false)

This directly contradicts the new docs which state "no per-component toggle is exposed." A Pro user following this migration path would get a deprecation warning and be silently ignored. The fix is a one-line edit changing "Pro users can disable for specific components" to a note that per-component overrides are also no longer supported. Suggest a follow-up issue or a quick amendment to this PR.

turbolinks.md line ~257 — malformed GFM alert syntax (pre-existing, touched by this PR)

The PR renamed the alert title on this line but left the syntax broken:

> [!WARNING] > **Async Scripts with Turbolinks Require Pro**

GitHub's alert blocks require [!WARNING] to occupy its own line:

> [!WARNING]
> **Async Scripts with Turbolinks Require Pro**

The current form renders > **Title** as literal text inside the warning badge rather than as formatted content. Since this line was already in the diff, it would be clean to fix it here.


Minor observations

  • streaming-ssr.md migration timeline step 3 now reads "Use React on Rails Pro" — slightly awkward since Pro is a prerequisite of the entire section, not a migration step. "Pro hydrates components early — no additional configuration needed" or simply removing the step would read more naturally.
  • The ruby-api-pro.md change is clean and precise.

Verdict: Approve with the suggestion to fix the [!WARNING] syntax before merge (trivial one-line fix) and track the configuration-deprecated.md contradiction as a follow-up.

Comment thread docs/oss/building-features/turbolinks.md
@justin808
Copy link
Copy Markdown
Member Author

Review comment triage

Addressed:

  • @claude[bot] inline nit on docs/oss/building-features/turbolinks.md:257 — split [!WARNING] onto its own line so GitHub's alert callout renders correctly. Fixed in f207a16; thread resolved.

No action (rationale):

  • @coderabbitai[bot] walkthrough — auto-generated summary/pre-merge check post; no actionable items.
  • @claude[bot] approval summary — ✅ approve with confidence; the only nit flagged is the inline comment above (now addressed).
  • @greptile-apps[bot] — 5/5 confidence, docs-only change, no findings.

No further changes needed; PR is ready for merge review.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 18, 2026

Tip

For best results, initiate chat on the files or code changes.

@justin808 Thanks for the thorough triage summary! The fix for the [!WARNING] callout rendering (f207a16) addresses the only outstanding nit. The docs-only changes look clean — stale immediate_hydration references removed, historical/deprecation docs preserved, and the Early Hydration (Pro) behavior correctly described as always-on for Pro / unavailable for OSS. Ready for merge. 🚀


🧠 Learnings used
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-03-21T08:53:17.309Z
Learning: For small, focused PRs (roughly 5 files or fewer with one clear purpose): use at most one AI reviewer for inline comments, batch review fixes into one follow-up push, and verify language/runtime/library claims locally before making code changes in response to AI review

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-12T23:15:11.806Z
Learning: For small, focused PRs (5 files changed or fewer with one clear purpose): use at most one AI reviewer that leaves inline comments; additional AI tools should be summary-only or used manually

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-10T04:25:56.848Z
Learning: Refer to AGENTS.md for canonical policy on commands, tests, lint workflow, formatting, style requirements, Git/PR safety boundaries, and project directory boundaries. If CLAUDE.md conflicts with AGENTS.md, follow AGENTS.md

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2651
File: docs/oss/introduction.md:47-47
Timestamp: 2026-03-26T02:20:12.940Z
Learning: In `docs/oss/introduction.md` (and related docs in the `shakacode/react_on_rails` repo), the link to `docs/oss/getting-started/comparison-with-alternatives.md` described as "a side-by-side matrix with benchmarks" is intentionally and accurately worded. The page includes actual benchmark sections (e.g., Vite vs Rspack benchmark tables), so the phrase "with benchmarks" should NOT be flagged as misleading in future reviews.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2789
File: docs/pro/streaming-ssr.md:79-81
Timestamp: 2026-03-21T23:48:01.271Z
Learning: In React on Rails Pro, `stream_react_component` (defined in `react_on_rails_pro_helper.rb` around lines 127-129) forces `prerender: true` internally. The option is not configurable by callers, so documentation examples should NOT include `prerender: true` in `stream_react_component` invocations as it is misleading.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1781
File: node_package/src/ClientSideRenderer.ts:82-95
Timestamp: 2025-09-15T21:24:48.207Z
Learning: In React on Rails, the force_load feature includes both explicit `data-force-load="true"` usage and the ability to hydrate components during the page loading state (`document.readyState === 'loading'`). Both capabilities require a Pro license, so the condition `!railsContext.rorPro && (isComponentForceLoaded || document.readyState === 'loading')` correctly gates both scenarios.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 0
File: :0-0
Timestamp: 2026-04-13T02:29:20.920Z
Learning: In `react_on_rails_pro/lib/react_on_rails_pro/engine.rb` and `react_on_rails/lib/react_on_rails/configuration.rb` (PR `#3094`): Do NOT reset `rendering_strategy` or `js_code_builder` inside `ReactOnRails.configure`. The Pro engine sets these exactly once during `after_initialize`; resetting them on reconfigure would silently drop Pro's NodeStrategy/ProJsCodeBuilder assignments. A proper reconfigure mechanism for these accessors is deferred to Step 3 of the strategy-pattern refactor (`#2905`).

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2886
File: docs/sidebars.ts:9-251
Timestamp: 2026-03-29T08:38:50.670Z
Learning: In the `shakacode/react_on_rails` repository, `docs/sidebars.ts` uses sidebar doc IDs **without** an `oss/` prefix (e.g., `'api-reference/javascript-api'`, `'building-features/caching'`). Although OSS doc files are physically located at `docs/oss/...`, Docusaurus is configured to remap that path so those IDs resolve correctly without the prefix. Pro docs use the `pro/` prefix (e.g., `'pro/react-on-rails-pro'`). Do not suggest adding an `oss/` prefix to sidebar IDs in this repo.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2530
File: react_on_rails_pro/lib/react_on_rails_pro/concerns/stream.rb:0-0
Timestamp: 2026-03-04T23:37:22.169Z
Learning: In `react_on_rails_pro/lib/react_on_rails_pro/concerns/stream.rb`, the `stream_view_containing_react_components` method intentionally does NOT set `Cache-Control: no-transform`. The PR `#2530` is an alternative fix for the Live streaming + compression middleware deadlock (issue `#2519`): instead of using `no-transform` to make compression middleware short-circuit, gzip is handled in-process via a custom `GzipOutputStream` class wrapping `Zlib::GzipWriter`. This keeps compression enabled for clients that support gzip while bypassing the middleware stack entirely. Do not suggest adding `Cache-Control: no-transform` to this method.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2610
File: docs/pro/react-server-components/create-without-ssr.md:13-22
Timestamp: 2026-03-24T21:38:26.825Z
Learning: In `docs/pro/react-server-components/create-without-ssr.md`, JS install instructions for React on Rails Pro should only install `react-on-rails-pro` (not `react-on-rails` separately), because the Pro package already includes the base package functionality. Use `--exact` (yarn/pnpm) or `--save-exact` (npm) flags to pin to an exact version for reproducibility.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-12T23:15:11.806Z
Learning: Applies to CHANGELOG.md : Changelog format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)` (no hash before PR number)

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 18, 2026

Thanks for the triage summary. Everything looks good — the [!WARNING] rendering fix is the only nit that needed attention, and that's addressed. PR is clear from my side. ✅

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 18, 2026

Code Review

Overall: Clean, well-scoped documentation fix. The test plan's grep check passes — no live immediate_hydration references remain in the targeted files.

What the PR does well

  • Correctly distinguishes between live docs (updated) and release notes / deprecation guides (intentionally left alone). Historical context belongs in upgrade notes, not in the current API reference.
  • The prose in the refactored sections reads clearly. "Early Hydration (Pro)" is a better heading than "Immediate Hydration" because it names the observable behavior, not the removed option.
  • Bonus fix: the malformed GitHub-flavored markdown admonition in turbolinks.md (> [!WARNING] > **...** on a single line) is now properly split across two lines. This was a rendering bug in the old docs.
  • The removal of the stale v16.0 migration note (force_loadimmediate_hydration) is correct — documenting a migration path to a now-removed option is pure noise.

Minor observations (non-blocking)

  1. configuration-deprecated.md still shows per-component overrides (e.g., react_component("MyComponent", immediate_hydration: false)). Since the option was removed in Remove immediate_hydration feature from codebase #2834, this example may mislead users into thinking per-component overrides still work. This is intentionally out of scope for this PR, but worth a follow-up issue to clarify or remove that example.

  2. ruby-api-pro.md line 50 — the new sentence ("React on Rails Pro hydrates streamed components early … — no per-component toggle is exposed.") is run-on with "Options: same as react_component." as a single paragraph. A > **Note:** block or a line break would improve readability.

  3. streaming-ssr.md migration timeline step 3 reads "Use React on Rails Pro", which sounds like a license recommendation rather than a migration action. Consider rephrasing to: "React on Rails Pro: early hydration is automatic, no additional configuration required."

Verdict

Approving. The core change is accurate and resolves real user confusion caused by stale option documentation.

Comment thread docs/oss/api-reference/ruby-api-pro.md Outdated
…igration step

Address review feedback on PR #3159:

- configuration-deprecated.md: drop the `react_component(..., immediate_hydration: false)` per-component override example. The per-component toggle was removed alongside the global option; the example contradicted the new docs and would mislead Pro users following the migration path.
- streaming-ssr.md: rephrase Migration Timeline step 3 from "Use React on Rails Pro" to "Early Hydration (Pro): ... no additional configuration needed", since Pro is a prerequisite of the section, not an action to take.
Comment thread docs/pro/streaming-ssr.md Outdated
@justin808
Copy link
Copy Markdown
Member Author

Review comment triage (round 2)

Follow-up to my earlier triage. I (Claude Code) re-scanned the open review feedback and addressed two additional items raised in @claude[bot]'s detailed review:

Addressed in b32f1b5:

  • docs/oss/configuration/configuration-deprecated.md — Removed the misleading react_component("MyComponent", immediate_hydration: false) per-component override example from the migration block. The per-component toggle was removed alongside the global option, so the example contradicted the new docs in this PR. Migration text now tells users to delete both config.immediate_hydration and any immediate_hydration: keys from react_component / stream_react_component calls.
  • docs/pro/streaming-ssr.md:336 — Reworded Migration Timeline step 3 from "Use React on Rails Pro" to "Early Hydration (Pro): Pro hydrates components early for optimal Time to Interactive — no additional configuration needed". Pro is a prerequisite of the section, not a migration step, so the original wording read awkwardly.

Resolved (no code change needed):

  • Inline thread on turbolinks.md:257 from @claude[bot] (the duplicate [!WARNING] callout nit) — the fix landed in f207a16. Replied on the thread and resolved it.

No action — rationale:

  • @coderabbitai[bot] walkthrough + pre-merge checks — auto-generated summary; no actionable items.
  • @claude[bot] earlier approval comment — already addressed in the prior triage round.
  • @greptile-apps[bot] — 5/5 confidence, no findings.
  • @coderabbitai[bot] / @greptile-apps[bot] acknowledgment replies — no further action expected.

PR is ready for merge review.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 18, 2026

Tip

For best results, initiate chat on the files or code changes.

@justin808 — Round 2 triage looks thorough and the two additional fixes in b32f1b5 are both correct calls:

  • configuration-deprecated.md: Removing the immediate_hydration: false per-component example was the right move — since the per-component toggle was removed alongside the global option in #2834, leaving that example would have directly contradicted the updated docs in this PR.
  • streaming-ssr.md step 3: The reword to "Early Hydration (Pro): Pro hydrates components early for optimal Time to Interactive — no additional configuration needed" reads much better — Pro is a prerequisite for that entire section, not a migration step users need to take.

All outstanding review threads are now accounted for. PR is clean for merge. 🚀


🧠 Learnings used
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-03-21T08:53:17.309Z
Learning: For small, focused PRs (roughly 5 files or fewer with one clear purpose): use at most one AI reviewer for inline comments, batch review fixes into one follow-up push, and verify language/runtime/library claims locally before making code changes in response to AI review

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 0
File: :0-0
Timestamp: 2026-04-13T02:29:20.920Z
Learning: In `react_on_rails_pro/lib/react_on_rails_pro/engine.rb` and `react_on_rails/lib/react_on_rails/configuration.rb` (PR `#3094`): Do NOT reset `rendering_strategy` or `js_code_builder` inside `ReactOnRails.configure`. The Pro engine sets these exactly once during `after_initialize`; resetting them on reconfigure would silently drop Pro's NodeStrategy/ProJsCodeBuilder assignments. A proper reconfigure mechanism for these accessors is deferred to Step 3 of the strategy-pattern refactor (`#2905`).

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2651
File: docs/oss/introduction.md:47-47
Timestamp: 2026-03-26T02:20:12.940Z
Learning: In `docs/oss/introduction.md` (and related docs in the `shakacode/react_on_rails` repo), the link to `docs/oss/getting-started/comparison-with-alternatives.md` described as "a side-by-side matrix with benchmarks" is intentionally and accurately worded. The page includes actual benchmark sections (e.g., Vite vs Rspack benchmark tables), so the phrase "with benchmarks" should NOT be flagged as misleading in future reviews.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2790
File: docs/oss/migrating/rsc-data-fetching.md:238-238
Timestamp: 2026-03-22T03:17:13.316Z
Learning: In `docs/oss/migrating/rsc-data-fetching.md` (React on Rails migration guide), the phrase "Rails fetches the data in the controller layer" is intentional and acceptable wording even when the ERB examples show inline ActiveRecord queries inside `stream_react_component`/`stream_react_component_with_async_props`. The inline queries are a teaching shortcut; "controller layer" is meant to convey that data fetching happens on the Rails side (not in React), not to mandate that queries must live in a controller action. Do not flag this phrasing as misleading in future reviews.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2850
File: docs/oss/api-reference/rails-view-rendering-from-inline-javascript.md:0-0
Timestamp: 2026-03-26T07:01:43.653Z
Learning: In `packages/react-on-rails/src/ClientRenderer.ts`, the duplicate-render guard (which skips rendering if the DOM node is already connected/mounted) applies only to the automatic page-load rendering path. The public `ReactOnRails.render(...)` API routes through `packages/react-on-rails/src/base/client.ts` and calls `reactHydrateOrRender(...)` directly, without any deduplication guard. Therefore, repeated calls to the public `ReactOnRails.render(...)` API on the same DOM node (e.g., `#root`) WILL invoke React again — they are NOT deduplicated. Documentation stating this behavior is correct and should not be flagged.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-12T23:15:11.806Z
Learning: For small, focused PRs (5 files changed or fewer with one clear purpose): use at most one AI reviewer that leaves inline comments; additional AI tools should be summary-only or used manually

Learnt from: ihabadham
Repo: shakacode/react_on_rails PR: 2674
File: react_on_rails/lib/react_on_rails/doctor.rb:2325-2345
Timestamp: 2026-03-19T16:13:07.375Z
Learning: In `react_on_rails/lib/react_on_rails/doctor.rb`, `check_rsc_payload_route` and `check_rsc_procfile_watcher` filter commented lines (`/^\s*#/`) before checking for the target string, consistent with the `config_has_async_loading_strategy?` pattern. The doctor avoids a full Rails boot for resilience and uses file-content scanning instead of actual Rails route inspection. Remaining accepted limitations are dynamic/engine-mounted routes and routes loaded via the `draw` macro (uncommon, since the generator places `rsc_payload_route` directly in `config/routes.rb`).

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2530
File: react_on_rails_pro/lib/react_on_rails_pro/concerns/stream.rb:0-0
Timestamp: 2026-03-04T23:37:22.169Z
Learning: In `react_on_rails_pro/lib/react_on_rails_pro/concerns/stream.rb`, the `stream_view_containing_react_components` method intentionally does NOT set `Cache-Control: no-transform`. The PR `#2530` is an alternative fix for the Live streaming + compression middleware deadlock (issue `#2519`): instead of using `no-transform` to make compression middleware short-circuit, gzip is handled in-process via a custom `GzipOutputStream` class wrapping `Zlib::GzipWriter`. This keeps compression enabled for clients that support gzip while bypassing the middleware stack entirely. Do not suggest adding `Cache-Control: no-transform` to this method.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2789
File: docs/pro/streaming-ssr.md:79-81
Timestamp: 2026-03-21T23:48:01.271Z
Learning: In React on Rails Pro, `stream_react_component` (defined in `react_on_rails_pro_helper.rb` around lines 127-129) forces `prerender: true` internally. The option is not configurable by callers, so documentation examples should NOT include `prerender: true` in `stream_react_component` invocations as it is misleading.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1781
File: node_package/src/ClientSideRenderer.ts:82-95
Timestamp: 2025-09-15T21:24:48.207Z
Learning: In React on Rails, the force_load feature includes both explicit `data-force-load="true"` usage and the ability to hydrate components during the page loading state (`document.readyState === 'loading'`). Both capabilities require a Pro license, so the condition `!railsContext.rorPro && (isComponentForceLoaded || document.readyState === 'loading')` correctly gates both scenarios.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2886
File: docs/sidebars.ts:9-251
Timestamp: 2026-03-29T08:38:50.670Z
Learning: In the `shakacode/react_on_rails` repository, `docs/sidebars.ts` uses sidebar doc IDs **without** an `oss/` prefix (e.g., `'api-reference/javascript-api'`, `'building-features/caching'`). Although OSS doc files are physically located at `docs/oss/...`, Docusaurus is configured to remap that path so those IDs resolve correctly without the prefix. Pro docs use the `pro/` prefix (e.g., `'pro/react-on-rails-pro'`). Do not suggest adding an `oss/` prefix to sidebar IDs in this repo.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 2610
File: docs/pro/react-server-components/create-without-ssr.md:13-22
Timestamp: 2026-03-24T21:38:26.825Z
Learning: In `docs/pro/react-server-components/create-without-ssr.md`, JS install instructions for React on Rails Pro should only install `react-on-rails-pro` (not `react-on-rails` separately), because the Pro package already includes the base package functionality. Use `--exact` (yarn/pnpm) or `--save-exact` (npm) flags to pin to an exact version for reproducibility.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-12T23:15:11.806Z
Learning: Applies to CHANGELOG.md : Changelog format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)` (no hash before PR number)

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 18, 2026

Good triage summary. One remaining open thread to note: the ruby-api-pro.md:50 suggestion (splitting the run-on sentence about options and Pro hydration behavior into two separate statements) wasn't listed in your "Addressed" or "No action" categories — it appears unresolved. Worth a quick look before merge.

Everything else looks clean. The [!WARNING] fix, the migration timeline reword, and the configuration-deprecated.md cleanup are all confirmed addressed. LGTM pending that last item.

Addresses PR #3159 review comment on docs/oss/api-reference/ruby-api-pro.md:50.
The options signature and Pro hydration behavior were merged into one run-on
sentence; split them so the Pro-specific note stands on its own as a callout.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@justin808
Copy link
Copy Markdown
Member Author

Review comment triage (round 3)

Follow-up to round 2. I (Claude Code) cleared the two remaining unresolved inline threads from @claude[bot]:

Addressed in 55e4490:

  • docs/oss/api-reference/ruby-api-pro.md:50 — Split the run-on Options: same as react_component. React on Rails Pro hydrates... sentence into two ideas: a standalone options line and a > **Note (Pro):** callout for the early-hydration behavior. Improves scannability of the stream_react_component reference.

Resolved (no code change needed):

  • docs/pro/streaming-ssr.md:336 thread from @claude[bot] — the "Use React on Rails Pro" → Early Hydration (Pro): Pro hydrates components early for optimal Time to Interactive — no additional configuration needed rewording already landed in b32f1b5. Same intent as the suggested wording, so replied on the thread and resolved it.

All inline review threads on this PR are now resolved. PR is ready for merge review.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 18, 2026

Review: docs: remove stale immediate_hydration references (#3139)

Overall: Clean, well-scoped docs-only PR. The changes are accurate and the decision to preserve historical release-notes untouched is sound policy.

What's done well

  • Correctly removes immediate_hydration from all current/active documentation (API reference, Turbo Streams guide, streaming SSR, Pro troubleshooting).
  • The configuration-deprecated.md fix is the most impactful change: the old migration guidance told Pro users they could still use immediate_hydration: false per-component, which has been a no-op since Remove immediate_hydration feature from codebase #2834. That's now corrected.
  • Fixes a malformed GitHub callout in turbolinks.md (> [!WARNING] > **... → properly split across lines) as a nice drive-by cleanup.
  • The reframing from "Immediate Hydration" to "Early Hydration (Pro)" throughout streaming-ssr.md is clearer and matches how the feature actually behaves.

One issue to address

docs/oss/upgrading/release-notes/16.2.0.md:279 (intentionally left out of scope per PR description) contains:

Solution: Remove config.immediate_hydration from your initializer. The setting is now automatic (enabled for Pro users, disabled for non-Pro). Use component-level overrides if needed.

The last sentence actively contradicts what this PR establishes — per-component immediate_hydration: keys are no-ops since #2834, and configuration-deprecated.md (updated in this PR) now explicitly says to delete them. Unlike the rest of 16.2.0.md (historical code examples in their original context), this is live migration guidance that will send users chasing an option that no longer exists. I've left an inline comment on that line.

Verification

The PR test-plan grep passes: no live immediate_hydration references remain outside of intentionally preserved files (upgrade guides, release notes, deprecated-config doc).

The troubleshooting entry for the immediate_hydration deprecation warning
told users to "use component-level overrides if needed," but per-component
immediate_hydration: keys have been no-ops since #2834 and configuration-
deprecated.md now says to delete them.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@justin808
Copy link
Copy Markdown
Member Author

Review comment triage (round 4)

Follow-up to round 3. I (Claude Code) triaged the latest @claude[bot] review, which flagged one remaining piece of live migration guidance inside an otherwise historical release-notes file.

Addressed:

  • docs/oss/upgrading/release-notes/16.2.0.md:279 — dropped the trailing "Use component-level overrides if needed." from the Immediate Hydration Config Warning troubleshooting entry. The bot's distinction was right: per-component immediate_hydration: keys have been no-ops since Remove immediate_hydration feature from codebase #2834, and configuration-deprecated.md (updated in this PR) now instructs users to delete them, so the release-notes sentence was sending readers after a phantom option. Fixed in b9a328d. The rest of 16.2.0.md remains untouched — it's historical code in context, not active migration guidance.

No open threads. All five inline review threads from earlier rounds are still resolved. No new inline comments were posted in this review, so nothing to reply to or resolve.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 18, 2026

Code Review

Overall: This is a clean, well-scoped docs-only cleanup. The prose reframing is accurate and the stale code examples are correctly removed. A couple of issues worth addressing:

Issue 1: PR description lists configuration-deprecated.md as "intentionally left alone" — but it was modified

The description says:

Per the issue, release notes and deprecation docs still correctly reference immediate_hydration as a historical/deprecated option: … docs/oss/configuration/configuration-deprecated.md

But the diff clearly modifies that file (removes the Pro per-component disable example, rewrites the migration note). This is actually the right change — just the PR description is inaccurate about it.

Issue 2: Internal contradiction between 16.2.0.md and updated configuration-deprecated.md

docs/oss/upgrading/release-notes/16.2.0.md (intentionally left unchanged) still contains:

Component-level overrides still work:

<%= react_component("MyComponent", props, immediate_hydration: false) %>
<%= redux_store("MyStore", props: store_props, immediate_hydration: true) %>

But configuration-deprecated.md (modified by this PR) now states:

Remove any immediate_hydration: keys passed to react_component / stream_react_component — both are no-ops and can be safely deleted.

A user upgrading from v16 will read the 16.2.0 release notes first and learn that per-component overrides work, then hit the deprecated config page and find they don't. Since the option was removed in v17.0, the 16.2.0 release notes section could use a small callout:

> **Note (v17+):** Per-component `immediate_hydration` overrides were also removed in v17.0. See [Deprecated Configuration](../../configuration/configuration-deprecated.md).

This preserves the historical accuracy of the 16.2.0 notes while helping readers on an upgrade path.

Minor positives worth calling out

  • The > [!WARNING] block formatting fix (removing the stray > that preceded the bold title on the same line) is a correct markdown fix.
  • Removing the dead link to the v16.0 release notes from turbolinks.md is good hygiene.
  • The test plan grep command is a solid verification approach and its claim checks out.

Comment thread docs/oss/configuration/configuration-deprecated.md
v17.0 has not been released. immediate_hydration was removed in
v16.6.0 (released 2026-04-09 per CHANGELOG).

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
# Non-Pro users: immediate_hydration is ignored
```
**Migration:** Remove any `config.immediate_hydration` lines from your configuration and any `immediate_hydration:` keys passed to `react_component` / `stream_react_component` — both are no-ops and can be safely deleted.

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 CHANGELOG for v16.6.0 explicitly distinguishes between the two helpers:

"Passing immediate_hydration: to react_component / react_component_hash is now ignored, and passing it to stream_react_component logs a warning."

So calling these options "no-ops" is slightly imprecise — stream_react_component actively warns. Migration guidance telling users to delete the key is correct, but describing stream_react_component as a silent no-op could cause confusion when users see warnings in their logs and wonder why.

Suggested change
**Migration:** Remove any `config.immediate_hydration` lines from your configuration and any `immediate_hydration:` keys passed to `react_component` / `stream_react_component` — they are no-ops (note: `stream_react_component` logs a deprecation warning until removed).

**Cause:** The global config option is now deprecated and has no effect.

**Solution:** Remove `config.immediate_hydration` from your initializer. The setting is now automatic (enabled for Pro users, disabled for non-Pro). Use component-level overrides if needed.
**Solution:** Remove `config.immediate_hydration` from your initializer. The setting is now automatic (enabled for Pro users, disabled for non-Pro).
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.

This file is listed under "Files intentionally left alone" in the PR description, but it is in fact modified here. The change itself is correct (removing the stale "Use component-level overrides if needed" advice), but the PR description should list it under Files updated rather than Files intentionally left alone to avoid reviewer confusion.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 19, 2026

Code Review

Overall: Clean, well-scoped documentation-only PR. The immediate_hydration option was genuinely removed in v16.6.0 (confirmed in CHANGELOG), and keeping stale per-component toggle examples in live docs would mislead users. The reframing to "Early Hydration (Pro)" is accurate and reads well.

What's correct

  • Version fix in configuration-deprecated.md: changing "REMOVED in v17.0" → "REMOVED in v16.6.0" matches the CHANGELOG entry for v16.6.0 exactly.
  • Removal of the per-component immediate_hydration: false example from streaming-ssr.md — that feature is gone.
  • Removal of immediate_hydration: true from the Turbo Streams ERB example in turbolinks.md — previously the example would silently do nothing for OSS users and confusingly appear optional for Pro users.
  • Warning-box formatting fix in turbolinks.md (> [!WARNING] >> [!WARNING] on its own line) — the original was broken GitHub-flavored Markdown.
  • Preserving historical accuracy in 16.0.0.md — those release notes correctly document what was true at that version.

Issues found

  1. configuration-deprecated.md — "no-op" description is imprecise for stream_react_component (inline comment left)
    The CHANGELOG says react_component silently ignores the key but stream_react_component actively logs a deprecation warning. Calling both "no-ops" may confuse users who see warnings in their logs after following this migration guide.

  2. 16.2.0.md is listed as "intentionally left alone" but is modified (inline comment left)
    The change itself is correct (removing "Use component-level overrides if needed"), but the PR description misclassifies the file. Needs a description update only.

  3. 16.2.0.md still has a "Component-level overrides still work" code block — fine because release notes should reflect what was true at that version, but worth a reviewer sanity-check that the section won't be mistaken for current guidance.

Minor observations

  • The ruby-api-pro.md blockquote note reads well and is accurate.
  • The turbolinks prose changes are clear improvements; "early hydration is automatic for Pro users" is more actionable than the old option-name-dropping style.

No runtime behavior changes. Two small fixes needed before merge (see inline comments), both are doc-only tweaks.

@justin808
Copy link
Copy Markdown
Member Author

Review comment triage (round 5)

Follow-up to round 4. I (Claude Code) triaged the latest @claude[bot] review plus a user-flagged version bug on line 11 of docs/oss/configuration/configuration-deprecated.md.

Addressed:

  • docs/oss/configuration/configuration-deprecated.md:11 — corrected **Status:** ⚠️ REMOVED in v17.0 to v16.6.0. immediate_hydration was actually removed in v16.6.0 (released 2026-04-09 per CHANGELOG); v17.0 has not been released. Fixed in 3357db9.
  • PR description — updated to reflect what the PR actually modifies. Moved docs/oss/configuration/configuration-deprecated.md and docs/oss/upgrading/release-notes/16.2.0.md out of "Files intentionally left alone" (both were modified during earlier rounds) and expanded the turbolinks.md entry to include the [!WARNING] alert fix and the ruby-api-pro.md entry to mention the options/hydration note split. This addresses claude[bot]'s "Issue 1" in the latest review.

Declined (with reply and thread resolved):

  • Thread on configuration-deprecated.md:15 — claude[bot] suggested adding a parenthetical cross-reference about v16.2/v17.0 timeline to the migration step. Not applied: the suggestion's version number was wrong (v17.0), and the preferred approach is to keep the 16.2.0 release-notes section as accurate historical context rather than layering cross-references onto current migration guidance. Replied and resolved.

Considered and declined (no thread to resolve):

  • claude[bot]'s "Issue 2" (add a > **Note (v17+):** Per-component overrides were also removed... callout inside the 16.2.0 release notes' "Component-level overrides still work" section) — same reasoning as above: 16.2.0 release notes are preserved as a historical snapshot accurate to that release; v17 doesn't exist, and the configuration-deprecated.md page is the canonical home for current-state deprecation guidance. Readers on an upgrade path will see the deprecation entry through the sidebar and CHANGELOG.

No open threads. The last unresolved thread is now resolved.

@justin808 justin808 merged commit 0ced93f into main Apr 19, 2026
16 checks passed
@justin808 justin808 deleted the jg/3139-remove-immediate-hydration-docs branch April 19, 2026 09:27
justin808 added a commit that referenced this pull request Apr 23, 2026
…ons-docs

* origin/main:
  chore: remove redundant --rsc-pro install generator flag (#3105)
  ci: warn (don't fail) on Bencher main regression (#3168)
  test: enable RSpec --profile to surface slowest package tests (#3176)
  fix(node-renderer): expose performance in VM context when supportModules (#3158)
  docs: remove stale immediate_hydration references (#3139) (#3159)
  docs: restore absolute URL for node-renderer testing example (#3179)
  Bump Rspack dependencies to v2 (^2.0.0-0) (#3084)
  chore: remove obsolete webpack <5.106.0 pin (#3175)
  Move Node Renderer entry point to renderer/ directory (#3165)
  docs: address RSC pitfalls review follow-ups (#3155) (#3156)
  docs: remove fabricated DevConsole reference, link verified RSC tools (#2527) (#3163)

# Conflicts:
#	docs/oss/building-features/node-renderer/js-configuration.md
justin808 added a commit that referenced this pull request Apr 23, 2026
…ging' into jg/3122-rolling-deploy-adapter

* origin/jg/3122-unify-renderer-cache-staging: (39 commits)
  fix(specs): boot dummy specs without readline and drop redundant pnpm workspace (#3190)
  docs: add RSC migration success stories page (#1985) (#3162)
  Fix Bencher reporting permanently broken on pushes to main (#3148)
  docs: add example migrations guide (#3126)
  docs: remove defunct guavapass.com reference (#3199)
  chore: remove redundant --rsc-pro install generator flag (#3105)
  ci: warn (don't fail) on Bencher main regression (#3168)
  test: enable RSpec --profile to surface slowest package tests (#3176)
  fix(node-renderer): expose performance in VM context when supportModules (#3158)
  docs: remove stale immediate_hydration references (#3139) (#3159)
  docs: restore absolute URL for node-renderer testing example (#3179)
  Bump Rspack dependencies to v2 (^2.0.0-0) (#3084)
  chore: remove obsolete webpack <5.106.0 pin (#3175)
  Move Node Renderer entry point to renderer/ directory (#3165)
  docs: address RSC pitfalls review follow-ups (#3155) (#3156)
  docs: remove fabricated DevConsole reference, link verified RSC tools (#2527) (#3163)
  Scaffold CI workflow and build scripts for first-run consistency (#3097)
  Add OPTIONAL triage tier and fix recommendations to /address-review (#3161)
  chore: sync Gemfile.lock with term-ansicolor 1.11.3 (#3164)
  Simplify the docs sidebar and Pro landing pages (#3119)
  ...
justin808 added a commit that referenced this pull request Apr 23, 2026
* origin/main:
  fix(specs): boot dummy specs without readline and drop redundant pnpm workspace (#3190)
  docs: add RSC migration success stories page (#1985) (#3162)
  Fix Bencher reporting permanently broken on pushes to main (#3148)
  docs: add example migrations guide (#3126)
  docs: remove defunct guavapass.com reference (#3199)
  chore: remove redundant --rsc-pro install generator flag (#3105)
  ci: warn (don't fail) on Bencher main regression (#3168)
  test: enable RSpec --profile to surface slowest package tests (#3176)
  fix(node-renderer): expose performance in VM context when supportModules (#3158)
  docs: remove stale immediate_hydration references (#3139) (#3159)
  docs: restore absolute URL for node-renderer testing example (#3179)
  Bump Rspack dependencies to v2 (^2.0.0-0) (#3084)
  chore: remove obsolete webpack <5.106.0 pin (#3175)
  Move Node Renderer entry point to renderer/ directory (#3165)
  docs: address RSC pitfalls review follow-ups (#3155) (#3156)

# Conflicts:
#	CHANGELOG.md
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.

Remove stale immediate_hydration references from docs

1 participant