Follow-up to the snapshot diff command (spec: docs/history/superpowers/2026-06-29-snapshot-list-and-diff-design.md).
The v1 arius snapshot diff is purely structural (Added/Removed/Modified/TimestampChanged from the filetree, zero storage reads). 'Net-new content' was deliberately dropped because, under Merkle pruning, snapshot A's unchanged subtrees are never walked — so 'content absent from A' is not soundly computable. The chunk index answers the different, weaker question 'absent from the whole repository, ever'.
Proposal: add an optional, clearly-labelled summary (NOT a per-path sibling array) of the ContentHashes in the diff's Added ∪ Modified sets that are absent repo-wide per ChunkIndexService.LookupAsync, behind a flag (touches storage). Label it 'new to the repository' — never 'new vs snapshot A'.
Follow-up to the snapshot diff command (spec: docs/history/superpowers/2026-06-29-snapshot-list-and-diff-design.md).
The v1
arius snapshot diffis purely structural (Added/Removed/Modified/TimestampChanged from the filetree, zero storage reads). 'Net-new content' was deliberately dropped because, under Merkle pruning, snapshot A's unchanged subtrees are never walked — so 'content absent from A' is not soundly computable. The chunk index answers the different, weaker question 'absent from the whole repository, ever'.Proposal: add an optional, clearly-labelled summary (NOT a per-path sibling array) of the
ContentHashes in the diff's Added ∪ Modified sets that are absent repo-wide perChunkIndexService.LookupAsync, behind a flag (touches storage). Label it 'new to the repository' — never 'new vs snapshot A'.