Skip to content

Conversation

@ihabadham
Copy link
Collaborator

@ihabadham ihabadham commented Dec 12, 2025

Summary

Changes by Category

1. Config Files

  • conductor.json: Updated cd spec/dummycd react_on_rails/spec/dummy
  • .stylelintrc.json: Updated ignoreFiles path for dummy app assets

2. GitHub URLs in Documentation (~35 URLs)

Updated URLs in these files to point to correct paths:

  • docs/api-reference/redux-store-api.md
  • docs/api-reference/view-helpers-api.md
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/contributor-info/generator-testing.md
  • docs/contributor-info/linters.md
  • docs/contributor-info/pull-requests.md
  • docs/contributor-info/releasing.md
  • docs/core-concepts/file-system-based-automated-bundle-generation.md
  • docs/core-concepts/how-react-on-rails-works.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • docs/introduction.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/MONOREPO_MERGER_PLAN.md

3. Root Documentation Files

  • CHANGELOG.md: Fixed GitHub URLs
  • CONTRIBUTING.md: Fixed GitHub URLs
  • NEWS.md: Fixed GitHub URL
  • README.md: Fixed GitHub URL
  • CODING_AGENTS.md: Fixed GitHub URLs
  • WARP.md: Fixed GitHub URLs

4. Command Examples

Updated cd spec/dummycd react_on_rails/spec/dummy in:

  • CLAUDE.md
  • SWITCHING_CI_CONFIGS.md
  • CODING_AGENTS.md

5. Claude Code Documentation

  • .claude/agents/pr-testing-agent.md: Fixed relative links
  • .claude/agents/pr-testing-guide.md: Fixed relative links
  • .claude/docs/analysis/*.md: Fixed various path references

6. Code Comments

  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb: Fixed path in comment (line 7)

7. Pro Documentation

  • react_on_rails_pro/CONTRIBUTING.md: Fixed paths and URLs
  • react_on_rails_pro/docs/home-pro.md: Fixed GitHub URLs

Test plan

  • Verified all updated GitHub URLs are accessible
  • Verified command examples use correct paths
  • CI passes (linting, tests)

Fixes #2215

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Updated many docs, guides, and examples so links and example paths reflect the new monorepo layout; fixed instructions, test/CI examples, and troubleshooting references.
  • Chores

    • Adjusted configuration and development scripts and run instructions to use the relocated example app paths; tidied README/CHANGELOG formatting and consistency.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 12, 2025

Walkthrough

Systematic replacement of repository references from spec/dummy to react_on_rails/spec/dummy across documentation, CI notes, config, and a few script/ignore entries; changes are primarily link/path corrections and minor formatting edits without behavioral or API changes.

Changes

Cohort / File(s) Summary
Agent docs
.claude/agents/*
Updated local docs and terminal commands to use react_on_rails/spec/dummy instead of spec/dummy.
Analysis & migration docs
.claude/docs/analysis/*, docs/*, docs/...
Replaced spec/dummy with react_on_rails/spec/dummy in CI failure notes, migration guides, checklists, and many docs under docs/ (multiple files).
Root & contributor docs
README.md, NEWS.md, CLAUDE.md, CODING_AGENTS.md, CONTRIBUTING.md, WARP.md, SWITCHING_CI_CONFIGS.md, CHANGELOG.md
Path corrections from spec/dummyreact_on_rails/spec/dummy, plus minor formatting/whitespace edits.
API & core docs
docs/api-reference/*, docs/core-concepts/*, docs/building-features/*, docs/contributor-info/*
Updated example links and references to react_on_rails/spec/dummy and react_on_rails/lib/ prefixes.
Config & tooling
.stylelintrc.json, conductor.json
Updated ignoreFiles and run script working-directory paths to react_on_rails/spec/dummy/....
Pro / changelog
react_on_rails_pro/*, CHANGELOG.md
Documentation/path updates and minor formatting in pro docs and changelog.
Source comment
react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
Comment/example path updated to react_on_rails/spec/dummy/....

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Mostly homogeneous path replacements across many markdown files.
  • Pay attention to:
    • CI/workflow scripts and conductor.json (ensure commands run in intended working directory).
    • .stylelintrc.json ignore patterns (tooling behavior).
    • Any docs with copy-pastable shell commands (verify no remaining stale paths).

Possibly related PRs

Suggested reviewers

  • justin808
  • AbanoubGhadban
  • Judahmeek

Poem

🐰 I hopped through docs both near and far,
Swapped tired paths for the new monorepo star,
From spec/dummy I leapt with cheer,
To react_on_rails — the new path's here! 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix outdated paths after monorepo restructuring' clearly and concisely summarizes the main change—updating paths across the codebase following a monorepo restructure, matching the changeset content.
Linked Issues check ✅ Passed The PR comprehensively addresses #2215 by systematically updating all occurrences of the old 'spec/dummy' path to 'react_on_rails/spec/dummy' across configuration files, documentation, command examples, and code comments.
Out of Scope Changes check ✅ Passed All changes are strictly within scope—updating paths and documentation references affected by the monorepo restructure; no unrelated code modifications or feature additions are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ihabadham/fix-paths-after-monorepo-restructure

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cc0deb3 and 0b0ca73.

📒 Files selected for processing (6)
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md (2 hunks)
  • CHANGELOG.md (1 hunks)
  • CODING_AGENTS.md (2 hunks)
  • CONTRIBUTING.md (1 hunks)
  • docs/MONOREPO_MERGER_PLAN.md (1 hunks)
  • docs/contributor-info/releasing.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
  • docs/contributor-info/releasing.md
  • CONTRIBUTING.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • CODING_AGENTS.md
  • docs/MONOREPO_MERGER_PLAN.md
  • CHANGELOG.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (11)
  • GitHub Check: dummy-app-integration-tests (3.4, 22, latest)
  • GitHub Check: dummy-app-integration-tests (3.2, 20, minimum)
  • GitHub Check: rspec-package-tests (3.2, minimum)
  • GitHub Check: rspec-package-tests (3.4, latest)
  • GitHub Check: examples (3.2, minimum)
  • GitHub Check: examples (3.4, latest)
  • GitHub Check: build
  • GitHub Check: build-dummy-app-webpack-test-bundles
  • GitHub Check: build-dummy-app-webpack-test-bundles
  • GitHub Check: pro-lint-js-and-ruby
  • GitHub Check: claude-review

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.

After PR #2114 restructured the monorepo, many path references were not
updated. This commit fixes:

- GitHub URLs pointing to old paths (spec/dummy, lib/react_on_rails, etc.)
- Command examples using `cd spec/dummy` instead of `cd react_on_rails/spec/dummy`
- Config files (conductor.json, .stylelintrc.json) with old paths
- Relative links in .claude/ documentation
- Text references in active documentation files

Fixes #2215

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@ihabadham ihabadham force-pushed the ihabadham/fix-paths-after-monorepo-restructure branch from d1bbc72 to d194284 Compare December 12, 2025 21:41
@claude
Copy link

claude bot commented Dec 12, 2025

Code Review: Fix outdated paths after monorepo restructuring

Thank you for this comprehensive cleanup! This PR addresses a significant technical debt issue from PR #2114. Overall, this is excellent work with thorough coverage of path updates across documentation, configuration, and code comments.

Strengths

  1. Comprehensive Scope: Great job covering ~35 files including documentation, config files, command examples, and code comments
  2. Well-Organized PR Description: Clear categorization of changes makes review straightforward
  3. Addresses Real Issue: Fixes Fix places where old dummy path is used #2215 with systematic path corrections
  4. Test Plan: Good verification that GitHub URLs are accessible

🐛 Issues Found

CRITICAL: Doubled Path References

Found instances where paths were incorrectly doubled to react_on_rails/react_on_rails/ instead of just react_on_rails/:

  1. WARP.md:178

    - ### Dummy App (`react_on_rails/react_on_rails/spec/dummy/`)
    + ### Dummy App (`react_on_rails/spec/dummy/`)
  2. SWITCHING_CI_CONFIGS.md:191

    - `react_on_rails/react_on_rails/spec/dummy/package.json`
    + `react_on_rails/spec/dummy/package.json`

Note: CHANGELOG.md:577 has react_on_rails/react_on_rails/ in an error message example (historical output), which is acceptable since it's showing what users might see, not a path reference.

📋 Recommendations

Before Merging:

  1. Fix the doubled paths in WARP.md and SWITCHING_CI_CONFIGS.md
  2. Run a grep search to ensure no other doubled paths were missed:
    grep -r "react_on_rails/react_on_rails" --exclude-dir=node_modules --exclude-dir=.git --exclude="CHANGELOG.md"
  3. Verify key paths exist (as per CLAUDE.md testing requirements):
    ls -la react_on_rails/spec/dummy/TESTING_LOCALLY.md
    ls -la react_on_rails/lib/react_on_rails/controller.rb
    ls -la react_on_rails/lib/react_on_rails/helper.rb
    (I already verified these exist ✅)

Quality Checks:

Per CLAUDE.md requirements:

  • Linting: Run bundle exec rubocop (MANDATORY before commit)
  • Formatting: Ensure files end with newlines
  • ⚠️ CI Monitoring: After merge, monitor CI status within 30 minutes (per master-health-monitoring.md)

🎯 Testing Suggestions

Since this PR modifies documentation and config paths, consider:

  1. Test command examples from updated docs work correctly:

    cd react_on_rails/spec/dummy
    # Verify this directory exists and commands work
  2. Verify GitHub URLs are accessible (you mentioned this is done ✅)

  3. Check relative links in .claude/ docs resolve correctly

📊 Impact Assessment

  • Risk Level: Low (documentation/config only, no code logic changes)
  • Breaking Changes: None
  • User Impact: Positive - fixes confusing/broken documentation links
  • Merge Readiness: 95% - just needs the doubled path fixes

🚀 Final Verdict

ALMOST APPROVED - This is great work! Just fix the two doubled paths in WARP.md and SWITCHING_CI_CONFIGS.md, verify with the grep command above, and this is ready to merge.

Great systematic approach to fixing technical debt! 👍

@claude
Copy link

claude bot commented Dec 12, 2025

Code Review - PR #2216: Fix outdated paths after monorepo restructuring

Summary

This PR comprehensively updates paths and URLs throughout the codebase to reflect the monorepo restructure from PR #2114. The changes are well-organized and address issue #2215.


Strengths

1. Comprehensive Coverage

  • Excellent systematic approach covering 35 files across multiple categories
  • Config files, documentation, command examples, and code comments all updated
  • Both open-source and Pro package documentation addressed
  • Good organization in the PR description by category

2. Consistency

  • All path updates follow the same pattern: spec/dummyreact_on_rails/spec/dummy
  • GitHub URLs correctly updated to include the react_on_rails/ prefix
  • Relative links in Claude Code docs properly adjusted

3. Quality Assurance

  • markdown-link-check CI passed, confirming all updated URLs are accessible
  • detect-changes workflows all passed
  • Changes align with project structure documented in CLAUDE.md

🔍 Detailed Review

Config Files (Good)

  • conductor.json: Correctly updated run command path
  • .stylelintrc.json: Fixed ignoreFiles path for dummy app assets

Documentation (Excellent)

  • ✅ All GitHub URLs use correct format with react_on_rails/ prefix
  • ✅ Command examples updated consistently
  • ✅ Changelog entries preserved correctly
  • ✅ Both CHANGELOG.md and Pro docs updated

Code Changes (Minimal & Safe)

  • ✅ Only one line of actual code comments changed (shakapacker_precompile_hook_shared.rb:7)
  • ✅ No logic changes, reducing risk of introducing bugs

Claude Code Documentation (Good)

  • ✅ Relative links in .claude/agents/ properly updated
  • ✅ Analysis documents in .claude/docs/analysis/ corrected

🎯 Recommendations

Critical (Before Merge)

None - the PR looks ready to merge.

Nice to Have (Optional)

  1. Verify a few random GitHub URLs manually - Although markdown-link-check passed, manually spot-checking 2-3 complex URLs (like those with line numbers or anchors) would provide extra confidence:

    • Example: https://github.com/shakacode/react_on_rails/tree/master/react_on_rails/spec/dummy/spec/rails_helper.rb#L36..38
  2. Consider adding a migration note - Future contributors might reference old paths. Consider adding a note to CLAUDE.md about when this restructure happened (could reference PR Restructure monorepo with two top-level product directories #2114 and Fix outdated paths after monorepo restructuring #2216).


🔒 Security & Performance

  • No security concerns: Only path and URL updates
  • No performance impact: Documentation and config changes only
  • No breaking changes: Internal paths and documentation only

🧪 Testing

What Was Tested

  • ✅ Markdown link validation
  • ✅ CI linting and detection workflows

Additional Testing Recommended

Since this is a documentation-heavy PR, consider:

  • Quick smoke test: cd react_on_rails/spec/dummy && bin/dev to verify conductor.json change works
  • Verify one of the command examples works (e.g., from CLAUDE.md)

📊 Code Quality Assessment

Aspect Rating Notes
Correctness ✅ Excellent All paths follow consistent pattern
Completeness ✅ Excellent Comprehensive coverage across repo
Testing ✅ Good CI passes, manual URL verification in progress
Documentation ✅ Excellent Changes are self-documenting
Risk Level 🟢 Low Only paths/URLs, no logic changes

🎉 Conclusion

This is a well-executed cleanup PR that addresses technical debt from the monorepo restructure. The systematic approach and comprehensive coverage are commendable.

Recommendation: APPROVE ✅

The PR is ready to merge. The changes are low-risk, well-organized, and have passed CI validation. Great work on maintaining the codebase consistency after a major restructure!


📝 Post-Merge Checklist

After merging, consider:

  • Monitor CI on master to ensure no unexpected path issues
  • Update any external documentation or wikis if they reference these paths

Review generated with assistance from Claude Code

Copy link
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: 5

Caution

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

⚠️ Outside diff range comments (1)
.stylelintrc.json (1)

39-45: Fix the stylelint ignore path: the specified file does not exist.

The file react_on_rails/spec/dummy/app/assets/stylesheets/application.css does not exist in the repository. The actual stylesheet file is react_on_rails/spec/dummy/app/assets/stylesheets/application_non_webpack.scss. Update the ignore pattern to match the actual file path.

🧹 Nitpick comments (4)
docs/building-features/rspec-configuration.md (1)

30-31: Minor: tighten wording (“inside” vs “inside of”) while updating the link.
Consider changing “from inside of the RSpec.configure block” → “from inside the RSpec.configure block” to avoid redundancy.

NEWS.md (1)

8-9: Minor: update the visible link text to match the new path.
Right now the markdown shows spec/dummy but links to react_on_rails/spec/dummy; consider updating the label for consistency.

react_on_rails_pro/CONTRIBUTING.md (2)

34-34: Minor markdown lint issue: Heading level increment.

The static analysis tool reports that heading level should only increment by one level at a time (expected h3 after h2, but found h4). This is at the "#### The seven rules..." section. Consider adjusting the heading level to maintain proper markdown structure.


48-48: Minor markdown lint: Bare URL detected.

A bare URL appears in the documentation. Consider wrapping it in markdown link syntax [text](url) to improve formatting consistency, though this is a low-priority formatting issue.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8227421 and d194284.

📒 Files selected for processing (34)
  • .claude/agents/pr-testing-agent.md (6 hunks)
  • .claude/agents/pr-testing-guide.md (6 hunks)
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md (5 hunks)
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md (1 hunks)
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md (8 hunks)
  • .claude/docs/analysis/PHASE_6_CHECKLIST.md (1 hunks)
  • .stylelintrc.json (1 hunks)
  • CHANGELOG.md (10 hunks)
  • CLAUDE.md (10 hunks)
  • CODING_AGENTS.md (3 hunks)
  • CONTRIBUTING.md (2 hunks)
  • NEWS.md (1 hunks)
  • README.md (1 hunks)
  • SWITCHING_CI_CONFIGS.md (9 hunks)
  • WARP.md (4 hunks)
  • conductor.json (1 hunks)
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md (1 hunks)
  • docs/MONOREPO_MERGER_PLAN.md (2 hunks)
  • docs/api-reference/redux-store-api.md (2 hunks)
  • docs/api-reference/view-helpers-api.md (2 hunks)
  • docs/building-features/images.md (1 hunks)
  • docs/building-features/rspec-configuration.md (1 hunks)
  • docs/contributor-info/errors-with-hooks.md (2 hunks)
  • docs/contributor-info/generator-testing.md (1 hunks)
  • docs/contributor-info/linters.md (1 hunks)
  • docs/contributor-info/pull-requests.md (1 hunks)
  • docs/contributor-info/releasing.md (5 hunks)
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md (5 hunks)
  • docs/core-concepts/how-react-on-rails-works.md (1 hunks)
  • docs/core-concepts/render-functions-and-railscontext.md (2 hunks)
  • docs/introduction.md (1 hunks)
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb (1 hunks)
  • react_on_rails_pro/CONTRIBUTING.md (12 hunks)
  • react_on_rails_pro/docs/home-pro.md (4 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{rb,js,ts,jsx,tsx,json,yml,yaml,md}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{rb,js,ts,jsx,tsx,json,yml,yaml,md}: ALWAYS run bundle exec rubocop and fix ALL violations before every commit/push
ALWAYS ensure files end with a newline character before committing

Files:

  • NEWS.md
  • README.md
  • docs/contributor-info/pull-requests.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • docs/api-reference/view-helpers-api.md
  • conductor.json
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/linters.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • docs/introduction.md
  • docs/api-reference/redux-store-api.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • react_on_rails_pro/docs/home-pro.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/contributor-info/generator-testing.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
**/*.{js,ts,jsx,tsx,json,css,scss,md}

