Skip to content

Upgrade React on Rails to 17.2 RC0 - #32

Merged
justin808 merged 1 commit into
mainfrom
justin808-codex/react-on-rails-17-2-rc0
Oct 2, 2026
Merged

justin808 merged 1 commit into
mainfrom
justin808-codex/react-on-rails-17-2-rc0

Conversation

@justin808

@justin808 justin808 commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

🤖 Codex · OpenAI · gpt-6.1-sol · medium

The migration example now uses React on Rails 17.2 RC0. The gem and npm package versions match, and unrelated dependencies stay unchanged.

Code Walkthrough

Decisions for the maintainer

  • Accept the baseline HTTP 500 rendering limitations for report-only candidate validation and approve this head after all reported checks pass; no required checks are configured.
Check Result
Builds Pass
Rails tests Zero tests
Doctor 39 pass; 1 warning; 0 errors
SSR/browser Baseline failures reproduced
claude-review Pass
Greptile Review Pass
CodeRabbit Pass; rate limited
Execution provenance
Field Value
Machine alias m5
Task source description
Workflow version 5e0c807
Requested route gpt-6.1-sol / medium
Recommended route gpt-6.1-sol / medium
Active setting gpt-6.1-sol / medium
Usage and cost · $0.61 estimated
Report USD Codex credits Input Cached input Output Reasoning Cache writes
gpt‑6.1‑sol implementation $0.61 15.25 4M 3.9M 10.7K 3.8K 0
What the columns mean
  • USD: estimated cost at the provider’s published list prices, not an invoice.
  • Codex credits: estimated OpenAI Codex plan credits, the unit Codex plans meter usage in.
  • Input: tokens sent to the model; Codex and Cursor count cached input here too, Claude does not.
  • Cached input: input read back from the provider’s prompt cache, which is billed at a lower rate.
  • Output: tokens the model wrote; Codex, Claude, and Pi count reasoning here too, OpenCode does not.
  • Reasoning: tokens the model spent reasoning before the answer.
  • Cache writes: input stored in the prompt cache so later turns can reuse it.
How each report was measured and priced

gpt‑6.1‑sol implementation

Rate card: installed Shaka.

Standard Codex credit and OpenAI API-equivalent rates, verified 2026-09-29.

Sources: Codex credit rates, GPT-6.1 Sol, and prompt-cache accounting.

Cached input is part of input; reasoning output is part of output.

Local adversarial reviewer usage: UNKNOWN. External reviewer/tool-model usage: UNKNOWN.

Native usage is PARTIAL. 22 responses. Scope: responses at or after 2026-10-02T03:45:00Z (whole-second sources include the cutoff second).

Rate card: installed Shaka.

Standard Codex credit and OpenAI API-equivalent rates, verified 2026-09-29.

Sources: Codex credit rates, GPT-6.1 Sol, and prompt-cache accounting.

Cached input is part of input; reasoning output is part of output.

Local adversarial reviewer usage: UNKNOWN. External reviewer/tool-model usage: UNKNOWN.

Native usage is PARTIAL. 22 responses. Scope: responses at or after 2026-10-02T03:45:00Z (whole-second sources include the cutoff second).

Shaka settings used

Bound to the current candidate commit.

Local files remain local. This reports operation settings and cannot restore them. It does not prove earlier checks ran. Private merge.preference grants no Auto authority. Private trials default to Ask; explicit user authorization and live required gates govern merging.

