+AddedClaude Opus 4.8 support and 4.7 → 4.8 migration guidance to the `/claude-api` skill
~Opus 4.8 is here! Now defaults to high effort · /effort xhigh for your hardest tasks
~Introducing dynamic workflows: ask Claude to create a workflow and it orchestrates work across tens to hundreds of agents in the background, so you can take on larger, more complex tasks. Run `/workflows` to view your runs
~Fast mode on Opus 4.8 is now available at a fraction of its previous cost: 2x the standard rate for 2.5x the speed
~The lean system prompt is now the default for all models except Haiku, Sonnet, and Opus 4.7 and earlier
~Claude now reserves the multiple-choice question prompt for decisions it genuinely cannot make itself, instead of asking when it already has enough context to proceed
~/simplify now runs a cleanup-only review (reuse, simplification, efficiency, altitude) and applies the fixes, instead of running the full `/code-review --fix` bug-hunting review
~Renamed the /effort slider labels from "Speed"/"Intelligence" to "Faster"/"Smarter" for clarity
~claude agents: type `! <command>` to run a shell command as a background session you can attach to and detach from. Also available as `claude --bg --exec '<command>'`
~claude agents: `/logout` now signs you out instead of being sent to a background session
~←← to open the agents view now works on Bedrock, Vertex, Foundry, and with telemetry disabled
−DeprecatedCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE (will be removed on 06/01). To use fast mode on Opus 4.6, switch with `/model claude-opus-4-6[1m]` and then `/fast on`
−Removed the stale "& for background" hint from the shortcuts help panel
↑Improved the auto-mode classifier's detection of data exfiltration, particularly bulk transfers of repository contents
✓Fixedrm -rf $HOME not being blocked as a dangerous path when `HOME` has a trailing slash
✓Fixed$TMPDIR resolving to different directories in sandboxed vs unsandboxed Bash commands within the same session
✓Fixed unreadable highlighted-row text in `claude agents` when the Claude Code theme doesn't match the terminal background
✓Fixed background-agent completion notifications triggering premature "out of context" behavior on some 1M-context models
✓Fixed background-session classifier losing the user's goal when a scheduled `/command` fires
✓Fixed pinned background sessions respawning every minute after a Claude Code update, causing repeated agent-start notifications and process churn at idle
✓Fixed background sessions stuck at "blocked", "running", or "working" not retiring after the idle grace period
✓Fixed subagents in background sessions bypassing the worktree-isolation guard and writing to the shared checkout
~claude agents: autocomplete in the dispatch input now suggests native slash commands and bundled skills, not just project skills
~claude agents: PR column now shows `PR #N` for a single PR or `N PRs` for multiple
~claude doctor now shows the result of your last update attempt
~Combined the separate "needs authentication" startup notifications for MCP servers and connectors into a single message
~macOSBackground agents now appear as "Claude Code" in Privacy & Security and keep their permission grants across upgrades
~--strict-mcp-config no longer strips inline `mcpServers` from explicitly-passed agent definitions (`--agents` / SDK `agents`), and blocked subagent MCP servers now surface a visible warning
~/bg while Claude is responding now continues the response in the background session instead of dropping it
~/model now saves your selection as the default for new sessions (matching the IDE). Press `s` in the picker to switch models for the current session only.
+Added the session entrypoint as an OpenTelemetry metric attribute (`app.entrypoint`, opt-in via `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`)
~/code-review --fix now applies review findings to your working tree after the review, surfacing reuse, simplification, and efficiency suggestions; `/simplify` now invokes `/code-review --fix`
~Skills and slash commands can now set `disallowed-tools` in frontmatter to remove tools from the model while the skill is active
~SessionStart hooks can now return `reloadSkills: true` to re-scan skill directories, making skills installed by the hook available in the same session
~SessionStart hooks can now set the session title via `hookSpecificOutput.sessionTitle` on startup and resume
~claude plugin marketplace remove now accepts `--scope user|project|local` for symmetry with `marketplace add`, `install`, and `uninstall`
~Claude Code now switches to your configured `--fallback-model` for the rest of the session when the primary model is not found, instead of failing every request
~Auto mode no longer requires opt-in consent
~Vim mode: / in NORMAL mode now opens reverse history search (like Ctrl+R), matching bash/zsh vi-mode
✓Fixed terminal styling degrading in very long sessions by recycling the renderer's style pool
✓Fixed the sandbox-enabled warning not appearing in condensed startup mode — it now shows in every layout
✓Fixed the loading spinner showing "still thinking"/"almost done thinking" while a tool is running, and reset the thinking status to "thinking" after each tool
✓Fixed focus mode showing a spurious "N messages hidden" count on turns with no hidden activity
✓Fixed clicking a link inside an expanded tool result collapsing the section instead of opening the link
✓Fixed markdown table cell borders inheriting the color of inline code, wrapped continuation lines losing their style, and empty header cells showing a label in the narrow-terminal stacked layout
✓Fixed plugin MCP servers with the same command but different environment variables being incorrectly deduplicated
✓Fixed/doctor reporting "marketplace not found" or "plugin not found" for stale `enabledPlugins` entries referencing removed marketplaces or dropped plugins
~Enterprise: added the allowAllClaudeAiMcps managed setting to load claude.ai cloud MCP connectors alongside `managed-mcp.json`
↑Improved/feedback reports to include the conversation that happened before context compaction, making issues from earlier in long sessions easier to triage
✓Fixed a PowerShell permission bypass: built-in `cd` functions (`cd..`, `cd\`, `cd~`, `X:`) changed the working directory undetected, letting a later command read outside the workspace
✓Fixed the sandbox write allowlist in git worktrees covering the entire main repository root instead of only the shared `.git` directory (with `hooks/` and `config` denied)
✓Fixed PowerShell prefix/wildcard allow rules (e.g. `PowerShell(dotnet.exe build *)`) not pre-approving native executables and scripts
✓Fixed a permission-analysis gap where the parser trusted stale variable-tracking values for `PWD`/`OLDPWD`/`DIRSTACK` across `cd`/`pushd`/`popd`
✓Fixedfind in the Bash tool exhausting the macOS system file/vnode table and crashing the host on large directory trees
✓Fixed the managed-settings approval dialog leaving the terminal frozen after accepting at startup
✓Fixed/ultraplan and remote session creation failing with "Could not capture uncommitted changes" when the working tree has no real changes
✓FixedotelHeadersHelper failing silently when the script path contains spaces; helper failures are now reported in `/doctor` and the debug log
~Pinned background sessions (`Ctrl+T` in `claude agents`) now stay alive when idle, are restarted in place to apply Claude Code updates, and are shed under memory pressure only after non-pinned sessions
~Renamed/simplify to `/code-review`. It now reports correctness bugs at a chosen effort level (e.g., `/code-review high`); pass `--comment` to post findings as inline GitHub PR comments. The old cleanup-and-fix behavior has been removed
~Prompt history no longer records consecutive duplicate entries — recalling a prompt with arrow-up and submitting it again won't add another copy
↑Improvedauto-updater: retries transient network failures, reports specific error categories and OS error codes on failure, and shows the current version when an update fails
↑Improved diff rendering performance for large file edits
✓Fixed enterprise login restrictions (`forceLoginOrgUUID` and `forceLoginMethod` managed-settings) not being enforced against third-party-provider and API-key sessions
✓Fixed& in `!` command output displaying as `&`, which broke copy-pasting URLs from commands like `gcloud auth login` on headless machines
✓Fixed unknown slash commands silently doing nothing in headless/SDK mode — they now show an error message
✓Fixed/help rendering a broken tab header and showing only one command per page on small terminals when not in fullscreen mode
✓Fixed shell snapshot dropping user functions whose names start with a single underscore, which broke aliases referencing them
✓Fixed plugin agents that declare multiple `Agent(...)` types in `tools:` frontmatter dropping all but the last entry
✓Fixed hook if conditions like `PowerShell(git push*)` never matching — only `PowerShell(*)` worked
✓Fixed PowerShell tool dropping output for commands that rely on the default formatter
+Addedclaude agents --json to list live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers)
+Addedagent_id and `parent_agent_id` attributes to `claude_code.tool` OTEL spans, and fixed trace parenting so background subagent spans nest under the dispatching Agent tool span
~Status line JSON input now includes GitHub repo and PR information when detected
~/plugin Discover and Browse screens now show a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installation
~claude agents terminal tab title now shows the awaiting-input count so an alt-tabbed window tells you when an agent needs attention
~Slash command and @-mention suggestion list now supports mouse hover and click in fullscreen mode
~Stop and SubagentStop hook input now includes `background_tasks` and `session_crons` fields
↑Improved the Read tool to return a truncated first page with a "PARTIAL view" notice instead of a hard error when a whole-file read exceeds the token limit
✓Fixed a permission-prompt bypass where bare variable assignments to non-allowlisted environment variables in Bash commands were auto-approved
✓Fixed MCP prompt slash commands showing raw server validation errors when a required argument is omitted — the error now names the missing argument and shows expected usage
✓Fixed the spinner and elapsed-time display freezing until a keypress after the terminal was resized or refocused
✓Fixed the cross-project resume hint failing in default Windows PowerShell 5.1 — Windows now uses `;` as the command separator
✓Fixed voice push-to-talk not working in the agent view's reply pane
✓Fixed task lists rendering in random order when several tasks are created at once
✓Fixed stale "Failed to install Anthropic marketplace" banner showing when the marketplace is already installed
✓Fixed the PR badge in the footer not updating immediately after `gh pr create` and other PR-state-changing commands run in-session
+Added/resume support for background sessions — sessions started via `claude --bg` or agent view now appear alongside interactive ones, marked with `bg`
~/model now changes the model for the current session only; press `d` in the model picker to set a default for new sessions
~Renamed"extra usage" to "usage credits" across CLI copy; `/extra-usage` is now `/usage-credits` (old name still works)
~Fewer spurious tool errors during search: `head`/`tail` file views now satisfy the read-before-edit check, and a "no matches" result (exit code 1) from `egrep`, `fgrep`, `git grep`, or `git diff` is no longer reported as a command failure
~Resumed sessions now keep the model they were using instead of picking up another session's `/model` choice
~/bg and `←`-detach now preserve directories added via `/add-dir`
~claude agents / `--bg` rejection messages now name the specific gate (non-TTY, env var, or setting) instead of a generic message
~claude --bg --name <label> now echoes the name in the post-spawn confirmation
~claude agents: renaming a background session with Ctrl+R now updates the attached session's banner immediately
↑Reduced terminal rendering glitches in VS Code by reducing spinner animation color count
↑Improved recovery from rare pre-response stream stalls — now retries streaming once instead of falling back to a slower non-streaming request
↑Improved SDK/headless MCP startup: pre-wait now overlaps startup instead of blocking before the first turn (up to 2s faster with slow MCP servers)
✓Fixed startup hanging up to 75s when `api.anthropic.com` is unreachable (captive portal, firewall, VPN issues) — side-channel API calls now time out after 15s
✓Fixed garbled terminal output after a missed window-resize event (e.g. dragging a VS Code split-pane divider) — now self-heals on the next frame instead of requiring Ctrl+L
✓Fixed progressive terminal display corruption (stale/garbled glyphs) that could appear in very long sessions and only cleared on terminal resize or restart
✓Fixed macOS background sessions crashing with "exit 1 before init" when the project lives under a Full Disk Access-protected folder (regression in 2.1.143)
✓Fixed an 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
✓Fixed/branch failing 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 instead of returning to answer selection
✓Fixed model selection not applying when changed via the IDE model picker or `applyFlagSettings` after startup
+Addedplugin dependency enforcement: `claude plugin disable` now refuses when another enabled plugin depends on the target (with a copy-pasteable disable-chain hint), and `claude plugin enable` force-enables transitive dependencies
+Added projected context cost (per-turn and per-invocation token estimates) to the `/plugin` marketplace browse pane
+Addedworktree.bgIsolation: "none" setting to let background sessions edit the working copy directly without `EnterWorktree`, for repos where worktrees are impractical
~PowerShell tool now passes `-ExecutionPolicy Bypass`. Opt out with `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`
~Background sessions now preserve the model and effort level you set after waking from idle
~Shift+Tab in attached agent sessions now includes auto mode in the cycle
~The PowerShell tool is now enabled by default on Windows for Bedrock, Vertex, and Foundry users. Opt out with `CLAUDE_CODE_USE_POWERSHELL_TOOL=0`.
~claude agents now accepts `--add-dir`, `--settings`, `--mcp-config`, and `--plugin-dir` and applies them to the dashboard and to background sessions dispatched from it
~claude agents accepts `--permission-mode`, `--model`, `--effort`, and `--dangerously-skip-permissions` to set defaults for sessions dispatched from the view
✓Fixed a corrupt .credentials.json with a non-array `scopes` value hanging the CLI on startup or silently aborting OAuth token refresh
✓Fixed right-click paste in claude agents on Windows Terminal and WSL
✓Fixed stop hooks that block repeatedly looping forever — the turn now ends with a warning after 8 consecutive blocks (override via `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`)
✓Fixed Esc/Ctrl+C not cancelling a pending `/loop` wakeup while Claude is idle between iterations
✓Fixed/goal evaluator firing while background shells or delegated subagents are still running
✓FixedNO_COLOR/`FORCE_COLOR` in settings.json `env` stripping Claude Code's own UI colors — they now apply to subprocesses only
✓Fixed agent view spawning repeated PowerShell processes on Windows when listing sessions
✓Fixed/bg without a prompt sending "continue" to the forked session — the fork now waits for input
+Added new claude agents flags: `--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, and `--dangerously-skip-permissions` to configure dispatched background sessions
~Fast mode now uses Opus 4.7 by default (previously Opus 4.6). Set `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1` to pin fast mode to Opus 4.6
~Plugins with a root-level `SKILL.md` and no `skills/` subdirectory are now surfaced as a skill
↑Improvedreactive compaction: the first summarize attempt now seeds from the original request's overflow size, avoiding a wasted near-full-context retry
↑Improvedhook configuration error: configuring a prompt- or agent-type hook for `SessionStart`/`Setup`/`SubagentStart` now shows a clear "use a command-type hook instead" error
✓FixedMCP_TOOL_TIMEOUT not raising the per-request fetch timeout for remote HTTP and SSE MCP servers, which capped tool calls at 60 seconds regardless of the configured value
✓Fixed background sessions not recognizing pre-existing git worktrees, blocking Edit while EnterWorktree refused to create a duplicate
✓Fixed background sessions disappearing and daemon reconnect failing after macOS sleep/wake — the daemon now detects clock jumps instead of treating them as elapsed idle time
✓Fixed daemon not exiting cleanly after the binary is upgraded (e.g. `brew upgrade`), causing dispatched agents to crash-loop on the deleted path
✓Fixed background agents crash-looping when the Claude-in-Chrome extension is connected without a shared tab
✓Fixed clicking links in an attached `claude agents` session — the background worker's headless browser shim no longer applies while attached
✓Fixedclaude agents "v to open in editor" using the daemon's default editor instead of your shell's `$EDITOR`/`$VISUAL`
✓Fixedclaude agents deadlocking on Windows with network-drive working directories; Ctrl+C now works during startup
+AddedterminalSequence field to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminal
+AddedCLAUDE_CODE_PLUGIN_PREFER_HTTPS to clone GitHub plugin sources over HTTPS instead of SSH, for environments without a GitHub SSH key
+AddedANTHROPIC_WORKSPACE_ID environment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one
+Addedclaude agents --cwd <path> to scope the session list to a directory
~/feedback can now include recent sessions (last 24 hours or 7 days) for issues spanning more than the current session
~Rewind menu: added "Summarize up to here" to compress earlier context while keeping recent turns intact
~Auto mode permission dialog now explains when a `permissions.ask` rule caused the prompt
~Restored the "view diff in your IDE" option on file-edit permission prompts when an IDE is connected
~Background agents launched via `/bg` or `←←` now preserve the current permission mode instead of reverting to default
~claude agents: agents that finish work but leave a background shell running now move to Completed instead of staying under Working
~BedrockawsCredentialExport now always runs when configured instead of being skipped when ambient AWS credentials resolve, fixing auth for cross-account access
~VSCodeVoice mode: the WSL error now suggests installing `sox libsox-fmt-pulse` for WSLg users
↑Improved spinner feedback during long thinking periods — the spinner now warms to amber after 10 seconds to signal Claude is still working
↑Improvedplugin menu navigation: `→`/Tab switch tabs, `↑` moves to the tab strip, and tab headers and search box are clickable in fullscreen mode
✓Fixed background side-queries sending an unavailable Haiku model ID on Bedrock/Vertex/Foundry/gateway when no `ANTHROPIC_SMALL_FAST_MODEL` override is set — now falls back to the main-loop model
✓Fixedclaude daemon status and `/doctor` on Windows throwing when the daemon pipe key file is locked or unreadable — now shows the underlying error instead of an opaque failure
✓Fixedclaude agents showing the agent-type list instead of the dashboard when launched through a wrapper that adds flags
✓Fixedclaude agents opening a crashed session firing redundant dispatches when the working directory was deleted
✓Fixed background jobs on a custom `ANTHROPIC_BASE_URL` gateway not getting auto-named — the namer now uses the main model when no Haiku model is configured
✓Fixed/model in one session silently changing the autocompact threshold in other concurrent sessions
✓Fixed switching permission mode while a tool-permission prompt is open not auto-dismissing the prompt when the new setting permits the tool
✓Fixed pressing Enter while a permission/dialog prompt is open also submitting text in the input box
~Plugins now warn when a default component folder (e.g. `commands/`) is silently ignored because `plugin.json` sets the matching key. Shown in `/doctor`, `claude plugin list`, and `/plugin`.
↑Improved Agent tool subagent_type matching to accept case- and separator-insensitive values (e.g. `"Code Reviewer"` resolves to `code-reviewer`)
✓Fixed/goal silently hanging when `disableAllHooks` or `allowManagedHooksOnly` is set — now shows a clear message instead of an indicator that never resolves
✓Fixed a regression in settings hot-reload where symlinked settings files caused misattributed change events and spurious `ConfigChange` hooks
✓Fixedclaude --bg failing with "connection dropped mid-request" when the background service was about to idle-exit
✓Fixed background service startup failing on machines with enterprise endpoint security by allowing more time
✓Fixed remote managed settings not retrying on 401 — now retries once with a force-refreshed token
✓Fixed managed extraKnownMarketplaces auto-update policy not being persisted to `known_marketplaces.json`
✓Fixed/loop scheduling redundant wakeups to poll for background tasks that already notify on completion
✓Fixed a recurring event-loop stall on Windows when a missing executable (e.g. `gh`) triggered synchronous `where.exe` re-spawns on every check
+Added agent view (Research Preview): a single list of every Claude Code session — running, blocked on you, or done. Run `claude agents` to get started. See https://code.claude.com/docs/en/agent-view
+Added/goal command: set a completion condition and Claude keeps working across turns until it's met. Works in interactive, `-p`, and Remote Control. Shows live elapsed/turns/tokens as an overlay panel
+Added/scroll-speed command to tune mouse wheel scroll speed with a live preview
+Addedtranscript view navigation: `?` for keyboard shortcuts, `{`/`}` to jump between user prompts, `v` to toggle shortcut panel
+Added hook args: string[] field (exec form) that spawns the command directly without a shell, so path placeholders never need quoting
+Added hook continueOnBlock config option for `PostToolUse` — set to `true` to feed the hook's rejection reason back to Claude and continue the turn
~MCP stdio servers now receive `CLAUDE_PROJECT_DIR` in their environment, matching hooks. Plugin configs can reference `${CLAUDE_PROJECT_DIR}` in commands
~Compaction prompt now asks the model to preserve sensitive user instructions
~/mcp Reconnect now picks up `.mcp.json` edits without a restart, and shows the HTTP status and URL when reconnecting fails
~/context all per-skill token estimates now account for the model's tokenizer and show rounded values
✓Fixed a deadlock where expired credentials and the `forceRemoteSettingsRefresh` policy setting blocked `claude auth login`/`logout`/`status` with no way to recover
✓FixedautoAllowBashIfSandboxed not auto-approving commands with shell expansions like `$VAR` and `$(cmd)`
✓Fixed a bug where a hook writing to the terminal could corrupt an on-screen interactive prompt; hooks now run without terminal access
✓Fixed unbounded memory growth when an HTTP/SSE MCP server streams non-protocol data — response bodies now capped at 16 MB per SSE frame
✓FixedSkill(name *) permission rules — the wildcard form now works as a prefix match, matching `Bash(ls *)` behavior
✓Fixed settings hot-reload not detecting edits to symlinked `~/.claude/settings.json`
✓Fixed plugin details failing to load when the marketplace key differs from the manifest name
✓Fixed/model picker "Default" row not reflecting `ANTHROPIC_DEFAULT_OPUS_MODEL`/`ANTHROPIC_DEFAULT_SONNET_MODEL` overrides
~Changed plugin marketplace removal key to `d` (matching delete elsewhere) instead of `r` which collided with retry
↑Improved visual consistency across slash command dialogs: standardized footer hints, dialog spacing, and arrow-key styling, and the dialog frame now appears immediately during loading instead of popping in after
↑Improved error message when --worktree collides with an existing or stale worktree
✓Fixed MCP servers configured in `.mcp.json`, plugins, and claude.ai connectors silently disappearing after `/clear` in the VS Code extension, JetBrains plugin, and Agent SDK
✓Fixed a rare login loop where a concurrent credential write could overwrite a freshly-rotated OAuth token and force re-login
✓FixedMCP OAuth refresh tokens being lost when multiple servers refresh concurrently — users with several remote MCP servers should no longer need daily re-authentication
✓Fixed an API error (400) when extended thinking emitted a redacted thinking block after a tool call
✓Fixed--resume / `--continue` not finding sessions when the project path contains underscores
✓Fixed plan mode not blocking file writes when a matching `Edit(...)` allow rule exists
✓Fixed plugin Stop/`UserPromptSubmit` hooks failing when cache cleanup deletes a version still in use by a running session
✓Fixed colors appearing at wrong positions in bash command output and markdown code blocks
+Addedworktree.baseRef setting (`fresh` | `head`) to choose whether `--worktree`, `EnterWorktree`, and agent-isolation worktrees branch from `origin/<default>` or local `HEAD`. **Note:** the default `fresh` changes `EnterWorktree`'s base back to `origin/<default>` (it has been local `HEAD` since 2.1.128) — set `worktree.baseRef: "head"` to keep unpushed commits in new worktrees
+Addedsandbox.bwrapPath and `sandbox.socatPath` managed settings (Linux/WSL) to specify custom bubblewrap and socat binary locations
+AddedparentSettingsBehavior admin-tier key (`'first-wins' | 'merge'`) to let admins opt SDK `managedSettings` (parent tier) into the policy merge
~Hooks now receive the active effort level via the `effort.level` JSON input field and the `$CLAUDE_EFFORT` environment variable, and Bash tool commands can read `$CLAUDE_EFFORT`
~claude --help now lists `--remote-control` alongside `--remote-control-session-name-prefix`
↑Improved focus mode behavior
↑Improved memory usage by releasing warm-spare background workers under memory pressure
✓Fixed parallel sessions all dead-ending at 401 after a refresh-token race wiped shared credentials
✓FixedEdit/`Write` allow rules scoped to a drive root (`C:\`) or POSIX `/` matching incorrectly and always prompting
✓Fixed an unhandled rejection (ECOMPROMISED) when a history or session-log file lock is compromised by clock skew or slow disk
✓Fixed pressing Esc during conversation compaction showing a spurious "Error compacting conversation" notification
✓FixedHTTP(S)_PROXY / `NO_PROXY` / mTLS not being respected for the full MCP OAuth flow including discovery, dynamic client registration, token exchange, and token refresh
✓Fixed Read/Write/Edit being denied on mapped network drives passed via `--add-dir` / SDK `additionalDirectories`
✓FixedRemote Control stop/interrupt from claude.ai not fully canceling the CLI session the same way local Esc does, causing queued messages to never advance after interrupting a stuck tool or prompt
✓Fixed/effort in one session unexpectedly changing the effort level of other concurrent sessions, and a related issue where an IDE effort change could be silently dropped