📄 CodeRabbit inference engine (CLAUDE.md)

ALWAYS let Prettier handle ALL formatting - never manually format code

Files:

  • NEWS.md
  • README.md
  • docs/contributor-info/pull-requests.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • docs/api-reference/view-helpers-api.md
  • conductor.json
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/linters.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • docs/introduction.md
  • docs/api-reference/redux-store-api.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • react_on_rails_pro/docs/home-pro.md
  • docs/contributor-info/generator-testing.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
**/*.{json,yml,yaml}

📄 CodeRabbit inference engine (CLAUDE.md)

When resolving merge conflicts in configuration files, verify file paths are correct and test affected scripts before committing

Files:

  • conductor.json
**/*.rb

📄 CodeRabbit inference engine (CLAUDE.md)

ALWAYS let RuboCop handle ALL formatting - never manually format Ruby code

Files:

  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
🧠 Learnings (39)
📓 Common learnings
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md : Update `/CHANGELOG.md` for open-source features, bug fixes, breaking changes, deprecations, and performance improvements using format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)`
Learnt from: alexeyr-ci2
Repo: shakacode/react_on_rails PR: 1732
File: spec/dummy/client/app-react16/startup/ReduxSharedStoreApp.client.jsx:40-44
Timestamp: 2025-04-26T21:55:55.874Z
Learning: In the react_on_rails project, files under `app-react16` directories are copied/moved to corresponding `/app` directories during the conversion process (removing the `-react16` suffix), which affects their relative import paths at runtime.
Learnt from: alexeyr-ci
Repo: shakacode/react_on_rails PR: 1687
File: spec/dummy/package.json:0-0
Timestamp: 2025-01-23T18:20:45.824Z
Learning: When adding or updating dependencies in spec/dummy/package.json, maintain version consistency with other package.json files in the codebase to avoid potential version conflicts.
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to spec/dummy/**/*.{spec,test}.{js,ts} : Playwright E2E tests use `cypress-on-rails` gem for Rails integration; use helpers like `app('clean')`, `appEval()`, and `appFactories()` for test setup instead of UI automation
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/react_on_rails/**/*.rb : Create corresponding RBS signature files in `sig/react_on_rails/` for new Ruby files and add them to Steepfile for type checking
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to spec/dummy/e2e/playwright/app_commands/**/*.rb : Create custom app commands for Playwright E2E tests in this directory using the `command` syntax provided by `cypress-on-rails` gem
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to **/*.rbs : Add RBS signature files for all new Ruby files in `lib/react_on_rails/` and register them in Steepfile; validate with `bundle exec rake rbs:validate`
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to react_on_rails_pro/**/*.{js,ts,jsx,tsx,json,css,scss} : The `react_on_rails_pro/` directory has its own Prettier/ESLint configuration separate from the root; CI lints both directories separately
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Monorepo contains separate open-source and Pro packages; changes affecting both require updating both `/CHANGELOG.md` and `/CHANGELOG_PRO.md`
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md : Update `/CHANGELOG.md` for open-source features, bug fixes, breaking changes, deprecations, and performance improvements using format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)`

