Skip to content

v0.1.64

Choose a tag to compare

@shayne-snap shayne-snap released this 05 Aug 02:38
· 40 commits to main since this release
01481ba

v0.1.64

Summary

This release brings two significant improvements:

  1. whale exec session resume & explicit mode control — resume existing sessions, override the execution mode (agent/ask/plan), and get strict, machine-parseable session validation with unified JSON error output. Built for automation workflows (CI, SWE-bench) with zero side effects on failed pre-checks.
  2. TUI Alt+P permission cycle shortcut — cycle the permission mode directly from the chat view (ask → auto-review → auto-accept → ask) and always see the current permission state in the footer.

What's Changed

exec: session resume, mode control & strict session gate (#344) — @ehwjh2010

  • exec --session <id>: resume an existing session; the next round appends to the same JSONL and reads the full first-round history. Worktree sessions are re-entered automatically (chdir to the recorded workspace, including subdirectories inside the worktree).
  • exec --mode agent|ask|plan: explicit, case-insensitive mode override. On resume, the mode is persisted during the commit phase and carried to the next round; new sessions default to Agent.
  • Strict session contract (ResolveStrictSession): blank/unsanitized IDs, nonexistent/unrecoverable sessions, subagent sessions, and cross-workspace sessions are rejected before any model call — zero provider requests, zero state writes.
  • ValidateResumeTarget pre-validation matrix: session+worktree consistency, missing-worktree fallback, and explicit worktree takeover rejection all raised as identifiable error types.
  • Unified JSON error output: with --json, session/mode/security/execution errors emit exactly one machine-readable ExecResult{status:error} and return a non-zero exit code — no double emission, no usage-text pollution.
  • exec --help documentation: session/mode relationship docs; the SWE-bench script migrated to exec-local flag positions.
  • Internal refactor: ResolveResumeWorktreeDecision split into a read-only decision + commit cleanup, with TargetWorkspace as a single fill point shared by TUI and exec; mode persistence converges on CommitStartState.
  • Compatible with existing behavior: whale resume, TUI, app-server, and ACP unchanged (regression tests).

TUI: Alt+P permission mode cycle (#346) — @shayne-snap

  • Alt+P cycles the permission mode in chat view: ask → auto-review → auto-accept → ask — no need to open /permissions to check or change the approval level.
  • The footer now always shows the current permission state and the cycle hint (e.g. permission: ask (Alt+P to cycle)).
  • Cycling is blocked while a turn is busy or suggestion panels are open, keeping the TUI in sync with the running turn.
  • New model_permission_cycle_test.go covering cycle order, busy/suggestion-panel blocks, and the footer indicator.

PRs

Thanks

Thanks to @ehwjh2010 for building the exec session resume and mode control system, and to @shayne-snap for the Alt+P permission shortcut and for reviewing and merging the exec work. 🐋