Breaking Changes
- Extension editor (
ctx.ui.editor()) now uses Enter to submit and Shift+Enter for newlines, matching the main editor. Previously used Ctrl+Enter to submit. Extensions with hardcoded "ctrl+enter" hints need updating. (#642 by @mitsuhiko) - Renamed
/branchcommand to/fork(#641)- RPC:
branch→fork,get_branch_messages→get_fork_messages - SDK:
branch()→fork(),getBranchMessages()→getForkMessages() - AgentSession:
branch()→fork(),getUserMessagesForBranching()→getUserMessagesForForking() - Extension events:
session_before_branch→session_before_fork,session_branch→session_fork - Settings:
doubleEscapeAction: "branch" | "tree"→"fork" | "tree"
- RPC:
SessionManager.list()andSessionManager.listAll()are now async, returningPromise<SessionInfo[]>. Callers must await them. (#620 by @tmustier)
Added
/resumeselector now toggles between current-folder and all sessions with Tab, showing the session cwd in the All view and loading progress. (#620 by @tmustier)SessionManager.list()andSessionManager.listAll()accept optionalonProgresscallback for progress updatesSessionInfo.cwdfield containing the session's working directory (empty string for old sessions)SessionListProgresstype export for progress callbacks/scoped-modelscommand to enable/disable models for Ctrl+P cycling. Changes are session-only by default; press Ctrl+S to persist to settings.json. (#626 by @CarlosGtrz)model_selectextension hook fires when model changes via/model, model cycling, or session restore withsourcefield andpreviousModel(#628 by @marckrenn)ctx.ui.setWorkingMessage()extension API to customize the "Working..." message during streaming (#625 by @nicobailon)- Skill slash commands: loaded skills are registered as
/skill:namecommands for quick access. Toggle via/settingsorskills.enableSkillCommandsin settings.json. (#630 by @Dwsy) - Slash command autocomplete now uses fuzzy matching (type
/skbrato match/skill:brave-search) /treebranch summarization now offers three options: "No summary", "Summarize", and "Summarize with custom prompt". Custom prompts are appended as additional focus to the default summarization instructions. (#642 by @mitsuhiko)
Fixed
- Session picker respects custom keybindings when using
--resume(#633 by @aos) - Custom footer extensions now see model changes:
ctx.modelis now a getter that returns the current model instead of a snapshot from when the context was created (#634 by @ogulcancelik) - Footer git branch not updating after external branch switches. Git uses atomic writes (temp file + rename), which changes the inode and breaks
fs.watchon the file. Now watches the directory instead. - Extension loading errors are now displayed to the user instead of being silently ignored (#639 by @aliou)