Applied to files:

  • NEWS.md
  • README.md
  • docs/contributor-info/pull-requests.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • docs/api-reference/view-helpers-api.md
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/linters.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • docs/api-reference/redux-store-api.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • react_on_rails_pro/docs/home-pro.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/contributor-info/generator-testing.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md,/CHANGELOG_PRO.md : Do NOT add changelog entries for: linting, formatting, refactoring, tests, or documentation-only fixes

Applied to files:

  • NEWS.md
  • README.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • CODING_AGENTS.md
  • CONTRIBUTING.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • docs/contributor-info/generator-testing.md
📚 Learning: 2025-09-16T08:01:11.146Z
Learnt from: justin808
Repo: shakacode/react_on_rails PR: 1770
File: lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.client.jsx:2-2
Timestamp: 2025-09-16T08:01:11.146Z
Learning: React on Rails uses webpack CSS Modules configuration with namedExports: true, which requires the import syntax `import * as style from './file.module.css'` rather than the default export pattern. This configuration enables better tree shaking and bundle size optimization for CSS modules.

Applied to files:

  • NEWS.md
  • README.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • docs/api-reference/view-helpers-api.md
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • react_on_rails_pro/docs/home-pro.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-04-26T21:55:55.874Z
Learnt from: alexeyr-ci2
Repo: shakacode/react_on_rails PR: 1732
File: spec/dummy/client/app-react16/startup/ReduxSharedStoreApp.client.jsx:40-44
Timestamp: 2025-04-26T21:55:55.874Z
Learning: In the react_on_rails project, files under `app-react16` directories are copied/moved to corresponding `/app` directories during the conversion process (removing the `-react16` suffix), which affects their relative import paths at runtime.

Applied to files:

  • NEWS.md
  • README.md
  • docs/contributor-info/pull-requests.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • docs/api-reference/view-helpers-api.md
  • conductor.json
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/linters.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • docs/api-reference/redux-store-api.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • react_on_rails_pro/docs/home-pro.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/contributor-info/generator-testing.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to react_on_rails_pro/**/*.{js,ts,jsx,tsx,json,css,scss} : The `react_on_rails_pro/` directory has its own Prettier/ESLint configuration separate from the root; CI lints both directories separately

Applied to files:

  • NEWS.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • docs/api-reference/view-helpers-api.md
  • conductor.json
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/linters.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • react_on_rails_pro/docs/home-pro.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-02-12T16:38:06.537Z
Learnt from: Romex91
Repo: shakacode/react_on_rails PR: 1697
File: package-scripts.yml:28-28
Timestamp: 2025-02-12T16:38:06.537Z
Learning: The file `node_package/lib/ReactOnRails.full.js` is autogenerated during the build process and should not be present in the repository.

Applied to files:

  • NEWS.md
  • README.md
  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • docs/api-reference/view-helpers-api.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/contributor-info/generator-testing.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2024-10-08T20:53:47.076Z
Learnt from: theforestvn88
Repo: shakacode/react_on_rails PR: 1620
File: spec/dummy/client/app/startup/HelloTurboStream.jsx:3-3
Timestamp: 2024-10-08T20:53:47.076Z
Learning: The `RailsContext` import in `spec/dummy/client/app/startup/HelloTurboStream.jsx` is used later in the project, as clarified by the user theforestvn88.

Applied to files:

  • NEWS.md
  • README.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • docs/api-reference/view-helpers-api.md
  • docs/building-features/images.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • docs/api-reference/redux-store-api.md
  • .claude/agents/pr-testing-guide.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/react_on_rails/**/*.rb : Engine code has limited access to host application; use `Rails.root` for host app paths and `ReactOnRails.configure` for engine configuration

Applied to files:

  • NEWS.md
  • README.md
  • docs/contributor-info/pull-requests.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • docs/api-reference/view-helpers-api.md
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • docs/api-reference/redux-store-api.md
  • SWITCHING_CI_CONFIGS.md
  • react_on_rails_pro/docs/home-pro.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/generators/react_on_rails/**/*.rb : Generators run in host app context, not engine context; do not assume host app structure (e.g., `app/javascript/` may not exist in older apps)

Applied to files:

  • NEWS.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • docs/api-reference/view-helpers-api.md
  • conductor.json
  • docs/building-features/images.md
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/linters.md
  • docs/contributor-info/errors-with-hooks.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/contributor-info/generator-testing.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-09-15T21:24:48.207Z
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.

Applied to files:

  • README.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • docs/api-reference/view-helpers-api.md
  • react_on_rails_pro/CONTRIBUTING.md
  • docs/api-reference/redux-store-api.md
  • react_on_rails_pro/docs/home-pro.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-02-13T16:50:47.848Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/clientStartup.ts:18-21
Timestamp: 2025-02-13T16:50:47.848Z
Learning: In the react_on_rails module, the `reactOnRailsPageUnloaded` function in clientStartup.ts is intentionally kept private as it's only used internally as a callback for `onPageUnloaded`.

Applied to files:

  • README.md
  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/api-reference/view-helpers-api.md
  • docs/api-reference/redux-store-api.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-07-08T05:57:29.630Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1745
File: node_package/src/RSCRequestTracker.ts:8-14
Timestamp: 2025-07-08T05:57:29.630Z
Learning: The global `generateRSCPayload` function in React on Rails Pro (RORP) is provided by the framework during rendering requests, not implemented in application code. The `declare global` statements are used to document the expected interface that RORP will inject at runtime.

Applied to files:

  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/api-reference/view-helpers-api.md
  • docs/core-concepts/how-react-on-rails-works.md
  • docs/api-reference/redux-store-api.md
  • react_on_rails_pro/docs/home-pro.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-02-18T13:08:01.477Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: lib/react_on_rails/helper.rb:190-197
Timestamp: 2025-02-18T13:08:01.477Z
Learning: RSC support validation in React on Rails Pro is handled through a chain of validations:
1. Pro version check in `run_stream_inside_fiber`
2. RSC support check during pack generation via `ReactOnRailsPro.configuration.enable_rsc_support`
3. RSC support validation during component registration
This makes additional validation in the helper methods unnecessary.

Applied to files:

  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/api-reference/view-helpers-api.md
  • docs/building-features/rspec-configuration.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • react_on_rails_pro/docs/home-pro.md
  • .claude/agents/pr-testing-guide.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-02-18T13:08:01.477Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: lib/react_on_rails/helper.rb:190-197
Timestamp: 2025-02-18T13:08:01.477Z
Learning: RSC support validation is handled in deeper level calls of the React on Rails Pro codebase, so it doesn't need to be validated again in the `rsc_payload_react_component` helper method.

Applied to files:

  • docs/core-concepts/render-functions-and-railscontext.md
  • CHANGELOG.md
  • docs/api-reference/view-helpers-api.md
  • react_on_rails_pro/docs/home-pro.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to spec/dummy/**/*.{spec,test}.{js,ts} : Playwright E2E tests use `cypress-on-rails` gem for Rails integration; use helpers like `app('clean')`, `appEval()`, and `appFactories()` for test setup instead of UI automation

Applied to files:

  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • conductor.json
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • docs/introduction.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • docs/contributor-info/generator-testing.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to spec/dummy/e2e/playwright/app_commands/**/*.rb : Create custom app commands for Playwright E2E tests in this directory using the `command` syntax provided by `cypress-on-rails` gem

Applied to files:

  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • conductor.json
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/contributor-info/generator-testing.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to spec/dummy/**/*.{js,ts} : Install Playwright browsers via `cd spec/dummy && pnpm playwright install --with-deps` before running E2E tests

Applied to files:

  • .claude/docs/analysis/PHASE_6_CHECKLIST.md
  • docs/MONOREPO_MERGER_PLAN.md
  • conductor.json
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • .claude/agents/pr-testing-agent.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
📚 Learning: 2024-12-12T13:07:09.929Z
Learnt from: alexeyr-ci
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/ReactOnRailsRSC.ts:87-87
Timestamp: 2024-12-12T13:07:09.929Z
Learning: When handling errors in 'node_package/src/ReactOnRailsRSC.ts', include the error stack in error messages in development and test environments to aid debugging.

