- Add support for the new
xhigheffort level and handlemaxexplicitly - Redesign effort indicator glyphs to a 5-step circle family (
◌ ○ ◎ ◉ ●) for consistent cell width across fonts - Extend test coverage with per-level glyph and pipe alignment assertions
- Avoid rewriting the quota cache when the live stdin snapshot is unchanged
- Keep quota cache hardening intact for symlinked or unreadable cache files while preserving atomic rewrite fallback
- Simplify test helpers and add regression coverage for symlinked and unreadable quota cache files on the live path
- Reuse the last known stdin quota snapshot when
rate_limitsis absent, as long as both cached reset times are still in the future - Ignore invalid, expired, or partial-live quota snapshots instead of overwriting a previously good cache
- Remove the Anthropic Usage API fallback, quota tracking now reads only from stdin
rate_limits - Quota tracking now requires Claude Code
2.1.80+; whenrate_limitsis absent, claude-pace shows--for quota and may still show session cost
- API fallback can now be disabled: set
CLAUDE_PACE_API_FALLBACK=0to turn off usage polling for CC <2.1.80 - Fix git cache key collision: paths like
/foo-barand/foo/barno longer share a cache file (now uses SHA-1 hash) - Old-style git cache files (path-based names like
claude-sl-git-_Users_*) are orphaned; safe to delete from your cache directory ($XDG_RUNTIME_DIR/claude-pace/or~/.cache/claude-pace/)
- Fix OAuth token exposure in Usage API fallback: avoid leaking bearer token in curl argv / process listings
- Reject malformed tokens containing CR/LF before invoking curl
- Harden cache handling: move from shared
/tmpto private per-user directory ($XDG_RUNTIME_DIR/claude-paceor~/.cache/claude-pace, mode 700) - Validate all cache-read fields before arithmetic evaluation
- Switch cache delimiter from
|to ASCII Unit Separator (branch names with|no longer corrupt parsing) - Disable caching entirely when no safe cache directory is available
- Rename project from claude-lens to claude-pace
- Add
npx claude-paceone-step installer - Add plugin marketplace support
- Fix
((var++))unsafe underset -e(exit status 1 when variable is 0)
- Remove ±5% silent zone for pace delta (any non-zero delta now visible)
- Display usage as used% instead of remaining% (lower = better)
- Use ⇡/⇣ arrows for pace delta (⇡ = overspend, ⇣ = surplus)
- Invert pace delta sign to match intuitive convention
- Symmetric single-pipe alignment redesign (~270 lines)
- Add performance metrics to comparison table
- Remove session duration display
- Merge formatting functions (
_uf/_pace/_rc) into single_usage - Restore extra usage display when actual spending exists
- Fix 7d reset countdown always showing
- Use stdin
rate_limitsfor real-time usage (no network calls on CC >= 2.1.80) - Add plugin marketplace support for one-command install
- Fix
jq null|floorcrash on jq 1.7.1
- Show reset countdown for usage windows
- Fix cache degradation: preserve good data on API failure
- Full rewrite (962 lines to 142)
- Remaining% display, pace delta, conditional cost display