This release brings significant enhancements to the Lean TUI experience, adds new evaluation and shell tooling capabilities, and improves startup reliability through expanded backoff handling.
What's New
- Adds a
/sessionscommand to the Lean TUI for browsing and resuming past sessions from the current directory - Adds support for
!bang commands in the Lean TUI, running local shell commands directly without queuing an agent turn - Adds labels for pending steering and follow-up messages in the Lean TUI
- Adds
add_prompt_files_depthconfig attribute for discovering nested prompt files in monorepo subdirectories - Adds code-based assertion support to evaluation criteria, enabling declarative grading checks (
contains,not_contains,equals,regex,cost_threshold,tool_called, and more) - Wires the assertion runner into the evaluation pipeline so assertions declared in eval JSON files execute after agent runs complete
- Includes assertion pass rates and pass@k/pass^k consistency metrics in baseline regression comparison
- Adds
get_environment_inforead-only tool for exposing environment details to the model - Adds PowerShell substitute names for common POSIX utilities in the shell tool description for Windows
- Prepends a self-correction hint on known shell-syntax errors in the shell tool output
Bug Fixes
- Fixes lean TUI not persisting prompt history to the shared global history used by the normal TUI
- Fixes tool calls not being restored when resuming a saved session in the Lean TUI
- Fixes Shift+Enter not inserting a newline in the Lean TUI (Kitty keyboard protocol support)
- Fixes Shift+Tab thinking cycle broken by Kitty keyboard protocol changes in the Lean TUI
- Fixes Escape not interrupting active agent runs and pending tool calls in the Lean TUI
- Fixes Option+Backspace word deletion not working with Kitty keyboard mode enabled in the Lean TUI
- Fixes Ctrl+A and Ctrl+E not recognized through the Kitty keyboard protocol in the Lean TUI
- Fixes user messages not being visually highlighted in the Lean TUI
- Fixes cancellation marker appearing before buffered partial responses in the Lean TUI
- Fixes agent failing to start when a deferred MCP source is still initializing (
deferred start failed: toolset not started) - Adds bounded jittered exponential backoff to
StartableToolSetretry path to prevent burst retries on rate-limited or failing tool sources - Extends backoff gate to remote MCP HTTP errors (503/429/5xx during initialize handshake)
- Extends backoff gate to A2A agent-card HTTP errors
- Wires LSP crash-loop failures through the backoff gate to prevent persistently-crashing LSP servers from relaunching at full speed
- Fixes security and robustness issues in
add_prompt_files_depthimplementation
Technical Changes
- Simplifies the built-in coder agent by removing planner and librarian sub-agents, limiting it to file, shell, and fetch toolsets
- Updates Go version declaration format in
go.modto use separatego(minimum) andtoolchain(pinned) directives - Removes the Nebius example due to model availability issues
What's Changed
- feat: wire assertion runner into runSingleEval execution pipeline by @melmennaoui in #4100
- docs: update CHANGELOG.md for v1.130.0 by @docker-read-write[bot] in #4101
- feat: include assertions and pass@k in baseline regression comparison by @melmennaoui in #4103
- fix(#4060): add bounded jittered backoff to StartableToolSet retry path by @aheritier in #4062
- docs: auto-update for merged PRs (2026-09-02) by @aheritier in #4109
- feat: add add_prompt_files_depth for monorepo nested prompt file discovery by @dgageot in #4111
- refactor: update go version declaration format by @aheritier in #4105
- Update linter config by @dgageot in #4113
- fix(deferred): don't fail to start when a source is still starting by @dgageot in #4114
- chore: simplify built-in coder agent by @rumpl in #4118
- feat(leantui): add sessions command by @rumpl in #4119
- fix(leantui): support shift-enter newlines by @rumpl in #4120
- ci(update-models): sign commits with bot identity, add semantic catalog diff by @aheritier in #4110
- feat(leantui): support bang commands by @rumpl in #4122
- fix(leantui): restore shift-tab thinking cycle by @rumpl in #4124
- fix: highlight user messages in lean TUI by @rumpl in #4123
- feat(leantui): label steering and follow-up messages by @rumpl in #4125
- Remove the nebius example by @rumpl in #4130
- chore: refresh models.dev snapshot (+79 -75 ~196) by @github-actions[bot] in #4121
- fix(#4060): extend backoff gate to remote MCP HTTP errors by @aheritier in #4074
- docs: auto-update for merged PRs (2026-09-03) by @aheritier in #4131
- fix: persist lean TUI prompt history by @rumpl in #4127
- fix(leantui): restore tool calls on session resume by @rumpl in #4128
- fix(leantui): restore interrupt and editing shortcuts by @rumpl in #4126
- fix(#4060): wire LSP crash-loop pacing through backoff gate by @aheritier in #4108
- fix(#4098): extend backoff gate to A2A agent-card HTTP errors by @aheritier in #4104
- fix(leantui): support ctrl+a and ctrl+e by @rumpl in #4138
- feat(shell): name PowerShell substitutes for the POSIX utilities models reach for by @trungutt in #4140
- chore: bump stale model references to current-generation values by @aheritier in #4139
- feat: add get_environment_info read-only tool by @trungutt in #4142
- feat(shell): correct known shell-dialect errors in the tool output by @trungutt in #4141
Full Changelog: v1.130.0...v1.131.0