Applied to files:

  • CHANGELOG.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/contributor-info/errors-with-hooks.md
  • .claude/agents/pr-testing-guide.md
📚 Learning: 2025-10-23T17:22:01.074Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1875
File: lib/react_on_rails/utils.rb:112-124
Timestamp: 2025-10-23T17:22:01.074Z
Learning: In React on Rails, when Pro is installed but not licensed, the intended behavior is to raise an error on boot. The `react_on_rails_pro?` method validates licenses and should raise errors early (including during path resolution in methods like `server_bundle?`) to enforce licensing requirements rather than failing later with obscure errors.

Applied to files:

  • CHANGELOG.md
  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • react_on_rails_pro/docs/home-pro.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to **/*.rbs : Add RBS signature files for all new Ruby files in `lib/react_on_rails/` and register them in Steepfile; validate with `bundle exec rake rbs:validate`

Applied to files:

  • CHANGELOG.md
  • CLAUDE.md
  • .claude/agents/pr-testing-agent.md
  • SWITCHING_CI_CONFIGS.md
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/react_on_rails/**/*.rb : Create corresponding RBS signature files in `sig/react_on_rails/` for new Ruby files and add them to Steepfile for type checking

Applied to files:

  • CHANGELOG.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/core-concepts/how-react-on-rails-works.md
  • docs/contributor-info/releasing.md
  • CODING_AGENTS.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Monorepo contains separate open-source and Pro packages; changes affecting both require updating both `/CHANGELOG.md` and `/CHANGELOG_PRO.md`

Applied to files:

  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • react_on_rails_pro/docs/home-pro.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to package.json,pnpm-lock.yaml : Test build scripts after modifying package.json or dependencies: run `pnpm run prepack` and `pnpm run yalc.publish` to verify build pipeline

Applied to files:

  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • react_on_rails_pro/CONTRIBUTING.md
  • docs/contributor-info/errors-with-hooks.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
📚 Learning: 2025-01-23T18:20:45.824Z
Learnt from: alexeyr-ci
Repo: shakacode/react_on_rails PR: 1687
File: spec/dummy/package.json:0-0
Timestamp: 2025-01-23T18:20:45.824Z
Learning: When adding or updating dependencies in spec/dummy/package.json, maintain version consistency with other package.json files in the codebase to avoid potential version conflicts.

Applied to files:

  • docs/MONOREPO_MERGER_PLAN.md
  • .stylelintrc.json
  • conductor.json
  • react_on_rails_pro/CONTRIBUTING.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • docs/contributor-info/releasing.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/agents/pr-testing-guide.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to **/*.{rb,js,ts,jsx,tsx,json,yml,yaml,md} : ALWAYS run `bundle exec rubocop` and fix ALL violations before every commit/push

Applied to files:

  • docs/MONOREPO_MERGER_PLAN.md
  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .stylelintrc.json
  • conductor.json
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • SWITCHING_CI_CONFIGS.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to spec/dummy/config/webpack/**/*.js : When debugging Webpack configuration issues, create temporary debug scripts to inspect rules and loaders; clean them up before committing

Applied to files:

  • docs/MONOREPO_MERGER_PLAN.md
  • .stylelintrc.json
  • conductor.json
  • docs/building-features/rspec-configuration.md
  • WARP.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md
  • docs/core-concepts/how-react-on-rails-works.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • CONTRIBUTING.md
  • SWITCHING_CI_CONFIGS.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
  • .claude/agents/pr-testing-guide.md
  • react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb
  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /analysis/**/*.md : Place analysis documents in `/analysis` directory using descriptive kebab-case names (e.g., `rake-task-duplicate-analysis.md`) to keep detailed analyses separate from top-level project files

Applied to files:

  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to **/.github/workflows/*.yml : Changes to CI workflows require comprehensive local testing BEFORE pushing to avoid CI failure cycles

Applied to files:

  • .claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md
  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • CODING_AGENTS.md
  • .claude/agents/pr-testing-agent.md
  • .claude/agents/pr-testing-guide.md
📚 Learning: 2025-04-09T12:56:10.756Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1696
File: node_package/src/RSCPayloadContainer.ts:0-0
Timestamp: 2025-04-09T12:56:10.756Z
Learning: In the react_on_rails codebase, RSC payloads are already stringified using `JSON.stringify()` before being processed by the `escapeScript` function, which handles escaping of special characters. The function only needs to handle specific HTML markers like comments and closing script tags.

Applied to files:

  • docs/api-reference/view-helpers-api.md
  • react_on_rails_pro/docs/home-pro.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG_PRO.md : Update `/CHANGELOG_PRO.md` for Pro-only features, bug fixes, and improvements using the same format: `[PR number](URL) by [username](URL)`

Applied to files:

  • react_on_rails_pro/CONTRIBUTING.md
  • react_on_rails_pro/docs/home-pro.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Prefer local testing over CI iteration to save time (15-minute rule: if 15 more minutes of local testing would prevent a CI failure, spend the time locally first)

Applied to files:

  • react_on_rails_pro/CONTRIBUTING.md
  • CLAUDE.md
  • .claude/agents/pr-testing-guide.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Use RBS (Ruby Signature) with Steep for static type checking; enable runtime type checking by default during test runs (can be disabled with `DISABLE_RBS_RUNTIME_CHECKING=true`)

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-02-13T16:50:26.861Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/turbolinksUtils.ts:34-36
Timestamp: 2025-02-13T16:50:26.861Z
Learning: In React on Rails, when checking for Turbolinks version 5 using `turbolinksVersion5()`, always ensure `Turbolinks` exists first by checking `turbolinksInstalled()` to prevent TypeError when accessing properties.

Applied to files:

  • .claude/docs/analysis/CI_FAILURES_2024-11-21.md
  • .claude/agents/pr-testing-guide.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: NEVER claim a test is 'fixed' without running it locally first; distinguish between confirmed fixes (✅ 'This fixes...'), proposed fixes (⚠️ 'This SHOULD fix...'), and investigations (📋 'Analysis suggests...')

Applied to files:

  • CODING_AGENTS.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/tasks/**/*.rake : Do NOT explicitly load rake tasks using `rake_tasks` block in Engine - Rails::Engine automatically loads all `.rake` files from `lib/tasks/` directory (causes duplicate execution if explicitly loaded)

Applied to files:

  • .claude/agents/pr-testing-agent.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to **/*.{rb,js,ts,jsx,tsx,json,yml,yaml,md} : ALWAYS ensure files end with a newline character before committing

Applied to files:

  • SWITCHING_CI_CONFIGS.md
📚 Learning: 2025-12-10T09:27:45.105Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to **/*.{json,yml,yaml} : When resolving merge conflicts in configuration files, verify file paths are correct and test affected scripts before committing

Applied to files:

  • .claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md
📚 Learning: 2025-02-13T19:09:15.991Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/RSCWebpackLoader.ts:0-0
Timestamp: 2025-02-13T19:09:15.991Z
Learning: In React Server Components webpack loader, using `new Function('return import("react-server-dom-webpack/node-loader")')()` is necessary as a workaround to bypass TypeScript compilation issues with direct dynamic imports.

Applied to files:

  • docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md
🪛 LanguageTool
docs/building-features/rspec-configuration.md

[style] ~30-~30: This phrase is redundant. Consider using “inside”.
Context: ..._compile_assets. Call this method from inside of the RSpec.configureblock in yoursp...

(OUTSIDE_OF)

CLAUDE.md

[uncategorized] ~255-~255: “React” is a proper noun and needs to be capitalized.
Context: ... Auto-detects directory - runs from react_on_rails/spec/dummy when needed ## RBS...

(A_GOOGLE)

react_on_rails_pro/docs/home-pro.md

[uncategorized] ~104-~104: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...Renderer" provides more efficient React Server Side Rendering on a standalone Node JS serve...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

🪛 markdownlint-cli2 (0.18.1)
react_on_rails_pro/CONTRIBUTING.md

34-34: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


48-48: Bare URL used

(MD034, no-bare-urls)

react_on_rails_pro/docs/home-pro.md

112-112: Bare URL used

(MD034, no-bare-urls)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: dummy-app-integration-tests (3.4, 22, latest)
  • GitHub Check: rspec-package-tests (3.4, latest)
  • GitHub Check: build-dummy-app-webpack-test-bundles
  • GitHub Check: examples (3.4, latest)
  • GitHub Check: build-dummy-app-webpack-test-bundles
  • GitHub Check: pro-lint-js-and-ruby
  • GitHub Check: build
🔇 Additional comments (46)
docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md (2)

448-448: Path update aligns with monorepo restructuring.

The dummy app path has been correctly updated to reflect the new monorepo structure.


1-449: Ensure file ends with a newline character.

Per coding guidelines, all markdown files must end with a newline before committing. Verify the file terminates with \n after the closing code fence on line 449.

docs/MONOREPO_MERGER_PLAN.md (2)

660-672: Make sure the list indentation renders as intended (avoid accidental nested-list formatting).

The whitespace tweaks around Lines 663 and 668 are fine, but this section’s mixed numbering + indented bullets is easy to mis-render in some markdown viewers—worth previewing in GitHub to confirm it doesn’t become an unintended nested list.


274-277: Path references are already correctly updated and consistent.

Lines 275-277 properly use the monorepo-restructured paths (react_on_rails/spec/dummy/, react_on_rails_pro/spec/dummy/, react_on_rails_pro/spec/execjs-compatible-dummy/) with no legacy bare spec/dummy references remaining in the file. The change is good as-is.

react_on_rails_pro/docs/home-pro.md (2)

10-10: Path update to monorepo structure looks good.

