Releases: usewhale/Whale
Releases · usewhale/Whale
v0.1.57
v0.1.57 (2026-06-22)
🐛 Bug Fixes
- fix(tui): interleave text and tool rows by render sequence (#323) by @shayne-snap
- fix(agent): recover when the model leaks tool calls as plain text (#324) by @shayne-snap
Full Changelog: v0.1.56...v0.1.57
v0.1.56
v0.1.56 (2026-06-22)
🚀 New Features
- feat(agent): replace proposed_plan XML block with plan-as-reply model (#322) by @shayne-snap
- feat(tui): surface human-readable shell exit messages in results (#319) by @shayne-snap
- feat(worktree): always prompt on exit, even when worktree is clean (#318) by @shayne-snap
🐛 Bug Fixes
- fix(agent): add storm-breaker guard for identical-tool-call loops in plan mode (#321) by @shayne-snap
- fix(agent): add progress guard for redundant read-only re-visitation loops (#320) by @shayne-snap
🔧 Maintenance
- chore: rename repo from DeepSeek-Code-Whale to Whale by @shayne-snap
Full Changelog: v0.1.54...v0.1.56
v0.1.55
v0.1.55
✨ New Features
- feat(worktree): always prompt on exit, even when worktree is clean (#318) by @shayne-snap
- feat(tui): surface human-readable shell exit messages in results (#319) by @shayne-snap
🐛 Bug Fixes
- fix(agent): add progress guard for redundant read-only re-visitation loops (#320) by @shayne-snap
- fix(agent): add storm-breaker guard for identical-tool-call loops in plan mode (#321) by @shayne-snap
Full Changelog: v0.1.54...v0.1.55
Contributors
- shayne-snap
v0.1.54
v0.1.54
🐛 Bug Fixes
- fix(agent): remove main-agent tool-iter cap, add storm loop-guard (#315) by @shayne-snap
- fix(deepseek): retry reasoning-only empty completions (#316) by @shayne-snap
- fix(tools): surface match locations in multi_edit search_not_unique error (#313) by @shayne-snap
- fix(agent): nudge plan-mode turns that finish without a proposed_plan block (#317) by @shayne-snap
Full Changelog: v0.1.53...v0.1.54
v0.1.53
v0.1.53
🐛 Bug Fixes
- fix(agent): surface concrete JSON parse error when request_user_input args are malformed (#311) by @shayne-snap
- fix(service): show only command name in unrecognized slash command error (#312) by @shayne-snap
🔧 Maintenance
- agent: remove plan prefill recovery, simplify turn loop (#307) by @shayne-snap
- agent: deduplicate worktree root path and co-locate isolation instruction (#308) by @shayne-snap
- refactor(telemetry): split usage.jsonl into per-session files (#314) by @shayne-snap
Full Changelog: v0.1.52...v0.1.53
v0.1.52
v0.1.52 (2026-06-20)
🚀 New Features
- feat(policy): extend external directory grants to shell commands (#296) by @shayne-snap
- feat(ps): compact single-line format with status first (#293) by @shayne-snap
- feat(agent): project-scoped external-directory approvals and shell command arity grouping (#302) by @shayne-snap
🐛 Bug Fixes
- fix(tools): allow edit/multi_edit to omit replace field for deletion (#292) by @shayne-snap
- fix(tools): add schema-driven recovery hints for invalid tool inputs (#294) by @shayne-snap
- fix(tools): force CRLF line endings for new .bat/.cmd files (#295) by @shayne-snap
- fix(tools): handle glob patterns in search_files and improve ripgrep fallback (#297) by @shayne-snap
- fix(workflow): remove keyword trigger and hide workflow tool when disabled (#298) by @shayne-snap
- fix(app): s/current goal/current request/ in agent mode instruction (#299) by @shayne-snap
- fix(tui): tolerate description field on all tool calls and fix timeout misclassification (#300) by @shayne-snap
- fix(agent): block update_plan in Plan mode and emit proposed_plan guidance (#301) by @shayne-snap
- fix(agent): improve plan mode timing and recovery behavior (#303) by @shayne-snap
- fix(core): resolve model-facing tool names back to internal registry (#304) by @shayne-snap
- fix(agent): recover plan finalization when model omits <proposed_plan> block (#305) by @shayne-snap
- fix(agent): hide parent checkout path in worktree prompt (#306) by @shayne-snap
Full Changelog: v0.1.50...v0.1.52
v0.1.50
v0.1.50 (2026-06-18)
Fixes
- Resolve deadlocks on hung providers by replacing
sync.WaitGroupwith channel-based cancellation in ParallelReason and addingctx.Done()select in Subagent drainEvents (#291) - Add stuck-TUI quit escape: 3 Ctrl+C presses while stopping triggers the 2s double-tap exit mechanism (#291)
- Fix
~/path resolution:safeReadPathnow checks workspace membership after~expansion so home-relative paths inside the workspace are accepted (#291)
Features
- Add tool-name renaming layer: models see conventional names (Bash, Read) at the provider boundary while internal code and persisted sessions stay unchanged (#291)
v0.1.49
v0.1.49 (2026-06-17)
Features
- tools: remove read_file-before-edit requirement (#287)
Fixes
- fix(tool_repair): restore truncation recovery for trailing key without value (#288)
- fix(tui): show 'Running ' for in-progress shell tasks in timeline (#289)
Chores
- chore: remove checkpoint/rewind and shell mutation tracking (#290)
- scripts/install.sh: extract curl retry opts into shared
CURL_RETRY_OPTS
v0.1.48
v0.1.48 - 2026-06-11
🔧 Refactors
- Replace
apply_patchwith a newmulti_edittool that provides atomic multi-step SEARCH/REPLACE edits (#285) - Split
workflows_local_result.gointo focused files:display,summary,util(#286) - Remove transitional
ToolResult.ContentandIsErrorfields (#283) - Extract
parseBeginPatchinto smaller focused functions (#284)
🐛 Bug Fixes
- Preserve UTF-8 rune boundaries in tool result summary truncation to avoid garbled output (#282)
📦 Downloads
Platform binaries and npm packages will be built automatically by the release workflow.
v0.1.47
v0.1.47
Highlights
- Smarter shell handling — Foreground yield-timeout tasks are now auto-backgrounded and managed via task lifecycle. Shell read-only decisions show user-facing explanations.
- Edit tool robustness — Search-not-found errors now include divergence diagnostics and whitespace-relaxed patch matching for better recovery.
- Plan mode improvements — Turn reminders and improved blocked messages keep the flow clear when collaboration modes are active.
- Error handling refinements — User interrupts are now clearly distinguished from provider timeouts; HTML-escaping of model-facing JSON has been fixed; proposed_plan XML tags are stripped from visible TUI output.
What's Changed
- feat(shell): auto-background foreground yield-timeout tasks by @lnnttoo (#273)
- feat(policy): default web_search and web_fetch to allow instead of ask by @shayne-snap (#274)
- feat(tui): show user-facing explanation when shell command cannot be proven read-only by @shayne-snap (#275)
- fix(tui): strip proposed_plan XML tags from visible content by @shayne-snap (#276)
- fix(edit): add search-not-found divergence diagnostics and whitespace-relaxed patch matching by @lnnttoo (#277)
- feat(plan): add plan-mode turn reminders and improve blocked messages by @shayne-snap (#278)
- feat: add Windows version requirement check to install script by @shayne-snap (#279)
- fix(core): stop HTML-escaping model-facing JSON, consolidate exit-1 no-match semantics by @shayne-snap (#280)
- fix(agent): distinguish user interrupt from provider timeout in error handling by @shayne-snap (#281)
Thank You
Thanks to @lnnttoo for the shell auto-background and edit diagnostics contributions, and to all contributors for making Whale better with every release.