fix(copy): one description of the measuring wait (chat#1912 row 10) - #1920
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughThe change centralizes catalog-measurement copy and reuses it across the onboarding panel, empty report state, and Spotify artist valuation toasts. ChangesCatalog Measurement Copy
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✨ 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 |
There was a problem hiding this comment.
All reported issues were addressed across 5 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
The minute between seeding a catalog and its measurements landing was described three different ways in chat, with three different estimates: the /setup/artists toast said "Valuing X's catalog…", MeasuringCatalogPanel said "a minute", and the catalog report said "about a minute". The estimate a customer got depended on which surface they were looking at. Adds lib/catalog/measuringCopy.ts as the single source and points all three at it. The toast now uses the same verb as the pages. Each surface keeps its own contextual sentence (the report's "no need to run the valuation again", the setup panel's "your baseline value appears here"), but none restates the estimate. Marketing keeps its own copy of the strings since it deploys separately; the matching change is in that repo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Review (cubic P3): the test named "uses the same verb in the seeding toast as on the pages" asserted MEASURING_TOAST_SUCCESS.length > 0, which cannot fail and does not check the verb. Derives the verb from MEASURING_TITLE so the assertion fails if either side drifts, and moves the toast outcome strings into their own case. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
cbe6de2 to
4b68134
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (1)
lib/catalog/measuringCopy.ts (1)
24-25: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winUse a verb-oriented name for the toast formatter.
measuringToastLoadingis callable but reads like a value. Rename it toformatMeasuringToastLoadingand updatehooks/useAddSpotifyArtist.tsso the exported API is self-documenting. As per coding guidelines, functions should use precise verb-based names.Proposed rename
-export const measuringToastLoading = (artistName: string) => +export const formatMeasuringToastLoading = (artistName: string) =>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@lib/catalog/measuringCopy.ts` around lines 24 - 25, Rename the toast formatter measuringToastLoading to formatMeasuringToastLoading in lib/catalog/measuringCopy.ts, and update all imports and calls in hooks/useAddSpotifyArtist.ts to use the new verb-oriented name while preserving the existing message and exported API behavior.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@lib/catalog/measuringCopy.ts`:
- Around line 24-25: Rename the toast formatter measuringToastLoading to
formatMeasuringToastLoading in lib/catalog/measuringCopy.ts, and update all
imports and calls in hooks/useAddSpotifyArtist.ts to use the new verb-oriented
name while preserving the existing message and exported API behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: df8003c2-ca01-4477-b52b-cb25096df1ce
⛔ Files ignored due to path filters (1)
lib/catalog/__tests__/measuringCopy.test.tsis excluded by!**/*.test.*and included bylib/**
📒 Files selected for processing (4)
components/Onboarding/MeasuringCatalogPanel.tsxhooks/useAddSpotifyArtist.tslib/catalog/getCatalogReportEmptyCopy.tslib/catalog/measuringCopy.ts
Preview verification — 2026-07-31Preview https://chat-n2t2h0qh6-recoup.vercel.app, built from head Results
Row 3 is the strongest evidence here. A copy change is easy to "verify" by finding the new string somewhere; the useful question is whether the old strings can still reach a user. They are absent from every script this route loads, so no surface in this build is able to render them. What I did not observe, and whyThe The No screenshot of the toast. I captured its text from the DOM at the moment it appeared, but the screenshot fired after it auto-dismissed. The assertion above is on the captured string, not on an image — flagging that rather than posting a picture that does not show the thing. Reviewcubic (P3) caught that the test named "uses the same verb in the seeding toast as on the pages" asserted Full suite 349 passed / 83 files, Marketing half: recoupable/marketing#62, whose test pins the same strings so drift in either repo fails CI in the other. |
Chat half of row 10 in chat#1912. Marketing half: recoupable/marketing#62.
Why
The same minute of waiting was described four different ways, with three different time estimates:
/setup/artistsseeding toastMeasuringCatalogPanel(/setup/valuation)getCatalogReportEmptyCopy(/catalogs/{id})ValuationProgressNone is wrong; they drifted. But the estimate a customer is given now depends on which surface they happen to be looking at, and a signup can see two of them within the same minute — the toast fires on
/setup/artists, then they land on/setup/valuation.What changed
lib/catalog/measuringCopy.tsholds the title, the estimate, the body, and the toast strings. All three chat surfaces read from it.The estimate now says "This usually takes about a minute, and longer for large catalogs" — it absorbs marketing's "a minute or two" caveat, which was the only one of the four that acknowledged catalog size, and that is genuinely true.
The toast also switches verb from "Valuing" to "Measuring" so the background seeding matches what the pages call the same operation.
Each surface keeps its own contextual sentence — the report's "no need to run the valuation again", the setup panel's "your baseline value appears here" — but none restates the estimate. There is a test asserting the estimate appears exactly once in the report's body, since the obvious way to get this wrong is to concatenate two sentences that both mention a minute.
Tests
lib/catalog/__tests__/measuringCopy.test.ts— 5 cases: the estimate is stated once, the report's measuring state uses it, the report keeps its own reassurance without duplicating the estimate, the toast uses the shared verb, and the copy is free of em dashes per house style.Full suite 342 passed / 83 files,
tsc --noEmitandeslintclean. Grepping for the estimate acrosslib/,components/andhooks/now returns exactly one definition.Verification
This is a copy change with no behavioural effect, so there is nothing to probe on a preview beyond reading the three surfaces. I will walk
/setup/artists→/setup/valuation→/catalogs/{id}on the preview and post the three renderings, so the claim "reads the same everywhere" is shown rather than asserted.🤖 Generated with Claude Code
Summary by cubic
Unified the measuring wait copy across chat surfaces for consistent messaging. All surfaces now share one estimate: “This usually takes about a minute, and longer for large catalogs,” and the toast uses “Measuring.”
lib/catalog/measuringCopy.tsand wired into/setup/valuation,/setup/artiststoast (loading/success/error), and the catalog report.Written for commit 4b68134. Summary will update on new commits.
Summary by CodeRabbit