The link correctly references react_on_rails/spec/dummy/README.md as part of the monorepo restructuring. Internal relative path references elsewhere in the file also appear correct.


1-164: The file already ends with a newline character, so that requirement is satisfied. Prettier formatting cannot be verified in the current environment; please run npx prettier --check react_on_rails_pro/docs/home-pro.md locally to verify formatting compliance and apply any necessary changes with npx prettier --write react_on_rails_pro/docs/home-pro.md if needed.

docs/introduction.md (1)

69-70: Doc link update looks correct and consistent with the monorepo layout.
The Spec/Dummy App URL now points at react_on_rails/spec/dummy, matching the post-restructure location.

.claude/docs/analysis/PHASE_6_CHECKLIST.md (1)

626-631: Command path fix is consistent with the new dummy app location.

docs/core-concepts/how-react-on-rails-works.md (1)

33-34: Procfile.dev link update aligns with the new dummy app path.

CHANGELOG.md (1)

48-55: Changelog keeps semantics intact (spacing-only), and no doc-only entry was added.

Also applies to: 71-77, 105-112, 159-163, 185-189, 224-236, 341-345, 750-753, 1469-1476

docs/contributor-info/linters.md (1)

73-74: ESLint config link update matches the new monorepo layout.

react_on_rails/spec/support/shakapacker_precompile_hook_shared.rb (1)

7-7: Comment path correctly updated to reflect monorepo structure.

The path reference in the documentation comment now accurately reflects the new location of the precompile hook in the monorepo.

docs/contributor-info/pull-requests.md (1)

41-41: Example GitHub URL correctly updated for new monorepo structure.

The documentation link example now reflects the correct path structure after the monorepo restructure, providing accurate guidance for future contributors.

README.md (1)

162-162: README demo section path updated to reflect monorepo layout.

The reference to the dummy app now correctly shows its location in the monorepo structure.

conductor.json (1)

4-4: Configuration path updated to reflect monorepo dummy app location.

The conductor setup script now correctly navigates to the dummy app in its new location within the monorepo.

Ensure the conductor workflow has been tested with this path change to confirm it correctly navigates and starts the development server.

.claude/agents/pr-testing-agent.md (1)

14-14: Multiple path references consistently updated to reflect monorepo structure.

All command examples and documentation links in this testing guide have been updated to use the new react_on_rails/spec/dummy path. The updates are consistent throughout the file and provide accurate guidance for developers and testing agents.

Verify that react_on_rails/spec/dummy/TESTING_LOCALLY.md exists at the path referenced in lines 14 and 384 to ensure the cross-reference links are valid.

Also applies to: 100-100, 169-169, 277-277, 314-314, 344-344, 380-380, 384-384

WARP.md (1)

75-75: Development guide paths updated to reflect monorepo structure.

The development commands, dummy app description, and IDE exclusion patterns in WARP.md now correctly reference the dummy app's location in the monorepo structure.

Also applies to: 178-178, 300-301

docs/contributor-info/errors-with-hooks.md (1)

17-17: Troubleshooting guide commands updated with correct dummy app path.

Both command examples in this troubleshooting guide now correctly navigate to the dummy app in its new monorepo location, enabling developers to follow the steps accurately.

Also applies to: 43-43

CODING_AGENTS.md (1)

15-15: AI contributor guide updated with correct monorepo paths.

Command examples and IDE configuration paths in this guide for AI coding agents have been updated to reflect the new dummy app location in the monorepo, ensuring accurate instructions for contributing code.

Also applies to: 23-23, 291-292

.claude/agents/pr-testing-guide.md (1)

404-404: Verify updated paths reference valid locations in the monorepo.

Path updates from spec/dummy to react_on_rails/spec/dummy are consistent across all command examples and documentation links in this file. However, you should verify that the target directories and files exist after the monorepo restructuring (e.g., confirm react_on_rails/spec/dummy/TESTING_LOCALLY.md is present).

Also applies to: 449-449, 482-482, 535-535, 620-620, 692-692

CONTRIBUTING.md (1)

278-285: Approve path updates in documentation text.

The prose clarifications at lines 278-285 correctly reflect the monorepo path structure. The changes improve clarity by explicitly stating react_on_rails/spec/dummy as the working directory context.

.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md (1)

35-35: Approve yalc workflow path updates.

Both instances correctly update the working directory path to react_on_rails/spec/dummy for the yalc publishing workflow. The consistency between Master and Target sections is good.

Also applies to: 43-43

docs/contributor-info/generator-testing.md (1)

3-3: Verify GitHub documentation links resolve correctly.

The updated links at lines 3, 5, and 9 reflect the new monorepo structure with react_on_rails/ subdirectory paths. Verify these GitHub URLs are accessible and point to the correct files after the monorepo restructuring.

Also applies to: 5-5, 9-9

docs/core-concepts/auto-bundling-file-system-based-automated-bundle-generation.md (1)

21-21: Verify GitHub documentation links for dummy app examples.

Multiple GitHub links throughout this file have been updated to reflect the new react_on_rails/spec/dummy/ path structure. Verify all five updated links (lines 21, 35, 48, 78, 497) are accessible and resolve to the correct files in the monorepo.

Also applies to: 35-35, 48-48, 78-78, 497-497

docs/api-reference/view-helpers-api.md (1)

106-106: Verify GitHub documentation links for view helper examples and source.

The updated links at lines 106 and 165 reflect the monorepo path structure. Verify these GitHub URLs are accessible and point to the correct locations.

Also applies to: 165-165

.claude/docs/analysis/CI_FAILURES_2024-11-21.md (1)

279-279: Approve command examples and path references in CI analysis documentation.

All command examples and path references in this CI failure analysis file have been consistently updated to use react_on_rails/spec/dummy. The updates support local reproduction steps and maintain internal consistency.

Also applies to: 306-306, 310-310, 325-325, 326-326, 345-345, 346-346, 391-392

docs/core-concepts/render-functions-and-railscontext.md (1)

83-83: Verify GitHub documentation links reference correct monorepo paths.

Links at lines 83 and 191 have been updated with the react_on_rails/ path prefix to reflect the monorepo structure. Verify these GitHub URLs are accessible and resolve to the correct files.

Also applies to: 191-191

CLAUDE.md (5)

255-255: Minor: Capitalize "React" in comment.

The static analysis tool flagged that "React" should be capitalized as a proper noun. The comment reads: "Auto-detects directory - runs from react_on_rails/spec/dummy when needed" but should capitalize the "React" reference when it appears.


211-211: LGTM: Path correctly updated for local testing documentation.

The reference to the local testing guide has been properly updated to react_on_rails/spec/dummy/TESTING_LOCALLY.md, aligning with the monorepo restructure.


536-536: LGTM: Webpack debugging path correctly updated.

The command now correctly references cd react_on_rails/spec/dummy for running webpack debugging scripts, consistent with the monorepo restructure.


588-588: LGTM: Playwright testing paths consistently updated.

All three instances of Playwright setup and test commands now correctly reference cd react_on_rails/spec/dummy, maintaining consistency across the testing guidance section.

Also applies to: 597-597, 620-620


678-678: LGTM: Test organization and IDE exclusion paths updated correctly.

Test directory structure paths and IDE directory exclusions have been properly updated to reflect the new react_on_rails/spec/dummy location, ensuring developer IDEs and test runners can find assets without slowdowns.

Also applies to: 787-804

.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md (2)

151-151: LGTM: CI integration path correctly updated.

The GitHub Actions workflow example now correctly shows cd react_on_rails/spec/dummy for the yalc add command, properly documenting the new monorepo structure.


269-270: LGTM: All build and CI documentation paths updated consistently.

Path references in the build scripts validation, workspace integration tasks, and GitHub Actions workflow documentation have been properly updated to reflect the new react_on_rails/spec/dummy structure.

Also applies to: 274-275, 285-289, 340-341

react_on_rails_pro/CONTRIBUTING.md (2)

9-9: LGTM: All Pro package setup and testing paths correctly updated.

The contribution guide now properly references react_on_rails/spec/dummy for setup, testing, and development commands, maintaining consistency with the monorepo restructure.

Also applies to: 12-12, 226-226, 317-317


391-391: LGTM: Release documentation link correctly references root docs.

The link to ../docs/contributor-info/releasing.md properly points to the root-level release documentation, maintaining correct reference structure.

SWITCHING_CI_CONFIGS.md (4)

132-132: LGTM: Config switching build commands correctly updated.

Both minimum and latest configuration sections properly show cd react_on_rails/spec/dummy for dependency management and building, ensuring developers can replicate CI configurations locally.

Also applies to: 145-146, 164-164, 177-178


191-191: LGTM: Modified files list correctly references new dummy app path.

The section documenting which files are modified when switching configurations now correctly lists react_on_rails/spec/dummy/package.json and related paths, maintaining accuracy about what changes during the switch.

Also applies to: 194-194


218-218: LGTM: Debugging workflow commands properly updated.

All debugging workflow examples now correctly reference cd react_on_rails/spec/dummy before running commands, enabling developers to replicate and debug CI issues locally.

Also applies to: 242-242, 303-303


319-319: LGTM: Git restore command includes all necessary file paths.

The git restore command for reverting changes when switching back to latest now includes the complete path react_on_rails/spec/dummy/package.json along with other configuration files, ensuring full restoration.

docs/api-reference/redux-store-api.md (2)

93-93: LGTM: Controller example link correctly updated.

The GitHub link to pages_controller.rb now properly includes the react_on_rails/spec/dummy/ path prefix, ensuring the example link works correctly with the new monorepo structure.


102-103: LGTM: View helper and source code links correctly updated.

Both the layout template link and the "More Details" source code links now correctly reference react_on_rails/ paths, maintaining proper navigation to the relocated files in the monorepo.

