gabriel / muse public
feat patch dev
gabriel · 62 days ago · Apr 14, 2026 · Diff

feat: implement muse rev-list — raw commit ID stream with filters

Closes staging issue #11.

New command: muse rev-list [<ref>|<A>..<B>] [flags]

Flags: --count emit single integer (O(1) memory — counter, no list) -n / --max-count short-circuit walk after N matches --first-parent linear chain only, skip merge parents --no-merges exclude merge commits --merges only merge commits --author PATTERN regex/substring filter on author --after DATE commits after YYYY-MM-DD (UTC) --before DATE commits before YYYY-MM-DD (UTC) --touches PATH commits that changed PATH (prefix-matched, manifest cache) --reverse oldest-first output --json {"commit_ids": [...]} envelope

Range syntax: A..B emits commits reachable from B not from A. _walk_from uses deque (O(1) popleft/appendleft). _commit_touches_path uses per-invocation manifest cache (same pattern as log.py). --touches path validated against traversal sequences before any I/O.

Tests: 26 passing — unit (AST deque check, _parse_range, _parse_date), integration (all flags, range syntax, filters), security (traversal, ref injection, bad regex), stress (500-commit --count flat memory, 50-commit touches)

sha256:b0f78cddeee7edb8e5cf6fc9df7959d1ede1a3b607cc9c35c1ae58205430403e sha
sha256:a80bc06b31fb985be89d1cf32a277251caeed4c7ef6551a448238ad3dd0f146d snapshot
← Older Oldest on dev
All commits
Newer → Latest on dev

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:b0f78cddeee7edb8e5cf6fc9df7959d1ede1a3b607cc9c35c1ae58205430403e --body "your comment"