Releases: bmad-code-org/bmad-auto
Releases · bmad-code-org/bmad-auto
v0.6.4
Fixed
- Copilot token usage now records (was always 0). Copilot writes its token totals only in
the trailingsession.shutdownevents line, ~1s afteragentStop— usage was sampled before
it landed.read_usagenow polls the transcript for a short grace, driven by a new per-profile
usage_grace_s(8s forcopilot, 0 elsewhere = read once). - Copilot multi-turn reviews no longer stall.
agentStopfires per response turn, so a
parallel-subagent review ends several turns and tripped the globalstop_without_result_nudges
default of 1. New per-adapter floor (5 forcopilot), overridable per stage via[adapter.review].
Added
[adapter] usage_grace_s/stop_without_result_nudges(base + per-stage
[adapter.dev|review|triage]), editable in the settings TUI. Unset = inherit the CLI profile's
shipped default.
Changed
- Copilot docs. Pin a capable model — the free GPT-5 mini default silently skips steps in
multi-step dev/review — and it's the Copilot CLI binary that's supported, not the VS Code
extension.
v0.6.3
Fixed
- GitHub Copilot adapter (CLI 1.0.63). Turn-end is
agentStop, not PascalCaseStop
(which never fires) — every session previously read as a timeout. Remapped events, dropped
the non-existentPreCompact, and the shared hook relay now reads camelCase payload keys
(sessionId/transcriptPath). Probe mode sends its prompt verbatim so a skill-templating
prompt_templateno longer renders a missing-skill path that stalls the turn.
Added
- Copilot token accounting. New
copilot-eventsusage_parserreads
~/.copilot/session-state/*/events.jsonl(data.modelMetrics.<model>.usage.*); thecopilot
profile is wired to it (wasusage_parser = "none").
v0.6.2
Added
bmad-auto probe-adapter(aliascollect-adapter-data). A self-service command that
collects and sanitizes everything needed to finalize a CLI adapter profile — the hook payload
shape, transcript location/format, and token-usage schema for ausage_parser— so a user of
any coding CLI can paste back a clean, content-free report. A default zero-launch scan reads
on-disk conventions; opt-in--probedoes a live capture in an ephemeral workspace. All output
passes through one audited PII sanitizer (token counts and field names survive; paths, prose, and
emails are redacted).- GitHub Copilot CLI profile. Bundled
copilotprofile (Copilot CLI ≥ 2026-02):-i
interactive launch, VS Code-compatibleStophook,--allow-all-toolsfor unattended runs.
Still pending live E2E and ausage_parser—probe-adaptercaptures the token schema to write
one.
Docs
- Adapter authoring guide. New adapter authoring guide
walks through finalizing a CLI profile withprobe-adapter(scan vs probe, the PII model, and
the parser-writing loop);probe-adapteris added to both command references.
v0.6.1
Added
- Short run refs (Docker-style). Every command that takes a run id (
status,attach,
resume,resolve,stop,delete,archive) now accepts a partial — the tail after the
last-(e.g.a1b2, or as few chars as stay unique). Full ids still work; an ambiguous ref
fails listing the candidates. Newbmad-auto list(aliasls) prints each run/sweep with its
short ref, type, and status. - Flexible
--storyselection.bmad-auto run --storynow takes more than the exact full
key: an epic+number (--epic 3 --story 1,--story 3-1, or--story 3.1) or a slug fragment
(--story user-auth). Full keys still work. Mismatches are caught before the run launches with a
targeted error — no match, ambiguous slug, or matched-but-not-actionable.
v0.6.0
Fixed
- Rollback no longer wipes non-automator files. A failed in-place attempt previously ran
git reset --hard+ a blanketgit clean -fdover the whole checkout, which could delete a
project's_bmad-output/and any other untracked files (only.automator/and two artifact
subdirs were spared). The orchestrator now never runs a blanketgit clean: it reverts the
attempt's tracked changes and removes only the untracked files that run created, preserving
pre-existing untracked files and the entire_bmad-output/tree.
Changed
- Auto-rollback is now opt-in (
[scm] rollback_on_failure, default off). With it off the
orchestrator never touches your working tree on a failed attempt — it pauses the run with bold
manual-recovery instructions (back up untracked files →git reset --hard <baseline>→ restore).
Turn it on for the safe automatic rollback above (it discards the attempt's uncommitted work, so
it warns when it fires). Worktree isolation (scm.isolation = "worktree") sidesteps this entirely.