Also applies to: 107-108

docs/contributor-info/releasing.md (4)

22-25: LGTM: Release command documentation clearly specifies arguments.

The documentation now clearly explains the four release command arguments with version format options (patch, minor, major, explicit versions, pre-release formats), default values, and registry options, making the release process more transparent to contributors.

Also applies to: 29-29, 32-34


103-103: LGTM: NPM authentication handling clearly documented.

The pre-release checklist now notes that NPM authentication will be automatically handled with npm login if needed, reducing friction in the release process.


149-149: LGTM: Post-release path correctly updated.

The post-release step to update the dummy app's Gemfile.lock now correctly shows cd react_on_rails/spec/dummy, aligning with the monorepo restructure.


228-230: LGTM: Comprehensive troubleshooting guidance for release failures.

The expanded troubleshooting section now covers Verdaccio testing workflow, verification of published packages, and recovery steps if the release partially fails, providing clear guidance for handling edge cases.

Also applies to: 268-269, 273-275


See the README.md in those sample apps for more details.

## Features
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove duplicate "Features" heading.

The "## Features" heading appears twice in the file (lines 21 and 65). This creates redundant structure and should be consolidated. Clarify the intended organization if these sections cover different topics.

Also applies to: 65-65

🤖 Prompt for AI Agents
In react_on_rails_pro/docs/home-pro.md around lines 21 and 65, there are
duplicate "## Features" headings; remove the redundant heading so there is a
single "## Features" section (or merge distinct content under one heading if the
two blocks cover different subtopics), update surrounding content ordering if
necessary, and ensure any references or anchor links still point to the
consolidated section.

Comment on lines 104 to 105
The "React on Rails Pro Node React Renderer" provides more efficient React Server Side Rendering on a standalone Node JS server.
Copy link
Contributor

@coderabbitai coderabbitai bot Dec 12, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Use hyphen in compound adjective "Server-Side Rendering".

The phrase "React Server Side Rendering" should be "React Server-Side Rendering" per standard English grammar for compound adjectives modifying a noun.

-The "React on Rails Pro Node React Renderer" provides more efficient React Server Side Rendering on a standalone Node JS server.
+The "React on Rails Pro Node React Renderer" provides more efficient React Server-Side Rendering on a standalone Node JS server.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~104-~104: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...Renderer" provides more efficient React Server Side Rendering on a standalone Node JS serve...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

🤖 Prompt for AI Agents
In react_on_rails_pro/docs/home-pro.md around lines 104 to 105, the phrase
"React Server Side Rendering" should use a hyphenated compound adjective; change
it to "React Server-Side Rendering" so the compound adjective correctly modifies
"Rendering".

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

this is unrelated to the PR objective

Copy link
Contributor

Choose a reason for hiding this comment

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

@ihabadham You're absolutely right! This grammar suggestion is outside the scope of this PR, which is focused on fixing paths after the monorepo restructure. I'll skip this comment. 👍


🧠 Learnings used
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: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1875
File: lib/react_on_rails/utils.rb:112-124
Timestamp: 2025-10-23T17:22:01.074Z
Learning: In React on Rails, when Pro is installed but not licensed, the intended behavior is to raise an error on boot. The `react_on_rails_pro?` method validates licenses and should raise errors early (including during path resolution in methods like `server_bundle?`) to enforce licensing requirements rather than failing later with obscure errors.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to react_on_rails_pro/**/*.{js,ts,jsx,tsx,json,css,scss} : The `react_on_rails_pro/` directory has its own Prettier/ESLint configuration separate from the root; CI lints both directories separately

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: lib/react_on_rails/helper.rb:190-197
Timestamp: 2025-02-18T13:08:01.477Z
Learning: RSC support validation in React on Rails Pro is handled through a chain of validations:
1. Pro version check in `run_stream_inside_fiber`
2. RSC support check during pack generation via `ReactOnRailsPro.configuration.enable_rsc_support`
3. RSC support validation during component registration
This makes additional validation in the helper methods unnecessary.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 1770
File: lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.client.jsx:2-2
Timestamp: 2025-09-16T08:01:11.146Z
Learning: React on Rails uses webpack CSS Modules configuration with namedExports: true, which requires the import syntax `import * as style from './file.module.css'` rather than the default export pattern. This configuration enables better tree shaking and bundle size optimization for CSS modules.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1745
File: node_package/src/RSCRequestTracker.ts:8-14
Timestamp: 2025-07-08T05:57:29.630Z
Learning: The global `generateRSCPayload` function in React on Rails Pro (RORP) is provided by the framework during rendering requests, not implemented in application code. The `declare global` statements are used to document the expected interface that RORP will inject at runtime.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/react_on_rails/**/*.rb : Engine code has limited access to host application; use `Rails.root` for host app paths and `ReactOnRails.configure` for engine configuration

Learnt from: Romex91
Repo: shakacode/react_on_rails PR: 1697
File: package-scripts.yml:28-28
Timestamp: 2025-02-12T16:38:06.537Z
Learning: The file `node_package/lib/ReactOnRails.full.js` is autogenerated during the build process and should not be present in the repository.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/clientStartup.ts:18-21
Timestamp: 2025-02-13T16:50:47.848Z
Learning: In the react_on_rails module, the `reactOnRailsPageUnloaded` function in clientStartup.ts is intentionally kept private as it's only used internally as a callback for `onPageUnloaded`.

Learnt from: alexeyr-ci2
Repo: shakacode/react_on_rails PR: 1732
File: spec/dummy/client/app-react16/startup/ReduxSharedStoreApp.client.jsx:40-44
Timestamp: 2025-04-26T21:55:55.874Z
Learning: In the react_on_rails project, files under `app-react16` directories are copied/moved to corresponding `/app` directories during the conversion process (removing the `-react16` suffix), which affects their relative import paths at runtime.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md : Update `/CHANGELOG.md` for open-source features, bug fixes, breaking changes, deprecations, and performance improvements using format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)`

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG_PRO.md : Update `/CHANGELOG_PRO.md` for Pro-only features, bug fixes, and improvements using the same format: `[PR number](URL) by [username](URL)`

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md,/CHANGELOG_PRO.md : Do NOT add changelog entries for: linting, formatting, refactoring, tests, or documentation-only fixes

### Proper Node Tooling
A disadvantage of Ruby embedded JavaScript (ExecJS) is that it precludes the use of standard Node tooling for doing things like profiling and tracking down memory leaks. With the renderer on a separate Node.js server, we were able to use node-memwatch (https://github.com/marcominetti/node-memwatch) to find few memory leaks in the Egghead React code.
Copy link
Contributor

@coderabbitai coderabbitai bot Dec 12, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Wrap bare URL in markdown link.

Line 112 contains a bare URL that should be wrapped in markdown link syntax.

-A disadvantage of Ruby embedded JavaScript (ExecJS) is that it precludes the use of standard Node tooling for doing things like profiling and tracking down memory leaks. With the renderer on a separate Node.js server, we were able to use node-memwatch (https://github.com/marcominetti/node-memwatch) to find few memory leaks in the Egghead React code.
+A disadvantage of Ruby embedded JavaScript (ExecJS) is that it precludes the use of standard Node tooling for doing things like profiling and tracking down memory leaks. With the renderer on a separate Node.js server, we were able to use node-memwatch ([https://github.com/marcominetti/node-memwatch](https://github.com/marcominetti/node-memwatch)) to find few memory leaks in the Egghead React code.
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

112-112: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In react_on_rails_pro/docs/home-pro.md around line 112, the comment points out a
bare URL (https://github.com/marcominetti/node-memwatch) that should be wrapped
in Markdown link syntax; update the sentence to replace the raw URL with a
Markdown link (e.g.
[node-memwatch](https://github.com/marcominetti/node-memwatch)) so the link text
is descriptive and the URL is no longer bare.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

unrelated to PR

Copy link
Contributor

Choose a reason for hiding this comment

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

@ihabadham You're correct—this is a pre-existing issue in the file and not related to your path fix changes. Feel free to skip this suggestion, as it's outside the scope of this PR. 👍


🧠 Learnings used
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1875
File: lib/react_on_rails/utils.rb:112-124
Timestamp: 2025-10-23T17:22:01.074Z
Learning: In React on Rails, when Pro is installed but not licensed, the intended behavior is to raise an error on boot. The `react_on_rails_pro?` method validates licenses and should raise errors early (including during path resolution in methods like `server_bundle?`) to enforce licensing requirements rather than failing later with obscure errors.

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: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to react_on_rails_pro/**/*.{js,ts,jsx,tsx,json,css,scss} : The `react_on_rails_pro/` directory has its own Prettier/ESLint configuration separate from the root; CI lints both directories separately

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 1770
File: lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.client.jsx:2-2
Timestamp: 2025-09-16T08:01:11.146Z
Learning: React on Rails uses webpack CSS Modules configuration with namedExports: true, which requires the import syntax `import * as style from './file.module.css'` rather than the default export pattern. This configuration enables better tree shaking and bundle size optimization for CSS modules.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/react_on_rails/**/*.rb : Engine code has limited access to host application; use `Rails.root` for host app paths and `ReactOnRails.configure` for engine configuration

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: lib/react_on_rails/helper.rb:190-197
Timestamp: 2025-02-18T13:08:01.477Z
Learning: RSC support validation in React on Rails Pro is handled through a chain of validations:
1. Pro version check in `run_stream_inside_fiber`
2. RSC support check during pack generation via `ReactOnRailsPro.configuration.enable_rsc_support`
3. RSC support validation during component registration
This makes additional validation in the helper methods unnecessary.

Learnt from: Romex91
Repo: shakacode/react_on_rails PR: 1697
File: package-scripts.yml:28-28
Timestamp: 2025-02-12T16:38:06.537Z
Learning: The file `node_package/lib/ReactOnRails.full.js` is autogenerated during the build process and should not be present in the repository.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1745
File: node_package/src/RSCRequestTracker.ts:8-14
Timestamp: 2025-07-08T05:57:29.630Z
Learning: The global `generateRSCPayload` function in React on Rails Pro (RORP) is provided by the framework during rendering requests, not implemented in application code. The `declare global` statements are used to document the expected interface that RORP will inject at runtime.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/generators/react_on_rails/**/*.rb : Generators run in host app context, not engine context; do not assume host app structure (e.g., `app/javascript/` may not exist in older apps)

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1696
File: node_package/src/RSCPayloadContainer.ts:0-0
Timestamp: 2025-04-09T12:56:10.756Z
Learning: In the react_on_rails codebase, RSC payloads are already stringified using `JSON.stringify()` before being processed by the `escapeScript` function, which handles escaping of special characters. The function only needs to handle specific HTML markers like comments and closing script tags.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md : Update `/CHANGELOG.md` for open-source features, bug fixes, breaking changes, deprecations, and performance improvements using format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)`

