writePersistentCache in src/utils/git.ts writes the git cache as git-<hash>.json.<pid>.<timestamp>.tmp, then renames it over the cache file inside a catch that swallows all errors — the temp file is never deleted when the rename fails.
On Windows the rename fails frequently with EPERM (a virus scanner or sync client holding a handle on the fresh temp file), so every git-widget cache write leaks one uniquely named file. Observed on one machine: 397,647 orphaned .tmp files (~215 MB) in ~/.cache/ccstatusline/git-cache/. Nothing ever cleans them up. On macOS/Linux orphans only appear if the process dies mid-write.
Workaround: delete ~/.cache/ccstatusline/git-cache/ — it regenerates itself.
Fix incoming in a PR.
writePersistentCacheinsrc/utils/git.tswrites the git cache asgit-<hash>.json.<pid>.<timestamp>.tmp, then renames it over the cache file inside a catch that swallows all errors — the temp file is never deleted when the rename fails.On Windows the rename fails frequently with EPERM (a virus scanner or sync client holding a handle on the fresh temp file), so every git-widget cache write leaks one uniquely named file. Observed on one machine: 397,647 orphaned
.tmpfiles (~215 MB) in~/.cache/ccstatusline/git-cache/. Nothing ever cleans them up. On macOS/Linux orphans only appear if the process dies mid-write.Workaround: delete
~/.cache/ccstatusline/git-cache/— it regenerates itself.Fix incoming in a PR.