fix(desktop): generic monthly-limit popup copy for menu-bar trigger#7533
Conversation
The menu-bar Screen Capture / Audio Recording toggles in OmiApp.swift post showUsageLimitPopup with reason "trial_expired", which fell to the default branch in UsageLimitPopupView and returned the same copy as the transcription-cap case: "Upgrade to make sure your new recordings aren't lost." That phrasing reads as a data-loss threat. For users tripping a stale desktop_isPaywalled flag (now self-healed at launch by #7517) while also at their Neo chat cap, listening was never actually paywalled server-side; the wording made them think their recordings were at risk when only the chat cap was hit. Switch the default branch to plan-agnostic copy: "Upgrade to keep using Omi without restrictions." The transcription-specific case is unchanged (real transcription cap → recordings copy is accurate).
Greptile SummaryFixes misleading "recordings aren't lost" copy shown on the monthly-limit popup when the menu-bar Screen Capture or Audio Recording toggle triggers it with
Confidence Score: 4/5Safe to merge — the Swift change is a one-line copy update in a switch default branch with no logic impact. The Swift change is minimal and correct: the transcription and chat/floating_bar cases are untouched, and the new default copy is accurate for trial_expired and any future unknown reason. The unrelated changelog entry has no corresponding code change in this diff. desktop/CHANGELOG.json — contains an entry for a conversation-title fix that is not reflected in any changed code in this PR. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[showUsageLimitPopup called] --> B{reason}
B -- transcription --> C["Recordings copy"]
B -- chat / floating_bar --> D["Chatting copy"]
B -- trial_expired or other --> E["Generic copy (fixed)"]
E:::changed
classDef changed fill:#d4edda,stroke:#28a745
|
| "Fixed editing a conversation title not saving", | ||
| "Fixed misleading \"recordings aren't lost\" copy on the monthly-limit popup when the menu-bar Screen Capture or Audio Recording toggle was the trigger" |
There was a problem hiding this comment.
Unrelated changelog entry bundled into this PR
"Fixed editing a conversation title not saving" has no corresponding code change anywhere in this diff — the only Swift file touched is UsageLimitPopupView.swift. If this fix lives in a separate commit or branch, it would be more accurate to land it there so the changelog entry stays paired with the actual change. As-is, the release notes will attribute a fix to this PR that users can't trace back to a specific diff.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Summary
OmiApp.swift:1033, 1070postshowUsageLimitPopupwithreason: "trial_expired". That string fell through to thedefaultbranch ofUsageLimitPopupView.body_textand returned the same copy as the transcription-cap case: "Upgrade to make sure your new recordings aren't lost."desktop_isPaywalledflag (now self-healed at launch by desktop: clear sticky paywalled flag on launch for paid-plan users (follow-up to #7514) #7517) while also at their Neo chat cap, listening was never actually paywalled server-side — but the copy made them believe their recordings were at risk.defaultbranch to plan-agnostic copy: "Upgrade to keep using Omi without restrictions." The explicit"transcription"case is unchanged (real transcription-cap → recordings copy is accurate).Why now
Surfaced while investigating the same Neo grandfathered cohort #7517 fixed at launch. Several users on legacy Unlimited / Neo plans were seeing the recordings-loss copy on the menu-bar toggle path while their backend state correctly reported
trial_expired=falseandchat_quota_allowed=true. After #7517 self-heals the stale flag on next launch, this popup should no longer fire for them in normal flow — but the copy bug also affects any legitimate"trial_expired"paywall (basic trial expired with no BYOK), where the same data-loss framing is inaccurate.Test plan
isPaywalled=true→ popup body reads "Upgrade to keep using Omi without restrictions."🤖 Generated with Claude Code