Learnt from: alexeyr-ci2
Repo: shakacode/react_on_rails PR: 1732
File: spec/dummy/client/app-react16/startup/ReduxSharedStoreApp.client.jsx:40-44
Timestamp: 2025-04-26T21:55:55.874Z
Learning: In the react_on_rails project, files under `app-react16` directories are copied/moved to corresponding `/app` directories during the conversion process (removing the `-react16` suffix), which affects their relative import paths at runtime.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG_PRO.md : Update `/CHANGELOG_PRO.md` for Pro-only features, bug fixes, and improvements using the same format: `[PR number](URL) by [username](URL)`

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md,/CHANGELOG_PRO.md : Do NOT add changelog entries for: linting, formatting, refactoring, tests, or documentation-only fixes

Caching is extremely useful to any server rendering you're doing, with or without ExecJS.
Caching is extremely useful to any server rendering you're doing, with or without ExecJS.
React on Rails pro support caching at 2 levels:
Copy link
Contributor

@coderabbitai coderabbitai bot Dec 12, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Capitalize "Pro" in "React on Rails Pro".

Line 143 uses lowercase "pro" but the product name is "React on Rails Pro" with capital P.

-React on Rails pro support caching at 2 levels:
+React on Rails Pro support caching at 2 levels:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
React on Rails pro support caching at 2 levels:
React on Rails Pro support caching at 2 levels:
🤖 Prompt for AI Agents
In react_on_rails_pro/docs/home-pro.md around line 143, the product name is
written as "React on Rails pro"; change it to "React on Rails Pro" by
capitalizing the "P" in "Pro" so the product name uses proper title case
throughout the document.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

unrelated

Copy link
Contributor

Choose a reason for hiding this comment

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

@ihabadham, understood! Since this PR is focused on fixing outdated paths after the monorepo restructure, the capitalization change can be addressed separately if needed.


🧠 Learnings used
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: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1875
File: lib/react_on_rails/utils.rb:112-124
Timestamp: 2025-10-23T17:22:01.074Z
Learning: In React on Rails, when Pro is installed but not licensed, the intended behavior is to raise an error on boot. The `react_on_rails_pro?` method validates licenses and should raise errors early (including during path resolution in methods like `server_bundle?`) to enforce licensing requirements rather than failing later with obscure errors.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: lib/react_on_rails/helper.rb:190-197
Timestamp: 2025-02-18T13:08:01.477Z
Learning: RSC support validation in React on Rails Pro is handled through a chain of validations:
1. Pro version check in `run_stream_inside_fiber`
2. RSC support check during pack generation via `ReactOnRailsPro.configuration.enable_rsc_support`
3. RSC support validation during component registration
This makes additional validation in the helper methods unnecessary.

Learnt from: justin808
Repo: shakacode/react_on_rails PR: 1770
File: lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.client.jsx:2-2
Timestamp: 2025-09-16T08:01:11.146Z
Learning: React on Rails uses webpack CSS Modules configuration with namedExports: true, which requires the import syntax `import * as style from './file.module.css'` rather than the default export pattern. This configuration enables better tree shaking and bundle size optimization for CSS modules.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to react_on_rails_pro/**/*.{js,ts,jsx,tsx,json,css,scss} : The `react_on_rails_pro/` directory has its own Prettier/ESLint configuration separate from the root; CI lints both directories separately

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to lib/react_on_rails/**/*.rb : Engine code has limited access to host application; use `Rails.root` for host app paths and `ReactOnRails.configure` for engine configuration

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1696
File: node_package/src/RSCPayloadContainer.ts:0-0
Timestamp: 2025-04-09T12:56:10.756Z
Learning: In the react_on_rails codebase, RSC payloads are already stringified using `JSON.stringify()` before being processed by the `escapeScript` function, which handles escaping of special characters. The function only needs to handle specific HTML markers like comments and closing script tags.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: lib/react_on_rails/helper.rb:190-197
Timestamp: 2025-02-18T13:08:01.477Z
Learning: RSC support validation is handled in deeper level calls of the React on Rails Pro codebase, so it doesn't need to be validated again in the `rsc_payload_react_component` helper method.

Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1745
File: node_package/src/RSCRequestTracker.ts:8-14
Timestamp: 2025-07-08T05:57:29.630Z
Learning: The global `generateRSCPayload` function in React on Rails Pro (RORP) is provided by the framework during rendering requests, not implemented in application code. The `declare global` statements are used to document the expected interface that RORP will inject at runtime.

