Every session refresh calls refreshRepo, which runs git status in the session folder (bin/devdeskcmd_repo):
git status rewrites .git/index under index.lock, so Claude's own git commands hit intermittent index.lock exists errors.
-c safe.directory='*' also re-enables core.fsmonitor execution in repos owned by other users.
Fix: use git --no-optional-locks, drop the safe.directory='*' override, and refresh repo status on bell or every 60s instead of every list refresh.
_Source: engineering review, 2026-10-07._
Every session refresh calls `refreshRepo`, which runs `git status` in the session folder (`bin/devdesk` `cmd_repo`):
- `git status` rewrites `.git/index` under `index.lock`, so Claude's own git commands hit intermittent `index.lock exists` errors.
- `-c safe.directory='*'` also re-enables `core.fsmonitor` execution in repos owned by other users.
**Fix:** use `git --no-optional-locks`, drop the `safe.directory='*'` override, and refresh repo status on bell or every 60s instead of every list refresh.
jared
added this to the v0.5.0 hardening + header/phone milestone 2026-10-07 20:04:26 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Source: engineering review, 2026-10-07.
Every session refresh calls
refreshRepo, which runsgit statusin the session folder (bin/devdeskcmd_repo):git statusrewrites.git/indexunderindex.lock, so Claude's own git commands hit intermittentindex.lock existserrors.-c safe.directory='*'also re-enablescore.fsmonitorexecution in repos owned by other users.Fix: use
git --no-optional-locks, drop thesafe.directory='*'override, and refresh repo status on bell or every 60s instead of every list refresh.