Releases: arun-gupta/agentctl
Releases · arun-gupta/agentctl
Release list
v0.21.0
What's Changed
- feat: global user config (~/.config/agentctl/config.yml) with project-local override by @arun-gupta in #288
- feat: add DefaultSDD config field with SDDNone sentinel by @arun-gupta in #289
- fix: move headless notification to detached subprocess by @arun-gupta in #292
- feat: add agentctl setup interactive wizard for new developers by @arun-gupta in #290
- refactor: reorganise CLI into 2-level command hierarchy by @arun-gupta in #294
- test: add e2e smoke test for agentctl setup cobra wiring by @arun-gupta in #295
Full Changelog: v0.20.0...v0.21.0
v0.20.0
What's Changed
- feat: abstract VCS layer so agentctl lifecycle works with GitLab by @arun-gupta in #262
- feat: per-project default agent via .agentctl.yml by @arun-gupta in #266
- feat: agentctl open — open worktree in editor or IDE by @arun-gupta in #267
- feat: agent runs tests and reports results in PR before opening by @arun-gupta in #269
- fix: instruct agents to use issue number not full URL in agentctl hints by @arun-gupta in #272
- docs: README diagram, agentctl merge reference, config fields, package list by @arun-gupta in #275
- feat: agentctl build — compile a test binary from an issue worktree by @arun-gupta in #273
- feat: per-run diagnostics — structured metadata for each agent run by @arun-gupta in #274
- fix: diagnostics.List always returns non-nil slice on success by @arun-gupta in #280
- fix: skip non-agentctl worktrees in status and info by @arun-gupta in #283
- fix: finalise diagnostics when headless agent exits by @arun-gupta in #282
- feat: agentctl cleanup accepts multiple issues by @arun-gupta in #286
- fix: agentctl info shows all adapters including those not installed by @arun-gupta in #284
- feat: add agentctl info command for system diagnostics by @arun-gupta in #276
Full Changelog: v0.19.0...v0.20.0
v0.19.0
What's Changed
- feat: support starting agent tasks without issues by @arun-gupta in #253
- fix: handle read-only Go module cache in .agent-home during cleanup by @arun-gupta in #255
- feat: agentctl diff — show what an agent changed in a worktree by @arun-gupta in #256
- fix: fall back to gh auth token when GITHUB_TOKEN env var is absent by @arun-gupta in #257
- docs: add Shields badges for all coding agents in README matrix by @arun-gupta in #260
- feat: parallel agents on the same issue for model comparison by @arun-gupta in #258
- docs: add agentctl diff to CLI reference by @arun-gupta in #261
Full Changelog: v0.18.0...v0.19.0
v0.18.0
What's Changed
- fix: discard accepts comma-separated issue list by @arun-gupta in #235
- fix: streamLog shows correct exit message after SDD stage 2 by @arun-gupta in #236
- feat: cache PR number and URL in .agent (#159) by @arun-gupta in #241
- docs: PLATFORM framework article (first draft) by @arun-gupta in #248
- fix: eliminate macOS keychain access — require GITHUB_TOKEN env var by @arun-gupta in #249
- feat: agentctl merge — one-step PR merge and worktree cleanup by @arun-gupta in #250
- fix: prune orphaned remote branches in cleanup --all by @arun-gupta in #252
Full Changelog: v0.17.0...v0.18.0
v0.17.0
What's Changed
- fix: --quiet uses detached log routing so Ctrl+C doesn't orphan the pipe by @arun-gupta in #231
- fix: always resolve bare issue numbers to full GitHub URLs in issue-arg by @arun-gupta in #233
- docs: fix cli.md inaccuracies by @arun-gupta in #232
Full Changelog: v0.16.0...v0.17.0
v0.16.0
What's Changed
- fix: improve headless UX — resume hints, contextual exit message, spec path in notification by @arun-gupta in #225
- docs: fix stale comment on startDevServer by @arun-gupta in #227
- fix: show dev server URL at agent exit by @arun-gupta in #228
- fix: detach dev server process and guard .agent-home from build tools by @arun-gupta in #229
- fix: show spec path in logs foreground output on agent exit by @arun-gupta in #230
Full Changelog: v0.15.0...v0.16.0
v0.15.0
What's Changed
- fix: store allocated dev port in .agent instead of .agentctl.yml by @arun-gupta in #219
- feat: agentctl dev start — launch dev server in existing worktree by @arun-gupta in #220
- fix: symlink ~/.claude.json into agent home by @arun-gupta in #223
- [codex] fix failed headless starts for #221 by @arun-gupta in #224
Full Changelog: v0.14.0...v0.15.0
v0.14.0
What's new
SDD plain improvements
- Resume with feedback now revises the spec and stops for re-review instead of going straight to implementation (#215)
- Agent authorised to run bash commands (tests, linters) without asking during resume (#213)
bypassPermissionson resume — claude adapterresume_cmdnow passes--permission-mode bypassPermissionsso pytest and other commands aren't blocked (#214)- Plain spec sections clarified — Changes vs Test Cases distinction tightened; all sections required even if "None" (#210)
Headless + notifications
- Spec-ready notification —
agentctl start --sdd=plain --headless --notifynow pops "Spec ready for review — run agentctl resume N" instead of the generic finish message (#216) - First-run notification test — on the first
--notifyuse, a test notification fires immediately with a hint to enable Alert style in System Settings (#211) - Failure notification includes
agentctl logs Nso you know where to look (#216)
Output and UX
- PR status always shown after foreground agent exits — prints
PR: nonewhen no PR was opened, cleanup hint only appears when a PR actually exists (#212) - Distinct error hint on crash — foreground agent crash shows "agent exited with error — check the log: agentctl logs N" instead of the cleanup hint (#208)
- Spinner no longer overwrites partial log lines on TTY (#209)
- Spec path shown after SDD agent pauses for review (#209)
agentctl logsexits with message when the agent process dies instead of hanging forever (#205)
Claude adapter
resume_cmdnow includes--permission-mode bypassPermissions(#214)
What's Changed
- fix: agentctl logs exits with message when agent process dies by @arun-gupta in #205
- fix: print distinct error hint when agent crashes in foreground mode by @arun-gupta in #208
- fix: prevent spinner from overwriting partial log lines on TTY by @arun-gupta in #209
- fix: clarify plain spec sections and require all sections filled by @arun-gupta in #210
- feat: fire test notification on first --notify use by @arun-gupta in #211
- fix: always show PR status after agent exits; cleanup hint only when PR exists by @arun-gupta in #212
- fix: authorise agent to run bash commands without asking in SDD plain mode by @arun-gupta in #213
- fix: add --permission-mode bypassPermissions to claude adapter resume_cmd by @arun-gupta in #214
- fix: resume with feedback in SDD mode revises spec and stops, not implements by @arun-gupta in #215
- feat: tailor completion notification for SDD headless spec checkpoint by @arun-gupta in #216
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's new
Bug fixes
.claudecredentials: symlink~/.claudeinto agent home so Claude Code auth works under HOME isolation (#201)- Codex/Copilot output: non-claude adapters now stream plain-text output to
agent.login non-headless mode — output was silently dropped before (#200) - Codex credentials: symlink
~/.codexinto agent home so Codex auth works (#199) - SpecKit pre-flight check:
agentctl start --sdd=speckitnow exits immediately with an actionable error and install instructions when SpecKit skills are not present (#203, #204) - Cleanup hint: non-SDD foreground runs now show
agentctl cleanup <issue>instead of the misleading resume hint after the agent exits (#200) - Silent dev-server skip: removed spurious
warning: no dev_server configuredfor projects that don't use a dev server (#200) - Headless SDD output:
agentctl start --headless --sdd=...now showslogs,attach, anddiscardhints alongside the resume hint (#200)
Docs
docs/adapters.mdrestructured with Tested/Untested and Built-in/Pluggable labels (#197)docs/cli.mddocuments--notify, desktop notifications, and.agentctl.ymlconfig (#198)
Features (from v0.12.0 base)
- Desktop notifications when headless agent finishes (
--notifyflag,notify: truein.agentctl.yml) (#196)
What's Changed
- docs: refactor adapters.md with unified adapter catalog by @arun-gupta in #197
- feat: desktop notifications when headless agent completes by @Copilot in #196
- docs: document --notify flag and desktop notifications by @arun-gupta in #198
- fix: symlink .codex into agent home so codex CLI credentials work by @arun-gupta in #199
- fix: non-claude output streaming, cleanup hint, silent dev-server skip by @arun-gupta in #200
- fix: symlink .claude into agent home so Claude Code credentials work by @arun-gupta in #201
- fix: exit early when --sdd=speckit but speckit skills are not installed by @arun-gupta in #203
- fix: improve SpecKit missing-skills error with install steps and plain alternative by @arun-gupta in #204
Full Changelog: v0.12.0...v0.13.0
v0.12.0
What's new
OpenHands support
- Full end-to-end OpenHands adapter: headless launch, JSON streaming, resume
- Agent HOME isolation — each run gets a private
~/.agent-homeso it starts with a fresh~/.claudeand cannot hijack existing sessions - Symlinks
.gitconfig,.ssh,.openhands, and~/.config/ghinto the agent home so git, SSH, and gh CLI credentials work - Injects
GITHUB_TOKENfromgh auth tokenso HTTPS pushes succeed from detached agent processes (no keychain access needed) - Added
--headlessflag to OpenHands adapter recipe (required alongside--json)
Resume improvements
agentctl resumenow works for non-SDD runs — useful when an agent stalls mid-work and needs a follow-up prompt- After the agent exits, the terminal prints
agentctl resume <issue>as a hint
Other fixes
- Non-SDD kickoff prompt moved out of the
sddpackage into thecmdlayer (cleaner abstraction) - Removed Claude-specific references from generic agent prompts so any adapter model follows the instructions
What's Changed
- docs: link to agentctl-test issue #15 as plain SDD example by @arun-gupta in #171
- feat: remove implicit npm detection; require explicit dev_server for all project types by @Copilot in #173
- fix: show no-spec when SDD not requested, even if specs/spec.md exists by @arun-gupta in #174
- feat: add OpenHands as a pluggable adapter by @arun-gupta in #176
- fix: remove Claude-specific references from generic agent prompts by @arun-gupta in #178
- refactor: move non-SDD kickoff prompt out of sdd package by @arun-gupta in #180
- fix: isolate agent HOME to prevent session hijacking by @arun-gupta in #181
- fix: add --headless flag to OpenHands adapter recipe by @arun-gupta in #182
- fix: symlink .openhands into agent home so OpenHands headless mode works by @arun-gupta in #183
- fix: symlink .config into agent home so gh CLI credentials work by @arun-gupta in #184
- fix: allow agentctl resume for non-SDD runs by @arun-gupta in #185
- fix: inject GITHUB_TOKEN from gh auth token into agent environment by @arun-gupta in #186
- feat: print agentctl resume hint when agent exits by @arun-gupta in #195
Full Changelog: v0.11.0...v0.12.0