revert(account): drop the "make main" consequence notes entirely - #175
Conversation
Sweep item #6 put one paragraph per non-main character under the crew manifest, explaining what pressing "make main" would do to the account's tier. But `previewMainChange` has only three outcomes, so the text has only three possible values — on a real 13-character account it rendered as thirteen paragraphs, eleven of them byte-identical after the name prefix. The comment claiming "up to nine of them can apply at once" understated it; the real ceiling is the crew size. Collapsing the duplicates was the obvious fix and the wrong one. The sentence is noise on a row nobody is acting on: it describes a hypothetical press of a button the member is not pressing, on a character that is not their main, and it landed directly on top of three rounds of density work (#169, #173, #174) whose whole point was reclaiming fold space. So the feature comes out rather than getting reformatted — including the per-page `getMainChangeContext` query that only ever backed it, which takes /account's parallel read burst from four connections back to three, and `previewMainChange` in core, whose only consumer this was. `decideTier`, which the membership job actually runs on, is untouched. The e2e assertion that scoped to the removed `.table-notes` container would have passed vacuously afterwards; it now counts the contact-remedy element directly.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 47 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
Comment |
Reported from a real 13-character account: the crew manifest was followed by a wall of near-identical prose.
previewMainChangehas three outcomes, so the sentence has three possible values — but the page emitted one paragraph per non-main character. The code comment claiming "up to nine of them can apply at once" understated the ceiling, which is really the crew size.Collapsing the duplicates into three grouped paragraphs was the obvious fix and the wrong one. The sentence is noise regardless of how it is formatted: it describes a hypothetical press of a button the member is not pressing, on a character that is not their main. It also landed directly on top of three consecutive density rounds (#169, #173, #174) whose entire purpose was reclaiming fold space.
What is removed
src/app/account/page.tsx— themainChangeNotesderivation, the.table-notesrender block,mainChangeNoteId, and the per-buttonaria-describedby. Thearia-label("make main") is untouched, so the control keeps its accessible name.src/services/accounts.ts—getMainChangeContext, the page-load query that only ever backed this. /account's parallel read burst goes from four concurrent connections back to three, against a pool ofmax = 5.src/core/tier.ts—previewMainChangeandMainChangePreview.decideTieris untouched — that is the rule the membership job actually runs on.src/app/globals.css— the.table-notescontainer rules, now dead..table-note(singular) stays; the contact-remedy sub-row still uses it.One test change worth a look
e2e/account.spec.tsasserted.table-notes [id^="contact-remedy-"]has count 0. With.table-notesgone that passes vacuously — a false-positive trap. It now counts the remedy element directly.Verification
npm run format:checkAll matched files use Prettier code style!npm run lintnpm run typechecknpm testTest Files 83 passed (83)/Tests 1281 passed (1281)npx playwright test e2e/account.spec.ts52 passed (3.0m)code-reviewerreviewed the diff: no findings. No migration, no persisted data, no secret handling, no worker path touched — this is a pure subtraction.