Follow Discord
Sweep 08 Oct 2026 · 18:53Z Build v2.1.295 516 read Stable v2.1.286 Latest v2.1.295 Next v2.1.295 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · claude-code

One read of Claude Code CLIclaude-code-20261006T000701Z

2 pages moved out of 221 read.

Pages moved 2 significant first
Pages read 221 in this capture
Captured 00:07 UTC
Corpus hash 54a629fffc4b corpus-hash

What this read moved

1-2 of 2

changelog Changed · +193 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
66 
77Run `claude --version` to check your installed version.
88 
9<Update label="2.1.290" description="October 5, 2026">
10 * Added `serverToolUses` to the result of a mod's `turn.step` hook: the tool calls the API ran itself (the advisor), each with its id, name, input, start and end
11 * Added `agentId` to the `tool.check` event of plugin hooks, so a hook can tell a subagent's permission check from the main session's
12 * Added `ceiling` to the question and verdict a mod's `tool.check` hook reads, naming the approval an organization requires for a tool
13 * Added `ThemeKey` and `Color` types to the plugin hooks typings, so an editor lists the theme colors a mod's drawing can name
14 * Added to `claude plugin validate`: each hook a mod registers at a gating site is listed with whether it has a `.catch` (`gatingHooks` under `--json`)
15 * Added a Deny button to the Claude apps gateway's sign-in approval page: it ends the pending sign-in, so the waiting terminal stops within seconds
16 * Added `claude attach <name>` and `claude logs <name>`: part of a session name works in place of the id
17 * Added `/claude-api managed-agents-onboard <url>` to set up the Managed Agents pattern a page describes as `ant apply` files
18 * Added `/claude-api managed-agents-onboard <quickstart-name>` to build a Console quickstart template, such as `deep-researcher`, with the `ant` CLI
19 * Added a warning when a managed settings file is a link to a file outside the managed settings folder
20 * Added a /status and doctor warning when managed settings ignore user-configured sandbox allowRead paths or allowed domains
21 * Fixed requests failing behind proxies and gateways that reject one of Claude Code's beta headers with a status other than 400, or together with a second beta
22 * Fixed long sessions with hundreds of images getting stuck on "Request rejected as unprocessable by the model" errors
23 * Fixed a turn ending at once when the API's output content filter stopped a reply while Claude was still thinking; the request is now retried once before the error is shown
24 * Fixed resumed subagents and teammates losing their earlier thinking and prompt cache after receiving a message mid-run
25 * Fixed WebFetch silently dropping page text past 100,000 characters; it now says how much was unread and takes an `offset` to read on
26 * Fixed a crash ("Maximum call stack size exceeded") when a response nested lists or quotes thousands of levels deep
27 * Fixed `/rewind` not listing a prompt sent while Claude was still working
28 * Fixed scheduled tasks (`/loop` with an interval, reminders) silently not coming back on resume once the conversation was compacted; covers compactions made from this version on
29 * Fixed scheduled tasks set in the foreground never firing after a ← or `/background` hand-off, and recurring ones firing an extra run on every resume, respawn or fork
30 * Fixed headless `--json-schema` runs exiting non-zero with `is_error: true` on a `success` result when the connection dropped after the structured output was already delivered
31 * Fixed plan mode letting the auto mode classifier approve non-read-only connector tools that carry a server-pushed ask policy
32 * Fixed a project `CLAUDE.md`, rule or `AGENTS.md` symlinked outside the working directories loading under `permissions.blockReadsOutsideWorkingDirectories` or a `Read` deny rule
33 * Fixed URL allow and deny patterns with a wildcard inside an `xn--` host label matching differently from one process to the next
34 * Fixed an MCP server provided by your organization being relisted as your own after signing in or reconnecting, including from a late result in headless and SDK sessions
35 * Fixed `/ultrareview` dropping uncommitted changes without a warning on Windows when `git stash create` failed, and refusing them after a `git add -N` file was deleted or moved
36 * Fixed the `plansDirectory` setting's project-root check for paths that contain a backslash on macOS and Linux
37 * Fixed replies in very long Remote Control and cloud sessions that could appear a block at a time instead of streaming in
38 * Fixed the background daemon's log passing terminal control characters to the screen under `claude daemon run` and `claude daemon logs`; they now show as `\uXXXX` escapes
39 * Self-hosted runner: Fixed a crafted, very long line of a session's error output freezing the runner for several seconds
40 * Fixed a plugin hook with a `.catch` being unloaded, and its `.catch` skipped, when the hook kept the hooks worker busy on a prompt or tool call
41 * Fixed a mod's `turn.step` result listing a tool call that a mid-response model fallback had discarded
42 * Fixed a Cowork cloud session's reply sometimes never finishing when its container restarted just after Claude sent a message or a file
43 * Fixed `claude plugin validate` and plugin loading refusing a hooks module that destructures an option named like one of its top-level functions
44 * Fixed `/ultrareview` failing to upload uncommitted changes when `core.safecrlf=true` is set in git's configuration
45 * Fixed the effort level changing when a flagged message is retried on a fallback model that has a different level saved in settings
46 * Windows: Fixed multi-line `!` shell blocks in skills and commands failing when the file is saved with CRLF line endings
47 * Fixed Claude Code hanging until killed when a `/permissions` tab was clicked while searching in fullscreen mode
48 * Fixed conversation compaction sometimes failing with a "null is not an object" error
49 * Fixed plugin hooks reading an empty `answer` on `turn.complete` for a subagent that hands its report back in auto mode
50 * Fixed a mod being unloaded without a message when a refresh followed its failed reload; its failure line now says the version loaded before is unloaded
51 * Fixed a mod's `prompt.submit` hook that drops a prompt after calling `next(e)` being ignored silently: the hook is now reported as failed, by name
52 * Fixed a mod's pane or band being redrawn without end when it followed its end over a tree that changed height at every drawing
53 * Fixed an image read on macOS and Windows being able to return a file outside what was approved, through a link swapped in mid-read
54 * Fixed a case where a user-installed mod could get an organization's plugin unloaded; the mod is now the one unloaded
55 * Fixed `disableClaudeAiConnectors` and `allowedMcpServers` URL rules not being applied to some MCP entries declared in `.mcp.json`, plugins or agents
56 * Fixed a mod's inline pane being redrawn without end when its tree changed height at every drawing
57 * Fixed an `@`-mention under the read block or `--restricted` being able to read a file outside the working directories through a link changed mid-read
58 * Fixed Esc in the agents view confirming "Press enter again to restart this session — it isn't responding"; Esc now just reopens the session
59 * Fixed agent view losing a background session's `/loop` run count, countdown and live status line after the session enters a worktree that it creates
60 * Fixed `claude agents` sessions in manual permission mode asking for approval to read an image pasted into a reply or a new agent's prompt
61 * Fixed a deny or ask rule missing a command or path whose name came from a variable set as a prefix on `declare`, `typeset`, `export` or `readonly`
62 * Fixed Read deny rules not applying to image paths pasted or dragged into the prompt, or to file names listed for an @-mentioned folder
63 * Fixed a case where a user-installed mod could make an organization's guard skip its check; such a mod is now unloaded
64 * Fixed plugin hooks stalling each redraw when a mod draws a long multi-line text holding non-Latin characters
65 * Fixed repeated Ctrl+X in the agents view deleting the whole next section after the bottom session of a section was deleted
66 * Fixed You should know writing its notes in English regardless of the `language` setting
67 * Fixed a freeze after sending some very long messages
68 * Fixed a slowdown when expanding the transcript (ctrl+o) or resizing over large tool output that contains non-ASCII characters such as arrows, dashes or box-drawing
69 * Fixed `claude respawn` re-sending an earlier message to a backgrounded session that has no saved transcript instead of starting it with an empty conversation
70 * Fixed Esc after an `n:` or Ctrl+F search in the agents view moving focus to a section header, where Ctrl+X twice would delete every session in the section
71 * Fixed `claude agents` saving a slash command it could not deliver to a stopped session and then running it by itself the next time that session restarted
72 * Fixed `/ultrareview` uploading uncommitted changes unfiltered for files under a git filter driver named `unset` or `unspecified`; the upload now stops and asks you to rename the driver
73 * Fixed auto mode denials suggesting a permission rule that would skip the classifier for a whole tool or that Claude Code would ignore
74 * Fixed `claude --teleport` and `/teleport` deleting the files in a folder that had replaced a tracked file of the same name when you chose to stash: the stash is now refused, and says why
75 * Fixed Esc confirming agent view's "Press enter again to restart this session fresh" prompt
76 * Fixed agent view's `/loop` run count freezing and its countdown disappearing after `/clear`; the count now restarts with the new conversation
77 * Fixed `--channels` permission relay: a reply ID that repeats within a session is now ignored instead of approving a different prompt
78 * Fixed `/chrome` "Reconnect extension" not restoring browser tools after a failed Chrome connection, and added an explanation when it can't (anthropics/claude-code#98135)
79 * Fixed mods staying off for people who reach Claude through a gateway (`ANTHROPIC_BASE_URL` with `ANTHROPIC_AUTH_TOKEN`) and have no Anthropic account
80 * Fixed replies sent from `claude agents` just after a background session crashed being refused after 2 seconds: they are now retried for up to 12 seconds while the session restarts
81 * Fixed slash commands and answers to a multiple-choice question that `claude agents` could not deliver to a running session being saved and sent by themselves the next time it was restarted
82 * Fixed sandboxed commands that pipe a heredoc into another command (`cat <<EOF | python3`) asking for approval on every run
83 * Fixed `claude agents` failing with "Couldn't restart the background service" and background sessions stopping after a Homebrew upgrade (takes effect from the upgrade after this one)
84 * Fixed agent view's "restart this session fresh" re-sending an earlier message from the session instead of starting with an empty conversation
85 * Fixed Bash permission checks auto-approving some read-only commands (such as `rg` or `git grep`) whose arguments the shell would still expand as wildcards; these now prompt for approval
86 * Fixed `claude plugin test` refusing to run after an upgrade because of an out-of-date saved setting
87 * Fixed Bash permission checks auto-approving certain commands whose variable names zsh reads differently from bash; these now prompt for approval
88 * Fixed a short form of a `git clone` option keeping the sandbox exemption from a git pattern such as `git *` in `sandbox.excludedCommands`; it is now treated like the long form
89 * Fixed the first feature-flag request of a session ignoring a proxy or API endpoint set in a project's settings
90 * Fixed `/ultrareview` of a local branch silently leaving uncommitted work out of the upload in a repository that keeps its branches outside `.git` (git 2.54+); it now refuses with an explanation
91 * Fixed cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is now told and can schedule it again
92 * Fixed the Claude apps gateway's retention sweep deleting a returning developer's identity row refreshed at the same moment, on PostgreSQL versions without the November 2025 fixes
93 * Fixed sandboxed Monitor tool commands skipping the permission prompt under sandbox auto-allow; they now follow your permission rules
94 * Fixed the Claude apps gateway failing to start when the certificate it presents to the identity provider has an empty subject
95 * Fixed the Claude apps gateway exiting with a bare "Invalid URL" when `store.postgres_url` can't be parsed; the error now names the setting and says what the URL may hold
96 * Fixed background agents failing with "Agent stalled" and Workflow tool subagents restarting from their prompt when a Mac woke from sleep
97 * Fixed slow or failed startup since 2.1.285 under SDK hosts such as the VS Code extension when managed settings deny reads of many paths on a slow filesystem (notably Windows drives under WSL)
98 * Fixed a response interrupted by computer sleep being treated as a stalled stream on Bedrock, Vertex, Foundry, and custom gateways
99 * Fixed a freeze before the first request and in the `/sandbox` Config tab on Linux and WSL when a sandbox read rule such as `~/**/.env` covers a large folder
100 * Fixed skills not being found when asked for by the name in SKILL.md when their folder has a different name (for example a non-English name): the skill listing now shows both names
101 * Fixed a plan written in plan mode being lost when a cloud session's container restarted before the plan was presented
102 * Fixed the Bash tool occasionally losing shell aliases, functions and plugin PATH entries for a whole session when its first command ran seconds after startup on a new config directory
103 * Fixed unbounded memory use when an HTTP MCP server sends a very large response
104 * Fixed artifact operations failing in a Claude Code run started from inside a cloud session (for example `claude -p` run from the Bash tool)
105 * Fixed files sent from remote sessions sometimes being refused as "not the one approved" when four or more were sent at once
106 * Fixed plan mode not being restored when resuming a session with `--continue` or `--resume <session-id>` in the terminal
107 * Fixed a marketplace named after another GitHub marketplace's download folder stopping that marketplace from downloading
108 * Fixed automatic compaction giving up with "Prompt is too long" when a Mac went to sleep while it was running
109 * Fixed the rewind menu (Esc Esc / `/rewind`) freezing for hundreds of milliseconds per keypress when the conversation contains a very large pasted stack trace or source file
110 * Fixed a subdirectory's AGENTS.md not being attached when a file under it is @-mentioned
111 * Fixed self-hosted runner sessions resumed after a stopped runner failing with "missing but already registered worktree" when the sessions folder is a relative symlink
112 * Fixed a freeze when the secret scan or a permission prompt met long token-like text
113 * Fixed Bash permission checks not applying Read deny rules or the outside-directory read block to a wildcard in some option values of read-only commands
114 * Fixed `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS=5m` being read as 5 ms and cancelling remote dialogs at once; values with a unit suffix now fall back to `dialogExpiry`
115 * Fixed a stall when an MCP server's tool listing contains very long runs of combining characters
116 * Fixed two pastes that overlap in one prompt being sent to the model partly as typed text instead of as one pasted block
117 * Fixed Claude in Chrome's browser picker showing a message meant for Claude when the chosen browser is no longer connected, and the VS Code dialog's list going stale after a switch
118 * Fixed background subagents losing write and Bash access in their worktree after the main session enters or exits a different worktree
119 * Fixed background commands, the agents view and daemon workers sending telemetry and a feature-flag request to Anthropic behind a Claude apps gateway when no managed settings on the machine force gateway login
120 * Fixed `--restricted` (and `CLAUDE_CODE_RESTRICTED=1`) sessions opening the cross-session messaging socket
121 * Fixed sessions moved to the background while idle reopening as "no saved transcript" after a restart or idle cleanup; they now resume their conversation
122 * Fixed background workers honoring `--allow-dangerously-skip-permissions` on respawn without the bypass-permissions disclaimer having been accepted
123 * Fixed Claude replying in an endless loop when a plugin's async Stop hook passes an unquoted script path under a folder with a space, such as Application Support
124 * Fixed a freeze of several seconds when secret masking met very long unbroken text
125 * Fixed some permission rules and safety checks not being applied to a tool call after a PreToolUse hook rewrote its input
126 * Fixed first launch asking to pick a login method again after `claude auth login` or with a credentials file already in the config directory
127 * Fixed file names containing line breaks being displayed incorrectly in file tool errors and permission prompts
128 * Fixed a large paste expanded in place being sent to the model as typed text after the next keystroke when it held accents stored as separate characters, as macOS file names do
129 * Fixed macOS `/login` reporting success when the keychain refused the new login and kept an old one it could not remove
130 * Fixed SDK hosts using `--include-partial-messages` seeing a reply stay open after the turn ended when its stream was cut, interrupted or fell back to non-streaming
131 * Fixed sandboxed Bash commands on Linux running `ConfigChange` hooks and reloading settings mid-command when `.claude/settings.json` or `.claude/settings.local.json` does not exist
132 * Fixed errors reading "Premature close" instead of naming the missing program when a tool Claude Code runs, such as git or gh, is not installed (macOS, Linux)
133 * Fixed `/loop` and other recurring session-only scheduled tasks running an extra time after a sandboxed Bash command on Linux or after `.claude/scheduled_tasks.json` was deleted
134 * Fixed edits to the file a symlinked settings file points at running without the settings-file permission question
135 * Improved MCP startup behind a network proxy: a server the proxy blocks (HTTP 403) is no longer retried three times
136 * Improved permission prompts from background agents to show the Ctrl+X Ctrl+K shortcut that stops all background agents
137 * Improved the built-in `plugin-authoring` skill: Claude now gives the one command another person runs to install a mod you made, and writes it in a README's install section
138 * Improved the reply to `/plugin` in the desktop app's Code tab: it now says where to install and manage plugins there
139 * Improved the Bash changed-files view: when a chained command includes git merge, pull or checkout, it lists the files without full diffs
140 * Improved the Claude apps gateway's log when an upstream's cloud credentials or connection fail: the warning now ends with the underlying cause
141 * Improved the error shown when a cloud session is started without a claude.ai sign-in: it now names `claude auth login` and /login and no longer blames API-key authentication
142 * Improved the Read tool's message for binary files: it now points Claude to a skill or a shell command that can read the format
143 * Improved the error shown when a git config file stops the `/ultrareview` upload: it is about half as long and says what kind of file is the problem
144 * Improved the errors shown when the `/ultrareview` upload refuses a checkout: each known cause now has its own message, with a way to fix it
145 * Improved the Claude apps gateway to log a warning during the last 30 days before the certificate it presents to the identity provider expires
146 * Improved Claude in Chrome: a `browser_batch` call now gets 90 seconds, up from 60, before it is reported as timed out
147 * Improved the Claude apps gateway's browser sign-in pages: brand fonts, centered layout, and dark mode
148 * Improved responsiveness while resuming large sessions: timers, input and rendering keep running while the transcript loads
149 * Improved the / and @ suggestion lists: the selected row now starts with a ❯ pointer, so you can see it without color
150 * Changed `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` to also skip the startup connection warm-up
151 * Changed Claude in Chrome so that a project's settings files can no longer turn it on; use `--chrome`, `/chrome` or your user settings
152 * Changed the Bash tool to ask for permission before running `pyright`, which is no longer treated as a read-only command
153 * Changed what a mod's `$.process.spawn` rejects with when another mod denies it after the child ran: it now says the call ran and a plugin withheld its result
154 * Changed the background daemon's log to write a multi-line message as one JSON-quoted line
155 * Changed skills and custom commands to refuse a `!` shell command that contains raw control characters other than tab and newline, with a message that shows where they are
156 * Changed `/artifacts`: opening an artifact in your browser now closes the list
157 * Changed Bash permission checks so that more forms of the `ps` command ask for approval instead of running without asking
158 * Changed plugin hooks so long text is clipped and logged instead of being refused or dropped silently
159 * Changed background sessions whose scheduled task is gone: they now move to Completed about 20 seconds later and can be updated or shut down when idle
160 * Changed the "Press ← again" confirm on a just-cleared prompt: a second ← no longer has to wait a second before it switches, and holding ← down now switches too
161 * Changed the errors shown when the `/ultrareview` upload fails at a git step: they name the step and what to try, and no longer repeat git's own error text
162 * Changed `/code-review` at medium effort to also report cleanup and CLAUDE.md conventions findings on models without tuned review settings, including Opus 5.5 and Sonnet 5.5
163 * Changed an in-process teammate's `agent_id` in Agent results to its agent ID (its `name@team` address stays in `teammate_id`); TeammateIdle hooks no longer fire from its subagents or forks
164 * Changed background sessions waiting on a scheduled wakeup (`/loop`): they are now left running through updates and low memory, where being restarted or shut down could silently lose the wakeup
165 * Changed `/model`, `/effort` and `/rename` sent from `claude agents` to a busy background session to apply right away, without a confirmation, instead of when the turn ends
166 * Changed the Claude apps gateway's minimum supported PostgreSQL version from 14 to 11
167 * Changed the interactive session's WebSearch budget to refill over time (100 calls/hour; `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` sets the rate, 0 turns it off) instead of ending after 200 calls
168 * Changed `CLAUDE_CODE_DISABLE_ATTACHMENTS` so a repository's `.claude/settings.json` or `.claude/settings.local.json` can no longer set it; shell, user and managed settings still can
169 * Changed `claude plugin update` on a plugin loaded from a directory to print just its reason, without the "Failed to update plugin" prefix, as for built-in plugins
170 * Changed the built-in `gh api` in cloud sessions: a host other than github.com set in `GH_HOST` or `GH_REPO` is now refused (use `--hostname` or a full URL), and stderr notes requests to other hosts
171 * Changed the `claude-api` skill's Managed Agents examples to turn off the web tools unless the agent needs them and to use the `auto` permission policy
172 * Self-hosted runners: Changed `claude --environment <id>` to create its session through the current Sessions API; printed and JSON session ids keep their session\_… form
173 * \[VSCode] Added a screen reader announcement, "Message queued.", when you send a message while Claude is working
174 * \[VSCode] Added a way to review and run a plugin marketplace's install or update command from the Manage plugins dialog
175 * \[VSCode] Fixed a blank chat you never typed into keeping a background Claude process running after you open a saved conversation in its place
176 * \[VSCode] Fixed settings dialogs blaming a timeout when Claude Code stopped unexpectedly during a save
177 * \[VSCode] Fixed the branch switch dialog offering to switch when it could not check for uncommitted changes
178 * \[VSCode] Fixed a permission prompt that arrived behind an open dialog taking keyboard focus, so a key pressed in the dialog could answer it
179 * \[VSCode] Fixed sign-in and new sessions giving no clear reason when Claude Code cannot find or start its program
180 * \[VSCode] Fixed the agent map showing a nested sub-agent with "Tool calls (0)" and placing the agents it starts under the main agent
181 * \[VSCode] Improved Continue After Reload: tabs reopened after VS Code restarts its extensions now also finish a step the restart interrupted
182 * \[VSCode] Improved file pills in messages: hovering one now shows the file's path from the project folder, so same-named files can be told apart
183 * \[VSCode] Changed message timestamps to show by default (turn them off with the Claude Code: Show Message Timestamps setting)
184 * \[Cloud sessions] Fixed turning off prompt suggestions through a cloud environment's environment variables having no effect in new cloud sessions
185 * \[Cloud sessions] Fixed the working indicator in a cloud session spinning on for several seconds after Claude's reply had finished; it now stops with the reply
186 * \[Cloud sessions] Fixed History on a never-run routine's page still saying "No runs yet" after you pressed Run now; it now shows the new run
187 * \[Cloud sessions] Fixed an unarchived cloud session looking as if Claude were still working until you sent another message
188 * \[Remote Control] Fixed a computer that just started Remote Control taking up to a minute to appear in the Remote Control menu of a new session; it now appears within seconds
189 * \[Claude Tag] Added fast mode in Slack: mention Claude with `!fast` to switch a thread to fast mode, moving it to Opus if needed, and `!fast off` to switch back; replies show (fast) while it's on
190 * \[Claude Tag] Added the optional Path prefixes field when creating a custom connection in an access bundle, so its allow rule can cover only those paths instead of the whole host
191 * \[Claude Tag] Fixed members with the Claude Tag Admin permission getting "Couldn't load memory files" on the Activity page's Memory tab; they can now read workspace and channel memory
192 * \[Claude Tag] Fixed a workspace guest's Confirm on a Claude settings card in Slack removing its buttons for everyone; only the guest sees the refusal, and members can still confirm or cancel
193 * \[Claude Tag] Fixed scheduled routines in Slack channels running on a model other than the channel's default; each run that starts a new session now uses the current default model
194 * \[Claude Tag] Fixed GitHub repositories in an access bundle attached by a channel-name rule being refused in the channels the rule covers; Claude can now add, list and clone them there
195 * \[Claude Tag] Improved Claude's notice in your direct messages when your own Claude plan's usage limit is reached: it shows within seconds and says when the limit resets
196 * \[Claude Tag] Improved the earlier Claude in Slack app's reply when it can't start a session: it now says what failed and who can fix it, in full only once per thread
197 * \[Claude Tag] Changed the channel instructions limit to 8,192 characters instead of bytes, so non-English text gets the same room, and added a character count beside Save on the Configure page
198 * \[Code Review] Fixed blocking review comments sometimes opening with a "nit" label that contradicted their severity
199 * \[Code Review] Fixed tips to comment "@claude review" being posted on fork and Manual-mode pull requests in organizations that have turned Code Review off
200</Update>
201 
9202<Update label="2.1.289" description="October 3, 2026">
10203 * Fixed a deny or ask rule on a nested part of a compound shell command not holding over a user-installed mod's approval on managed machines
11204 * Fixed the terminal freezing on short code blocks with many unclosed `<script>` tags or deeply nested `${` substitutions
from line 1740
15471740 * Fixed a case where resuming a session after interrupting Claude mid-thought could change how earlier context was re-sent, hurting prompt-cache reuse
15481741 * Fixed F1/F2/F4 not working in kitty-protocol terminals and Delete in st, Alt+arrows acting as Escape in rxvt-unicode, and Shift+punctuation typing the unshifted key in WezTerm (regression in 2.1.247)
15491742 * Fixed remote and headless sessions reporting "waiting for your input" while background agents were still running (set `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0` to restore the old behavior)
1550 * Fixed the terminal's replies to capability queries (`^[[?1;2c`) appearing as stray text at startup in some terminals
1551 * Fixed rows at the top or bottom of the transcript going blank in fullscreen after resizing the terminal
1552 * Fixed a deny or ask permission rule starting with `!` applying beyond the settings source that wrote it; such a rule now applies only within its own source, and a bare `!` negation is ignored
1553 * Fixed the git status Claude is told after a compaction: it is now the current status, not the one from the start of the session
1554 * Fixed synced plugin MCP servers not connecting when a remote session resumes
1555 * Fixed resumed headless sessions losing a turn's replies when the model was switched or a request was retried mid-turn
1556 * Fixed terminal escape codes, line breaks and oversized text from a background task's on-disk record reaching the task list and task notifications when work is resumed
1557 * Fixed CMYK JPEG images failing to attach with "cannot decode"; they are now converted and resized like other JPEGs
1558 * Fixed the managed settings approval dialog not naming the collector for a gRPC telemetry endpoint set without a scheme
1559 * Fixed plugin `headersHelper` consent prompts showing a URL path that could be misread as a different host
1560 * Fixed plugin errors showing `[redacted URL]` in place of a relative Windows path with a folder name that starts with `@`
1561 * Fixed missing cursor in the permission-rule, auto-mode-rule, add-directory, session-rename and feedback-review text fields when the terminal's native cursor is enabled
1562 * Fixed repeated clicks on a `/fork` receipt, each under a second apart, never backgrounding the session right away while it waited for the current tool to finish
1563 * Fixed plugin LSP servers that reject `shutdown` params (e.g. rust-analyzer) being left running at session end; `exit` is now sent even if `shutdown` fails
1564 * Fixed the attribution reminder overriding a CLAUDE.md or memory rule against commit and pull request attribution; lines set by managed settings still apply
1565 * Fixed prompt suggestions being dropped for text in Japanese, Chinese, Thai and other languages written without spaces between words
1566 * Fixed synchronized output being assumed from the terminal's name in GNOME Terminal and Konsole versions that do not support it
1567 * Fixed `permission_denials` in `--output-format stream-json` results omitting Read, Edit and Write calls blocked by a path-scoped deny rule
1568 * Fixed sessions run through the SDK or the desktop app showing an unknown status in other sessions' agent list
1569 * Fixed `/insights` failing on Bedrock, Vertex, Foundry, and gateway deployments whose account can't reach the default Opus model by using the session model there instead
1570 * Fixed organization policy limits not loading for the session when another Claude Code process refreshed the login at the same moment
1571 * Fixed Claude Desktop sessions using Bedrock, Vertex, or a gateway not getting the contextual "what Claude needs" turn-end notification text
1572 * Fixed MCP servers reconnecting when an updated config only changed the order of the server URL's query parameters
1573 * Fixed the prompt box's top border splitting into extra lines when viewing a background agent whose name or description has line breaks or is wider than the terminal
1574 * Fixed sessions getting permanently stuck on "Prompt is too long" when auto-compaction had no complete earlier exchange to summarize (mostly Agent SDK sessions with very large prompts)
1575 * Fixed `/goal` runs silently stalling after API errors, network drops, or token limits: the goal now retries with backoff, or pauses and says why, including until a usage limit resets
1576 * Fixed prompt cache misses in cloud sessions by waiting briefly for server configuration before the first request
1577 * Fixed `/btw` answers that contained made-up tool calls and output: the side question is now told not to write them, and any that appear are flagged as not executed
1578 * Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a turn that had failed with an API error over 6 hours earlier, or longer ago than `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` when set
1579 * Fixed organization plugins enabled through managed settings not loading in headless sessions and on Claude Desktop (once Desktop bundles this CLI version); they load from the next session
1580 * Fixed plugin archives extracted for a session being readable by other local users, extracted files keeping world-writable bits from the archive, and stale files surviving re-extraction
1581 * Fixed `Edit()` deny rules and the write-path check not applying to the file a Bash `tee` command writes; a `Bash(tee:*)` allow rule no longer covers destinations outside the working directories
1582 * Fixed stray characters like `22c`, or a terminal's color or version reply, being typed into the prompt at startup over slow connections (ssh, browser terminals)
1583 * Fixed the terminal's block cursor showing under the interface in rxvt-unicode after leaving or re-entering fullscreen
1584 * Fixed the cursor block staying visible after returning from an external editor in fullscreen mode on rxvt-unicode
1585 * Fixed the interface being drawn twice after returning from an external editor (Ctrl+G) outside fullscreen mode
1586 * Fixed the interface being drawn twice in Konsole after returning from an external editor
1587 * Windows: Fixed PowerShell tool commands sent to the background stopping when Claude Code exits
1588 * Improved the `/diff` panel to open fully rendered in one step instead of showing a loading state first
1589 * Improved prompt suggestion filtering for Japanese, Chinese and Korean text: mixed-script and single-word suggestions are kept, and meta or evaluative text is dropped as it is for English
1590 * Improved the Skill tool's "Unknown skill" error to name the plugin skill's full name when a bare name matches exactly one plugin skill
1591 * Improved keyboard support over SSH and in unrecognized terminals: terminals that answer the kitty keyboard query (such as foot and Alacritty 0.16+) now get Shift+Enter and Ctrl+Shift shortcuts
1592 * Improved responsiveness in long sessions: transcript updates no longer re-process the whole conversation to build the collapsed tool-use summaries
1593 * Improved first-party sessions with telemetry disabled: an `alwaysLoad` MCP server that finishes connecting mid-conversation is usable on the next turn without a tool-search round trip
1594 * Changed `/ultrareview --post` to post the PR comment directly when the findings arrive and print the comment link, instead of starting a second cloud session to post it
1595 * Changed artifact database reads that save into the session scratchpad so they no longer stop for working-folder approval
1596 * Changed skills synced from claude.ai in cloud sessions to be named `anthropic-skills:<name>`, matching Claude Desktop; the bare name still works when nothing else uses it
1597 * \[VSCode] Added an agent map: an "N agents" footer pill opens a map of the session's sub-agents with per-agent cards, Stop agent, and read-only transcripts
1598 * \[VSCode] Added a Hooks dialog to the command menu for viewing hooks and adding, editing, or removing them in user, project, and local settings; managed, plugin, and session hooks stay read-only
1599 * \[VSCode] Added live progress rows for running subagents under the tool-call groups in Focus view
1600 * \[VSCode] Added a Permission rules dialog that lists permission rules and adds or removes them in user, project, and local settings; startup-option, session-only, and managed rules stay read-only
1601 * \[VSCode] Added a Cancel button to the Switch account screen that returns to your session as the current account
1602 * \[VSCode] Fixed Focus view showing a turn started by a delivered plain-text prompt, such as a scheduled task's, as part of the previous turn
1603 * \[VSCode] Fixed the footer's prompt cache clock hiding its minutes when the panel is narrow
1604 * \[VSCode] Fixed the session list keeping sessions from the default folder when `CLAUDE_CONFIG_DIR` is set in a settings file or the `environmentVariables` setting
1605 * \[VSCode] Fixed a plan preview that finished loading late sometimes hiding its comment box or showing an older plan
1606 * \[VSCode] Fixed a plan preview accepting comments that went nowhere after its Claude tab closed
1607 * \[VSCode] Fixed the prompt cache clock and reopen notice for a session compacted after its last reply and then closed, which now reads as cold when reopened
1608 * \[VSCode] Fixed a session renamed in the extension while Remote Control is on keeping its old name on claude.ai/code
1609 * \[VSCode] Fixed the "Enable Remote Control for all sessions" toggle keeping its last position after the setting was reset to default from a terminal
1610 * \[VSCode] Fixed restored Claude tabs not counting as open in the session list after a window reload until clicked, and their row opening a second tab
1611 * \[VSCode] Fixed Switch account making a tab forget its dismissed usage-limit warnings when you sign back in as the same account
1612 * \[VSCode] Fixed a session rename being replaced by the generated name after a window reload when the session was renamed during a long turn
1613 * \[VSCode] Fixed the sidebar usage meter keeping a stale per-model weekly limit row after the account loses that limit
1614 * \[VSCode] Fixed a rare case where an @-mention sent with the keyboard shortcut while a new chat view was still starting could be inserted into the input long after the keystroke
1615 * \[VSCode] Fixed the session list jumping down when the Account & usage header appeared a moment after opening the Claude side bar
1616 * \[VSCode] Improved documents and messages written for someone other than the user: Claude now writes them for that audience and names it at the top of its reply
1617 * \[VSCode] Improved screen reader and keyboard accessibility in the slash-command menu, @-mention menu, output-style picker, Send/Stop button, permission and question cards, and onboarding checklist
1618 * \[VSCode] Changed the current-file chip in the message box: an X now removes it, replacing the Hide toggle
1619 * \[VSCode] Removed the Claude Code items from a session tab's right-click menu and the editor title bar's "..." menu; they could not act on the tab the menu was opened on
1620 * \[Claude Code on the web] Added taking back a queued message in a cloud session before Claude reads it: remove it from the queue, or press Esc or Up, and the text returns to the message box
1621 * \[Claude Code on the web] Fixed `/model default` in a cloud session leaving every later message failing in organizations that restrict which models Claude Code can use
1622 * \[Claude Code on the web] Fixed one-off scheduled routines occasionally running a second time after a transient server error
1623 * \[Claude Code on the web] Fixed routine runs that use subagents sometimes being treated as finished too early, which could skip the retry after a real failure or start a duplicate run
1624 * \[Claude Code on the web] Fixed file links in cloud session transcripts opening a GitHub 404 when Claude was working from a subfolder of the repository
1625 * \[Claude Code on the web] Changed the Cloud environments admin page to list every environment instead of capping each table at five rows behind a Show more control that could be unreachable
1626 * \[Claude Code on the web] Changed claude.ai/code for Free-plan users to open the plans page with a path to upgrade, instead of a "Disabled by org admin" page with no way forward
1627 * \[Claude Tag] Added a confirmation dialog before Connect all or Disconnect on a GitHub installation in admin settings, to guard against accidental organization-wide changes
1628 * \[Claude Tag] Fixed threads occasionally going silent after a failed turn because the failure notice was dropped when Slack briefly rate-limited it; the notice is now retried
1629 * \[Claude Tag] Fixed Claude accepting a switch to a model your organization hasn't enabled and then quietly answering with a fallback model; it now declines and says an admin can enable it
1630 * \[Claude Tag] Fixed a table posting as raw pipe text when Claude attached files to the same message; the table now posts as a normal reply and the files follow with a plain caption
1631 * \[Claude Tag] Fixed `@Claude !restart` at the top level of a channel where Claude isn't active starting an unrelated conversation; it now privately says there is nothing to restart
1632 * \[Claude Tag] Fixed plugin rows in Slack access settings showing an unlabeled raw ID with no way to turn the plugin off; they now show its name and link to the bundle that manages it
1633 * \[Claude Tag] Fixed the shared-session banner and Share dialog on sessions started from Slack claiming the whole organization could open the link; they now name the Slack channel's audience
1634 * \[Claude Tag] Improved load time of the admin settings page and its Slack channel picker, most noticeably for organizations with many channels or several connected workspaces
1635 * \[Claude Tag] Improved scheduled routines in Slack channels: a routine run can now reply in an existing thread instead of always posting a new top-level channel message
1636 * \[Claude Tag] Improved the timestamp on Claude's live progress checklists to show each reader's local time and how long ago it was updated, instead of a fixed UTC time
1637</Update>
1638 
1639<Update label="2.1.268" description="September 10, 2026">
1640 * Added to the Claude apps gateway: with `pricing:` set in `gateway.yaml`, signed-in Claude Code clients receive the same rates through managed settings, so `/cost` and telemetry match the spend meter
1641 * Added a startup warning for gateways when `access_control.allow_cidrs` is empty, and a one-time warning the first time a request arrives from a public address
1642 * Added the `gatewayInternalNetworks` managed setting, letting administrators allow `/login` to a Claude apps gateway on their organization's own public IPv4 block
1643 * Added `claude self-hosted-runner --remove-session-state` (default off): delete each session's per-session directories under `<base-dir>/_sessions/` when the session ends
1644 * Added `configDirectory` to the output of `claude auth status --json`
1645 * Added `--json` to `claude plugin install`, `uninstall`, `update`, `enable` and `disable`, and `errorDetails`/`noteDetails` to each row of `claude plugin list --json`
1646 * Added browser-tab icons for published artifacts, chosen by Claude to match each page
1647 * Fixed every turn failing with HTTP 400 on third-party Anthropic-compatible endpoints (`ANTHROPIC_BASE_URL`) since 2.1.265: a regex in the Artifact tool's input schema that those endpoints reject
1648 * Fixed WebFetch hanging indefinitely on a server that keeps the response open without finishing; a fetch now fails after 300 seconds. Set `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` to override the deadline (0 turns it off)
1649 * Fixed a respawned in-process teammate picking up tools or a system prompt from a same-named agent file in a folder you have not trusted
1650 * Fixed sustained high CPU usage: a busy loop in long-running idle sessions no longer pins a CPU core, and rapid terminal focus reports during a session recap no longer keep the CPU high
1651 * Fixed Claude sometimes replying "your message came through empty" after an MCP tool call
1652 * Fixed deny and ask permission rules on symlinked directories (`/etc`, `/tmp`, `/var` on macOS; `/bin` on Linux) not applying when a path was given by its real location, and Bash commands ignoring deny rules written on a symlinked path spelling
1653 * Fixed a case where a Read or Edit deny rule did not apply when an `env -C`, `eval` or similar command the permission checker cannot analyze was on the same line
1654 * Fixed plugin and marketplace errors showing a token or password from a git source URL
1655 * Fixed `/mcp` and `/plugin` server details, `claude mcp list`/`get`, and MCP login errors showing secrets resolved from `${VAR}` placeholders in MCP configs
1656 * Fixed prompt caching and extended thinking breaking mid-session for SDK sessions using `excludeDynamicSections`: the first message is no longer re-rendered each request
1657 * Fixed entitled users being told a model is restricted after restart or in the Desktop Code tab when a cached model-access denial was stale
1658 * Fixed a running session silently switching to the organization's default model when another Claude Code process refreshed a stale model-access entry
1659 * Fixed long-context 429s on Fable models showing the usage-credits consent prompt instead of the 1M-context message on Pro and Team plans
1660 * Fixed workload identity federation via a profile (as claude-code-action configures it): processes sharing the profile could fail mid-run with `401 … jti reused`
1661 * Fixed MCP server OAuth sign-in failing with "No available ports for OAuth redirect" when the local callback port range can't be bound
1662 * Fixed the conversation summary produced by `/compact` and auto-compact mangling text that contained `$` sequences
1663 * Fixed resuming a conversation that ended with `/compact`: its restored-file notes now load in the same order on every resume
1664 * Fixed SDK prompt suggestions, side questions and `/rename` sending the conversation from before a compaction
1665 * Fixed `@` file and `/` command suggestions not appearing after recalling a previous prompt with the up arrow and editing it
1666 * Fixed `claude agents`: pressing ← again at a natural pace to go back to the agent list no longer gets ignored until you pause for over a second
1667 * Fixed `claude agents` session delete getting stuck when a worktree can't be removed: the message names the cause and next step, and for a git worktree ctrl+x again deletes the directory anyway
1668 * Fixed background agent and workflow rows in the agents panel expanding to many lines when their text contained line breaks
1669 * Fixed Claude in Slack sessions losing their Slack tools when org managed settings set an MCP allowlist
1670 * Fixed Claude in Chrome asking to allow the host "https" when a navigation URL had a scheme but a host that could not be parsed
1671 * Fixed the spinner wrapping onto several lines when the current task's label is long; the label and the "Next:" task line now stay within one terminal row
1672 * Fixed the `/bug` and `/feedback` description field showing no cursor when the terminal's native cursor is enabled
1673 * Fixed Remote Control sessions served by `claude remote-control` showing a generated name instead of their session title in `ListAgents`
1674 * Fixed `claude plugin validate` rejecting plugin paths whose directory name begins with two dots, which the plugin loader accepts
1675 * Fixed plugins silently skipping a default monitors file or root SKILL.md that could not be checked
1676 * Fixed WebFetch's error for localhost and other dotless hostnames to explain why the URL is refused and suggest curl
1677 * Fixed PermissionRequest hooks not firing in `--print` mode
1678 * Fixed policy-helper warnings not printing on headless (`-p`) runs
1679 * Fixed `/resume` listing a `/fork` background session under its parent's name instead of its own `⑂` fork name
1680 * Fixed `/remote-control` and other claude.ai-gated commands to suggest `/login` when signed out instead of showing a Claude for Enterprise migration message
1681 * Fixed `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` not extending SessionEnd hooks that have no per-hook `timeout` (they were still cancelled after 1.5 seconds)
1682 * Fixed `/autofix-pr` and other cloud-session commands saying to retry or install the Claude GitHub App when no GitHub account is connected; they now point to `/web-setup` or the web connect page
1683 * Fixed cloud-session commands such as `/teleport` and `/remote-env` to explain when an organization policy turns them off, instead of answering "Unknown command"
1684 * Fixed Bash sandbox instructions over-stating confinement: no unenforced path lists when filesystem isolation is off, and strict mode no longer claims commands can never run unsandboxed
1685 * Improved fullscreen mode: adding or removing a prompt line (Shift+Enter) now repaints as fast as typing a character instead of re-rendering the visible transcript
1686 * Improved `--continue` / `--resume`: the conversation appears immediately instead of waiting for SessionStart hooks, and the first message no longer re-reads the whole transcript
1687 * Improved responsiveness during tool-heavy turns by no longer redrawing the transcript for a hidden per-tool-batch reminder
1688 * Improved startup time in projects with `.claude/workflows/` scripts: listing them no longer parses each script
1689 * Improved auto mode denials: the message Claude receives now names the rule that blocked the action and asks Claude to try a safer method and finish unrelated work before stopping to ask you
1690 * Improved Claude in Chrome: long page reads now stay inline instead of being saved to a file and read back
1691 * Improved the MEMORY.md truncation warning to say how many lines were cut and where the cut starts
1692 * Improved the terminal permission prompt for artifacts: it now leads with the ask's question
1693 * Improved the prompt footer: an editor or `/diff` selection now shows inside the prompt input, and fullscreen mode shows Remote Control status in the header instead of the footer
1694 * Improved the "Usage credits required for 1M context" message to say that usage credits turned on mid-session take effect after restarting Claude Code
1695 * Improved `/plugin`: installing, enabling or disabling a plugin now takes effect when you close the menu; `/reload-plugins` is no longer needed afterwards
1696 * Changed the system prompt on Bedrock, Vertex and Foundry to deliver environment, model and settings details as attachments, matching first-party sessions
1697 * Changed Bedrock, Vertex and Foundry sessions to keep the tool list byte-stable across a conversation (late-connecting tools load deferred instead of rewriting it), matching first-party sessions
1698 * Changed the task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) to be offered only on Claude 3.x, Opus 4.0–4.7, Sonnet 4.0–4.6, Haiku 4.5; set `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` elsewhere
1699 * Changed the artifact data-edit permission prompt in the terminal to a card that shows the document count and who can open the artifact
1700 * Changed local Cowork sessions set to skip all approvals: the Artifact tool now refuses a local file outside the session's folders, or behind a symlink, instead of reading it without asking
1701 * Changed plain `WebFetch` deny and ask rules to no longer apply to Artifact tool reads and updates; use an `Artifact` rule (or `WebFetch(domain:claude.ai)`) to block or gate them
1702 * Changed the "N MCP servers need authentication" startup notice to announce each server once instead of at every launch
1703 * \[VSCode] Fixed the session list, settings toggles, and chat tabs when `CLAUDE_CONFIG_DIR` is set in a settings file or the `environmentVariables` setting
1704 * \[VSCode] Fixed the model pill, model picker and command menu going blank in open tabs for a few seconds after a login, logout or account switch
1705 * \[VSCode] Fixed Auto disappearing from the mode picker in new-tab or just-reloaded conversations when a project or local setting overrides the model named in `~/.claude/settings.json`
1706 * \[VSCode] Fixed session names reverting to the last prompt after a window reload when a SessionStart hook is configured
1707 * \[VSCode] Fixed the footer's model pill and Remote Control pill waiting for the new tab's Claude process to start when another tab in the window is already up
1708 * \[VSCode] Fixed a second Claude process running through its full startup when a session tab's launch arrived more than half a second after its config read
1709 * \[VSCode] Fixed resuming a session from the session list ignoring `claudeCode.preferredLocation: "sidebar"` (it always opened a panel), and programmatic opens resetting that setting to "panel"
1710 * \[VSCode] Fixed Windows issues: the WSL install prompt no longer appears on machines without WSL installed, and IDE diagnostics are now returned correctly for Windows files when WSL is installed
1711 * \[VSCode] Fixed the custom style builder saving a User level style in a folder the CLI does not read when `CLAUDE_CONFIG_DIR` is set through settings
1712 * \[VSCode] Added Left and Right arrow keys to change where an always-allow permission rule is saved, for keyboard and screen reader users
1713 * \[VSCode] Added a "Claude Code: Focus last message" command that moves keyboard focus to the newest message in the conversation, for keyboard and screen reader users
1714 * \[VSCode] Changed the Manage plugins dialog to apply installs, enables, disables and uninstalls to open sessions without a restart
1715 * \[VSCode] Changed some artifact permission prompts to omit the "don't ask again" choice, matching the terminal
1716 * \[Claude Code on the web] Fixed cloud sessions running longer than about six hours silently losing files saved to persisted session folders; saves now persist for up to a day
1717 * \[Claude Code on the web] Fixed "Invalid effort level" errors when a routine resumes a session, or a session starts with no set effort, in orgs where an admin caps a model's effort
1718 * \[Claude Code on the web] Improved routine creation from a conversation: when the new routine has no connectors, Claude now says so and how to add them instead of only confirming it
1719 * \[Claude Tag] Fixed the admin settings page hanging on a loading skeleton or going blank after a transient load failure; a section that fails to load now shows a Retry button
1720 * \[Claude Tag] Added a link from a Slack channel's configure page back to the organization's Claude in Slack admin settings
1721 * \[Claude Tag] Fixed a Slack Enterprise Grid channel losing its Claude settings (repository, environment, access) after a Slack admin moved it to another workspace
1722 * \[Claude Tag] Improved how Claude explains a blocked action: it now says whether a permission check, its own decision to confirm first, or missing access stopped it
1723 * \[Claude Tag] Improved reply speed: Claude now runs several read-only lookups (searching Slack, reading a thread, finding people) at once instead of one after another
1724 * \[Claude Tag] Improved formatting of comparisons: sentence-length comparisons now come as lists instead of wide tables that scroll sideways, and long table cells wrap
1725 * \[Claude Tag] Fixed `@Claude !restart` in a thread with its own session sometimes also posting a contradictory "this thread is handled by the channel session" notice
1726 * \[Claude Tag] Improved the message shown when your Claude account is in a different organization than the Slack workspace: it now explains how to connect the workspace to your org
1727 * \[Claude Tag] Fixed Markdown links whose URL is wrapped in angle brackets showing as literal bracket text in Slack instead of a clickable link
1728 * \[Claude Tag] Fixed a workspace guest's top-level @mention in a channel where guests may use Claude sometimes getting a "your Slack account isn't connected" reply instead of an answer
1729 * \[Claude Tag] Fixed a channel's long-running session being replaced with a fresh one mid-conversation; the scheduled refresh now waits until the channel and its threads are quiet
1730 * \[Claude Tag] Fixed channel-settings cards clicked more than once telling the proposing session the change was refused after it had already applied; the outcome is now sent once
1731 * \[Claude Tag] Changed memory in public channels: each channel now keeps its own notes, and Claude no longer recalls notes it saved in other public channels; workspace notes stay shared
1732 * \[Code Review] Added a note under the still-open findings list in follow-up reviews: resolving a finding's thread, not just replying to it, stops lat
1743 * Fixed the termina

claude-tag Changed · +1 / -1 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

Nothing in the body moved in this read. What changed is above.

Feedback