Commit Graph

12 Commits

Author SHA1 Message Date
calic
2cb89d3c54 Fix Cloudflare headless detection: use non-headless with hidden window
All checks were successful
Release / build (push) Successful in 1m37s
Cloudflare detects headless Chrome and loops the JS challenge forever.
Switch to non-headless mode with an off-screen window. Also save
Cloudflare cookies (cf_clearance, __cf_bm) after Chrome fallback so
subsequent plain HTTP requests can reuse them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.5.1
2026-03-21 00:26:34 +01:00
calic
ba3b73c3dd Add Cloudflare 403 fallback via headless Chrome
All checks were successful
Release / build (push) Successful in 1m40s
Plain HTTP requests to claude.ai get blocked by Cloudflare JS challenges
(403). The fetcher now falls back to headless Chrome using the persistent
browser profile, which can solve challenges natively and reuses existing
cf_clearance cookies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.5.0
2026-03-21 00:13:21 +01:00
Axel Meyer
47165ce02c Remove standalone fetcher, add setup tool with install/uninstall workflow
All checks were successful
Release / build (push) Successful in 1m45s
Drop claude-fetcher binary and cron job — the widget's built-in
BackgroundFetcher is the sole fetcher now. Add cmd/setup with cross-platform
install and uninstall (--uninstall): kills widget, removes binaries + autostart,
cleans Claude Code statusline setting, optionally removes config dir.

Also includes: browser-based login (chromedp), ICO wrapper for Windows tray
icon, and reduced icon size (64px).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.4.0
2026-02-26 19:11:08 +01:00
Axel Meyer
5b0366f16b Fix CI: remove golang container, install Go in-step
All checks were successful
Release / build (push) Successful in 1m25s
The golang:1.23 container image lacks Node.js, causing
actions/checkout@v4 to fail. Use the default runner image
(which has Node) and install Go manually.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.3.0
2026-02-26 15:28:52 +00:00
Axel Meyer
7f17a40b7c Rewrite in Go: static binaries, zero runtime dependencies
Some checks failed
Release / build (push) Failing after 21s
Replace Node.js + Python codebase with three Go binaries:
- claude-statusline: CLI status bar for Claude Code
- claude-fetcher: standalone cron job for API usage
- claude-widget: system tray icon (fyne-io/systray + fogleman/gg)

All CGO-free for trivial cross-compilation. Add nfpm .deb packaging
with autostart and cron. CI pipeline produces Linux + Windows binaries,
.deb, .tar.gz, and .zip release assets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:27:10 +00:00
Axel Meyer
59afabd65a Polish README with badges and mermaid diagrams, add release infrastructure
All checks were successful
Release / release (push) Successful in 5s
Rewrite README with centered header, shields.io badges, mermaid topology
and session key diagrams, restructured installation section with Windows
quick start guide, and release documentation.

Add CHANGELOG.md for v0.2.0 and Gitea Actions release workflow that
builds source archives (tar.gz + zip) and publishes them on tag push.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.2.0 v0.2.1
2026-02-26 15:03:31 +01:00
Axel Meyer
688b6a75f7 Improve tray icon visibility: Claude orange, full opacity, larger size
Starburst was nearly invisible at tray icon size due to white color at
50% alpha on a 128px canvas. Now renders in Claude brand orange (#E07B53)
at full opacity on a 256px canvas with proportionally scaled geometry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 14:30:40 +01:00
Axel Meyer
6a1b4bd022 Add desktop tray widget + installer wizard
- Desktop widget (Python/pystray): system tray icon showing 5h usage as
  circular progress bar with Claude starburst logo, 10-step green-to-red
  color scale, right-click menu with usage stats and configuration
- Shared cache: both widget and CLI statusline read/write the same
  /tmp/claude_usage.json — only one fetcher needs to run
- Installer wizard (install_wizard.py): interactive cross-platform setup
  with component selection, session key prompt, cron/autostart config
- OS wrappers: install.sh (Linux/macOS) and install.ps1 (Windows) find
  Python 3.9+ and launch the wizard
- README with topology diagram, usage docs, and configuration reference

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:54:32 +00:00
Axel Meyer
f308a8105e Fix block comment syntax error from cron example
The */5 in the cron example inside the JSDoc block comment was parsed
as end-of-comment, causing a SyntaxError. Replaced with a reference
to install.sh.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 15:54:30 +00:00
Axel Meyer
7b75630e67 Show session expiry warning in statusline
When the fetcher gets a 401/403, it writes an error state to the cache
file instead of silently failing. The statusline reads this and shows
"Token: session expired — refresh cookie" so the user knows to re-extract
the sessionKey cookie from claude.ai.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 15:49:39 +00:00
Axel Meyer
d152dde002 Fix CRLF line endings, harden install.sh
- Add .gitattributes enforcing LF line endings
- Renormalize all files from CRLF to LF
- Replace fragile sed-based JSON manipulation with node -e
- Add Node.js 18+ version check (required for built-in fetch)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 15:28:34 +00:00
Axel Meyer
ddd3b6d637 Initial commit: standalone Claude Code statusline
Headless-friendly statusline with context window bar and optional
token usage fetcher (cron-based, no browser needed).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:23:40 +00:00