Remove line attribution

Commit

Sophyesterday

Line attribution compared the shadow-branch tree with HEAD and the attribution base commit at every commit, recorded per-prompt user edits at turn start (PromptAttributions), and backfilled a combined attribution onto each checkpoint after PostCommit. It needed the shadow tree as its input, cost a tree diff per session per commit, and its divergence bookkeeping (AttributionBaseCommit, DivergenceNoticeShown, RealignAttributionBase) leaked into migration, rewrite remapping, and status output.

Condensation no longer computes or writes attribution: the CheckpointAttribution write request, WriteOptions.Attribution, and PromptAttributionsJSON are gone from every store, and session state no longer carries the attribution fields. State files written by older CLIs still load (encoding/json ignores the unknown keys) and drop them on the next save. Checkpoints that already carry attribution keep it, and entire blame still reads it; CombinedAttribution stays on WriteOptions so migration can carry an existing checkpoint's value through.

Addresses #2653.

Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com Entire-Checkpoint: 01M49BR3SC6QC8V6TZTVGAG7C3

Checkpoints

Remove Shadow Branches and Attribution

Claude CodeOpus 5.5
View session
Checkpoint 1