-
-
Notifications
You must be signed in to change notification settings - Fork 637
Fix outdated paths after monorepo restructuring #2216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
WalkthroughSystematic replacement of repository references from Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (6)
🚧 Files skipped from review as they are similar to previous changes (6)
⏰ 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)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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]>
d1bbc72 to
d194284
Compare
Code Review: Fix outdated paths after monorepo restructuringThank 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
🐛 Issues FoundCRITICAL: Doubled Path ReferencesFound instances where paths were incorrectly doubled to
Note: CHANGELOG.md:577 has 📋 RecommendationsBefore Merging:
Quality Checks:Per CLAUDE.md requirements:
🎯 Testing SuggestionsSince this PR modifies documentation and config paths, consider:
📊 Impact Assessment
🚀 Final VerdictALMOST 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! 👍 |
Code Review - PR #2216: Fix outdated paths after monorepo restructuringSummaryThis 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. ✅ Strengths1. Comprehensive Coverage
2. Consistency
3. Quality Assurance
🔍 Detailed ReviewConfig Files (Good)
Documentation (Excellent)
Code Changes (Minimal & Safe)
Claude Code Documentation (Good)
🎯 RecommendationsCritical (Before Merge)None - the PR looks ready to merge. Nice to Have (Optional)
🔒 Security & Performance
🧪 TestingWhat Was Tested
Additional Testing RecommendedSince this is a documentation-heavy PR, consider:
📊 Code Quality Assessment
🎉 ConclusionThis 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 ChecklistAfter merging, consider:
Review generated with assistance from Claude Code |
There was a problem hiding this 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.cssdoes not exist in the repository. The actual stylesheet file isreact_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 theRSpec.configureblock” → “from inside theRSpec.configureblock” to avoid redundancy.NEWS.md (1)
8-9: Minor: update the visible link text to match the new path.
Right now the markdown showsspec/dummybut links toreact_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
📒 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 runbundle exec rubocopand fix ALL violations before every commit/push
ALWAYS ensure files end with a newline character before committing
Files:
NEWS.mdREADME.mddocs/contributor-info/pull-requests.mddocs/core-concepts/render-functions-and-railscontext.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.mddocs/api-reference/view-helpers-api.mdconductor.jsondocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/linters.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.mddocs/contributor-info/releasing.mdCODING_AGENTS.mddocs/introduction.mddocs/api-reference/redux-store-api.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/docs/home-pro.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/contributor-info/generator-testing.mddocs/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.mdREADME.mddocs/contributor-info/pull-requests.mddocs/core-concepts/render-functions-and-railscontext.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.mddocs/api-reference/view-helpers-api.mdconductor.jsondocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/linters.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.mddocs/contributor-info/releasing.mdCODING_AGENTS.mddocs/introduction.mddocs/api-reference/redux-store-api.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/docs/home-pro.mddocs/contributor-info/generator-testing.mddocs/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.mdREADME.mddocs/contributor-info/pull-requests.mddocs/core-concepts/render-functions-and-railscontext.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md.stylelintrc.jsondocs/api-reference/view-helpers-api.mddocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/linters.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mddocs/introduction.mddocs/api-reference/redux-store-api.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/docs/home-pro.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/contributor-info/generator-testing.mddocs/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.mdREADME.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdCODING_AGENTS.mdCONTRIBUTING.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.mddocs/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.mdREADME.mddocs/core-concepts/render-functions-and-railscontext.mdCHANGELOG.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md.stylelintrc.jsondocs/api-reference/view-helpers-api.mddocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mddocs/introduction.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/docs/home-pro.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/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.mdREADME.mddocs/contributor-info/pull-requests.mddocs/core-concepts/render-functions-and-railscontext.md.claude/docs/analysis/PHASE_6_CHECKLIST.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md.stylelintrc.jsondocs/api-reference/view-helpers-api.mdconductor.jsondocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/linters.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mddocs/introduction.mddocs/api-reference/redux-store-api.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/docs/home-pro.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/contributor-info/generator-testing.mddocs/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.mddocs/core-concepts/render-functions-and-railscontext.md.claude/docs/analysis/PHASE_6_CHECKLIST.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md.stylelintrc.jsondocs/api-reference/view-helpers-api.mdconductor.jsondocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/linters.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mddocs/introduction.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/docs/home-pro.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/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.mdREADME.md.claude/docs/analysis/PHASE_6_CHECKLIST.mdCHANGELOG.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md.stylelintrc.jsondocs/api-reference/view-helpers-api.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/contributor-info/generator-testing.mddocs/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.mdREADME.mddocs/core-concepts/render-functions-and-railscontext.md.claude/docs/analysis/PHASE_6_CHECKLIST.mdCHANGELOG.mddocs/api-reference/view-helpers-api.mddocs/building-features/images.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/errors-with-hooks.md.claude/docs/analysis/CI_FAILURES_2024-11-21.md.claude/agents/pr-testing-agent.mddocs/introduction.mddocs/api-reference/redux-store-api.md.claude/agents/pr-testing-guide.mddocs/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.mdREADME.mddocs/contributor-info/pull-requests.mddocs/core-concepts/render-functions-and-railscontext.md.claude/docs/analysis/PHASE_6_CHECKLIST.mdCHANGELOG.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.mddocs/api-reference/view-helpers-api.mddocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mddocs/introduction.mddocs/api-reference/redux-store-api.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/docs/home-pro.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/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.mddocs/core-concepts/render-functions-and-railscontext.md.claude/docs/analysis/PHASE_6_CHECKLIST.mdCHANGELOG.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.mddocs/api-reference/view-helpers-api.mdconductor.jsondocs/building-features/images.mddocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/linters.mddocs/contributor-info/errors-with-hooks.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mddocs/introduction.mdSWITCHING_CI_CONFIGS.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/contributor-info/generator-testing.mddocs/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.mddocs/core-concepts/render-functions-and-railscontext.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.mddocs/api-reference/view-helpers-api.mdreact_on_rails_pro/CONTRIBUTING.mddocs/api-reference/redux-store-api.mdreact_on_rails_pro/docs/home-pro.mddocs/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.mddocs/core-concepts/render-functions-and-railscontext.mdCHANGELOG.mddocs/api-reference/view-helpers-api.mddocs/api-reference/redux-store-api.mddocs/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.mdCHANGELOG.mddocs/api-reference/view-helpers-api.mddocs/core-concepts/how-react-on-rails-works.mddocs/api-reference/redux-store-api.mdreact_on_rails_pro/docs/home-pro.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/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.mdCHANGELOG.mddocs/api-reference/view-helpers-api.mddocs/building-features/rspec-configuration.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mdreact_on_rails_pro/docs/home-pro.md.claude/agents/pr-testing-guide.mddocs/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.mdCHANGELOG.mddocs/api-reference/view-helpers-api.mdreact_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.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md.stylelintrc.jsonconductor.jsondocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/errors-with-hooks.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mddocs/introduction.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mddocs/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.mdCHANGELOG.mddocs/MONOREPO_MERGER_PLAN.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.mdconductor.jsondocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/errors-with-hooks.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/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.mddocs/MONOREPO_MERGER_PLAN.mdconductor.jsonWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/contributor-info/errors-with-hooks.md.claude/docs/analysis/CI_FAILURES_2024-11-21.md.claude/agents/pr-testing-agent.mdCONTRIBUTING.mdSWITCHING_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.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/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.mddocs/MONOREPO_MERGER_PLAN.md.claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdreact_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.mdCLAUDE.md.claude/agents/pr-testing-agent.mdSWITCHING_CI_CONFIGS.mddocs/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.jsondocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/core-concepts/how-react-on-rails-works.mddocs/contributor-info/releasing.mdCODING_AGENTS.mdSWITCHING_CI_CONFIGS.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/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.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mdreact_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.mdreact_on_rails_pro/CONTRIBUTING.mddocs/contributor-info/errors-with-hooks.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCONTRIBUTING.mdSWITCHING_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.jsonconductor.jsonreact_on_rails_pro/CONTRIBUTING.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mddocs/contributor-info/releasing.mdCONTRIBUTING.mdSWITCHING_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.jsonconductor.jsonWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mdSWITCHING_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.jsonconductor.jsondocs/building-features/rspec-configuration.mdWARP.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/core-concepts/how-react-on-rails-works.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdCODING_AGENTS.md.claude/agents/pr-testing-agent.mdCONTRIBUTING.mdSWITCHING_CI_CONFIGS.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/agents/pr-testing-guide.mdreact_on_rails/spec/support/shakapacker_precompile_hook_shared.rbdocs/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.mdreact_on_rails_pro/CONTRIBUTING.mdCLAUDE.mdCODING_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.mdreact_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.mdreact_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.mdCLAUDE.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
\nafter 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 barespec/dummyreferences 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.mdas 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 runnpx prettier --check react_on_rails_pro/docs/home-pro.mdlocally to verify formatting compliance and apply any necessary changes withnpx prettier --write react_on_rails_pro/docs/home-pro.mdif 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 atreact_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/dummypath. 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.mdexists 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/dummytoreact_on_rails/spec/dummyare 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., confirmreact_on_rails/spec/dummy/TESTING_LOCALLY.mdis 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/dummyas 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/dummyfor 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/dummyfor 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/dummylocation, 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/dummyfor 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/dummystructure.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/dummyfor 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.mdproperly 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/dummyfor 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.jsonand 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/dummybefore 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 restorecommand for reverting changes when switching back to latest now includes the complete pathreact_on_rails/spec/dummy/package.jsonalong 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.rbnow properly includes thereact_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 loginif 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| The "React on Rails Pro Node React Renderer" provides more efficient React Server Side Rendering on a standalone Node JS server. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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".
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unrelated to PR
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| 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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unrelated
There was a problem hiding this comment.
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]>
Code Review Summary✅ Overall Assessment: LGTM with Minor RecommendationsThis 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 ReviewedScope: 34 files changed (213 additions, 136 deletions)
✅ Strengths1. Comprehensive Coverage
2. Correct Path Updates
3. Well-Organized PR Description
4. Follows Project Guidelines
💡 Minor Recommendations1. Verification ChecklistBefore 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 MonitoringPer CLAUDE.md guidelines:
🔍 Code Quality AssessmentSecurity: ✅ No Issues
Performance: ✅ N/A
Test Coverage: ✅ Appropriate
Best Practices: ✅ Excellent
📋 Specific File ReviewsConfiguration Files ✅
Documentation ✅
Code Comments ✅
🚀 Ready to MergeThis PR is ready to merge once:
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 |
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]>
Code Review - PR #2216: Fix outdated paths after monorepo restructuringSummaryThis PR systematically updates outdated file paths throughout the codebase following the monorepo restructuring in PR #2114. The changes are well-organized and comprehensive. ✅ Strengths
📋 Observations
🧪 Testing RecommendationsBefore merging, verify:
🎯 Code Quality Assessment
💡 Minor SuggestionsNone - 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. |
Code Review - PR #2216: Fix outdated paths after monorepo restructuring✅ Overall AssessmentThis 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
📋 Code Quality ObservationsConfig File Changes (
Documentation Updates:
Pro Package Updates (
🔍 Potential Considerations
🛡️ Security & Performance
📝 Recommendations
✅ Approval StatusAPPROVED ✅ 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. |
## 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]>
Summary
Changes by Category
1. Config Files
conductor.json: Updatedcd spec/dummy→cd react_on_rails/spec/dummy.stylelintrc.json: Updated ignoreFiles path for dummy app assets2. GitHub URLs in Documentation (~35 URLs)
Updated URLs in these files to point to correct paths:
docs/api-reference/redux-store-api.mddocs/api-reference/view-helpers-api.mddocs/building-features/images.mddocs/building-features/rspec-configuration.mddocs/contributor-info/errors-with-hooks.mddocs/contributor-info/generator-testing.mddocs/contributor-info/linters.mddocs/contributor-info/pull-requests.mddocs/contributor-info/releasing.mddocs/core-concepts/file-system-based-automated-bundle-generation.mddocs/core-concepts/how-react-on-rails-works.mddocs/core-concepts/render-functions-and-railscontext.mddocs/introduction.mddocs/JS_PRO_PACKAGE_SEPARATION_PLAN.mddocs/MONOREPO_MERGER_PLAN.md3. Root Documentation Files
CHANGELOG.md: Fixed GitHub URLsCONTRIBUTING.md: Fixed GitHub URLsNEWS.md: Fixed GitHub URLREADME.md: Fixed GitHub URLCODING_AGENTS.md: Fixed GitHub URLsWARP.md: Fixed GitHub URLs4. Command Examples
Updated
cd spec/dummy→cd react_on_rails/spec/dummyin:CLAUDE.mdSWITCHING_CI_CONFIGS.mdCODING_AGENTS.md5. 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 references6. 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 URLsreact_on_rails_pro/docs/home-pro.md: Fixed GitHub URLsTest plan
Fixes #2215
🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.