v0.7.2
Fixed
-
Worktree isolation no longer false-stalls a story that actually finished. Under
scm.isolation = worktreethebmad-dev-autosession runs with its cwd set to the worktree and
leaves its terminal spec in the worktree's_bmad-output/implementation-artifacts, but the dev
adapter searched the main checkout's dir (resolved once at startup). The completedstatus: done
spec was never found, so the orchestrator misread the session as stalled, rolled the unit branch
back to baseline, and re-ran the same story. The adapter now resolves the spec directory from the
live session cwd; in-place runs and artifact dirs configured outside the project tree are
unaffected. -
An uncommitted
policy.tomledit no longer vanishes on rollback.policy.tomlis tracked but
lives inside the kept.automatordir, so a rollback'sgit reset --hardto baseline silently
reverted operator edits — a freshly enabledscm.rollback_on_failurecould disappear before it ever
took effect — and a lone policy edit could register as attempt dirtiness, trapping the
manual-recovery loop. Rollback now restorespolicy.tomlfrom its on-disk content unconditionally —
so a config change committed after the baseline on an otherwise-clean tree survives too, not only
one that rode a non-emptygit stashsnapshot — and the dirty check always excludes it, regardless
of the preserve set. -
Fixed a decision-toast notification race in the TUI test suite on Python 3.14. Test-only; no
runtime change.