What changed
Claude Code 2.1.144 shipped on May 19, 2026. The new-feature surface is small and workflow-oriented: background sessions are pulled into the /resume picker (marked bg), background subagent completion notifications now include elapsed duration, /plugin browse and discover panes show last-updated timestamps, /model is split into a session-only change with d for a separate default, and extra usage is renamed usage credits (/extra-usage → /usage-credits, old name still works). The rest of the release is a 50+ bug-fix sweep concentrated on startup hangs, terminal rendering corruption, /model regressions, MCP tools/list pagination, headless Skill execution, and background-session stability — including regressions introduced in v2.1.129, v2.1.141, and v2.1.143.
New features
-
/resumesupport for background sessions — surfaced in the same picker, markedbgSessions started via
claude --bgor agent view did not appear in/resume, so resuming them required separate tooling. They now show up alongside interactive sessions in the/resumepicker, markedbg. -
Elapsed duration on background subagent completion notifications
Completion notifications only signaled “done” without a duration, so judging how long a run took required a separate look. The notification now reads “Agent completed · 3h 2m 5s” with the elapsed time inline.
-
/pluginbrowse and discover panes show when a plugin was last updatedThere was no in-picker signal for plugin recency, so users had to leave Claude Code to check whether a plugin was being maintained. Both panes now display each plugin’s last-updated timestamp.
-
/modelnow changes the current session only; pressdin the model picker to set a default for new sessions/modelpreviously changed both the current session and the default for new sessions, so a one-off switch could quietly become permanent. The current-session change is now scoped to the active session, and setting a new-session default requires pressingdin the model picker. -
Renamed “extra usage” to “usage credits” across CLI copy
CLI copy referred to “extra usage”, which didn’t line up well with billing terminology. The label is now “usage credits” throughout, and
/extra-usageis now/usage-credits. The old slash command name still works.
Improvements
-
Pre-response stream stall recovery — retries streaming once instead of falling back
A rare stall before the first response token used to fall back to a slower non-streaming request immediately, even when a retry would have recovered. The client now retries streaming once before falling back.
-
SDK / headless MCP startup — pre-wait overlaps startup
The MCP pre-wait used to run sequentially before the first turn, so a slow MCP server delayed the whole start. Pre-wait now overlaps startup, up to about 2 seconds faster with slow MCP servers.
-
Post-survey follow-up hint shown on every non-dismiss response with context-aware copy
The follow-up hint pointing to
/feedbackonly appeared on some survey responses, so the path for adding detail was inconsistent. It now appears on every non-dismiss response, with copy tuned to the context.
Bug fixes
Startup & connectivity
- Startup hanging up to 75s when
api.anthropic.comis unreachable (captive portal, firewall, VPN) — side-channel API calls now time out after 15s. - macOS background sessions crashing with “exit 1 before init” when the project lives under a Full Disk Access-protected folder — regression in v2.1.143, fixed.
- Remote-session login failing with “Can’t access this organization” for users with
forceLoginMethodandforceLoginOrgUUIDset — login completes correctly.
Terminal rendering
- Garbled terminal output after a missed window-resize event — e.g. dragging a VS Code split-pane divider. The display now self-heals on the next frame instead of requiring Ctrl+L.
- Progressive terminal display corruption (stale / garbled glyphs) in very long sessions — used to clear only on terminal resize or restart, now resolved during the session.
- Spinner animation glitches in VS Code — reduced by lowering the spinner’s color count.
- Scrolling in attached background sessions on Windows — PgUp/PgDn, mouse wheel, and
Ctrl+Otranscript navigation now work. - Ghost characters at the left edge when switching panes in Agent View on Windows Terminal with CJK content — fixed.
/model behavior & regressions
- Model selection not applying when changed via the IDE model picker or
applyFlagSettingsafter startup — selection now applies. - Resumed sessions picking up another session’s
/modelchoice — resumed sessions now keep their own model. - Bedrock and Vertex users unable to select “Opus (1M context)” from the
/modelpicker — regression in v2.1.129, fixed.
Files, search & /branch
- Unrecoverable conversation when reading a file whose image extension doesn’t match its contents — e.g. HTML saved as
.png. Now falls back to text. head/tailviews not satisfying the read-before-edit check — they now do, eliminating spurious blocked-edit errors.- “No matches” results (exit code 1) from
egrep,fgrep,git grep, orgit diffreported as command failures — now treated as empty results. /branchfailing with “No conversation to branch” after entering a worktree or in some background sessions — fixed.- Pressing Escape in the AskUserQuestion notes field aborting the turn — now returns to answer selection.
MCP
- MCP servers with paginated
tools/listresponses only returning the first page, silently dropping tools — all pages are now retrieved. - MCP images with unsupported MIME types (e.g. SVG) breaking the conversation — now saved to disk and referenced in the tool result.
claude mcp listsilently reporting no servers when.mcp.jsoncan’t be parsed — e.g. using VS Code’s"servers"key instead of"mcpServers". Now surfaces the configuration error.- Background side-queries on custom
ANTHROPIC_BASE_URLsetups and Bedrock Mantle not using Haiku — now falls back correctly when a first-party API key is configured or no Haiku model is set.
Headless, Skill & Plugin
- Skill tool failing with a permission error in headless mode — regression in v2.1.141, fixed.
- File descriptor exhaustion when a build runs inside a skill directory — non-
.mdfiles no longer trigger skill reloads. - Session title being generated from plugin monitor output instead of the user’s first prompt — title now derives from the prompt.
- Plugins enabled in your own settings showing “not cached” errors after first load on a fresh machine — fixed. Plugins enabled only by a project’s
.claude/settings.jsonnow show an actionableclaude plugin installhint. - Plugin marketplace add / update not respecting
CLAUDE_CODE_PLUGIN_PREFER_HTTPS— now respected. /pluginnot returning to the Installed list after enabling, disabling, or uninstalling a plugin — now returns to Installed.
Background sessions & claude agents
- Crash when closing the terminal while attached to a background session — fixed.
! <cmd>exec sessions not responding to Ctrl+C while attached — now interrupts the running command.- Agent view shell-command rows lingering under Working after completion; pressing Enter on a completed row re-running the command after its output expired — fixed.
- On Windows, pressing ← in
claude agentsleaving the list unresponsive to keyboard input — fixed. /bgand←-detach now preserve directories added via/add-dir— added.- Edit / Write refusing with “background session hasn’t isolated its changes yet” right after detaching a session that was already editing in place — fixed.
claude respawn <id>on a stopped background session showing “stopped” instead of running — now runs./resumepicker not showing sessions forked from a background session — now shown.- Opening a session from
claude agentsor runningclaude logs <id>hanging when the background service is unresponsive — now times out after 10s with a recovery hint. - Background Bash tasks spawned by subagents staying “Running” in SDK task panels after the process exits — fixed.
- Completed or stopped background sessions briefly failing to wake being permanently marked as a startup crash — fixed.
- Markdown links in
claude agentsattached sessions rendering as plain text — now render as clickable hyperlinks. - Custom
spinnerVerbsapplying to the post-turn duration message — past-tense built-ins like “Worked for 5s” are restored there. claude agents/--bgrejection messages now name the specific gate (non-TTY, env var, or setting) instead of a generic message — added.claude --bg --name <label>now echoes the name in the post-spawn confirmation — added.claude agents: renaming a background session with Ctrl+R now updates the attached session’s banner immediately — added.- Background session worktree isolation guard now applies for non-git VCS users with
WorktreeCreatehooks configured — added. /doctornow shows an exec-form example when a command hook is missing thecommandfield — added.- Skill-listing truncation is no longer shown as a startup notification — run
/doctorfor the full breakdown.
Notes
/modelsemantics shift:/modelnow changes the current session only. To change the default for new sessions, pressdin the model picker. The companion regression where post-startup model changes didn’t apply was fixed in this release as well./extra-usage→/usage-credits: the old slash command name continues to work as an alias, so existing scripts and docs referencing/extra-usagearen’t broken.- Three regressions resolved: the v2.1.129 Bedrock / Vertex Opus 1M picker, the v2.1.141 headless Skill permission error, and the v2.1.143 macOS Full Disk Access crash are all addressed in this release. Workarounds for any of these can be reverted.
- MCP
tools/listpagination: paginated MCP servers were silently dropping tools beyond the first page until this release. If a server appeared to expose fewer tools than expected, re-check after upgrading. - Startup hang shortened: where reaching
api.anthropic.comis blocked (captive portals, restrictive networks), startup now falls back within 15 seconds instead of hanging up to 75.