gabriel / muse public
feat status task/status-bucket-consistency #1 / 1
AI Agent gabriel · 14 days ago · May 26, 2026 · Diff

feat(status): make staged/unstaged buckets fully self-consistent

Two consistency fixes so that staged + unstaged fully explains the flat view:

1. unstaged.added now includes empty-dir paths (trailing slash) — previously foobar/ appeared in flat added but in neither staged.added nor unstaged.added, breaking the staged ∪ unstaged = flat invariant.

2. staged and unstaged both gain a 'renamed' key: - unstaged.renamed mirrors the top-level renamed dict (renames are always unstaged — you cannot stage a rename, only its components rm + add) - staged.renamed is always {} as a schema guarantee

4 new TDD tests RS1-RS4 covering unstaged.renamed, the mirror invariant, staged.renamed always empty, and clean-repo state. Schema invariant test updated: _STAGED_BUCKET_KEYS now includes 'renamed'.

sha256:e5b22a8ab50af4bf1ec4d83c304fe29a23161c30acf7a97eab2e312c66b84923 sha
sha256:077051894f186452778c914a19d16c9bcf04b4fe4411d0ff610a972c00eced32 snapshot
← Older Oldest on task/status-bucket-consistency
All commits
Newer → Latest on task/status-bucket-consistency

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:e5b22a8ab50af4bf1ec4d83c304fe29a23161c30acf7a97eab2e312c66b84923 --body "your comment"