Repository navigation
Statusline only. No change to context-guard or refine-gate.
Changed
- Every file the statusline leaves on disk now lives under
~/.claude/statusline/(#33).
Measured 2026-09-10: 324 entries at the root of~/.claude, 238 of them the
ledger's per-session price caches (statusline-costs.jsonl.main.<uuid>and
.sub.<uuid>), the rest of the runtime spread flat beside them with the
auto-update hook's*.bak.<timestamp>copies. The code (statusline-command.sh,
lib/,costs.sh,transcript.py,pricing.json,README.md) sits at the
top of that directory next to the user'sstatusline-budget.json; everything
written at runtime goes understate/: the ledger ascosts.jsonlwith its
lock and stamp, the per-session caches assessions/<session>.main|.sub
(still expired after 30 days), the telemetry cache astranscript-cache.json,
and backups asbackup/<timestamp>/pruned to the newest three runs.
STATUSLINE_COST_LOGstill relocates the ledger, and its caches now follow
it into asessions/directory beside it;STATUSLINE_STATE_DIRand
STATUSLINE_DIRrelocate the state and the install. The bundle mirrors the
installed layout:assets/statusline-lib/is nowassets/lib/and
assets/statusline-transcript.pyisassets/transcript.py. - One deterministic installer,
install.sh, replaces the prose-driven
install and update paths.install.sh install(what the/statusline
skill runs) andinstall.sh sync(what theSessionStarthook runs) migrate
a flat install once by moving files, not copying them, so the old root files
disappear with their content and timestamps intact; place only the code
files that differ from the bundle; seedstatusline-budget.jsonand
ctxguard-thresholds.jsononly when absent; pointsettings.json
statusLine.commandat~/.claude/statusline/statusline-command.shwhile
preservingpaddingandrefreshInterval; and refuse to rewrite an
unparseablesettings.json.syncis idempotent (an identical install is
left untouched and prints nothing) and does nothing where no statusline is
installed.install.sh verifyreplaces the skill's hand-run checks and
fails on any flat-layout file left at the root. ctxguard-thresholds.jsonstays at~/.claude/ctxguard-thresholds.json:
the context-guard plugin's Stop hook reads that exact path, and a file with
two readers lives where both find it.costs.sh initwrites its ledger backup underbackup/beside the ledger
instead of a*.bak.*file next to it;costs.sh debugreports the cache
directory and how many per-session caches it holds.