Repository navigation
Conversation
duration_short truncated to whole units, so 4d23h read "4d" and 59m40s could not be told from 59m. It now rounds: half steps below 10 h and 10 d (1.5ч, 2.5д), whole units above, minutes clamped to 59 so the next step is "1h", and 23h45m rolls over to "1d". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two UI text assertions followed the system language and failed on non-English Windows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Cap a stored Retry-After cooldown at 15 minutes instead of 24 hours. - A manual refresh sends one real request when the cooldown is older than 60 s; a success clears it. Automatic polls still respect the cooldown. - When the poll succeeds overall but an enabled account failed, retry with the usual backoff (from 30 s, capped at the poll interval, not before the cooldown ends) instead of waiting the full interval; such a retry is not shown as an error. - --diagnose logs each HTTP request as method, host and path with its status (no query or headers). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A partial retry now needs a network error, HTTP 429 or HTTP 5xx. Missing credentials, auth errors and other permanent failures no longer keep the retry running, so the past-reset fast poll stays available for healthy providers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Draw a 1 px tick on each Claude, Codex and Antigravity 5-hour and weekly
gauge in the compact theme at the share of the window that has elapsed
(remaining mode: 100 - elapsed). The engine exposes
{window}.expected / expected_display / expected_available. Settings menu
gets "Show pace" (on by default, display.show_pace binding).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Allow a minute of slack past the window length so poll latency right after a reset does not hide the tick; it sits at 0 instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ssfade Replaces the background 8s / 2s cyclical timer between Antigravity's Gemini and Claude/GPT pools with an interactive, smooth hover crossfade on the taskbar tile. - Show primary pool at rest (Gemini in dual-mode, or the enabled solo pool). - Smoothly crossfade to the secondary pool over 180 ms while hovered. - Continuous time-based animation (CrossfadeAnimation) for fluid 60 FPS transitions. - O(1) cached tile bounds hit-testing in WM_MOUSEMOVE with auto-invalidation on theme reload, DPI change, or provider count updates. - Remove obsolete periodic timer machinery and dual_mode gate leftovers. - Add comprehensive unit tests for dual and single pool crossfade modes.
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 & Vision
This PR reimagines the previous timed 8s / 2s pool alternating feature, evolving it from an automatic background timer into an enhanced, interactive on-demand hover crossfade for the taskbar tile.
Background & Evolution
The original alternating mechanism allowed users to view both Antigravity pools (Gemini and Claude/GPT) by cycling them on an 8-second / 2-second timer.
While this solved the dual-pool visibility goal, experience showed that:
The Reimagined Experience:
Instead of passive cycling, values remain rock-solid and stable at rest. Whenever the user needs to inspect the other pool, hovering the cursor over the Antigravity tile immediately and smoothly reveals it on demand — now working seamlessly for both dual-pool and single-pool setups.
What’s New & Enhanced
On-Demand Hover Crossfade:
Engine & Performance Optimizations:
CrossfadeAnimation): replaces timer-tick-dependent steps with wall-clock interpolation (Instant::elapsed() / duration), ensuring 60 FPS fluidity regardless of Windows timer resolution or system load.antigravity_tile_rect): bounds are cached and reused duringWM_MOUSEMOVE, avoiding expensive recursive layout recalculations on every mouse pixel movement. Automatically invalidated on DPI changes, theme swaps, and provider toggles.WM_TIMERstarvation during active cursor movement.Codebase & Theme Polish:
arm_crossfade_schedule, obsoletedual_modegate leftovers).compact-fluent-quad.json: unified value and pace-tick opacity expressions usingantigravity.<pool>.opacity.Testing & Verification
src/theme_engine/tests.rs).CrossfadeAnimationtiming, completion, and boundary clamps (src/window.rs).cargo test).cargo check).