Claude Code 2.1.144: Background Sessions, Terminal Fixes, MCP Improvements

Claude Code 2.1.144 fixes critical startup hangs, terminal rendering corruption, and MCP tool pagination. Background sessions now appear in /resume with elapsed duration. Model selection is now per-session. 40+ fixes and improvements.

Claude Code 2.1.144: Background Sessions, Terminal Fixes, MCP Improvements

TL;DR

  • Background sessions now appear in `/resume` and show elapsed duration on completion
  • Fixed 75s startup hangs when API is unreachable; terminal rendering corruption in long sessions
  • Model selection now per-session; `/model` changes don't affect other sessions or defaults
  • MCP pagination, image handling, and paginated tool lists now work correctly

New

  • /resume support for background sessions — sessions started via `claude --bg` or agent view now appear alongside interactive ones, marked with `bg`
  • Elapsed duration in background notifications — subagent completion messages now show elapsed time (e.g. "Agent completed · 3h 2m 5s")
  • Plugin last-updated timestamps — `/plugin` browse and discover panes now display when each plugin was last updated
  • Per-session model selection — `/model` now changes the model for the current session only; press `d` in the model picker to set a default for new sessions
  • Usage credits terminology — renamed "extra usage" to "usage credits" across CLI copy; `/extra-usage` is now `/usage-credits` (old name still works)

Fixed

  • 75s startup hangs on unreachable API — side-channel API calls now time out after 15s instead of blocking when `api.anthropic.com` is unreachable (captive portal, firewall, VPN)
  • Terminal output garbling after window resize — missed resize events no longer require Ctrl+L to fix; terminal now self-heals on the next frame
  • Progressive terminal corruption in long sessions — stale/garbled glyphs that accumulated in very long sessions and only cleared on resize or restart are now prevented
  • Terminal rendering glitches in VS Code — reduced spinner animation color count to minimize visual artifacts
  • macOS background session crashes — fixed "exit 1 before init" crash when project lives under Full Disk Access-protected folder (regression in 2.1.143)
  • File type mismatch handling — reading files with mismatched extensions (e.g. HTML saved as .png) no longer breaks conversations; now falls back to text
  • Spurious tool errors during search — `head`/`tail` file views now satisfy read-before-edit checks; "no matches" from `egrep`, `fgrep`, `git grep`, `git diff` no longer reported as failures
  • /branch in worktrees and background sessions — fixed "No conversation to branch" error after entering a worktree or in some background sessions
  • Escape key in AskUserQuestion notes — pressing Escape now returns to answer selection instead of aborting the turn
  • Model selection via IDE picker — fixed model changes not applying when changed via IDE model picker or `applyFlagSettings` after startup
  • Resumed session model persistence — sessions now keep their original model instead of picking up another session's `/model` choice
  • Bedrock/Vertex Opus selection — fixed inability to select "Opus (1M context)" from `/model` picker (regression in v2.1.129)
  • Remote-session login with forced settings — fixed "Can't access this organization" error for users with `forceLoginMethod` and `forceLoginOrgUUID` set
  • MCP paginated tool lists — fixed MCP servers with paginated `tools/list` responses only returning first page, silently dropping tools
  • MCP unsupported image MIME types — SVG and other unsupported formats now saved to disk and referenced in tool result instead of breaking conversations
  • File descriptor exhaustion in skill directories — non-`.md` files no longer trigger skill reloads during builds
  • Session title generation — fixed titles being generated from plugin monitor output instead of user's first prompt
  • Skill tool permission errors in headless mode — fixed regression in v2.1.141
  • Plugin caching hints — plugins enabled in settings no longer show "not cached" errors after first load on fresh machine; project-only plugins now show actionable `claude plugin install` hint
  • MCP configuration parsing — `claude mcp list` now shows configuration errors instead of silently reporting no servers when `.mcp.json` is malformed
  • Custom API base URL side-queries — background side-queries on custom `ANTHROPIC_BASE_URL` and Bedrock Mantle now fall back correctly to Haiku
  • Background session scrolling on Windows — PgUp/PgDn, mouse wheel, and Ctrl+O transcript navigation now work in attached sessions
  • Terminal crash on detach — fixed crash when closing terminal while attached to background session
  • Exec session Ctrl+C handling — `!` exec sessions now respond to Ctrl+C while attached
  • Agent view shell-command lingering — completed rows no longer stay "Working" and pressing Enter no longer re-runs expired commands
  • Windows keyboard navigation in agents list — fixed ← key leaving list unresponsive
  • CJK ghost characters in Agent View — fixed ghost characters at left edge when switching panes on Windows Terminal with CJK content
  • Directory preservation on detach — `/bg` and ← detach now preserve directories added via `/add-dir`
  • Edit/Write after detach — fixed "background session hasn't isolated its changes yet" error right after detaching an in-place editing session
  • Respawn status display — `claude respawn` on stopped background session now shows "running" instead of "stopped"
  • /resume picker for forked sessions — fixed picker not showing sessions forked from background sessions
  • Background service timeout handling — opening sessions from `claude agents` or running `claude logs` now times out after 10s with recovery hint instead of hanging
  • Background Bash task status — subagent-spawned Bash tasks no longer stay "Running" in SDK task panels after process exits
  • Startup crash detection — completed or stopped background sessions no longer permanently marked as startup crash after brief wake failure
  • Markdown links in agent sessions — fixed links rendering as plain text instead of clickable hyperlinks in `claude agents` attached sessions
  • Custom spinner verbs — fixed applying to post-turn duration message; past-tense built-ins like "Worked for 5s" restored

Improved

  • Rejection messages clarity — `claude agents` / `--bg` rejection messages now name the specific gate (non-TTY, env var, or setting)
  • Background spawn confirmation — `claude --bg --name ` now echoes the name in post-spawn confirmation
  • Session renaming in agent view — renaming with Ctrl+R now updates attached session's banner immediately
  • Worktree isolation for non-git VCS — background session worktree isolation guard now applies for non-git VCS users with `WorktreeCreate` hooks
  • Plugin marketplace HTTPS preference — add/update now respects `CLAUDE_CODE_PLUGIN_PREFER_HTTPS`
  • Plugin list navigation — `/plugin` now returns to Installed list after enabling, disabling, or uninstalling
  • Doctor command examples — `/doctor` now shows exec-form example when command hook is missing `command` field
  • Skill truncation visibility — no longer shown as startup notification; run `/doctor` for full breakdown
  • Stream stall recovery — improved recovery from rare pre-response stream stalls; now retries streaming once instead of falling back to slower non-streaming request
  • SDK/headless MCP startup — pre-wait now overlaps startup instead of blocking before first turn (up to 2s faster with slow MCP servers)
  • Survey follow-up hints — post-survey hint now appears after every non-dismiss response with context-aware copy, making it easier to share detail via /feedback

Update: npm install -g @anthropic-ai/claude-code

Source: Claude Code