Fixes the recurring 'Your local changes to Cargo.toml would be overwritten'
error on Windows pulls. Git-for-Windows defaults to core.autocrlf=true,
which made every text file appear modified vs the LF-stored versions.
'* text=auto eol=lf' in .gitattributes overrides autocrlf and forces a
stable LF checkout.
Also ignores Square*Logo.png, android/, ios/, 64x64.png, icon.png — these
are produced by 'pnpm tauri icon' but we ship only the canonical 5 files
(32, 128, 128@2x, .ico, .icns).
paths::quiet_command sets CREATE_NO_WINDOW (0x08000000) on Windows so
short-lived child processes (wsl.exe -l -q, where claude, wsl.exe -d X
bash -lc 'command -v claude') don't briefly allocate a real console
window and flash on click. Used by both paths.rs and cli_usage.rs.
Solves the 'lost window' problem — if the widget gets dragged off-screen
or hidden behind other apps, users can recover it via the tray.
Enables tauri 'tray-icon' feature; tray runs entirely Rust-side so no
new JS capabilities needed.
- cli_usage::default_command now enumerates WSL distros and probes each for
claude before falling back; no more hardcoded -d Ubuntu.
- New autodetect_claude_command Tauri command + IPC binding so the UI knows
whether claude is reachable.
- App.svelte: clear 'Claude Code not found' empty state with install link.
- Real icons: scripts/make-icon.py generates a 1024x1024 source.png; runtime
produces 32/128/256 PNGs and a multi-resolution .ico. README in icons/
explains how to regen.
- README rewritten for friends: install / requirements / troubleshooting on
top; build-from-source moved to bottom.
#app has width:100vw and a 1px border with default content-box box-sizing,
so its rendered size is 100vw+2px which overflowed body → unwanted scrollbars.
tauri.conf: resizable=true, min 220x240, default 300x320.
BlockRing: SVG scales via viewBox, claims remaining vertical space.
#app uses flex column with sections flex:0 0 auto — content reflows when window resized.
Bumped --bg opacity from 0.78 to 0.93 so files behind the widget don't bleed through.
Themed scrollbars subtle when they do appear.
The widget now spawns 'claude' via portable-pty, sends /usage, parses the
three rendered bars (Current session / Current week all / Current week
Sonnet), and shows the real percentages in the ring + weekly bars. A
background task refreshes every 5 minutes; the title-bar refresh button
forces an immediate fetch.
Drops the cap-tuning UI and tier card from Settings; adds a 'claude command'
override (e.g. 'wsl.exe -- claude' for Windows-host widgets reading WSL
credentials) and a refresh-interval setting. Fixes title-bar buttons getting
swallowed as drag attempts via data-tauri-drag-region="false".