Remove temporary /posts_page: Pro regression-issue suppression (#3669 revert)#3853
Conversation
The revert gate for issue #3669 passed (failure-era samples rolled out of Bencher's 64-run t-test window; baseline reflects real timings), so the temporary suppression entry is no longer needed and a regression on /posts_page: Pro must file an issue again. Minimal revert by design: empty IGNORED_REGRESSION_BENCHMARKS but keep the general ignore machinery (ignored_benchmark?, actionable_alerts, actionable_benchmarks, plan_confirmation.rb fully_ignored?/suppressed handling), which #3810 made load-bearing general plumbing. Specs that read IGNORED_REGRESSION_BENCHMARKS.first now stub_const a sample entry so they keep pinning the machinery against the now-empty production list. Closes #3669 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
WalkthroughThis PR removes a temporary suppression for the ChangesRevert temporary regression suppression
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
Greptile SummaryThis PR removes the temporary
Confidence Score: 5/5Safe to merge — the change re-enables reporting for a previously suppressed benchmark route, and all suppression machinery tests are correctly pinned via stub_const. The diff is a clean, well-scoped removal of a temporary constant value. The core constant change is a one-liner, and the three spec updates correctly use stub_const to isolate tests from production list contents — no examples were deleted and no coverage gaps were introduced. The ignore machinery itself is untouched, and the PR description matches the code exactly. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Bencher alert fires on main push] --> B[track_benchmarks.rb writes CANDIDATE payload]
B --> C[plan_confirmation.rb reads candidates]
C --> D{All regressed benchmarks\nin IGNORED_REGRESSION_BENCHMARKS?}
D -->|Yes - previously /posts_page: Pro| E[Short-circuit: no rerun, no issue\nSkipped confirmation logged]
D -->|No - now always this path| F[Emit matrix row for confirmation rerun]
F --> G[track_benchmarks.rb confirm run\non fresh runner]
G --> H{Same benchmark+measure\nre-alerts?}
H -->|Yes| I[Write CONFIRMED payload]
H -->|No| J[Cleared - noise]
I --> K[report_regressions.rb files/updates issue]
style E fill:#f9f,stroke:#333
style D fill:#ffe,stroke:#333
Reviews (1): Last reviewed commit: "Remove temporary /posts_page: Pro regres..." | Re-trigger Greptile |
Code ReviewOverall: Clean, minimal revert. The change is exactly scoped to what is described — emptying the suppression list while preserving the machinery. The PR description and decision log are thorough. What the PR DoesRemoves the temporary Code Quality
Spec changes — Minor ObservationIn The other two spec files ( Correctness Check on
|
## Summary `rc.2` was already stamped in `CHANGELOG.md` (#3852), but `v17.0.0.rc.2` has **not been tagged yet**. Three PRs merged after that stamp: - **#3857** — bumps the `react-on-rails-rsc` pin to `19.0.5-rc.7` (generator default, manifests, lockfile, Pro RSC install docs). User-visible; was sitting in `[Unreleased]`. - **#3853** — removes the temporary `/posts_page: Pro` benchmark regression-suppression entry. Internal benchmark tooling only. - **#3854** — shares the `.tool-versions` parser between the CI action and `ci-switch-config`. CI infrastructure only. Because rc.2 isn't tagged, #3857 ships *in* rc.2. This PR moves its entry from `[Unreleased]` into the `### [17.0.0.rc.2]` `#### Changed` section, directly above the existing `19.0.5-rc.6` pin entry (#3577). `[Unreleased]` is now empty. #3853 and #3854 are internal/CI and are intentionally **not** added to the user-facing changelog. ## Notes - Compare links already point at `v17.0.0.rc.2` (set when rc.2 was stamped); no link changes needed — they resolve once `rake release` tags rc.2 at the current `main` HEAD. - The rc.6 and rc.7 pin entries both appear in rc.2 (the pin moved rc.6 → rc.7 within the same unreleased RC). Per the changelog workflow, RC sections keep their entries intact; this iteration history will be collapsed when 17.0.0 stable is cut. ## Validation - `pnpm exec prettier --check CHANGELOG.md` → All matched files use Prettier code style - Pre-commit hooks: trailing-newlines, markdown-links, prettier — all passed - Diff is `CHANGELOG.md`-only (1 insertion, 4 deletions) 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > CHANGELOG-only editorial change with no runtime or dependency impact. > > **Overview** > Moves the **Pro** `react-on-rails-rsc@19.0.5-rc.7` pin-bump changelog entry from **`[Unreleased]`** into **`### [17.0.0.rc.2]`** under **`#### Changed`**, placed above the existing rc.6 pin note so rc.2’s user-facing notes match what will ship before the rc.2 tag. > > **`[Unreleased]`** no longer lists that change; internal/CI work (#3853, #3854) stays out of the changelog per the PR intent. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit d2d7a73. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated changelog to reflect RSC rollout pin update details for version 17.0.0.rc.2. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
The revert gate for the temporary
/posts_page: Proregression-issue suppression has been verified PASSED (gate evidence: #3669 (comment) — the failure-era samples have rolled out of Bencher's 64-run t-test window and the baseline reflects real timings). This PR removes the suppression entry so a confirmed regression on/posts_page: Profiles an issue again.This is a minimal revert:
IGNORED_REGRESSION_BENCHMARKSis emptied, but the general ignore machinery is kept (see decision log below). The issue's original "How to revert" steps are partially stale after #3670/#3810; this follows the updated plan.Closes #3669
Changes
benchmarks/lib/regression_report.rb:IGNORED_REGRESSION_BENCHMARKSis now[].freeze; the /posts_page-specific temporary-suppression comment block is replaced with a short doc of the general-purpose mechanism (exact Bencher name matching, pre-rerun short-circuit, tracking-issue requirement for any future entry).IGNORED_REGRESSION_BENCHMARKS.first(regression_report_spec, plan_confirmation_spec, and the confirmation-outcome example in track_benchmarks_spec) nowstub_consta sample entry ("/ignored: Pro") so they keep pinning the machinery against the now-empty production list. No coverage was deleted."/posts_page: Pro"remains in track_benchmarks_spec only as an inert fixture name in report-parsing examples.Validation
bundle exec rspec benchmarks/spec/regression_report_spec.rb benchmarks/spec/plan_confirmation_spec.rb benchmarks/spec/track_benchmarks_spec.rb(root bundle) → 63 examples, 0 failures(cd react_on_rails && BUNDLE_GEMFILE=../Gemfile bundle exec rubocop)→ 214 files, no offensesBUNDLE_GEMFILE=Gemfile bundle exec rubocop benchmarks/→ 36 files, no offensesscript/ci-changes-detector origin/main→ Benchmark scripts; recommended job: Lint (Ruby + JS)git grep "3669"/git grep "posts_page: Pro"→ no live suppression references remain (fixture-only uses kept)Labels: none — this changes benchmark regression-reporting tooling only, fully validated by its specs; it is not a performance-sensitive runtime path, and a benchmark run would not exercise the suppression branch (it only activates when a Bencher alert fires on a main push).
Codex Decision Log
ignored_benchmark?,actionable_alerts,actionable_benchmarks, and plan_confirmation.rb'sfully_ignored?/suppressed handling. Why: Confirm benchmark regressions on a fresh runner before filing the main issue #3810 made the ignore list load-bearing general plumbing in the confirmation gate; full machinery removal is out of scope for Revert the temporary/posts_page: Proregression-issue suppression #3669. Maintainers may revisit whether the machinery should be removed entirely if no new suppression is ever needed.stub_constinstead of deleted: the examples previously sampled the live list (.first), which is now empty. StubbingRegressionReport::IGNORED_REGRESSION_BENCHMARKSkeeps the machinery pinned independent of production contents. Note: track_benchmarks_spec.rb line 332 also sampled the live list (the issue's plan assumed it was fixture-only — stale), so it got the same conversion to avoid a nil-driven false:confirmedoutcome.🤖 Generated with Claude Code
Note
Low Risk
Benchmark CI reporting tooling only; no runtime app behavior, and specs still cover the ignore path via stubs.
Overview
Reverts the temporary
/posts_page: Proregression-issue suppression (#3669):IGNORED_REGRESSION_BENCHMARKSis now[], so confirmed regressions on that benchmark can open issues again. The long/posts_page-specific comment is replaced with a short description of the general ignore mechanism (exact Bencher names, pre-rerun short-circuit, tracking issue required for future entries).Specs that previously used
IGNORED_REGRESSION_BENCHMARKS.firstnowstub_consta sample"/ignored: Pro"so ignore-list behavior stays covered while production has no active suppressions.Reviewed by Cursor Bugbot for commit a79526d. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
Agent Merge Confidence
Mode: accelerated-rc
Score: 9/10
Auto-merge recommendation: yes
Affected areas: benchmarks regression-reporting tooling (no runtime/perf surface)
CI detector:
script/ci-changes-detector origin/main-> Benchmark scripts; recommended job: Lint (Ruby + JS)Validation run:
bundle exec rspec benchmarks/spec/regression_report_spec.rb benchmarks/spec/plan_confirmation_spec.rb benchmarks/spec/track_benchmarks_spec.rb-> 63 examples, 0 failures(cd react_on_rails && BUNDLE_GEMFILE=../Gemfile bundle exec rubocop)-> no offenses;BUNDLE_GEMFILE=Gemfile bundle exec rubocop benchmarks/-> no offensesReview/check gate:
Known residual risk: none — suppression-list removal is fully covered by the updated specs; 1-point deduction for the skipped secondary Codex pass
Finalized by: Claude Code Review check
claude-review(SUCCESS for head a79526d, GitHub Checks API record)