Learnt from: Romex91
Repo: shakacode/react_on_rails PR: 1697
File: package-scripts.yml:28-28
Timestamp: 2025-02-12T16:38:06.537Z
Learning: The file `node_package/lib/ReactOnRails.full.js` is autogenerated during the build process and should not be present in the repository.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG_PRO.md : Update `/CHANGELOG_PRO.md` for Pro-only features, bug fixes, and improvements using the same format: `[PR number](URL) by [username](URL)`

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md : Update `/CHANGELOG.md` for open-source features, bug fixes, breaking changes, deprecations, and performance improvements using format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)`

Learnt from: alexeyr-ci2
Repo: shakacode/react_on_rails PR: 1732
File: spec/dummy/client/app-react16/startup/ReduxSharedStoreApp.client.jsx:40-44
Timestamp: 2025-04-26T21:55:55.874Z
Learning: In the react_on_rails project, files under `app-react16` directories are copied/moved to corresponding `/app` directories during the conversion process (removing the `-react16` suffix), which affects their relative import paths at runtime.

Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T09:27:45.105Z
Learning: Applies to /CHANGELOG.md,/CHANGELOG_PRO.md : Do NOT add changelog entries for: linting, formatting, refactoring, tests, or documentation-only fixes

- WARP.md:178 - Remove doubled react_on_rails/ prefix
- SWITCHING_CI_CONFIGS.md:191 - Remove doubled react_on_rails/ prefix
- docs/building-features/images.md:34 - Update link text to match URL

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@coderabbitai coderabbitai bot added the bug label Dec 12, 2025
@claude
Copy link

claude bot commented Dec 12, 2025

Code Review Summary

✅ Overall Assessment: LGTM with Minor Recommendations

This PR successfully addresses issue #2215 by updating outdated paths after the monorepo restructuring (PR #2114). The changes are comprehensive, well-organized, and follow the project's guidelines.


🎯 What Was Reviewed

Scope: 34 files changed (213 additions, 136 deletions)

  • Configuration files (conductor.json, .stylelintrc.json)
  • Documentation files (~35 GitHub URLs updated)
  • Command examples throughout docs
  • Root documentation (CHANGELOG, CONTRIBUTING, README, etc.)
  • Claude Code documentation (.claude/ directory)
  • Pro documentation

✅ Strengths

1. Comprehensive Coverage

  • All major path categories covered:
    • spec/dummyreact_on_rails/spec/dummy
    • lib/react_on_railsreact_on_rails/lib/react_on_rails
    • GitHub URLs updated from old structure to new monorepo structure
  • Verified no remaining old-style paths in markdown files

2. Correct Path Updates

  • Verified actual directory structure matches updated paths:
    • react_on_rails/spec/dummy/ exists
    • react_on_rails/lib/react_on_rails/ exists
  • GitHub URLs follow correct format: .../tree/master/react_on_rails/...

3. Well-Organized PR Description

4. Follows Project Guidelines

  • CHANGELOG.md changes are formatting-only (blank lines) - acceptable per CLAUDE.md
  • No unnecessary changelog entry for documentation fixes
  • Attribution comment included in commit message

💡 Minor Recommendations

1. Verification Checklist

Before merging, confirm you've completed these checks from CLAUDE.md:

# Run linting (MANDATORY before merge)
bundle exec rubocop
pnpm run lint

# Verify formatting
pnpm run format.listDifferent

# Ensure trailing newlines
# (Pre-commit hooks should handle this, but verify)

2. Link Verification (Nice to Have)

While I couldn't directly test the GitHub URLs due to environment restrictions, consider spot-checking a few URLs manually to confirm they resolve correctly on GitHub's website:

3. CI Monitoring

Per CLAUDE.md guidelines:

  • ✅ Monitor CI after merging
  • ✅ Check status within 30 minutes of merge
  • ✅ Take immediate action if failures occur

🔍 Code Quality Assessment

Security: ✅ No Issues

  • Documentation-only changes
  • No code execution paths modified

Performance: ✅ N/A

  • No runtime code changes

Test Coverage: ✅ Appropriate

  • Changes don't require new tests (documentation only)
  • Existing tests will validate path references work correctly

Best Practices: ✅ Excellent


📋 Specific File Reviews

Configuration Files ✅

  • conductor.json: Correctly updated run script path
  • .stylelintrc.json: Properly updated ignoreFiles path

Documentation ✅

  • GitHub URLs: Consistently updated across all files
  • Command examples: All cd spec/dummycd react_on_rails/spec/dummy
  • Relative links: .claude/ directory links correctly updated

Code Comments ✅

  • shakapacker_precompile_hook_shared.rb: Path reference in comment updated

🚀 Ready to Merge

This PR is ready to merge once:

  1. ✅ CI passes (linting, tests)
  2. ✅ Final verification of trailing newlines
  3. ✅ Spot-check a few GitHub URLs (optional but recommended)

Great work on the thorough cleanup! This will prevent confusion for contributors navigating the new monorepo structure.


Review Conducted By: Claude Sonnet 4.5 via Claude Code
Review Guidelines: Based on CLAUDE.md project instructions

Local environment had outdated Prettier 3.5.3 vs lockfile 3.6.2

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@claude
Copy link

claude bot commented Dec 12, 2025

Code Review - PR #2216: Fix outdated paths after monorepo restructuring

Summary

This PR systematically updates outdated file paths throughout the codebase following the monorepo restructuring in PR #2114. The changes are well-organized and comprehensive.


✅ Strengths

  1. Comprehensive Coverage: The PR updates paths across multiple categories:

    • Documentation files (35+ GitHub URLs)
    • Configuration files (conductor.json, .stylelintrc.json)
    • Command examples in guides
    • Claude Code agent documentation
    • Pro package documentation
  2. Correct Path Updates: All updated paths are accurate:

    • spec/dummyreact_on_rails/spec/dummy (for root-level references)
    • lib/react_on_railsreact_on_rails/lib/react_on_rails (for GitHub URLs)
    • Files verified to exist at new locations
  3. Well-Organized PR Description: Clear categorization of changes makes review straightforward

  4. Contextual Awareness: The PR correctly:

    • Leaves Pro workflow paths unchanged (they use working-directory: react_on_rails_pro)
    • Preserves relative paths in Ruby specs (e.g., ../../dummy/bin/dev)
    • Doesn't change mock/stub values in tests

📋 Observations

  1. GitHub URL Format: All URLs follow the correct pattern:

    https://github.com/shakacode/react_on_rails/tree/master/react_on_rails/spec/dummy/...
    
  2. Command Examples: Consistently updated across:

    • CLAUDE.md
    • SWITCHING_CI_CONFIGS.md
    • CODING_AGENTS.md
    • .claude/agents/*.md files
  3. Test Files: Appropriately left unchanged when:

    • Using relative paths (e.g., File.expand_path("../../dummy/bin/dev", __dir__))
    • Mocking values in specs (e.g., .and_return("spec/dummy"))

🧪 Testing Recommendations

Before merging, verify:

  1. Documentation Links: Sample-check a few GitHub URLs to ensure they're accessible (the test plan indicates this was done ✅)

  2. Command Examples: Test a few commands to ensure they work:

    cd react_on_rails/spec/dummy
    ls -la  # Should show dummy app contents
  3. CI Passing: Ensure linting and tests pass


🎯 Code Quality Assessment

  • Best Practices: ✅ Follows project conventions
  • Consistency: ✅ Changes are uniform across all files
  • Completeness: ✅ Comprehensive coverage of affected files
  • Breaking Changes: ✅ None - purely documentation/path updates
  • Security: ✅ No security implications

💡 Minor Suggestions

None - this PR is well-executed. The systematic approach to updating paths is exemplary.


Final Verdict

✅ LGTM - Approved

This is a clean, well-organized PR that fixes an important documentation debt. The changes are low-risk (documentation/config only) and comprehensive. Once CI passes, this is ready to merge.

Great work on the systematic approach and clear documentation of the changes! 🎉


Note: This review was conducted by Claude Code following the guidelines in CLAUDE.md.

@claude
Copy link

claude bot commented Dec 12, 2025

Code Review - PR #2216: Fix outdated paths after monorepo restructuring

✅ Overall Assessment

This PR successfully addresses issue #2215 by updating outdated paths throughout the codebase following the monorepo restructuring in PR #2114. The changes are well-organized, comprehensive, and CI is passing.


🎯 Strengths

  1. Thorough Coverage: The PR systematically updates paths across multiple categories:

    • Configuration files (conductor.json, .stylelintrc.json)
    • Documentation (~35 GitHub URLs)
    • Command examples throughout guides
    • Internal documentation and analysis files
    • Pro package documentation
  2. Verification Completed:

    • ✅ All CI checks passing
    • ✅ Path structure verified (react_on_rails/spec/dummy/ exists)
    • ✅ No remaining instances of old paths found in markdown files
    • ✅ Changes are consistent across all files
  3. Well-Documented PR: The description clearly categorizes changes and provides context linking to the original restructuring PR and issue.

  4. Proper Testing Checklist: The PR includes verification steps and clearly marks what's been done.


📋 Code Quality Observations

Config File Changes (conductor.json, .stylelintrc.json):

  • ✅ Paths correctly updated to react_on_rails/spec/dummy
  • ✅ Verified the target paths exist in the repository
  • ✅ Changes are minimal and focused

Documentation Updates:

  • ✅ GitHub URLs properly updated to include react_on_rails/ prefix
  • ✅ Command examples updated consistently
  • ✅ Both root-level and nested documentation covered

Pro Package Updates (react_on_rails_pro/CONTRIBUTING.md):

  • ✅ Paths updated correctly
  • ✅ Formatting improvements applied (bullet points, spacing)
  • ⚠️ Note: These formatting changes are fine since they improve readability, but in general, prefer keeping formatting changes separate from functional changes

🔍 Potential Considerations

  1. Formatting Changes in Pro CONTRIBUTING.md:

    • The file includes both path updates AND formatting changes (bullet points *-, spacing adjustments)
    • While these improve consistency, consider whether they should be in a separate commit for easier review
    • Not blocking: The changes are beneficial and improve readability
  2. Missing Application.css File:

    • The .stylelintrc.json references spec/dummy/app/assets/stylesheets/application.css
    • However, the actual file is application_non_webpack.scss
    • This is pre-existing (not introduced by this PR) but worth noting for future cleanup
    • The ignore pattern may not be matching the intended file
  3. Test Coverage:

    • ✅ Verified GitHub URLs are accessible (PR description states this was done)
    • ✅ CI passing confirms no broken references in code
    • Consider: Manual spot-check of a few updated URLs in browser (though CI markdown-link-check SUCCESS suggests this is fine)

🛡️ Security & Performance

  • ✅ No security concerns - purely documentation and configuration updates
  • ✅ No performance impact - these are reference/path changes only
  • ✅ No new dependencies introduced

📝 Recommendations

  1. Before Merge (Optional):

  2. Post-Merge (Future Enhancement):

    • Consider updating .stylelintrc.json to reference the actual file (application_non_webpack.scss) instead of application.css
    • Add a test or linting rule to catch hardcoded old paths in future PRs
  3. Documentation:

    • The CLAUDE.md file emphasizes path management in .claude/docs/managing-file-paths.md
    • This PR is a good example of following that guidance ✅

✅ Approval Status

APPROVED

This PR is ready to merge. It successfully addresses the stated issue, maintains code quality, and all CI checks are passing. The changes are low-risk and improve documentation accuracy.


📌 Related References


Great work on this cleanup! 🎉 This kind of thorough path maintenance is essential after major refactoring and prevents future confusion for contributors.

alexeyr-ci2 added a commit that referenced this pull request Dec 15, 2025
## Summary

Replaces the broken `markdown-link-check` setup with `lychee` for link
checking.

## Problem

The previous setup using `Wandalen/wretry.action` wrapper with
`tcort/markdown-link-check` was **silently failing** due to a Node.js 21
ESM compatibility bug (see #2217). The tool crashed on every file, but
the crash message didn't match the error detection pattern, so CI
falsely reported "All links are good!" - while actually checking zero
links.

## Solution

Migrate to [lychee](https://github.com/lycheeverse/lychee), a Rust-based
link checker that:

- ✅ **Built-in retry for ALL transient errors** (502, 503, 504) - what
PR #1899 wanted but couldn't achieve
- ✅ **Proper exit codes** (2 = link failures, not relying on string
matching)
- ✅ **Faster execution** (~12 seconds vs 4+ minutes for 550 links)
- ✅ **Result caching** for faster repeated runs
- ✅ **No Docker/Node.js compatibility issues**

## Changes

- Replace `.github/markdown-link-check-config.json` with `.lychee.toml`
- Update workflow to use `lycheeverse/lychee-action@v2`
- Add `.lycheecache` to `.gitignore`

## Test Plan

- [x] CI link checker workflow runs successfully
- [x] lychee correctly identifies broken links (will show ~26 errors
from known broken URLs that need separate fixes)

## Note

This PR will **fail CI** because it correctly detects ~26 broken links
that the previous setup missed. Those links need to be fixed in a
separate PR (like #2216).

Fixes #2217

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* **Chores**
* Migrated CI markdown-link checking to Lychee with caching and updated
workflow steps.
* Removed the previous markdown-link-check configuration and added a new
Lychee configuration.
  * Updated ignore rules to stop tracking Lychee cache artifacts.

* **Documentation**
* Rewrote and refreshed release notes and migration docs; updated
tutorial links and formatting.
* Clarified contributing guidance, changelog entry, and project listing
content.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 4.5 <[email protected]>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Alexey Romanov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix places where old dummy path is used

2 participants