Added
gitStatus.showWorktreeoption to show the linked worktree name after the branch, e.g.git:(feat/x) ⎇ feat-x, read from stdinworkspace.git_worktree(#780).display.usagePaceoption to colour usage windows amber or red, marked▲, when they are on track to run out before they reset (#779).display.skillsMaxVisibleoption to control how many skill names the skills line shows before+N more;0means unlimited, default stays 4 (#739).display.showWeeklyCostoption to show spend since the weekly quota window opened (Week $123.45), from the same ledger asshowDailyCost; subscribers only (#762).display.showDailyCostoption to show today's cumulative spend across sessions (Today $12.34), accumulated from the native stdincost.total_cost_usdinto a per-day ledger that resets at local midnight (#695).display.showCacheHitRateoption to show the session's prompt-cache hit rate asCache hit X%(#741).- Expand a leading
~and${VAR}indisplay.externalUsagePathanddisplay.externalUsageWritePath(#760). display.showModelScopedUsageoption to hide the per-model weekly windows (e.g. Fable) while keeping the 5h/7d windows (#728).
Fixed
- Read
.claude.jsonfrom insideCLAUDE_CONFIG_DIRwhen it is set, as Claude Code does, soshowAuth,showAuthUser, and MCP counts work with a custom config directory (#776). - Refresh the prompt-cache clock when a request starts rather than when its response arrives, ignoring client-side slash command records, interrupt markers, and subagent requests (#719).
- Treat Agent
tool_resultpayloads withisAsyncorstatus: async_launchedas background so the agents line stays up until the task-notification (#734). - Pass
--no-optional-locksongit diff --numstatso a timed-out statusline poll cannot leave.git/index.lockbehind (#726). - Render the prompt-cache clock as
until <time>so the value reads as expiry, not write time (#727). - Price 1-hour prompt-cache writes at 2x input instead of 1.25x in the local cost estimate (#758).
- Show the running session's Claude Code version from stdin, falling back to
claude --version, soCC v…no longer sticks whenclaudeis a wrapper script (#753). - Keep the context cache fresh when Claude Code reports
used_percentage: 0whilecurrent_usagealready holds real tokens, so a later empty frame no longer restores a stale percentage (#743). - Show the latest response's output speed from the API time it added instead of diffing tokens against wall-clock time between renders (#772).
- Launch the Windows + Git Bash statusline through the
cmd.exelauncher so a statusLine shell killed mid-spawn can no longer strand a suspendednode.exe; re-run/claude-hud:setupto pick it up (#748). - Ignore
<synthetic>assistant records when tracking the transcript model (#774). - Show Claude Code's generated
ai-titleas the session name when the session was never renamed (#754). - Decode every C-style escape git uses in quoted porcelain paths (#765).
- Count unmerged (
UU,UA) paths in git file stats (#763). - Translate the elapsed usage-window suffix (#768).
Security
- Exit quietly when the setup command cannot resolve the plugin directory instead of running
dist/index.jsrelative to the current project; re-run/claude-hud:setupto pick it up (#759). - Sanitize session names before display (#754).
- Validate and read config files through a single file descriptor so a file swapped between the checks cannot bypass them (#732).
Dependencies
- Update the development-only
@types/nodepackage from 26.2.0 to 26.6.2 (#775).