Skip to content

fix(desktop): generic monthly-limit popup copy for menu-bar trigger#7533

Draft
mdmohsin7 wants to merge 2 commits into
mainfrom
rex/neo-popup-copy-fix
Draft

fix(desktop): generic monthly-limit popup copy for menu-bar trigger#7533
mdmohsin7 wants to merge 2 commits into
mainfrom
rex/neo-popup-copy-fix

Conversation

@mdmohsin7
Copy link
Copy Markdown
Member

Summary

  • Menu-bar Screen Capture / Audio Recording toggles in OmiApp.swift:1033, 1070 post showUsageLimitPopup with reason: "trial_expired". That string fell through to the default branch of UsageLimitPopupView.body_text 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 the stale desktop_isPaywalled flag (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.
  • Switches the default branch 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=false and chat_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

  • Build via Codemagic (no local Swift toolchain on this CI host)
  • Manual: menu-bar Screen Capture toggle while isPaywalled=true → popup body reads "Upgrade to keep using Omi without restrictions."
  • Manual: hit transcription cap → popup body still reads "…new recordings aren't lost."
  • Manual: hit chat cap → popup body still reads "…keep chatting with Omi without restrictions."

🤖 Generated with Claude Code

mdmohsin7 added 2 commits May 28, 2026 21:18
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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant