feat: muse sparse-checkout — partial working-tree materialization
Implements muse sparse-checkout with five subcommands (init, set, add, list, disable) and auto-integration with apply_manifest.
- muse/core/sparse.py: read_sparse_config, write_sparse_config, remove_sparse_config, matches_sparse (cone + pattern modes), filter_manifest_sparse - muse/cli/commands/sparse_checkout.py: full subcommand tree; ANSI injection guard on all pattern input; JSON output for list - muse/core/workdir.py: apply_manifest auto-reads .muse/sparse-checkout and filters the target manifest before any I/O; full manifest stays intact in the object store - muse/cli/app.py: sparse_checkout registered as sparse-checkout - tests/test_cmd_sparse_checkout.py: 27 tests (init/set/add/list/disable, cone + pattern matching, apply_manifest integration, 200-file stress)
Closes #16
0 comments
muse hub commit comment sha256:760168196439c7580727690447099706475c744faf5de952ecbcdfd96e3cc46c --body "your comment"
No comments yet. Be the first to start the discussion.