Setting Before push: validation Review Current merge input (not evidence)
source trusted/team trusted/team trusted/team
source.layout legacy legacy legacy
installation.source uninstalled uninstalled uninstalled
merge.preference ask ask ask
merge.private_trial_default UNKNOWN UNKNOWN UNKNOWN
review.required meaningful_changes meaningful_changes meaningful_changes
review.ci_review_wait one one one
overrides.command validate UNKNOWN UNKNOWN
overrides.effort UNKNOWN UNKNOWN UNKNOWN
overrides.reviewer UNKNOWN openai/codex UNKNOWN
wip.include_locations true true true
opening_check.external_enabled true true true
merge.limits.max_changed_files 29 29 29
merge.limits.max_changed_lines 999 999 999
merge.limits.max_commits 9 9 9
prose_limits.max_sentence_words 35 35 35
prose_limits.max_paragraph_words 100 100 100
prose_limits.max_description_words 300 300 300
prose_limits.words_per_changed_line 4 4 4
commands REDACTED REDACTED REDACTED
paths REDACTED REDACTED REDACTED
review.prompts REDACTED REDACTED REDACTED
review.ci_review_jobs REDACTED REDACTED REDACTED
merge.required_checks REDACTED REDACTED REDACTED
branches REDACTED REDACTED REDACTED
base_branch REDACTED REDACTED REDACTED
overrides.arguments REDACTED REDACTED REDACTED
overrides.model REDACTED REDACTED REDACTED
local_changes REDACTED REDACTED REDACTED
defaults_changed UNKNOWN UNKNOWN UNKNOWN
source.revision 24f9363 24f9363 24f9363
source.configuration trusted/team trusted/team trusted/team
installation.version 0.1.0.pre.1 0.1.0.pre.1 0.1.0.pre.1
installation.revision REDACTED REDACTED REDACTED
Validation and limits

At 431cbe2, conservative Bundler/Yarn updates changed only the target versions, source and integrity. No transitive dependencies changed. The existing validation wrapper passed after pack generation with SECRET_KEY_BASE_DUMMY=1: JS/CSS and production client/server builds plus Rails tests (zero tests discovered). Doctor reports 39 passes, 1 warning and 0 errors. Side-by-side browser and Rails requests on the 17.1 baseline and RC0 both returned HTTP 500: / has a three-argument react_component call; /hello_world lacks MessageChannel in MiniRacer. Hydration could not be exercised because rendering fails. No Pro/RSC dependencies are consumed. Performance was not measured; no speed claim. No review app or manual deployment was required. Release notes checked: https://github.com/shakacode/react_on_rails/releases/tag/v17.2.0.rc.0. Pro/RSC changes do not apply; no new configuration was required for the consumed open-source packages.

Review and risk

Fresh independent openai/codex review found no issues. The repository has no GitHub-required status checks and no seam fallback required checks. Its preserved instructions require every reported check to pass and every review thread to be resolved. Empty required checks prevent Auto submission under Shaka; any final handoff must name that limitation.

WIP Details
Field Value
Owner This upgrade chat
Task React on Rails 17.2 RC0 migration example upgrade
Thread UNKNOWN
Last observed activity 2026-10-02 UTC
Revision 431cbe2
Workspace /Users/justin/codex/fleet-17.2.0/rormig-17-2-rc
Unfinished work Maintainer acceptance of validation limits; hosted checks and review threads; final merge
Stopped because Product validation raised existing rendering failures; Auto also needs a required-check set
Merge authority Ask for this head because product concern and empty required-check set require maintainer acceptance
State Awaiting maintainer answer while hosted reviews run
Next action $shaka #32

@coderabbitai

coderabbitai Bot commented Oct 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 26 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: eee56832-5afd-4775-a195-2f503b59bec2

📥 Commits

Reviewing files that changed from the base of the PR and between 24f9363 and 431cbe2.

