mirror of
https://github.com/tiennm99/claude-code-usage-bubble.git
synced 2026-06-06 12:12:29 +00:00
1ef1bfa7b2
- P0: pull blocking HTTPS out from under the global mutex. AppState's http and registry now live behind Arc<Client> and Arc<Mutex<Registry>>; do_poll, attempt_refresh, and version_action's Apply branch clone these out, drop lock_state, then do their I/O. Apply now spawns a worker thread that posts WM_APP_UPDATE_APPLIED back to the message- only window when the cmd handoff is launched, so the UI no longer freezes for the duration of the download. - P1: bubble.rs paint_text_layer saves and restores the DC's previous HFONT before DeleteObject. The old code's DeleteObject on a still- selected HFONT silently failed and leaked one handle per paint frame (up to ~12/s under the ≥95% pulse animation). - P1: replace 5x CreatePopupMenu().unwrap() with let-else early returns that destroy any half-built menus and log. GDI exhaustion no longer panics the UI thread. - P1: at-most-one-in-flight gate (static AtomicBool) on the poll thread so rapid Refresh clicks don't stack concurrent HTTPS calls. - P1: token-expired balloon now picks the title/body for the provider that actually failed, instead of always falling back to Claude when show_claude_code is on. - P1: panel place_near honors SM_XVIRTUALSCREEN / SM_YVIRTUALSCREEN so multi-monitor setups with a secondary display left of the primary no longer mis-clamp the panel position. - P1: COUNTDOWN_TEMPLATE bumped from "999d" to "999시간" — Korean has the widest suffix among shipped locales and was overflowing the countdown column. Bumps version to 0.1.4.
52 lines
1.4 KiB
TOML
52 lines
1.4 KiB
TOML
[package]
|
|
name = "claude-code-usage-bubble"
|
|
version = "0.1.4"
|
|
edition = "2021"
|
|
license = "Apache-2.0"
|
|
description = "Floating bubble showing Claude Code and Codex usage on Windows"
|
|
homepage = "https://github.com/tiennm99/claude-code-usage-bubble"
|
|
repository = "https://github.com/tiennm99/claude-code-usage-bubble"
|
|
|
|
[dependencies]
|
|
# `ureq` + `native-tls` are kept while the legacy `poller.rs` and `updater.rs`
|
|
# modules survive. Phase 4 deletes `poller.rs` and Phase 6 deletes `updater.rs`,
|
|
# at which point these two deps go away in favour of `net::winhttp`.
|
|
ureq = { version = "2", default-features = false, features = ["native-tls", "json", "proxy-from-env"] }
|
|
native-tls = "0.2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
dirs = "6"
|
|
log = "0.4"
|
|
simplelog = "0.12"
|
|
thiserror = "2"
|
|
toml = "0.8"
|
|
tiny-skia = "0.11"
|
|
sha2 = "0.10"
|
|
|
|
[dependencies.windows]
|
|
version = "0.58"
|
|
features = [
|
|
"Win32_Foundation",
|
|
"Win32_Globalization",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_System_LibraryLoader",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
"Win32_System_Registry",
|
|
"Win32_System_Threading",
|
|
"Win32_Security",
|
|
"Win32_UI_HiDpi",
|
|
"Win32_UI_Input_KeyboardAndMouse",
|
|
"Win32_Networking_WinHttp",
|
|
]
|
|
|
|
[build-dependencies]
|
|
embed-resource = "3"
|
|
|
|
[profile.release]
|
|
opt-level = "z"
|
|
lto = true
|
|
strip = true
|
|
codegen-units = 1
|
|
panic = "abort"
|