Repository navigation
Conversation
fix2it
force-pushed
the
feature/antigravity-hover-crossfade
branch
from
October 26, 2026 08:42
d36b0fe to
57b5923
Compare
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>
…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.
… styled o/x markers
…sfade and pace ticks - Claude Code dual profile support (Main and X) with dynamic tile width, styled o/x markers, and warm terracotta color scheme - Antigravity dual pool layout (Row 1 Gemini, Row 2 External) with 5h session and 7d weekly gauges and pace ticks - Unified 300ms hover crossfade animation across all three dual-mode providers with coordinated timer lifecycle - All 64 pace ticks aligned and verified across dark and light themes - Full 14-locale localization for Claude dual-mode menu controls
The OpenCode Console API requires an Authorization: Bearer <token> header and returns HTTP 401 when only the Cookie header is present. - Extract the bare token from auth_cookie (stripping the 'auth=' prefix if present) and send it as Authorization: Bearer alongside the existing Cookie header. - Verified live against the OpenCode Console API: Bearer returns 200 OK with full quota data; Cookie-only returns 401 Unauthorized.
Extend console_request_sends_workspace_context_and_normalizes_auth_cookie to verify that the Authorization: Bearer header carries the correct bare token for all seven cookie-format inputs. Covers the gap identified in code review round 1 (F4-1).
When auth_cookie contains 'auth=; ...' (auth key present but blank value), strip_prefix now returns '' which is RFC 6750-invalid as a Bearer token. Add .filter(|s| !s.is_empty()) so an empty auth= segment is skipped and unwrap_or falls back to the full cookie string instead. Also align the test oracle with the same filter so the assertion for the 'auth=; __Host-console_session=SessionToken' input correctly expects the full raw string as the Bearer value rather than an empty token.
…ailable - Extract bearer_token as Option<&str>: use stripped auth= value if present and non-empty, or fall back to the raw string only if it is a single-segment token without ';'. - Omit the Authorization header entirely when the credential is a multi-segment cookie string lacking an auth= segment, preventing malformed RFC 6750 tokens. - Update mock request test to assert that Authorization header is absent for multi-segment cookies without auth=.
…sertions - Move extract_bearer_token to dedicated module function. - Strictly distinguish OAuth / auth tokens from session cookie assignments: reject prefixes like '__Host-console_session=' and empty 'auth=' from being sent as invalid RFC 6750 Bearer headers. - Strip trailing/leading spaces inside cookie segments (trim). - Update console mock test table with explicit independent expected values (not mirrored logic). - Add dedicated unit tests for extract_bearer_token covering bare tokens, base64 padding, session cookies, and multi-segment variants.
Translate "Lock in taskbar" in 12 locales and the Cursor token-expiry prompts in 10 locales; es.toml, pl.toml, th.toml and tr.toml already had translations. Fix German orthography in de.toml (Fuhren/Offnen/anschliessend). Refresh the RUSTSEC-2026-0192 exception review date to 2026-12-08 in deny.toml and docs/dependency-security.md. Checks: cargo test --locked (629 passed), cargo clippy --locked, ./tests/Test-Dependencies.ps1 (cargo audit + cargo deny), git diff --check. Independent loop-code-review round 1: 10/10, no in-scope findings at levels 1-4.
fix2it
force-pushed
the
feature/antigravity-hover-crossfade
branch
from
November 8, 2026 18:53
6d271d6 to
6edc4f6
Compare
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
This PR brings a comprehensive set of visual and engine enhancements to the Compact Fluent Quad theme and the windowing engine:
o/x) for Claude Code and OpenAI Codex: enables running two accounts concurrently side-by-side in the taskbar with ultra-compact markers.Preview
1. Multi-Account Support (
o/xmarkers)o: Primary account (defaultprofile).x: Secondary account (claude_x/codex_xprofile, or any customconfig_dir/credentials_path).2. Antigravity Dual Pools & Visual Hierarchy
#5EEAD45h,#0D94887d).#98D0E05h,#4A8B9E7d).#D97757for 5h, with darkened#A44525for 7d.3. Asymmetric Hover Crossfade (200 ms)
asymmetric_crossfade_opacities(progress):4. Pace Ticks
5. Architectural & DX Refactoring
CrossfadeAnimation::tick_slot: abstracts frame throttling (15 ms), elapsed time interpolation, and slot completion across all providers.AppState::is_any_crossfade_animatingandstop_crossfade_timer_if_idlecentralize Win32WM_TIMERteardown, preventing timer starvation or premature cancellation.tile_hover_atconsolidates DPI scaling and surface checks into a single state acquisition per mouse move.ProviderAccounts::is_profile_enabledandAppState::is_dual_mode_active.Verification & Test Suite
cargo test).cargo fmt --check.