Skip to content

v0.2.0 — no lockouts, the account is the identity, the ledger reads as days

Choose a tag to compare

@lroolle lroolle released this 19 Aug 07:37
· 12 commits to main since this release

Why upgrade

If ccpace ever sat on rate limited (429) (retry in 59m) while /usage in Claude Code worked fine, or its 5h-window ledger went blank in a deva container: both are gone.

  • A failed fetch is a badge, not a lockout. Last good numbers stay on screen with (stale 12m · !429); the next poll is the retry. ccpace never writes or gates on statusline's usage.err.
  • The account is the identity, not the directory. The default .credentials.json follows the statusline's own rule (STATUSLINE_ACCOUNTDEVA_AUTH_TAG › root); history is read from every store and partitioned by account uuid — the ledger cannot vanish because of where a sample landed. .credentials.work.json no longer collides with the default account.
  • Watch asks only when the answer can have changed: no Claude Code activity since the last fetch and no reset → no request; r overrides. has_command no longer crashes the loop on Linux; notifications are fenced.
  • --bark reads the bark CLI's env (BARK_KEY/BARK_SERVER/BARK_GROUP/BARK_ICON).
  • The ledger reads as days: ▅▁▂ ▃▅ˍ▃▅ ▃▃▁▂▁ … ▆▆ˍ▂▮▯▯ — day gaps in history, ˍ negligible, ahead; the first window of the week is no longer lost to a jittered resets_at. Same grammar as claude-code-statusline's new week row.
  • DESIGN.md: the language on one page.

Full rationale in CHANGELOG.md. uvx ccpace (PyPI upload follows).