mirror of
https://github.com/tiennm99/claude-code-usage-bubble.git
synced 2026-09-04 20:17:45 +00:00
feat: clean-room rewrite — replace ported modules with original implementations
Every Rust module under src/ that previously contained upstream-derivative
code has been replaced by a from-scratch implementation:
diag/ log + simplelog file appender (was: diagnose.rs)
os/ color, dpi, registry, string, theme (was: theme.rs, native_interop.rs)
net/ WinHTTP-based HTTP client (was: ureq + native-tls)
i18n/ TOML-embedded locale tables (was: localization/*.rs)
usage/ trait UsageProvider + ClaudeProvider + ChatGptProvider + refresh
orchestrator + registry (was: poller.rs, models.rs)
creds/ trait CredentialSource + local/WSL/Codex impls (was: poller.rs)
tray/ stateless tray manager + tiny-skia anti-aliased badge renderer
(was: tray_icon.rs)
update/ release fetch + inline cmd /c handoff installer
(was: updater.rs's helper-exe pattern)
Application files (app.rs, bubble.rs, panel.rs, settings.rs) migrated to
the new modules. main.rs declares only the new modules.
NOTICE deleted; LICENSE is plain Apache-2.0; README updated to credit
inspiration rather than claim derivation. Cargo.toml drops ureq + native-tls
+ winres in favour of log + simplelog + thiserror + toml + tiny-skia +
embed-resource. Build script swapped to embed-resource via res/icon.rc.
External contracts preserved unchanged: Anthropic + ChatGPT endpoints and
headers, ~/.claude/.credentials.json + Codex auth.json paths, WSL bridging
via wsl.exe, CLI-driven token refresh, GitHub Releases JSON shape, Windows
registry path for startup, single-instance mutex name.
Phase docs: plans/260516-0707-cleanroom-rewrite/.
This commit is contained in:
@@ -11,20 +11,16 @@ Drop it anywhere on screen, drag it around, snap it to a monitor edge,
|
||||
left-click for a panel with both your 5-hour and 7-day windows, right-click
|
||||
for the menu.
|
||||
|
||||
## Differences vs upstream
|
||||
## Acknowledgements
|
||||
|
||||
This project is a derivative of
|
||||
[CodeZeno/Claude-Code-Usage-Monitor](https://github.com/CodeZeno/Claude-Code-Usage-Monitor)
|
||||
(MIT, © 2026 Code Zeno Pty Ltd). The usage-polling, updater, tray-icon,
|
||||
localization, theme-detection, and diagnostic modules are ported from that
|
||||
codebase with minor adaptations.
|
||||
|
||||
The original app embeds a horizontal widget directly into the Windows
|
||||
taskbar. This fork replaces that UI with a **floating circular bubble that
|
||||
the user can drag anywhere on screen**, plus an on-demand expanded panel.
|
||||
Everything else (credential reading, OAuth refresh via the Claude/Codex
|
||||
CLI, WSL credential support, GitHub self-update, eight languages) behaves
|
||||
the same.
|
||||
Inspired by [CodeZeno/Claude-Code-Usage-Monitor](https://github.com/CodeZeno/Claude-Code-Usage-Monitor),
|
||||
which solves the same "how close am I to the Claude Code limit?" problem
|
||||
with a horizontal taskbar widget. This project takes the UX in a different
|
||||
direction — a floating, draggable circular bubble that the user can place
|
||||
anywhere on screen — and is a clean-room implementation: the HTTP client,
|
||||
provider polling, credential discovery, localisation, tray rendering, and
|
||||
self-updater are all written from scratch against the same public APIs
|
||||
(Anthropic, ChatGPT, GitHub Releases).
|
||||
|
||||
## What you get
|
||||
|
||||
@@ -141,7 +137,4 @@ your Codex `auth.json` directly.
|
||||
|
||||
## License
|
||||
|
||||
Apache License 2.0 — see [LICENSE](LICENSE). This project is a derivative of
|
||||
[CodeZeno/Claude-Code-Usage-Monitor](https://github.com/CodeZeno/Claude-Code-Usage-Monitor)
|
||||
(MIT). Upstream attribution and the original MIT terms for the ported portions
|
||||
are recorded in [NOTICE](NOTICE).
|
||||
Apache License 2.0 — see [LICENSE](LICENSE).
|
||||
|
||||
Reference in New Issue
Block a user