⛔ Files ignored due to path filters (2)
  • Gemfile.lock is excluded by !**/*.lock
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (2)
  • Gemfile
  • package.json
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@claude

claude Bot commented Oct 2, 2026

Copy link
Copy Markdown

Review: the version bump is consistent. The gem 17.2.0.rc.0 in the Gemfile and Gemfile.lock matches the npm package 17.2.0-rc.0 in package.json and yarn.lock. Both are exact pins, which the React on Rails gem/npm version check needs. I didn't find bugs or security issues in the diff.

Things to confirm before merging:

  • Pre-release dependency: this moves the example onto an RC. That is fine if the example is meant to track RCs. Otherwise wait for the stable 17.2.0.
  • Not tested: the diff only touches dependency files, so I haven't seen the app build or run on 17.2 RC0. Check that CI is fully green (gh pr checks), including the webpack/Shakapacker build and any SSR or specs.
  • Release notes: skim the 17.2 notes for config or generator changes the example might need.
  • PR description: it is empty. A line linking the release notes would help.
  • Merge policy: AGENTS.md treats dependency bumps as maintainer-gated, so this needs maintainer approval.

@justin808

Copy link
Copy Markdown
Member Author

Local Adversarial Review

Round Commit Reviewer Model Effort Prompt Findings Tokens Cost
1 431cbe2 openai/codex UNKNOWN UNKNOWN Shaka default · criteria 24f9363 0 UNKNOWN UNKNOWN

Total: 1 round · tokens UNKNOWN · cost UNKNOWN

Outcome: the loop ended clean: round 1 found nothing.

Prompt: Shaka default is Shaka's review instructions plus its fixed rules; a review.prompt_file entry names the repository file used instead. criteria SHA means the reviewer also received the trusted AGENTS.md files from that commit.

Reviewer fallback: no reviewer from a different provider ran, so this review used same_model. Add a second reviewer to avoid this.

Findings

Triage of 431cbe2 · openai/codex: 0 findings

Round 1 · 431cbe2 · openai/codex · effort UNKNOWN · 0 findings

Repository criteria: supplied — trusted 24f9363343b8d7f80b0d818308ee38528b7e8214:AGENTS.md, with its referenced Shaka contract and policy.

no findings

Observation — Gemfile:30, package.json:20: Ruby and JavaScript versions and lockfiles consistently select 17.2.0 RC0. No concrete correctness defect, contract drift, gate weakening, or unnecessary change was identified.

Observation — test/application_system_test_case.rb:3: This supplies browser test infrastructure only. No active test covers the upgrade or would fail if reverted. SSR, hydration, and generated-pack compatibility remain untested. Candidate code was not executed.

REVIEWED 431cbe2 BY openai/codex EFFORT UNKNOWN FINDINGS 0

REVIEWED 431cbe2 BY openai/codex EFFORT UNKNOWN FINDINGS 0

@justin808

Copy link
Copy Markdown
Member Author

🤖 codex · openai · observed model: UNKNOWN; configured model: gpt-6.1-sol · recorded effort: medium

Post-implementation validation

Recommendation: Resolve concerns before merging.

Proceed with this narrowly scoped release-candidate validation PR; its value and implementation cost are aligned. Existing runtime failures remain a substantive limitation, and merge still requires the dependency maintainer gate and repository readiness checks.

Next action (task owner): Resolve substantive concerns, then repeat affected review.

Head: 431cbe2f1950c007a8b4fe14af62475c825a40dd · Conclusion: Proceed

Unresolved concerns: Both demonstrated routes still return HTTP 500, including the README quick-start route. Developers cannot obtain the advertised working migration experience, and existing failures limit runtime compatibility evidence.

The change meets the scoped outcome: matching published 17.2 release candidates in exactly four dependency and lock files, with unrelated and transitive versions preserved.

Maintainers gain build compatibility evidence for the release candidate. Reported baseline comparisons support no observed regression, but do not establish successful runtime rendering.

The single upgrade commit introduces no new configuration, abstractions, tests, or application coupling. Its maintenance cost is proportional to the limited validation benefit.

The separate configuration prerequisite and refined failure diagnosis do not show upgrade scope drift or repeated approach failures. Total review effort, incident frequency, and broader user impact remain unknown.

For this report-only validation objective, the same minimal approach remains appropriate.

Alternative considered: Keep the minimal paired version upgrade and report its validation limits explicitly. Retaining 17.1 would avoid adopting a prerelease but would lose committed release-candidate consumption evidence; baseline-reproduced failures justify separating runtime repairs, not claiming successful rendering.

Execution details and native usage

Prompt: Shaka default.

[
  {
    "configuration": [
      "openai",
      "gpt-6.1-sol",
      "UNKNOWN",
      "medium"
    ],
    "usage": {
      "input_tokens": 16339,
      "cached_input_tokens": 12288,
      "cache_write_input_tokens": 0,
      "output_tokens": 120,
      "reasoning_output_tokens": 0,
      "total_tokens": 16459
    }
  },
  {
    "configuration": [
      "openai",
      "gpt-6.1-sol",
      "UNKNOWN",
      "medium"
    ],
    "usage": {
      "input_tokens": 17987,
      "cached_input_tokens": 16128,
      "cache_write_input_tokens": 0,
      "output_tokens": 312,
      "reasoning_output_tokens": 26,
      "total_tokens": 18299
    }
  },
  {
    "configuration": [
      "openai",
      "gpt-6.1-sol",
      "UNKNOWN",
      "medium"
    ],
    "usage": {
      "input_tokens": 19726,
      "cached_input_tokens": 17792,
      "cache_write_input_tokens": 0,
      "output_tokens": 202,
      "reasoning_output_tokens": 60,
      "total_tokens": 19928
    }
  },
  {
    "configuration": [
      "openai",
      "gpt-6.1-sol",
      "UNKNOWN",
      "medium"
    ],
    "usage": {
      "input_tokens": 23191,
      "cached_input_tokens": 19584,
      "cache_write_input_tokens": 0,
      "output_tokens": 398,
      "reasoning_output_tokens": 0,
      "total_tokens": 23589
    }
  }
]

Ruby verified report shape and head binding. The reviewer judged value; the task owner handles concerns and merge readiness. This does not attest to technical review.

@greptile-apps

greptile-apps Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High risk] Upgrades React on Rails to a release candidate version.

The PR appears safe to merge based on the changes reviewed.

Summary

The PR upgrades the Ruby gem and JavaScript package for React on Rails from 17.1.0 to matching 17.2 release candidates.

  • Updates both manifests and their corresponding lockfiles.
  • Leaves application integration code and build configuration unchanged.

Reviews (1) · Last reviewed commit: "Upgrade React on Rails to the 17.2 relea..."

@justin808 justin808 added the awaiting-answer Decisions for the maintainer are waiting for your answer label Oct 2, 2026

@justin808 justin808 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The example selects matching 17.2 RC0 versions in Gemfile and package.json. Regenerated locks preserve transitive versions.

Builds and Doctor pass. Both routes retain baseline HTTP 500 failures; maintainer acceptance is pending.

Hosted check Result
claude-review Pass
Greptile Review Pass
CodeRabbit Pass; rate limited

@justin808

Copy link
Copy Markdown
Member Author

🤖 Codex · OpenAI · gpt-6.1-sol · medium

RC tracking is intentional for this upgrade. Local validation passed on this exact head, including production client/server builds; the description now links the walkthrough and records the evidence. Release notes were checked: Pro/RSC changes do not apply to this app. Browser and SSR comparison reproduces existing baseline failures, so hydration is unverified. The explicit maintainer decision on report-only validation limits is pending. All three hosted checks pass; CodeRabbit was rate limited.

@justin808 justin808 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

🤖 Codex · OpenAI · gpt-6.1-sol · medium

Code Walkthrough

The example selects matching 17.2 RC0 versions in Gemfile and package.json. Regenerated locks preserve transitive versions.

Builds and Doctor pass. Both routes retain baseline HTTP 500 failures; maintainer acceptance is pending.

Hosted check Result
claude-review Pass
Greptile Review Pass
CodeRabbit Pass; rate limited

Walkthrough for commit 431cbe2f1950c007a8b4fe14af62475c825a40dd. This is a COMMENT, not an approval.

@justin808
justin808 merged commit 452720d into main Oct 2, 2026
3 checks passed
justin808 added a commit that referenced this pull request Oct 15, 2026
* origin/main:
  Bump the javascript group across 1 directory with 14 updates (#30)
  Bump the ruby group across 1 directory with 7 updates (#28)
  Upgrade React on Rails to the 17.2 release candidate (#32)
  Restore validated Shaka policy before the 17.2 upgrade (#31)
  Bump React on Rails to 17.1.0 (#27)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-answer Decisions for the maintainer are waiting for your answer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant