feat: UX polish, multi-monitor, version-gated hooks (v2.1.0)#12
Merged
Conversation
…olors - Dedup by label+tool+ruleName instead of label only (catches company suggestions with different types but identical display labels) - Diff preview uses softer red (#E57373) and green (#66BB6A) for readability Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Extract TerminalFocusHelper to shared utility (was duplicated in popup) - Terminal button focuses terminal AFTER popup closes via BeginInvoke(Background) - Hook notification click brings matching terminal to foreground (not popover) - SendNotification accepts optional cwd parameter for terminal focus Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CostFetchError field on ClaudeUsage for UI display - Catches 403 specifically with "No permission to access cost data" message - Logs warning instead of silently swallowing all exceptions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Detect Claude Code version via 'claude --version' - Core events (pre-v2.1.37) always installed - ConfigChange (v2.1.49), WorktreeCreate/Remove (v2.1.50), InstructionsLoaded (v2.1.69), PostCompact/Elicitation (v2.1.76) only installed if version supports them - Skipped events logged to console for visibility - Falls back to core events only if version undetectable Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Listen to SettingsChanged event, clear feed and stop tracking instantly when activity feed is disabled (was only updating on refresh timer) - At 100% usage: show "Limit reached" with red dot instead of pace estimate - Hide misleading "~Xm to limit" when already at limit Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Schedule one-shot timer for exact session reset time + 2s buffer - Triggers immediate refresh when usage limit lifts - No more waiting up to 60s for the regular timer to catch the reset Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 30-second timer refreshes "Updated X ago" text in floating panel - "just now" correctly progresses to "30s ago" → "1m ago" etc. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Monitor dropdown in Hooks settings (lists all connected monitors) - PopupStackManager reads selected monitor's work area - DPI-aware coordinate conversion from physical pixels to WPF units - Default: Monitor 1 (Primary) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Highlights
New features
Bug fixes
Refactors
Test plan