Sweep 19 Sep 2026 · 02:36Z Build v2.1.278 500 read Stable v2.1.267 Latest v2.1.278 Next v2.1.278 Feeds RSS JSON llms.txt Unofficial
Claude Code v2.1.277 ·

Git snapshot pass gains race detection, pacing, and richer refusal reasons

The git working-tree snapshot process now detects late-arriving edits, paces itself, and explains refusals in more detail

TierUnder the hoodhow much it should matter to you
Useful2my rating, 1 to 5
Signal2worth watching, 1 to 5
AreaGit Internalswhat it touches
KindImprovementsin v2.1.277,
Group of 2 Under the hood

The git working-tree snapshot process now detects late-arriving edits, paces itself, and explains refusals in more detail

What

  • The snapshot builder now takes a passStartedAtMs/notOlderThanNs threshold, and a new sincePassStart flag on changed entries lets it produce a distinct error message when a file was edited right as the snapshot began, instead of mid-read.
  • It also gains stageHooks, budgetMs, and lastDescribed parameters for controlling and describing the pass.
  • --ignore-submodules=dirty is now added to the diff-tree comparison, and previously-verified entries are re-applied via update-index for unstable paths.
  • Refusal results now carry a structured cause, such as { kind: "rules_unreadable" }, { kind: "staged_protected", count }, { kind: "credential_named", count }, or { kind: "committed_protected", count }.
  • Snapshot output now also reports a withheld.unspellable category alongside the existing withheld categories.

Why

This makes it easier to tell what happened during a git snapshot: whether a file changed too close to when the snapshot started to be captured reliably, and exactly why any files were withheld or refused, rather than getting a generic failure.

See this entry in the whole of v2.1.277 →