fix: connection UX redesign, tray icon theme, crash fixes (v2.1.2)#15
Merged
Conversation
… on disconnect - Simplify subscription section to CLI auto-detect only (remove browser/manual session key) - Clearer labels: "Claude.ai Subscription" (% cap) vs "Claude Code API Usage" ($ cost) - Streamlined API setup: org selection auto-fetches users, single Confirm button - Skip subscription fetch for API-only users (only when HasClaudeAI) - Tray icon shows budget % for API-only users instead of empty 0% - Disconnect clears stale data and triggers immediate popover/widget refresh - InvalidateApiCache() bypasses 5-min throttle on disconnect/reconnect - Block scroll wheel on ComboBox to prevent accidental selection changes - Auto-scroll panels into view when org/user picker appears - Move user picker outside SetupPanel so Change User works when connected - Surface user fetch errors in UI instead of silent failure Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Read SystemUsesLightTheme instead of AppsUseLightTheme for tray icons. W11 defaults to light apps + dark taskbar, causing dark gray outlines to be invisible on the dark tray background. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add InvalidateApiCache() before RefreshNow() in subscription disconnect so stale data clears immediately - Remove dead ApiBillingView (tab was already removed from sidebar; PersonalUsageView handles all API billing UI now) - Remove unused ApiBilling property from SettingsViewModel - Make _lastApiFetchTicks thread-safe with Interlocked (was DateTime field accessed from async continuations and InvalidateApiCache) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use HasClaudeAI || HasCliAccount so CLI-synced users (who don't have a ClaudeSessionKey but do have CliCredentialsJSON) still get periodic subscription usage updates. API-only users are still excluded. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tray apps have no MainWindow, causing ArgumentNullException in PresentationSource.FromVisual. Guard with null check and fall back to Win32 GetDpiForSystem() (same approach as TrayIconRenderer). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When rate-limited on first fetch (no usage data yet), the status line showed 'Waiting for usage data...' hiding the actual rate-limit error. Now surfaces LastUpdatedText (e.g. 'Rate limited') when available. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The version bump commit is pushed directly to main (not part of a PR), so looking up PRs for the tag commit always returned empty. Now iterates all commits between previous and current tag to find the associated PR. Falls back to most recent merged PR if no commit match found. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
InvalidateApiCache()SystemUsesLightTheme(taskbar theme) instead ofAppsUseLightTheme(app theme) — fixes invisible icons on dark taskbar with light app modeMainWindowinPopupStackManager.GetDpiScale()— tray apps have no main window, fall back to Win32GetDpiForSystem()HasClaudeAI || HasCliAccount)ApiBillingView(replaced by unifiedPersonalUsageView), thread-safe_lastApiFetchTickswithInterlockedTest plan
dotnet build --configuration Release— 0 warningsdotnet test— 141/141 pass🤖 Generated with Claude Code