reflog.md
markdown
sha256:18b983389ee1b55900fcd799bfbb496552d2e3ecded9d18cefbfef188947a12e
chore: remove blob-debug test marker file
Sonnet 4.6
1 day ago
muse reflog — HEAD and branch movement history
The reflog is Muse's undo safety net. Every time HEAD or a branch pointer moves — commit, checkout, merge, reset, cherry-pick — Muse appends an entry to a per-ref journal. If you accidentally reset to the wrong commit, the reflog tells you exactly where HEAD was before.
Storage
.muse/logs/
HEAD ← journal for the symbolic HEAD pointer
refs/
heads/
main ← journal for the main branch ref
feat/audio ← journal for the feat/audio branch ref
…
Each file is an append-only sequence of lines in the format used by Git, so tooling that understands both formats works without translation.
Subcommands
muse reflog (default)
Show the HEAD reflog, newest entry first.
muse reflog [--branch <name>] [--limit N] [--all]
| Flag | Default | Description |
|---|---|---|
--branch, -b |
HEAD log | Show the named branch's reflog instead of HEAD |
--limit, -n |
20 | Maximum entries to show |
--all |
false | List every ref that has a reflog |
Output format
@{0} cccccccc0000 (initial) 2026-03-19 14:22:01 UTC commit: add chorus
@{1} aabbccdd1234 (cccccccc0000) 2026-03-19 14:18:44 UTC checkout: moving from dev to main
@{2} aaaa0000ffff (aabbccdd1234) 2026-03-19 14:15:02 UTC commit: initial
@{N}— reflog index (0 = newest)- First SHA-256 prefix — new commit
- SHA-256 in parentheses — previous commit (
initialfor the first entry)
When entries are written
| Operation | Entry |
|---|---|
muse commit |
commit: <message> |
muse checkout <branch> |
checkout: moving from X to Y |
muse checkout -b <branch> |
branch: created from X |
muse merge <branch> |
merge: <branch> into <current> |
muse reset |
reset (soft/hard): moving to <sha12> |
Agent workflows
Undo an accidental reset
# Find HEAD before the reset:
muse reflog --limit 5
# Restore:
muse reset <sha-from-reflog>
Automated safety checkpoint
# Before a risky operation, note the current HEAD:
HEAD=$(muse plumbing rev-parse HEAD)
# Do the risky operation…
muse reset --hard some-old-commit
# If it went wrong, restore using the reflog:
muse reflog
muse reset "$HEAD"
Pipeline inspection
# How many commits happened today?
muse reflog --branch main | grep "$(date +%Y-%m-%d)" | wc -l
Security notes
The reflog files are append-only by design. Entries are never modified after being written. The log paths are validated through the same contain_path primitive used throughout Muse — no path traversal is possible via branch names.
File History
7 commits
sha256:18b983389ee1b55900fcd799bfbb496552d2e3ecded9d18cefbfef188947a12e
chore: remove blob-debug test marker file
Sonnet 4.6
1 day ago
sha256:e452ad9a6ace6ccc6d875a35e06caf9da5576a970c1c36133b69a891ce5fefa8
chore: prebuild timing test
Sonnet 4.6
8 days ago
sha256:0008ab6695e3e064b3e236b24fd19e538fef6a588eb0d211622f4466d919c0b1
merge: pull staging/dev — advance to 0.2.0rc12
Sonnet 4.6
patch
10 days ago
sha256:9c33d61749fff814c5226d5386aa2af7064c2c02788594a25fdd709358132eea
fix: _PROPOSAL_PREFIX_RESOLVE_LIMIT 200 → 100 to match hub …
Sonnet 4.6
21 days ago
sha256:36c3cb3e76619d4c30a6d9bf81b5ec4ff148e30dcfed913e3114ca7b43b81c7e
fix: rename objects→blobs in push client and all stale test…
Sonnet 4.6
patch
24 days ago
sha256:c06a9b9b9fee26c68ea725b44d54b2c0a171301ce9de746d5b656617b4463a9a
fix: repair four test failures from post-migration audit
Sonnet 4.6
patch
30 days ago
sha256:1900655993c83c4107067375548a7be823e471d2515830842f1a12cba4bd3cdf
fix: unified object store migration — idempotent writes, JS…
Sonnet 4.6
minor
⚠
31 days ago