v1.12.0 — goal loop Phase 3: durable, isolated, schedulable goals
Completes the goal-loop roadmap from ADR-0016 (Phase 1 Agent.PursueGoal shipped in v1.10.0, Phase 2 TUI /goal in v1.11.0).
Durable goal state + resume across restarts (#324, PR #325)
Agent.PursueGoalcheckpoints aGoalRecord(objective, status, verified checklist, iterations, usage, summary) asglue/goal:*session metadata — after planning, every checker verdict, and at the terminal state. Cancellation persists as the newGoalPausedstatus;GoalRunningmarks in-flight records.Agent.LoadGoal/Agent.ListGoalsread records back;GoalSpec.StartIterationkeeps resumed maker/checker sessions fresh (iter-4,check-4, …).- TUI:
/goal resumecontinues the most recent unfinished goal even in a new process;/goal listshows recent goals with status, fraction, and age.
Worktree isolation — /goal -w (#326, PR #327)
/goal -w <objective>runs the loop in.glue/worktrees/<goal-id>on branchgoal/<id>— your checkout stays untouched and the result is a reviewable branch, never auto-merged. Resume re-attaches the same worktree (GoalSpec.WorkDir/GoalRecord.WorkDir).
Headless glue goal subcommand (#328, PR #329)
glue goal "<objective>"runs the loop without a TUI, streaming checklist progress to stdout; exit code maps the outcome (0 achieved · 2 blocked · 3 max-iterations · 4 budget-limited · 1 errored) so cron/CI/peggy schedules can branch on it.--list/--resume [id]share the TUI's store;--worktree,--max-iterations,--budget,--yolofor unattended runs.- Verified live end-to-end (gemini): plan → maker → evidence-backed verdict → achieved, exit 0, checkout untouched.
🤖 Generated with Claude Code