Skip to content

Commit a6ef24d

Browse files
authored
Fix Pro dummy lockfile drift and rich text demo (#3989)
## Summary - Normalize the Pro dummy lockfile's `connection_pool` entry back to `3.0.2` so it matches the current Ruby 4-compatible sibling locks. - Restore the execjs-compatible dummy sqlite3 platform lock entries while keeping the generic Ruby/source fallback, with a Ruby 3.4+ `force_ruby_platform` guard for sqlite3 1.7.3. - Render `ReactIntlRscDemo` rich-text ICU placeholders as real React `<a>` and `<strong>` elements instead of bracket/markdown-like strings. Fixes #3981. ## Scope Confirmation Changed files are limited to issue #3981 scope: - `react_on_rails_pro/spec/dummy/Gemfile.lock` - `react_on_rails_pro/spec/execjs-compatible-dummy/Gemfile` - `react_on_rails_pro/spec/execjs-compatible-dummy/Gemfile.lock` - `react_on_rails_pro/spec/dummy/client/app/ror-auto-load-components/ReactIntlRscDemo.jsx` No `react-on-rails-rsc` pin-range work, #3963-reserved docs, Machine A issue work, or unrelated dependency upgrades are included. ## Agent Merge Confidence Mode: accelerated-rc Current head SHA: `635bd6e371b9c0b705729bffbb6eda23a7544881` Score: 9/10 Auto-merge recommendation: yes Affected areas: Pro dummy lockfiles, execjs-compatible dummy sqlite3 platform selection, Pro RSC/React Intl demo rendering CI detector: `script/ci-changes-detector origin/main` -> Pro dummy app; recommends lint, Pro lint, Pro dummy integration tests, and Pro benchmarks Validation run: - `git diff --check origin/main...HEAD` -> pass - `ruby script/check-gemfile-lock-platforms` -> pass; all 6 lockfiles include `x86_64-linux` - `(cd react_on_rails_pro/spec/dummy && BUNDLE_FROZEN=true bundle _2.5.4_ check)` -> pass - `(cd react_on_rails_pro/spec/execjs-compatible-dummy && BUNDLE_FROZEN=true bundle _2.5.9_ check)` -> pass - `(cd react_on_rails_pro/spec/execjs-compatible-dummy && BUNDLE_FROZEN=true bundle _2.5.9_ exec ruby -e 'require "sqlite3"; ...')` -> pass; Ruby 4.0.5 selects `sqlite3-1.7.3 platform=ruby` - `pnpm exec prettier --check react_on_rails_pro/spec/dummy/client/app/ror-auto-load-components/ReactIntlRscDemo.jsx` -> pass - `pnpm exec eslint react_on_rails_pro/spec/dummy/client/app/ror-auto-load-components/ReactIntlRscDemo.jsx` -> pass; baseline browser-mapping age warning only - `(cd react_on_rails_pro/spec/dummy && pnpm run build:test)` -> pass; existing webpack/browser-data warnings only - RSC payload smoke for `/rsc_payload/ReactIntlRscDemo` with local node renderer -> pass; 200 `application/x-ndjson`, 23 parsed chunks, serialized Flight payload contains the `/terms` anchor and `strong` privacy text, and omits the old `[terms of service]` / `**privacy policy**` fallbacks - `(cd react_on_rails_pro/spec/dummy && BUNDLE_GEMFILE=Gemfile RAILS_ENV=test NODE_ENV=test bundle exec rspec spec/requests/rsc_payload_spec.rb)` -> pass; 3 examples, 0 failures - `(cd react_on_rails && BUNDLE_GEMFILE=../Gemfile bundle exec rubocop)` -> pass; 218 files, no offenses - `(cd react_on_rails_pro && BUNDLE_GEMFILE=../Gemfile bundle exec rubocop --ignore-parent-exclusion)` -> pass; 231 files, no offenses - `codex review --base origin/main` -> no discrete correctness, compatibility, or maintainability regressions found Review/check gate: - GitHub checks: complete for `635bd6e371b9c0b705729bffbb6eda23a7544881`; 25 pass, 10 skipped, 0 failed, 0 pending - Skipped checks: docs/examples/package-js/gem spec jobs skipped by path/full-CI selector for Pro dummy changes; benchmark planning/reporting helper rows skipped after benchmark run completion; secondary `claude` job skipped while `claude-review` passed - Review threads: GraphQL unresolved count is 0 - Current-head reviewer verdicts: - Claude review: `claude-review` check passed for `635bd6e371b9c0b705729bffbb6eda23a7544881`, no confirmed blocker; advisory rich-text thread was replied to and resolved - CodeRabbit: formal `APPROVED` review for `635bd6e371b9c0b705729bffbb6eda23a7544881`; post-undraft CodeRabbit check passed - Greptile Review: passed after undraft - Cursor Bugbot: success for current head, no blocking finding reported - Codex review: local `codex review --base origin/main` clean Known residual risk: Low. The main residual risk was cross-Ruby/platform Bundler behavior for sqlite3 1.7.3; current-head full CI, Pro dummy integration, local frozen bundle checks, Ruby 4 sqlite3 load check, and Pro benchmarks completed without failures. Finalized by: `claude-review` GitHub check / Claude Code Review workflow for current head, run https://github.com/shakacode/react_on_rails/actions/runs/27465345318/job/81186595599 ## Label/CI Decision Labels: `full-ci, benchmark`. This PR touches Pro dummy lockfiles plus an RSC/React Intl demo rendering path, and the CI detector selected Pro dummy/pro benchmark coverage. ## Merge Recommendation Merge. Current-head checks and reviewer gates are complete, unresolved review threads are 0, and the accelerated-RC confidence block is finalized for the current head.
1 parent c488650 commit a6ef24d

4 files changed

Lines changed: 18 additions & 9 deletions

File tree

react_on_rails_pro/spec/dummy/Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ GEM
152152
childprocess (5.0.0)
153153
coderay (1.1.3)
154154
concurrent-ruby (1.3.6)
155-
connection_pool (2.5.5)
155+
connection_pool (3.0.2)
156156
console (1.34.2)
157157
fiber-annotation
158158
fiber-local (~> 1.1)

react_on_rails_pro/spec/dummy/client/app/ror-auto-load-components/ReactIntlRscDemo.jsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,15 @@ const BADGE = (bg, color) => ({
5252
color,
5353
marginLeft: 8,
5454
});
55+
const RICH_TEXT_LINK_STYLE = { color: '#2563eb', textDecoration: 'underline' };
56+
const RICH_TEXT_FORMATTERS = {
57+
link: (chunks) => (
58+
<a href="/terms" style={RICH_TEXT_LINK_STYLE}>
59+
{chunks}
60+
</a>
61+
),
62+
bold: (chunks) => <strong>{chunks}</strong>,
63+
};
5564

5665
function GreetingSection({ locale }) {
5766
const intl = getIntl(locale);
@@ -418,13 +427,7 @@ function AdvancedICUSection({ locale }) {
418427
},
419428
{
420429
label: 'rich text',
421-
value: intl.formatMessage(
422-
{ id: 'advanced.richText' },
423-
{
424-
link: (chunks) => `[${chunks}]`,
425-
bold: (chunks) => `**${chunks}**`,
426-
},
427-
),
430+
value: React.Children.toArray(intl.formatMessage({ id: 'advanced.richText' }, RICH_TEXT_FORMATTERS)),
428431
},
429432
{
430433
label: 'escaped apostrophes',

react_on_rails_pro/spec/execjs-compatible-dummy/Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ gem "rails", "~> 7.1", ">= 7.1.3.2"
2828
gem "sprockets-rails"
2929

3030
# Use sqlite3 as the database for Active Record
31-
gem "sqlite3", "~> 1.4"
31+
gem "sqlite3", "~> 1.4", force_ruby_platform: Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4")
3232

3333
# Use the Puma web server [https://github.com/puma/puma]
3434
gem "puma", ">= 5.0"

react_on_rails_pro/spec/execjs-compatible-dummy/Gemfile.lock

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,12 @@ GEM
319319
sprockets (>= 3.0.0)
320320
sqlite3 (1.7.3)
321321
mini_portile2 (~> 2.8.0)
322+
sqlite3 (1.7.3-aarch64-linux)
323+
sqlite3 (1.7.3-arm-linux)
324+
sqlite3 (1.7.3-arm64-darwin)
325+
sqlite3 (1.7.3-x86-linux)
326+
sqlite3 (1.7.3-x86_64-darwin)
327+
sqlite3 (1.7.3-x86_64-linux)
322328
stringio (3.2.0)
323329
thor (1.5.0)
324330
timeout (0.6.0)

0 commit comments

Comments
 (0)