Reword the README line and the draw_usage_bar comment so green and red
describe what they mean for the user — green is headroom to ramp up,
red is a trajectory to exhaust the quota before it resets — rather than
the bare "ahead of / behind pace".
"Show pace indicator" becomes a submenu whose Off, Tick, and Solid items
form a radio group. The parent entry shows a check while a style is
active; selecting Off clears it and turns the indicator off. This
replaces the separate "Show pace indicator" checkbox and "Pace indicator
style" submenu with a single settings entry.
Adds an opt-in pace indicator that marks where usage should be if it
were spread evenly across the window, so the bar shows whether the
current burn rate is ahead of or behind pace.
The expected position is derived from each section's resets_at
timestamp and the fixed window length (5h or 7d). It is drawn red when
actual usage is ahead of pace and green when behind, in one of two
styles:
- Tick: a thin vertical bar at the expected-pace position.
- Solid: a filled band spanning the gap between actual usage and the
expected-pace position.
Two right-click Settings controls drive it: a 'Show pace indicator'
checkbox (off by default) and a 'Pace indicator style' submenu with
Tick and Solid options (Solid by default). Both persist to
settings.json via #[serde(default)] fields so existing files migrate
cleanly. The indicator is drawn inside the existing bar segments, so
the widget width is unchanged.
Adds the pace indicator strings to the Strings struct and provides
translations for all eight supported locales: the show_pace_indicator
menu item, the pace_indicator_style submenu label, and the Tick and
Solid style names. The strings are wired into the renderer and the
right-click menu in the following commit.
- Add Brazilian Portuguese (pt-BR) localization
- Thanks to @caduaraxa for the contribution in PR #29
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The PR added the translation file only; register it in the
localization module (enum, codes, native name, string lookups,
pt locale detection) and add the context menu entry and command
handler. Also trim trailing whitespace and align field order
with the other language files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The PR added IDM_LANG_RUSSIAN to the context menu but not to the
WM_COMMAND handler, so selecting it did nothing. Also reorder
second_suffix to match the Strings field order used by the other
language files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix: pause usage polling on auth errors
- Show the same auth warning state for expired, invalid, or missing credentials
- Replace the widget auth text with a warning symbol and updated the toast notification
- Stop usage polling and countdown timers while auth is required
- Reuse the configured poll interval to watch credential file metadata instead of polling the API
- Auto-recover when credentials change, while still supporting manual refresh and restart flows
Updated translations
- Add `show_widget` field to Strings struct and all 6 language files
- Replace hardcoded "Show Widget" in window.rs with strings.show_widget
- Translate session_window ("5시간") and weekly_window ("7일") for Korean
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Korean language support with full UI translations including
menu items, update messages, and time format suffixes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Added a native system tray icon that shows current 5-hour usage as a percentage badge.
- Added tray icon tooltip support showing both 5h and 7d countdown/usage values.
- Added tray icon interactions: left-click toggles the taskbar widget, right-click opens the context menu.
- Anchored widget to the bottom of the taskbar
- Added embedded app icon loading so tray fallback uses the app's own icon.
- Updated countdown timer logic to stop cases where 61m is shown
- Updated README.md
- Added a native system tray icon with a live usage badge for the current 5-hour window.
- Left-clicking the tray icon now toggles the taskbar widget on and off.
- Right-click tray menu support now mirrors the widget menu, including refresh, startup, position reset, language, updates, and exit.
- The app now remembers whether the taskbar widget was hidden or visible between launches.
- Improved Windows app identity by using the proper app name and embedded icon metadata in shell surfaces.
- Refined tray icon styling and usage-state colouring for clearer at-a-glance monitoring.
wsl.exe -l -q can hang indefinitely on some systems (e.g. WSL
installed but not fully configured), which blocks the poll thread
forever and prevents any usage data from loading.
Adds a run_with_timeout helper (5s deadline) and uses it for both
list_wsl_distros and read_wsl_credentials. The refresh paths
already had timeouts — these two were missed.