Skip to content

Commit 61566df

Browse files
committed
Merge remote-tracking branch 'origin/main' into jg/3122-rolling-deploy-adapter
* origin/main: feat(pro): Async props & incremental RSC rendering + length-prefixed streaming protocol (#2903) fix: stale references and lost Gemfile pins after Pro migration (#3104) Restore Metrics/ModuleLength limit to 180 Clarify RuboCop lint contract Exclude dead project URLs from markdown link check (#3306) Canonicalize GitHub links in docs Reduce `react-on-rails-pro-node-renderer` package size (#3304) fix: format stray markdown files and correct broken link breaking CI on main (#3301) docs(planning): JSON render-request body migration plan (#3280) (#3299) docs: experiment plan for decoupling props from JS source (#3281) (#3297) docs: memory leakage investigation report for SSR pipeline (#3296) docs: fix MDX-incompatible patterns blocking sc-website docs sync (#3275) docs: document RSC node renderer test setup (#3223) Clarify Pro pricing and license guidance (#3272) docs: add AI security scanner evaluation plan (#3236) fix: pin pnpm version in scaffolded CI when packageManager is absent (#3172) (#3174) docs: document RSC HTTP response ownership (#3222) docs: document legacy Webpacker compatibility shims (#3225) chore: sync address-review command and import prompt variant (#3271) # Conflicts: # .lychee.toml # react_on_rails/spec/lib/react_on_rails/doctor_spec.rb # react_on_rails_pro/lib/react_on_rails_pro/pre_seed_renderer_cache.rb
2 parents f4decaf + 814c19c commit 61566df

160 files changed

Lines changed: 12593 additions & 1718 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/commands/address-review.md

Lines changed: 156 additions & 180 deletions
Large diffs are not rendered by default.

.claude/prompts/address-review.md

Lines changed: 216 additions & 0 deletions
Large diffs are not rendered by default.

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,15 @@ junit.xml
102102
.lycheecache
103103
.playwright-cli/
104104
.gstack/
105+
106+
# Security scanner output (per internal/planning/ai-security-scanner-evaluation.md):
107+
# raw findings, SARIF reports, and intermediate artifacts must stay out of this
108+
# public repo. Commit only sanitized summaries to internal/planning/.
109+
# *.sarif and *.sarif.json are intentionally non-anchored so they match SARIF
110+
# files emitted into any subdirectory; the directory entries below stay anchored
111+
# to the repo root.
112+
/security-scans/
113+
*.sarif
114+
*.sarif.json
115+
/scanner-output/
116+
/scanner-findings/

.lychee.toml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ exclude = [
4141
'^https://your-shared-addr\.c9users\.io',
4242
'^https://hichee\.com',
4343
'^https?://rubyonrails\.org/doctrine', # DNS issues
44+
'^https://www\.oppenheimerfunds\.com/?$', # DNS no longer resolves
4445

4546
# ============================================================================
4647
# SSL CERTIFICATE ISSUES
@@ -93,6 +94,7 @@ exclude = [
9394
'^https://(www\.)?guavapass\.com', # TLS handshake failures from CI
9495
'^https?://(www\.)?hvmn\.com', # Returns 503 from CI
9596
'^https://(www\.)?hawaiichee\.com/?$', # Intermittent 500 from CI
97+
'^https://deliveroo\.co\.uk/?$', # Returns 403 for automated requests
9698

9799
# ============================================================================
98100
# EXTERNAL SITES THAT TIMEOUT DURING CI CHECKS
@@ -114,14 +116,24 @@ exclude = [
114116
# return 5xx responses to lychee in CI, even when the pages are live.
115117
'^https://github\.com/shakacode/react_on_rails/compare/',
116118
'^https://github\.com/shakacode/react_on_rails/pull/[0-9]+$', # Intermittent 5xx from GitHub PR pages in CI
119+
'^https://github\.com/shakacode/react_on_rails/actions/workflows/pro-test-package-and-gem\.yml$', # Intermittent 502 from GitHub Actions workflow pages in CI
120+
'^https://github\.com/shakacode/react_on_rails/issues/2766$', # Intermittent 502 from GitHub issue pages in CI
121+
'^https://github\.com/rack/rack/blob/main/SPEC\.rdoc$', # Intermittent 502 from GitHub blob pages in CI
117122
'^https://github\.com/shakacode/shakapacker/blob/cdf32835d3e0949952b8b4b53063807f714f9b24/package/environments/base\.js(#.*)?$', # Intermittent 502 from GitHub blob view in CI
118123
'^https://github\.com/K4sku$', # Intermittent 502 from GitHub user page in CI
124+
'^https://github\.com/npm/cli/issues/6253$', # Intermittent 502 from GitHub issue pages in CI
125+
'^https://github\.com/search\?q=gem\+react_on_rails&ref=advsearch&type=repositories&utf8=%E2%9C%93$', # Intermittent 502 from GitHub search in CI
126+
127+
# ============================================================================
128+
# EXTERNAL DOC PAGES WITH CI CONNECTIVITY FAILURES
129+
# ============================================================================
130+
'^https://tanstack\.com/query/latest/docs/framework/react/guides/ssr$', # Connection failed from CI
119131

120132
# ============================================================================
121133
# DELETED GITHUB USER ACCOUNTS (return 502/404 from CI)
122134
# ============================================================================
123135
# Contributors whose accounts no longer exist
124-
'^https://github\.com/(alleycat-at-git|Conturbo|jblasco3|nostophilia|railsme|samphilipd|wouldntsavezion)$',
136+
'^https://github\.com/(alleycat-at-git|Conturbo|jblasco3|nostophilia|pulkitkkr|railsme|samphilipd|wouldntsavezion)$',
125137

126138
# ============================================================================
127139
# PRIVATE REPOSITORIES

.rubocop.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ AllCops:
2828
- 'node_modules/**/*'
2929
- 'spec/fixtures/**/*'
3030
- 'spec/react_on_rails/dummy-for-generators/**/*'
31+
# Root-wide RuboCop uses root-relative paths. Keep generated/package-specific
32+
# exclusions here so the root sweep does not fail on files package CI exempts.
33+
- 'react_on_rails_pro/spec/dummy/db/schema.rb'
34+
- 'react_on_rails_pro/spec/dummy/db/seeds.rb'
3135
- '**/vendor/**/*'
3236

3337
Naming/FileName:
@@ -74,7 +78,7 @@ Metrics/MethodLength:
7478
Max: 41
7579

7680
Metrics/ModuleLength:
77-
Max: 200
81+
Max: 180
7882

7983
RSpec/DescribeClass:
8084
Enabled: false

AGENTS.md

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,15 @@ bundle && pnpm install
3333
pnpm run build
3434

3535
# Lint (MANDATORY before every commit)
36-
bundle exec rubocop # Ruby — must pass with zero offenses
37-
pnpm run lint # JS/TS via ESLint
38-
pnpm start format.listDifferent # Check Prettier formatting
39-
rake lint # All linting (Ruby + JS + formatting)
36+
(cd react_on_rails && bundle exec rubocop) # OSS Ruby lint — CI-equivalent
37+
# Pro Ruby lint — CI-equivalent when Pro files or RuboCop config change
38+
(cd react_on_rails_pro && bundle exec rubocop --ignore-parent-exclusion)
39+
pnpm run lint # JS/TS via ESLint
40+
pnpm start format.listDifferent # Check Prettier formatting
41+
rake lint # All linting (Ruby + JS + formatting)
42+
43+
# Optional Ruby diagnostic from the repo root (not the CI contract)
44+
bundle exec rubocop
4045

4146
# Auto-fix formatting
4247
rake autofix # Preferred for all formatting
@@ -177,7 +182,13 @@ For small, focused PRs (roughly 5 files changed or fewer and one clear purpose):
177182

178183
### Always
179184

180-
- Run `bundle exec rubocop` before committing — CI will reject violations
185+
- Run the CI-equivalent Ruby lint before committing, not the root `bundle exec rubocop`:
186+
```bash
187+
(cd react_on_rails && bundle exec rubocop)
188+
# Also run when touching Pro Ruby or RuboCop config:
189+
(cd react_on_rails_pro && bundle exec rubocop --ignore-parent-exclusion)
190+
```
191+
Root `bundle exec rubocop` is a broad local sweep, not the CI contract.
181192
- Use `pnpm` for all JS operations — never `npm` or `yarn`
182193
- Use `bundle exec` for Ruby commands
183194
- Ensure all files end with a newline

0 commit comments

Comments
 (0)