Skip to content

v1.12.0 — goal loop Phase 3: durable, isolated, schedulable goals

Choose a tag to compare

@erain erain released this 09 Jun 20:11
· 15 commits to main since this release

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.PursueGoal checkpoints a GoalRecord (objective, status, verified checklist, iterations, usage, summary) as glue/goal:* session metadata — after planning, every checker verdict, and at the terminal state. Cancellation persists as the new GoalPaused status; GoalRunning marks in-flight records.
  • Agent.LoadGoal / Agent.ListGoals read records back; GoalSpec.StartIteration keeps resumed maker/checker sessions fresh (iter-4, check-4, …).
  • TUI: /goal resume continues the most recent unfinished goal even in a new process; /goal list shows 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 branch goal/<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, --yolo for unattended runs.
  • Verified live end-to-end (gemini): plan → maker → evidence-backed verdict → achieved, exit 0, checkout untouched.

🤖 Generated with Claude Code