Repository navigation
Expand file tree
/
Copy pathfeed.xml
More file actions
1444 lines (1444 loc) · 222 KB
/
Copy pathfeed.xml
File metadata and controls
1444 lines (1444 loc) · 222 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<id>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md</id>
<title>Claude Code Changelog</title>
<subtitle>Release notes for Claude Code</subtitle>
<author><name>Anthropic</name></author>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md"/>
<link rel="self" type="application/atom+xml" href="https://raw.githubusercontent.com/anthropics/claude-code/main/feed.xml"/>
<updated>2026-10-26T21:51:04Z</updated>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.311</id>
<title>Claude Code v2.1.311</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.311"/>
<updated>2026-10-26T21:51:04Z</updated>
<content type="html"><p>• Added --hold-idle-file and --max-hold-min to self-hosted-runner, to keep an idle session while your host reports processes it left running</p>
<p>• Added a tip for the Explanatory output style, shown when you ask Claude for explanations</p>
<p>• Fixed long freezes at startup and after reading or editing files when a CLAUDE.md file holds a very long list item</p>
<p>• Fixed interrupting Claude not taking effect until a timeout while an MCP server had not answered a resource read or a skill was still downloading</p>
<p>• Fixed standard-context sessions stopping with "Usage credits required for 1M context" when a request ran over 200K tokens; Claude Code now compacts the conversation and continues</p>
<p>• Fixed Write and Edit stalling for up to 5 seconds after they ran, and reporting 0 lines changed, when changing thousands of lines in a file</p>
<p>• Fixed subagents being unable to use MCP tools from servers that finish connecting after the subagent starts</p>
<p>• Fixed Claude seeing stale MEMORY.md and CLAUDE.md content right after automatic compaction when those files were edited earlier in the session</p>
<p>• Fixed claude -p and SDK sessions saving transcript messages out of order or keeping messages that were taken back</p>
<p>• Fixed SubagentStop hooks running about twice a minute for each running subagent instead of once when it finishes</p>
<p>• Fixed the @ file picker ignoring .ignore/.rgignore negation rules that re-include git-ignored files</p>
<p>• Fixed a subagent's isolated worktree being removed while a background subagent it started was still working in it</p>
<p>• Fixed background agents in auto mode that wait on their own shells starting a new main conversation turn on every wake</p>
<p>• Fixed the Bash tool description claiming the working directory always persists between calls</p>
<p>• Fixed the environment block naming a shell commands don't run in, such as fish when the Bash tool uses zsh</p>
<p>• Fixed claude mcp add, claude mcp remove and /mcp naming the current folder instead of the project entry in ~/.claude.json that holds a local-scope server when run below a repository root</p>
<p>• Fixed claude mcp list and claude mcp get showing the error code twice on failed-connection lines (for example ENOENT: ENOENT: …)</p>
<p>• Fixed Remote Control sessions staying on "Connecting" for about two minutes when a network proxy blocks a startup request</p>
<p>• Fixed messages that Claude sends to a cloud or Remote Control session appearing as your own message in the Claude mobile apps</p>
<p>• Fixed Claude not being told the cause when a file attached to a message sent over Remote Control or to a cloud session could not be saved because the disk was full, or that a message's attachments past the first 20 were left out</p>
<p>• Fixed WebFetch and WebSearch hanging on a stalled response in Cowork cloud sessions; an unfinished request now fails after 300 seconds</p>
<p>• Fixed a background session that crashed between turns not being restarted while it was attached, pinned, or had a scheduled task or wake-up set</p>
<p>• Fixed the "background service did not respond" error suggesting the disabled claude daemon restart; it now suggests claude daemon stop --any and says it ends background sessions</p>
<p>• Fixed claude respawn &lt;id&gt; starting the background service before reporting that no background session matches the id</p>
<p>• Fixed /effort not warning about a prompt cache miss in plan mode when the plan model differs from the session model</p>
<p>• Fixed /ide saying the VS Code extension was installed before the install finished or when it failed</p>
<p>• Fixed the Write tool's file preview skipping rows and miscounting hidden lines when a line is wider than the terminal</p>
<p>• Fixed ↑ in an agent's chat tab recalling a message that was still waiting to be delivered, so resending it sent a second copy</p>
<p>• Fixed Cowork cloud sessions losing their connectors and most tools after a restart when a plugin or your settings named an agent; Cowork cloud sessions now ignore that setting</p>
<p>• Fixed agent teams sessions showing an empty task list when coming back with --resume, --continue, /resume or --session-id, including after /clear or a crash, and /branch writing to the original session's list</p>
<p>• Fixed pasting text that mentions an image file, such as ! open /tmp/shot.png or /review look at /tmp/shot.png, attaching the image and dropping its path from the prompt</p>
<p>• Fixed the feedback draft card showing its 1/2/0 and Esc shortcuts while the prompt has text, when those keys act on the prompt instead of the card</p>
<p>• Fixed a lone backslash in quotes or brackets, like "\" or (\), disappearing from Claude's responses</p>
<p>• Fixed agent teammates compacting their history when DISABLE_COMPACT is set</p>
<p>• Fixed the rewind menu offering "Summarize from here" and "Summarize up to here" when DISABLE_COMPACT is set</p>
<p>• Fixed a finished /code-review, or another skill that runs in a sub-agent, running a second time when a cloud or background session restarts</p>
<p>• Fixed long hidden thinking being cut off as idle on Google Vertex AI, Microsoft Foundry and Claude Platform on AWS, where the endpoint sends thinking progress updates</p>
<p>• Fixed /ide saying it had installed the JetBrains plugin when nothing was installed</p>
<p>• Fixed Claude Pro and Max subscribers being told to ask their admin when their subscription can't be used; the message now points to billing settings</p>
<p>• Fixed the diff pane opening by itself after an edit in wide fullscreen terminals when it had nothing to show</p>
<p>• Fixed /mcp showing a remote server as failed after "Clear authentication" when the server works without sign-in</p>
<p>• Fixed /mcp showing "authenticated" for a remote server that Claude Code sends no credentials to</p>
<p>• Fixed a --plugin-dir folder of plugins loading as one plugin when an empty .mcp.json was at its top</p>
<p>• Fixed /usage never showing large prompt-cache misses under "What's contributing to your limits usage?"</p>
<p>• Fixed status line links staying plain text in background sessions after you open them from a terminal that supports links</p>
<p>• Fixed the /rewind confirmation saying the conversation "will be forked" when the later messages are removed from the conversation</p>
<p>• Fixed the /rewind warning that wrongly said manual and Bash edits are never affected by a code restore</p>
<p>• Fixed plan approval in screen reader mode sending feedback you had dismissed with Escape</p>
<p>• Fixed Claude Code retrying requests the API marked not to retry, which could hold a turn for minutes or, in unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG), indefinitely</p>
<p>• Linux: Fixed sandboxed Bash commands failing with bwrap: Can't create file when a --plugin-dir folder was also an added directory and permissions.blockReadsOutsideWorkingDirectories was on</p>
<p>• Self-hosted runner: Fixed a session failing to start when a rate limit (HTTP 429, or a git wrapper that exits 75) blocks an added read-only repository; it now starts without that repository</p>
<p>• Improved startup time for Pro and Max accounts by skipping two network requests on launches within an hour of the last check</p>
<p>• Improved /teleport and claude --teleport to warn when a compacted cloud session loads from its last compaction, so the messages it summarized aren't in the local copy</p>
<p>• Improved the messages shown when a background session's process exits: they no longer promise a restart that isn't coming, and they say how to resume the session</p>
<p>• Improved artifacts with several views: Claude now routes each view on the link's #name and no longer says the address bar stays the same as you switch views</p>
<p>• Improved shell commands that reach their timeout: the result now shows the output so far and says the command is still running in the background</p>
<p>• Improved compaction: when the model's reply has no summary in it, Claude Code now usually asks for the summary once more before it replaces the conversation</p>
<p>• Improved the Artifact tool's choice between a page and a document: explainers and visual or interactive work become artifact pages; documents are for writing people keep editing or pass around</p>
<p>• Improved startup time for launches whose only arguments are options and their values, such as claude --model opus</p>
<p>• Improved the "Connection dropped" API error: it now says where to look first (the proxy or gateway in use, else VPN or firewall; Anthropic API only, Bedrock, Vertex and Foundry are unchanged)</p>
<p>• Improved screen reader mode: deleting a rule in /permissions says "Deleted allow rule …" right away</p>
<p>• Improved the message shown when a pasted sign-in code is refused: it now says the code may have expired or been used, and to sign in again</p>
<p>• Improved Slack connector sends: Claude now checks a channel's topic for posting rules before messaging a channel you didn't name</p>
<p>• Improved screen reader mode: Claude's questions are listed as "Questions: Color (answered), Pages", without arrows or symbols</p>
<p>• Changed ultrathink in the interactive terminal to run its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic's API; typed while Claude is working, it raises the rest of that turn</p>
<p>• Changed the ultrathink rainbow to appear only where the keyword can raise effort, and not when the word is quoted or part of a file path</p>
<p>• Changed Ctrl+D in agent view to match the prompt: on an empty input, pressing it twice exits</p>
<p>• Changed --output-format json and stream-json output to write DEL, C1 control and Unicode format characters inside strings as \uXXXX escapes; parsed values are unchanged</p>
<p>• Changed model names and IDs to drop the [1m] suffix and its label on models where the suffix has no effect; the suffix is still accepted</p>
<p>• Changed startup warnings about permission rules in settings files to show once per user until the rule changes</p>
<p>• Changed /code-review to tell Claude to put the effort level first and use max only when asked</p>
<p>• Changed DISABLE_COMPACT in settings files and in a mod's $.env.set so they can only turn compaction off, not back on</p>
<p>• Changed Claude Code on Bedrock, Mantle, Vertex, and Foundry to load model settings from a signed file on downloads.claude.ai; set CLAUDE_CODE_MODEL_CATALOG=off to turn this off</p>
<p>• Changed sessions that set CLAUDE_CODE_SYNC_SKILLS with feature-flag fetching off to reuse a claude.ai skills list up to 10 minutes old that another session on the machine fetched</p>
<p>• Changed clicks on scrollbar arrows and bars in fullscreen lists to act when the mouse button is released, so moving off the scrollbar before letting go cancels the click</p>
<p>• Changed claude purge to say it deletes data only on this computer, not anything stored by Anthropic</p>
<p>• [VSCode] Added syntax coloring to code blocks in Claude's replies, in light, dark and high contrast dark themes</p>
<p>• [VSCode] Added a "Running UserPromptSubmit hooks" spinner status and screen reader announcement for slow UserPromptSubmit hooks</p>
<p>• [VSCode] Fixed custom skills and custom slash commands sent from the VS Code or JetBrains panel leaving out the open file or selected lines that ordinary messages include (anthropics/claude-code#102799)</p>
<p>• [VSCode] Fixed the extension host freezing while the login shell ran its start-up files to read PATH on macOS and Linux</p>
<p>• [VSCode] Fixed clicking an image in a tool result, or closing its preview, also opening the result's text in an editor tab</p>
<p>• [VSCode] Fixed voice dictation continuing to record after a message was sent with the Send button; sending now stops dictation first, as pressing Enter already did</p>
<p>• [VSCode] Changed the extension to start Claude Code sessions with DISABLE_TELEMETRY set while VS Code's telemetry setting is off, so they send no usage metrics or error reports and fetch no feature flags</p>
<p>• [VSCode] Changed the session list side bar to load Web sessions when the Web tab is first opened, not at startup</p>
<p>• [Cloud sessions] Fixed routines in Anthropic-hosted environments staying locked after their owner left the organization and rejoined; the owner can now turn them back on</p>
<p>• [Cloud sessions] Fixed a failed routine API token delete or regenerate showing nothing if the edit dialog had already closed; it now shows an error toast</p>
<p>• [Cloud sessions] Fixed cloud environment dialogs, including the admin dialog, accepting duplicate names; they now refuse a name another listed environment already has</p>
<p>• [Claude Tag] Added a Skills view to Claude Tag analytics showing how often Claude runs each attached skill in Slack channels and which go unused, with Usage links in admin settings</p>
<p>• [Claude Tag] Improved Claude Tag routines that run in a new session: a run with nothing to report can now end without posting a throwaway message to the channel</p>
<p>• [Claude Tag] Changed Claude Tag admin settings to show a lock instead of # for private Slack channels that your own Slack account can see</p>
<p>• [Code Review] Improved Code Review's check run to say no further automatic review will start when the model still can't analyze a change on the automatic retry</p>
<p>• [Code Review] Improved Code Review reliability: a review whose session fails to start because of a transient server fault is now retried once automatically, and its check run says so</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.310</id>
<title>Claude Code v2.1.310</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.310"/>
<updated>2026-10-23T23:38:43Z</updated>
<content type="html"><p>• Added the Monitor tool and plugin monitors on Bedrock, Vertex, and Foundry, and when telemetry or nonessential traffic is disabled; long foreground sleeps are now blocked there too</p>
<p>• Fixed requests failing behind some gateways and compatible servers that reject the effort-2025-11-24 beta value or mid-conversation system messages; Claude Code now retries without them</p>
<p>• Fixed background cleanup deleting some recent files, such as pasted images, when cleanupPeriodDays is set to a very large value</p>
<p>• Fixed compaction after a "Prompt is too long" error keeping too much of a conversation with dense text, such as base64 or SVG, so the next request could fail again</p>
<p>• Fixed file read permission prompts not showing where a symbolic link leads</p>
<p>• Fixed a question's auto-continue timeout firing the moment the external editor closed after a long edit</p>
<p>• Windows: Fixed PreToolUse and PermissionRequest hooks letting a tool call through when Git Bash is missing and the hook's command is only quoted strings, such as a quoted path</p>
<p>• Improved auto mode's prompt before the first read outside the working directories: it now says when blocking those reads makes shell commands ask for permission</p>
<p>• Improved memory use of non-interactive sessions (-p, Agent SDK) during compaction when the transcript file is very large</p>
<p>• Improved a mod's Image to draw inside tmux with allow-passthrough and focus-events on, in kitty, Ghostty, and iTerm2 3.5+ with fullscreen rendering, where it showed only its alt text</p>
<p>• Linux: Improved /sandbox and the sandbox startup warning to name Ubuntu's AppArmor restriction on user namespaces, and how to lift it, when it keeps bubblewrap from starting the sandbox</p>
<p>• Changed the error for an MCP tool call that times out in a non-interactive session while the server's elicitation is unanswered: it now tells Claude that no answer came and not to repeat the call</p>
<p>• [VSCode] Fixed pressing Enter on the plan review card's "Send feedback and keep planning" button approving the plan instead of sending your comments back</p>
<p>• [VSCode] Fixed the panel showing "Something went wrong" after "Switch branch &amp; continue" on a cloud session opened from Session history's Web tab</p>
<p>• [Cloud sessions] Added Claude Code cloud sessions and Remote Control permissions to Enterprise custom roles, so Owners can control access to each by role</p>
<p>• [Cloud sessions] Added a Choose file button to load a cloud environment's setup script from a file</p>
<p>• [Cloud sessions] Fixed failed saves and archives in the cloud environment edit dialog showing no error inside the dialog</p>
<p>• [Cloud sessions] Fixed failed routine API token actions showing only a toast; the error now appears in the routine edit dialog</p>
<p>• [Cloud sessions] Improved the session start checklist to show a cloud environment's setup script output in a scrolling box</p>
<p>• [Cloud sessions] Changed turning on Cloud sessions or Remote Control in admin settings to ask for confirmation and list the custom roles that have that permission</p>
<p>• [Cloud sessions] Changed the cloud environment dialog to open network access, setup script and environment variables from rows instead of listing every editor at once</p>
<p>• [Claude Tag] Fixed Claude Tag treating ! commands such as !restart and !help as ordinary messages when sent in bold, italic or strikethrough</p>
<p>• [Claude Tag] Fixed Claude Tag admin channel and workspace pages being replaced by a load error when a background refresh of the bundle list fails</p>
<p>• [Claude Tag] Fixed Claude Tag's spend limits page in admin settings reporting that no channels match a filter while channel names are still loading</p>
<p>• [Code Review] Fixed the Code Review admin section hiding its repositories and switches after a failed refresh of the repository list</p>
<p>• [Code Review] Improved the Code Review admin section to retry the first load and show one Try again banner when it still fails</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.309</id>
<title>Claude Code v2.1.309</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.309"/>
<updated>2026-10-22T22:18:33Z</updated>
<content type="html"><p>• Fixed sandboxed Bash commands on macOS and Linux running the shell's startup files outside the sandbox before each command</p>
<p>• Fixed macOS sandbox denyWrite glob patterns not applying at a path's real location when the pattern's folder is reached through a symlink</p>
<p>• Fixed sandboxed commands and auto-accepted edits being able to modify the MCP config file passed with --mcp-config</p>
<p>• Fixed a disabled MCP server being reconnected by a later permission prompt in print and SDK sessions</p>
<p>• Fixed the Bash permission check trusting a variable set by a command whose redirect can fail to open</p>
<p>• Fixed Bash permission checks not prompting for some compound commands that change directory before running git when the cd is wrapped or prefixed, as they do for a plain cd</p>
<p>• Fixed an Edit(path) deny rule not blocking a Bash redirect to that path in some commands that also held a subshell</p>
<p>• Fixed worktree-isolated sessions accepting some locale-prefixed commands the isolation guard should refuse</p>
<p>• Fixed worktree-isolated sessions on zsh accepting some arithmetic commands that the isolation guard should refuse</p>
<p>• Fixed worktrees and branch checkouts that Claude Code creates so they ignore git replace refs, as its other git operations already do</p>
<p>• Fixed profile store write protection not applying when the config directory is reached through a symlink</p>
<p>• Fixed sessions compacting repeatedly after reading files under a very large nested CLAUDE.md; a nested CLAUDE.md over the size limit now loads only its start</p>
<p>• Fixed ctrl+enter (send now) only queuing a message when pressed before the response had started, and restarting a prompt's hooks while leaving the message queued when pressed while those hooks were running</p>
<p>• Fixed key-bound slash commands running in the shell from ! mode</p>
<p>• Fixed ctrl+o not showing messages from other agents and sessions that are still waiting to be delivered; they now appear in full under the transcript, marked as waiting</p>
<p>• Fixed long tool output previews being cut through an emoji, leaving session transcripts that jq could not parse</p>
<p>• Fixed Read reporting "File does not exist" for PDF page ranges in Linux sandboxes that share the parent's /proc</p>
<p>• Fixed messages from a Claude Desktop-hosted session sometimes being lost when its connection refreshed</p>
<p>• Fixed features missing from Claude Code sessions in the Claude desktop app when the terminal on the same computer was signed in to a different account or organization</p>
<p>• Fixed the claude remote-control status line showing HEAD as the branch for a folder that is not in a git repository</p>
<p>• Fixed split-pane agent teammates not inheriting the tool deny and --tools rules given on the leader's command line</p>
<p>• Fixed sessions renamed with /rename appearing to other sessions under a generated name after a VS Code window reload or a non-interactive --resume</p>
<p>• Fixed the /rewind list showing "No code changes" for a turn that changed checkpointed files through /code-review --fix, a subagent or a shell command</p>
<p>• Fixed /privacy-settings showing an out-of-date "Help improve our AI models" value; it now also says when the setting can't be fetched</p>
<p>• Fixed feedback saying "try again later" when your organization does not accept feedback; it now shows the server's reason and where to report a bug</p>
<p>• Fixed oversized /feedback reports failing instead of being resent without the transcript</p>
<p>• Fixed a skill in an --add-dir folder being unreachable when another skill already held its name; it is now offered as &lt;folder&gt;:&lt;name&gt;</p>
<p>• Fixed /verify and /code-review not finding a nested package's own skill when its files were changed from the shell</p>
<p>• Fixed the /claude-api skill saying that ant beta:worker poll --on-work passes trace context to the command</p>
<p>• Fixed the /claude-api skill's C# tracing setup missing spans from the cloud platform clients</p>
<p>• Fixed the /claude-api skill saying that API spans for requests to Claude Platform on AWS can't join the caller's trace</p>
<p>• Fixed hooks that run in PowerShell not blocking when the hook's program exits with code 2, and on Windows PreToolUse and PermissionRequest hooks with "shell": "powershell" failing open when Git for Windows isn't installed</p>
<p>• Fixed a mod's turn.step hook that names a model by alias, such as haiku, failing every request with a model error: the alias now resolves to its model</p>
<p>• Fixed plugins and skills synced from claude.ai being removed, sometimes mid-session, after a disk read error</p>
<p>• Fixed artifact publishes and updates being refused for some ordinary pages, such as pages with certain minified scripts or artifacts Claude could not read first</p>
<p>• Fixed Claude asking for permission on each artifact update for the rest of a turn after the conversation was compacted in that turn</p>
<p>• Fixed fine-grained tool streaming staying off on Amazon Bedrock when ANTHROPIC_BEDROCK_BASE_URL is set to the default bedrock-runtime.&lt;region&gt;.amazonaws.com endpoint</p>
<p>• Fixed the "Waiting for API response" hint flickering behind gateways that send only keepalive pings: routes off Anthropic's backend now wait 45 seconds</p>
<p>• Fixed Claude notifying unrelated GitHub users by writing role names and placeholders as mentions in PRs, issues and comments</p>
<p>• Linux: Fixed sandbox write denies lifting when a background command outlived the session</p>
<p>• Windows: Fixed PowerShell permission checks auto-approving some Set-Location or cd commands that target the current directory and carry extra arguments; these now prompt for approval</p>
<p>• macOS: Fixed the "Install Command Line Developer Tools" dialog opening each time Claude Code starts on a Mac without Xcode or the Command Line Tools</p>
<p>• Self-hosted runner: Fixed --startup-timeout-min stopping a session whose first prompt, such as /code-review, was still working in a subagent; a frozen process is still stopped</p>
<p>• Improved the speed of many git commands Claude Code runs for itself on Windows; on every platform, errors from those commands now show in English even when git is set to another language</p>
<p>• Improved the error when a hooks module is nested too deep to load: it now names the file instead of showing a bare stack-overflow message</p>
<p>• Improved disk-full handling: a Bash command cut off by a full disk now says so and names the folder to free up, and starting on a full temp volume prints a clear message, not a raw ENOSPC error</p>
<p>• Improved the /claude-api skill to offer API tracing alongside SDK tracing when asked to add OpenTelemetry</p>
<p>• Improved the /claude-api skill to check the live docs before saying a feature is unsupported</p>
<p>• Self-hosted runner: Improved sessions that move to a new runner: Claude now sees the tool call that was interrupted, marked as outcome unknown</p>
<p>• Updated the bundled dataviz skill to accept APCA as a text-contrast measure (keeping WCAG 2 ratios where AA conformance is required), add an apca(text, background) function to its palette validator scripts, and say whether a label inside a colored chart fill should be white or near-black</p>
<p>• Updated the /claude-api skill: service account keys and Workload Identity Federation tokens can now manage OpenTelemetry destinations</p>
<p>• Changed sed -i to get the standard Bash prompt and run as written, not a simulated file-edit preview; like other Bash edits, it is no longer restored by /rewind</p>
<p>• Changed claude ultrareview to require workspace trust: it asks on a terminal, else refuses; scripts pass --trust-workspace, which takes no value (put a PR number or base branch before it), or set CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1</p>
<p>• Changed the dangerous rm and rmdir prompt in bypass permissions mode in the Desktop app and VS Code to deny the command at once with a rewrite hint, so unattended sessions keep going</p>
<p>• Changed commands the settings exclude from the sandbox to ask before writing to its write-list paths while the sandbox is enabled but cannot run; the unsandboxed fallback is refused there</p>
<p>• Changed worktree creation and reuse so git no longer fetches objects on demand, in ordinary clones and in partial clones with a Bash sandbox configured; such a partial clone fetches them first</p>
<p>• Changed the /claude-api skill to build Managed Agents subagent teams on multiagent_20261001 with dynamic workflows on by default, instead of coordinator</p>
<p>• [VSCode] Added a log warning that says what to do when dictation or the extension's own requests fail certificate verification, such as behind a TLS-inspecting proxy</p>
<p>• [VSCode] Fixed the Claude panel staying blank after the editor cached an incomplete copy of its files; it now recovers by itself, or says what went wrong and how to fix it</p>
<p>• [VSCode] Fixed Session history filling up with empty "Untitled" sessions each time you start a new session without sending a message</p>
<p>• [VSCode] Fixed long slash-command messages such as /goal filling the chat panel; they now fold behind Show more like other prompts (anthropics/claude-code#97469)</p>
<p>• [VSCode] Fixed long messages not folding behind Show more after the chat panel is made narrower</p>
<p>• [VSCode] Fixed Ctrl+J in the chat input always inserting a newline: it is now left to VS Code and the OS when "ctrl+j" is set to null in the Chat context of ~/.claude/keybindings.json</p>
<p>• [VSCode] Fixed a mod's "From the … plugin" label above the prompt being drawn over the slash command and @-mention menus (anthropics/claude-code#102981)</p>
<p>• [VSCode] Fixed an empty list item, paragraph or code block, and list items renumbered from 1, when pasting copied LaTeX math</p>
<p>• [VSCode] Fixed the feedback error showing only an HTTP status when your organization does not accept feedback</p>
<p>• [VSCode] Improved Edit and Write speed in the chat panel: the wait for new problems after each edit is now 0.75 seconds in most cases, down from 1 to 1.5 seconds</p>
<p>• [Cloud sessions] Fixed the Add connector list in routine forms saying no connectors were available while they were still loading</p>
<p>• [Cloud sessions] Fixed the cloud environment editor shuffling environment variables and adding backslashes to values that contain both kinds of quote</p>
<p>• [Cloud sessions] Fixed the self-hosted environment details dialog in admin settings so its title, tabs and buttons stay in view while only the content scrolls</p>
<p>• [Cloud sessions] Fixed the "read documentation" tool row in cloud sessions, which showed escaped JSON instead of a readable page</p>
<p>• [Cloud sessions] Improved a cloud session's Changes pane, which now says when it lists only pushed commits or only Claude's edits</p>
<p>• [Claude Tag] Fixed Claude in Slack posting a draft you approved for a channel into your DM by mistake; a post with no channel is now refused so it can go to the approved channel</p>
<p>• [Claude Tag] Fixed Allow and Deny on Claude's approval cards in Slack doing nothing when the session had stopped; your answer now restarts the session</p>
<p>• [Claude Tag] Fixed Claude ignoring untagged messages in a Slack channel after its workspace moved to a different Claude organization, including unshared channels on Enterprise Grid</p>
<p>• [Claude Tag] Fixed Claude in a Slack channel posting a threaded reply before reading a newer message someone had just added to that thread</p>
<p>• [Claude Tag] Fixed the Slack page in Claude Tag admin settings saying no workspaces were connected when the list failed to load; it now shows an error with a Retry button</p>
<p>• [Code Review] Fixed a finished review showing no check on the pull request when earlier tries to create it failed; a final try now adds a completed check</p>
<p>• [Code Review] Fixed a push queued behind a running review still starting a review after @claude review stop; its check now closes and says why</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.308</id>
<title>Claude Code v2.1.308</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.308"/>
<updated>2026-10-22T04:34:32Z</updated>
<content type="html"><p>• Bug fixes and reliability improvements</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.307</id>
<title>Claude Code v2.1.307</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.307"/>
<updated>2026-10-21T22:16:38Z</updated>
<content type="html"><p>• Added /claude-api api-version to move Claude API code to API version 2026-10-21</p>
<p>• Added the claude_code.safety_event OpenTelemetry event for each tool call a permission rule, auto mode, a safety check, a hook or the sandbox stopped, prompted or sent back</p>
<p>• Fixed requests failing with a model-not-found error when CLAUDE_CODE_DISABLE_1M_CONTEXT is set and the model is an alias with the [1m] suffix, such as opus[1m]</p>
<p>• Fixed the prompt-caching-scope beta header being sent behind custom ANTHROPIC_BASE_URL gateways and on Foundry, where it has no effect</p>
<p>• Fixed MCP servers showing "needs authentication" in claude -p on macOS while the login keychain was locked; they now say why, and the next run after an unlock connects without a new sign-in</p>
<p>• Fixed MCP servers being reported as timed out, and staying failed in headless runs, when a macOS or Linux computer went to sleep while they were connecting</p>
<p>• Fixed HTTP MCP tool calls being sent twice when the connection closed mid-call; only read-only or idempotent tools are now retried</p>
<p>• Fixed a turn sometimes starting without an SDK MCP server's latest tools when a background task was running</p>
<p>• Fixed some "Autocompact is thrashing" errors in turns that read many PDF pages, images or other large tool results</p>
<p>• Fixed /autocompact in cloud sessions going back to the default window after the session restarted</p>
<p>• Fixed a conversation cleared with /clear sometimes coming back when a cloud or self-hosted runner session restarted</p>
<p>• Fixed CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS being ignored in Claude apps gateway sessions</p>
<p>• Fixed telemetry from Claude Desktop sessions behind a Claude apps gateway being rejected when OTEL_EXPORTER_OTLP_HEADERS is set</p>
<p>• Fixed /permissions &gt; Recently denied not showing the denied shell command, and auto mode's local classifier ignoring an approval from there when it checks a retried command; approving a row now names the command, not its description</p>
<p>• Fixed /help and the / command menu showing long model-facing descriptions for bundled skills such as /claude-api instead of their short descriptions</p>
<p>• Fixed subagent transcripts recording placeholder token usage and an empty stop reason for streamed responses</p>
<p>• Fixed model switches through the Agent SDK's setModel(), and apps built on it, being refused when the API took more than 5 seconds to confirm the model; Claude Code now waits up to 15 seconds</p>
<p>• Fixed a background command stopped through a connected app (such as the desktop app archiving an idle session) being reported to Claude as stopped by the user; the notice now names its output file</p>
<p>• Fixed WebFetch in Cowork cloud sessions reporting a tool error when a site answered with a 4xx status or a robots.txt refusal; it is now a normal result, as in local sessions</p>
<p>• Fixed write tools on a directly configured GitHub MCP server showing a form that closed without creating anything in the desktop app's Code tab</p>
<p>• Fixed Artifact tool reads failing with a connection reset when the server had closed a reused connection</p>
<p>• Self-hosted runner: Fixed sessions with --use-anthropic-git-proxy committing a .claude/settings.local.json left in the clone by an earlier session</p>
<p>• Self-hosted runner: Fixed archiving or requeueing a session, or stopping the runner, during its checkout hook leaving the hook's processes running and the runner's slot held</p>
<p>• Improved recovery from unparseable tool calls: Claude Code now retries the call up to twice before ending the turn with an error</p>
<p>• Improved fork subagents launched together: each is now told which launch is its own, so forks are much less likely to try to start each other's work</p>
<p>• Improved browser sign-in: the success page now appears as soon as sign-in completes, without waiting for your account profile to load</p>
<p>• Improved web search errors in cloud and self-hosted runner sessions: a search refused with a 403 that gives a reason now shows that reason instead of a generic "Authentication error"</p>
<p>• Improved the time to the first reply in cloud sessions when one of the desktop app's MCP servers can't connect</p>
<p>• Improved Remote Control connect time for sessions whose transcript contains large pasted images or PDF reads</p>
<p>• Changed the notice Claude gets when the WebSearch budget is used up to also tell it not to query search engines in a browser or through computer use</p>
<p>• Changed the axScreenReader setting and CLAUDE_AX_SCREEN_READER in a settings env block to apply only from user, managed or --settings settings (since 2.1.305)</p>
<p>• Self-hosted runner: Changed checkout hooks to be stopped after 30 minutes by default, failing the session's setup; if yours needs longer, raise --checkout-hook-timeout-min or set it to 0</p>
<p>• Self-hosted runner: Changed the certificate file built for Anthropic-managed git to filter its trusted certificates as the CLI does; a [runner:warn] line gives the number left out</p>
<p>• [VSCode] Added a notice on the microphone button when voice dictation stops by itself (15 seconds without recognized speech, or the 2-minute limit), saying why and that the text so far is kept</p>
<p>• [VSCode] Fixed a long prompt expanded with Show more covering the whole chat panel: a pinned prompt is now capped at 40% of the panel and scrolls</p>
<p>• [VSCode] Fixed part of a list item or table cell with LaTeX math pasting as a new list or table in rich text editors</p>
<p>• [VSCode] Fixed dictation failing behind a TLS-inspecting proxy when NODE_EXTRA_CA_CERTS is set only in ~/.claude/settings.json; it now also follows CLAUDE_CODE_CERT_STORE</p>
<p>• [VSCode] Changed the "still open somewhere else" notice to also cover a Claude process left over from an extension restart, which usually ends on its own within about 10 minutes</p>
<p>• [VSCode] Changed voice dictation to filter its trusted certificates as the CLI does</p>
<p>• [VSCode] Changed the extension's own requests to filter their trusted certificates as the CLI does, and to trust the NODE_EXTRA_CA_CERTS file named in the environment or in user settings</p>
<p>• [Cloud sessions] Fixed the repository picker saying "No repositories match" while a search was still running; it now shows "Searching…" until the results arrive</p>
<p>• [Cloud sessions] Fixed the "Waiting for a runner" status on self-hosted environments being cut off; with on-demand runners it now counts up from your last message and shows failed attempts</p>
<p>• [Code Review] Added @claude review stop (also off and pause) to Code Review, ending an @claude review always subscription on a pull request without starting a new review</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.306</id>
<title>Claude Code v2.1.306</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.306"/>
<updated>2026-10-21T03:16:13Z</updated>
<content type="html"><p>• Fixed claude -p inside cloud sessions reporting "Not logged in" when started without the session's environment variables</p>
<p>• Fixed an API error being replaced by "prompt is too long", and an unneeded compaction, in sessions with many MCP tools</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.305</id>
<title>Claude Code v2.1.305</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.305"/>
<updated>2026-10-20T20:46:27Z</updated>
<content type="html"><p>• Added sandbox.allowNestedUserNamespaces so sandboxed commands on Linux can create user namespaces (Chromium, rootless podman); this lets them get around the sandbox's file protections</p>
<p>• Added CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS so unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) notices a usage limit that was lifted before its reset</p>
<p>• Fixed every request failing on Vertex, Bedrock and other providers when the endpoint or a gateway rejects tool search, and behind gateways with ToolSearch disallowed or left out of --tools (a 2.1.304 regression): Claude Code now retries without it</p>
<p>• Fixed /effort and /autocompact settings not applying when the model name differed from a modelOverrides value by letter case or a [1m] tag</p>
<p>• Fixed new worktrees in a bare repository sometimes starting from local HEAD instead of the default branch, and unchanged subagent worktrees sometimes not being cleaned up</p>
<p>• Fixed Bash commands on a full disk failing with a raw ENOSPC file path: the error now says the disk is full and that nothing ran</p>
<p>• Fixed an MCP server passed by a cloud session or by the SDK's setMcpServers being replaced later in the session by a same-named server from your own settings</p>
<p>• Fixed Claude naming the wrong model for a subagent's work after the subagent switched to a fallback model</p>
<p>• Fixed cloud sessions and teammates not telling Claude when a compaction had to leave the oldest messages out of its summary to fit</p>
<p>• Fixed more cases of scheduled Cowork cloud sessions waiting five minutes for each subagent whose WebFetch needed a URL approval that nobody was there to give</p>
<p>• Fixed Workflow resume re-running already-completed pipeline() and parallel() agents instead of serving them from the run's journal</p>
<p>• Fixed Remote Control leaving empty "(session)" entries in /resume after switching conversations with /resume</p>
<p>• Fixed /usage rows being cut off in narrow terminals</p>
<p>• Fixed startup warnings printing as raw text above the logo: they now go to the debug log, and permission rules that restrict nothing show as warning rows under the banner</p>
<p>• Fixed screen reader mode: search boxes now say "Search:" instead of a symbol VoiceOver read as "telephone recorder", and highlighted prompt text, such as Ctrl+R search matches and "ultrathink", no longer has spaces inside words</p>
<p>• Self-hosted runner: Fixed a start script that shares only its stdout with the runner or orchestrator failing with Resource temporarily unavailable when TERM is set (a 2.1.300 regression)</p>
<p>• Self-hosted runner: Fixed repository access failing since 2.1.296 when a git credential helper or askpass program reads its settings through GIT_CONFIG</p>
<p>• Self-hosted runner: Fixed the orchestrator reporting a spawn-runner hook as timed out when a runner it started in the background kept its output open</p>
<p>• Improved /usage: each warning is now a one-line fix that names its source, and f applies the fixes; the same fixes appear in VS Code and /doctor</p>
<p>• Improved MCP consent dialogs so an Enter meant for the prompt is less likely to be taken as Accept</p>
<p>• Improved a mod's Image to draw its picture in iTerm2 3.5 and later with fullscreen rendering, where it showed only its alt text</p>
<p>• Remote Control: Improved the spawn-mode messages: pressing w now says the new mode is saved for the folder, and a later claude remote-control start that uses the saved mode says where it came from</p>
<p>• Changed allowedMcpServers to stop filtering managed-mcp.json stdio servers that use ${VAR} only in env: one your allowlist left out now loads on upgrade; use deniedMcpServers to keep it off</p>
<p>• Changed plugins that Claude Desktop mounts by path to no longer keep their allowed-tools when your organization's managed settings set allowManagedPermissionRulesOnly</p>
<p>• Changed the /artifacts delete confirmation to take 1 or Enter to keep, 2 to delete, and Esc to cancel; y and n no longer answer it</p>
<p>• Changed a mod's docked pane to stay within 45% of the terminal's width, including a width kept from a wider terminal</p>
<p>• [VSCode] Added a "Running start-up hooks" spinner status, with a screen reader announcement, while SessionStart or Setup hooks run</p>
<p>• [VSCode] Fixed the spinner cutting off "Compacting..." when your spinnerVerbs setting replaces the built-in verbs with short ones</p>
<p>• [VSCode] Changed the message shown when a session does not start in time and no hook is running: it now leads with the output logs and lists causes instead of pointing to sign-in and network first</p>
<p>• [Cloud sessions] Fixed the Cloud environments admin page wrongly refusing to save an existing environment with an "installs packages" error</p>
<p>• [Cloud sessions] Improved deleting a self-hosted environment so the dialog and error messages say what blocks the delete and what it will affect</p>
<p>• [Claude Tag] Added public Slack channels Claude hasn't joined to the Claude Tag admin Add place search, so admins can set one up from there</p>
<p>• [Claude Tag] Fixed Claude Tag access bundles so a repository that moved to another GitHub account can be added again</p>
<p>• [Claude Tag] Fixed a routine set up in a Slack DM thread no longer posting after another routine in that thread restarted the conversation; both now keep posting there</p>
<p>• [Claude Tag] Fixed routines set up in a Slack thread reporting success without posting after the conversation ended; those runs are now skipped and the creator is told</p>
<p>• [Claude Tag] Improved Claude Tag admin pages in large organizations so plugin, skill and bundle edits work while the channel list is still loading</p>
<p>• [Code Review] Fixed Code Review sometimes not reviewing the newest commit when several pushes landed on a pull request during a review</p>
<p>• [Code Review] Changed Code Review re-reviews so they no longer open with LGTM while earlier blocking findings are still open</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.304</id>
<title>Claude Code v2.1.304</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.304"/>
<updated>2026-10-19T21:34:21Z</updated>
<content type="html"><p>• Added a transcript line when a plugin that runs first skips one of your mod's hooks, naming the event and the plugin</p>
<p>• Added decider: "person" to a mod's tool.check answer: only the permission dialog or a host's callback can approve the ask, and it is refused with the mod's reason where nobody can be asked</p>
<p>• Added e.isReadOnly to a mod's tool.check event, set when the tool call is read-only</p>
<p>• Added /auto-mode-setup: a guided setup that reads your project and recent sessions to teach auto mode about your environment, now also available on Bedrock, Vertex, Foundry, Claude apps gateway and telemetry-disabled sessions</p>
<p>• Added /claude-api managed-agents-secure, which compares a Managed Agents agent's settings with Anthropic's published security guide, without changing anything</p>
<p>• Added the names of the tools called earlier to the compaction summary in the transcript view (Ctrl+O)</p>
<p>• Added a warning on Pro and Max plans when resuming an inactive conversation would use a noticeable share of your 5-hour usage limit: resume anyway, or start a new conversation and Claude can look up the previous one if you refer to it</p>
<p>• Fixed the organization policy not refreshing until the hourly check after approving an ANTHROPIC_API_KEY at startup or switching "Use custom API key" in /config</p>
<p>• Fixed sandboxed commands failing to start on Linux when a sandbox.filesystem.denyRead glob contains brackets that are not a character class, such as a [user-id] route folder</p>
<p>• Fixed rm -r of a mounted drive or a folder at its top level (/Volumes, /media, WSL's /mnt/c) not getting the safety prompt that rm -rf /Applications gets</p>
<p>• Fixed CLAUDE_CODE_TRANSCRIPT_LOCAL_GC dropping messages from the saved transcript when the disk filled up while the file was being trimmed</p>
<p>• Fixed a plugin keeping a headless run going past --max-turns, Stop, or ended input by spawning subagents or re-running a finished one</p>
<p>• Fixed a failed mod reload removing the tools and commands of the version that stays loaded, and its messages being wrong or silent about whether the previous version is still loaded</p>
<p>• Fixed a click on a mod's button being lost when buttons with the same label and no key were redrawn unchanged</p>
<p>• Fixed mod sharing in the built-in plugin-authoring skill stopping at the secret scan on machines with managed settings and on Team and Enterprise plans</p>
<p>• Fixed scheduled Cowork cloud sessions waiting five minutes again for each subagent whose WebFetch needed a URL approval that nobody was there to give</p>
<p>• Fixed Write results and rejected edits showing a file outside the working directory as ../../…; they now show ~/… or the full path</p>
<p>• Fixed a claude.ai Directory plugin's skills not running as commands when picked from the "/" menu in Cowork cloud sessions</p>
<p>• Fixed Remote Control permanently withholding a desktop conversation's history when a different account was signed in to the terminal</p>
<p>• Fixed Remote Control failing to start from Claude Desktop when DISABLE_TELEMETRY or DO_NOT_TRACK is set on a paid plan</p>
<p>• Fixed model switches, messages and interrupts waiting behind a context usage check in SDK and desktop sessions</p>
<p>• Fixed context_management: Extra inputs are not permitted errors behind LLM gateways; Claude Code now resends the request without that field</p>
<p>• Fixed OpenTelemetry settings delivered through server-managed settings being ignored for the whole session after signing in during first-run setup or the first start after /logout</p>
<p>• Fixed unsandboxed Bash commands in Claude Desktop Code tab sessions on macOS and Linux not seeing environment variables exported in shell startup files such as ~/.zshrc</p>
<p>• Fixed the Consumer Terms notice being skipped for a day or longer after a server error</p>
<p>• Fixed /privacy-settings offering choices that may not apply to you after a network or server error</p>
<p>• Fixed a "Context limit reached" or "Prompt is too long" error after stopping a turn while Claude Code was compacting a conversation the API had rejected as too long</p>
<p>• Fixed subagents sometimes forgetting their most recent work when they were messaged or resumed right after finishing</p>
<p>• Fixed claude --help text for --tools, --resume, --debug, --json-schema, --disable-slash-commands, --system-prompt-snapshot and claude update to match actual behavior</p>
<p>• Fixed claude --worktree removing the worktree and its branch without asking at exit when HEAD was detached or on another branch, which could lose commits</p>
<p>• Fixed resumed and cloud sessions sending Claude the whole skill list again each time plugins reloaded at startup</p>
<p>• Fixed an interrupt not ending a Read that waits on an idle pipe or device named like an image</p>
<p>• Fixed /effort status, /effort ultracode and the prompt's effort indicator showing a guessed effort level when CLAUDE_CODE_EFFORT_LEVEL is auto or unset and no level is sent</p>
<p>• Fixed a PreToolUse hook's deny reason being replaced by a timeout error when an Agent SDK callback hook on the same tool call timed out</p>
<p>• Fixed Bash and PowerShell deleting a large command's output file when it could not be copied to the session's tool-results folder, unless the disk is full</p>
<p>• Fixed notes typed into a multiple-choice question with previews being cut off with "…" in terminals under about 100 columns, hiding what was typed (anthropics/claude-code#82768)</p>
<p>• Fixed self-paced /loop wakeups scheduled at the 1-hour maximum firing just after the 1-hour prompt cache expired, so those wakeups no longer re-read the conversation uncached</p>
<p>• Fixed agent teams: approving a shutdown request from the main session no longer exits the whole CLI</p>
<p>• Fixed a skill's once hook also removing another skill's identical hook after it ran</p>
<p>• Fixed transcript mode's { and } landing the prompt on an inconsistent row, or off screen, instead of the transcript's first row</p>
<p>• Fixed CLAUDE_CODE_AUTO_COMPACT_WINDOW=200k silently setting a 100K window: the variable now accepts k and M suffixes like --autocompact, and warns when a value is out of range or ignored</p>
<p>• Fixed Ctrl+C in the agents view clearing a text selection without copying it when pressed before the mouse button was released</p>
<p>• Improved /usage to say when a rate limit on usage data ends instead of "try again in a moment"</p>
<p>• Improved the lines shown when a mod written in the session loads, reloads or fails to load</p>
<p>• Improved artifacts with several views: when you ask for links to them, Claude now writes out each view's link and explains that the address bar stays the same as you switch views</p>
<p>• Improved cloud sessions: a new conversation's first turn no longer waits for the local (stdio) MCP servers of plugins synced from claude.ai, unless a server sets alwaysLoad: true</p>
<p>• Improved how a remote session recovers its status when the server refuses a status update that carried other session data</p>
<p>• Improved session file size in auto mode: the safety classifier's context is no longer stored with every request</p>
<p>• Improved the claude -p invalid-settings warning: a file that did not load lists only what stopped it, and long lists are capped per file</p>
<p>• Improved resume of large compacted sessions in SDK and headless mode: the first request after resuming is sent sooner</p>
<p>• Improved responsiveness and throughput when many subagents are running at the same time</p>
<p>• Improved memory use when sending requests in long or resumed conversations</p>
<p>• Self-hosted runner: Improved the error shown when the git host answers "not found" for a session's repository: it now names the repository and whom to ask</p>
<p>• Windows: Improved git command start-up with a standard Git for Windows install by running its git.exe directly instead of through its cmd launcher</p>
<p>• Changed mods' settings.read hooks to receive each settings layer and rewrite the merged settings, so a managed mod can make an organization's setting a ceiling, including the cleanupPeriodDays the retention sweep uses</p>
<p>• Changed the /artifacts delete confirmation to show numbered choices: 1 or Enter keeps the artifact, 2 deletes it, and y, n and Esc still work</p>
<p>• Changed the question that turns on the mods Claude writes in a session to plain text with no link or session id; it stays up when a new turn starts, and Claude tells you what loaded when you turn them on</p>
<p>• Changed tool search to be on by default behind a custom ANTHROPIC_BASE_URL; a 400 or 422 from the gateway is retried without it</p>
<p>• Changed compaction to send Claude the skill list again afterwards; /reload-skills now sends only new or changed skills</p>
<p>• Changed skill hooks: the skills of one source (a repo, your own folder, or a plugin) can register at most 1,024 hooks and 16,384 matcher characters per session</p>
<p>• Changed skills under a policy that allows hooks from plugins only: a skill used in the main conversation whose hooks are kept out no longer gets its allowed-tools</p>
<p>• Updated the /claude-api skill to use the ant CLI on Claude Platform on AWS instead of falling back to the SDK or curl</p>
<p>• Removed the notes from claude plugin validate that predicted where a mod's hooks would run</p>
<p>• Removed the "(research preview)" label from the /fast dialog title on Opus 5.5</p>
<p>• [VSCode] Added mod drawing in the chat panel for sessions on Amazon Bedrock, Google Vertex AI and Microsoft Foundry, behind an LLM gateway, or with telemetry turned off</p>
<p>• [VSCode] Fixed one cause of sessions failing to start with "Subprocess initialization did not complete within 60000ms": time a SessionStart command hook spends running no longer counts toward the limit, up to 10 minutes in total</p>
<p>• [VSCode] Fixed a session closed while it was starting keeping its Claude Code process running until the start ended</p>
<p>• [VSCode] Fixed a mod's drawings disappearing from a long-open panel until the next turn on machines that also run an older Claude Code</p>
<p>• [VSCode] Fixed Past conversations hiding sessions when claudeCode.claudeProcessWrapper is set</p>
<p>• [VSCode] Changed background sub-agents to show as one status line under their Agent card instead of streaming every step into the chat; the full transcript stays in /tasks</p>
<p>• [Cloud sessions] Fixed folders in the composer's @ list showing no name in cloud sessions, where picking one added only a space instead of a mention</p>
<p>• [Claude Tag] Fixed Claude going silent in a thread when its channel becomes shared across Enterprise Grid workspaces mid-task; it now posts a one-time note to @-mention it in a new thread</p>
<p>• [Claude Tag] Fixed @Claude !fork typed outside a thread getting no visible reply; Claude now shows you a private note saying to run it from inside a thread</p>
<p>• [Code Review] Added review levels to Code Review: Owners choose Quick, Standard (the default), or Deep for the organization, and can give individual repositories their own level</p>
<p>• [Code Review] Added an option in Code Review admin settings to review every repository in a GitHub organization, including ones added later, without selecting them one by one</p>
<p>• [Code Review] Fixed pull requests opened within a minute or two of an admin turning on Code Review being silently skipped; they are now retried and reviewed</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.303</id>
<title>Claude Code v2.1.303</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.303"/>
<updated>2026-10-18T22:26:35Z</updated>
<content type="html"><p>• Bug fixes and reliability improvements</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.302</id>
<title>Claude Code v2.1.302</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.302"/>
<updated>2026-10-16T20:52:44Z</updated>
<content type="html"><p>• Added CLAUDE_CODE_AUTO_MODE_MODEL to choose the model the client-side auto mode classifier uses; it does not change the model for server-side auto mode</p>
<p>• Added an Idle compaction row to /config for turning idle compaction off or back on; the notices shown after an idle compaction now say how to turn it off</p>
<p>• Added a notice to /design-sync and /design-login that standalone Claude Design (claude.ai/design) closes by December 14, 2026</p>
<p>• Fixed a "Prompt is too long" error when stopping a turn while the conversation was being compacted</p>
<p>• Fixed requests failing with "diagnostics: Extra inputs are not permitted" after switching to Vertex or Bedrock mid-session</p>
<p>• Fixed the Read tool loading an image file of any size, or a pipe or device named like an image, entirely into memory; image sources over 128 MB are now refused</p>
<p>• Fixed /autocompact and /effort saving to the wrong model when a gateway names Opus 4 or 4.1 with a prefix, such as anthropic/claude-opus-4-1</p>
<p>• Fixed a prompt cache miss when a tool added mid-session was loaded again through ToolSearch or after compaction</p>
<p>• Fixed claude plugin and other subcommands sometimes exiting before a queued settings or config write finished, which could lose the change or leave a .tmp file behind</p>
<p>• Fixed plugin marketplaces re-cloning on every refresh, and newly installed git plugins showing version "unknown", when git defaults to the reftable ref format</p>
<p>• Fixed the PowerShell tool not finding commands in a plugin's bin/ folder, and reporting an error when a search that finds nothing (rg, grep, findstr, git grep) is piped into Select-Object or another formatting cmdlet</p>
<p>• Fixed Claude in the desktop app pointing you to claude.ai settings or /mcp to authorize or reconnect an MCP server where that option isn't available</p>
<p>• Fixed artifact publishes sometimes failing when Claude sent an empty list of edits, and Claude retrying an artifact update the wrong way after a newer version of the artifact turned it away</p>
<p>• Fixed classifier_category missing from OpenTelemetry tool_decision events for most auto mode classifier blocks, and new tool_decision attributes pushing out tool_use_id, tool_source and tool_parameters when OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT is low</p>
<p>• Fixed rows in the agents view staying blank after moving down a long list or folding a section</p>
<p>• Fixed claude remote-control --help not printing its usage and exiting when not signed in</p>
<p>• Fixed /design consent and /design revoke suggesting /design-login when they fail in a cloud session, where it isn't available; the message now points to claude.ai/design/settings</p>
<p>• Fixed MCP servers showing no tools, or every tool call failing, when the server negotiates protocol version 2026-07-28 but omits resultType, ttlMs or cacheScope</p>
<p>• Fixed prompt suggestions spending usage credits on models your plan pays for only with credits: they are now skipped after a reply billed to credits</p>
<p>• Fixed URLs written in backticks being clickable only on their first row when they wrap; the whole URL is now one link in terminals that support hyperlinks</p>
<p>• Fixed claude plugin details &lt;name&gt;@builtin suggesting claude plugin list, which never shows built-in plugins, when the plugin isn't found; it now points to /plugin</p>
<p>• Fixed an emoji that a link starts inside wrapping one column too wide, which hid it in question previews and turned tables into lists</p>
<p>• Fixed worktree isolation refusing to create or resume worktrees under git 2.56 or later when a stray .git file points at a directory that doesn't exist</p>
<p>• Fixed a cloud session's cost and usage restarting from zero after the session resumed in a new process</p>
<p>• Self-hosted runner: Fixed git fetches failing with "bad object refs/heads" in sessions that reuse a checkout stored in git's reftable format</p>
<p>• Windows: Fixed every file write being refused or asked about for projects on exFAT or FAT32 drives, including in sessions started with --plugin-dir</p>
<p>• Improved startup time with many plugins enabled: plugin command and agent files now take far fewer file system calls to load, most of all on Windows</p>
<p>• Improved auto mode with the server-side classifier: a conversation too long for the safety check is now compacted, instead of every checked tool call being denied</p>
<p>• Improved the message when a background session reopened from another folder has no LLM gateway: it now says why, instead of "Not logged in"</p>
<p>• Changed claude -p and Agent SDK sessions with no permission mode to start in default mode on third-party providers, with telemetry off or on a fresh install; --permission-mode auto keeps auto</p>
<p>• Changed fork subagents (subagent_type: "fork") to be on by default in claude -p, the Agent SDK, the desktop app and VS Code, as they already are in the terminal; CLAUDE_CODE_FORK_SUBAGENT=0 turns them off, and claude mcp serve never offers them</p>
<p>• Changed the desktop app and VS Code to always run the main conversation's subagents in the background, as the terminal does, rather than let Claude choose; a subagent's own Agent calls in claude -p, the Agent SDK, the desktop app and VS Code now run in the foreground by default</p>
<p>• Changed the ← for agents footer hint to hide 10 seconds after a session opens; the count of agents waiting on you still shows</p>
<p>• Changed where the Claude in Chrome instructions sit in the system prompt so that new conversations can read them from the shared prompt cache</p>
<p>• Changed prompt and agent hooks so that at most 12 of one event run at a time; the rest wait their turn</p>
<p>• Changed the message shown when your organization's policy turns off /feedback: it now points to GitHub issues instead of an organization admin</p>
<p>• [VSCode] Fixed text after an unclosed code block in a list showing as plain text while a reply streams, then turning into code</p>
<p>• [VSCode] Fixed MCP server sign-in from the panel opening a broken authorization page when the server URL contains a query string</p>
<p>• [VSCode] Fixed the @browser banner saying "Browser connected" when no browser with the Claude extension can be reached</p>
<p>• [Cloud sessions] Added a banner on a routine's page that says why its last run didn't start, such as your organization reaching its limit on concurrent cloud sessions</p>
<p>• [Cloud sessions] Fixed "Rewind to here" failing on every message except the newest in cloud sessions; self-hosted runners need Claude Code v2.1.246 or later</p>
<p>• [Cloud sessions] Fixed the pull request status bar in cloud sessions flipping a pull request with merge conflicts back to ready while GitHub rechecked it</p>
<p>• [Cloud sessions] Fixed routine runs showing as Completed after their cloud session stopped unexpectedly, and as Cancelled when archived before they started, instead of failed</p>
<p>• [Cloud sessions] Fixed the diff view in cloud sessions missing changes or failing to load after the session's GitHub repository was renamed or moved</p>
<p>• [Cloud sessions] Fixed a scheduled routine run that failed partway being run again from the start an hour or more later, which could repeat work such as posting the same report twice</p>
<p>• [Cloud sessions] Fixed an open cloud session sometimes not showing messages sent from another device until you reloaded the page or clicked away and back</p>
<p>• [Cloud sessions] Improved the error shown when a cloud session fails to start: it now says "Connection lost" or "Server error" instead of "Something went wrong"</p>
<p>• [Remote Control] Fixed a subagent's pane spinning forever in a Remote Control session after your computer goes offline; it now says Remote Control is disconnected</p>
<p>• [Claude Tag] Fixed "is thinking…" staying up under a mention in a Slack channel or DM after Claude answered it by editing one of its earlier messages</p>
<p>• [Claude Tag] Fixed URLs in code blocks under a numbered or bulleted step of Claude's Slack replies being wrapped in angle brackets, which broke copied commands</p>
<p>• [Claude Tag] Fixed HEIC, SVG, TIFF and BMP images attached in Slack never reaching Claude; they now arrive as files in its working files, like other file types</p>
<p>• [Claude Tag] Fixed new channel managers losing access to Claude in Slack in organizations that restrict Claude Tag by role; the manager role now also grants Claude Tag in Slack</p>
<p>• [Claude Tag] Fixed custom connectors whose MCP servers share one host showing as a single connector in Claude Tag admin settings; each server is now its own connector</p>
<p>• [Claude Tag] Fixed Claude in Slack sometimes answering a direct message with "DMs are temporarily unavailable" and dropping it when a single Slack lookup stalled; it now retries first</p>
<p>• [Claude Tag] Fixed direct messages with Claude on a Slack Enterprise Grid ignoring Slack's workspace dropdown; they now run under the connected workspace you last opened Claude in</p>
<p>• [Claude Tag] Fixed Claude in Slack's notice for a channel's monthly spend limit saying a channel manager can raise it; it now names an organization owner and links the usage page</p>
<p>• [Claude Tag] Fixed links in Claude's Slack replies absorbing the closing bold or italic marks, or full-width punctuation, right after them, which broke the link and the formatting</p>
<p>• [Claude Tag] Improved repository search in Claude Tag admin settings to cover up to 100 connected GitHub accounts and find private repositories past the first 5,000 of a GitHub App install</p>
<p>• [Claude Tag] Improved Add place in Claude Tag admin settings to list a channel you type or paste right away, instead of only after your organization's full channel list has loaded</p>
<p>• [Claude Tag] Improved Add &gt; Domain on a workspace's or channel's page in Claude Tag admin settings to be available once that page loads, not only after every channel has loaded</p>
<p>• [Claude Tag] Changed Claude Tag admin settings to organize Claude's access into four tabs: Bundles, Connectors, Skills and plugins, and Channels</p>
<p>• [Claude Tag] Changed the Roles page in organization settings to group the roles created for Claude Tag channel managers in a collapsed section below your organization's own roles</p>
<p>• [Code Review] Fixed Code Review setup not resuming after you leave to connect GitHub; back in admin settings, it now reopens at the repository picker</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.301</id>
<title>Claude Code v2.1.301</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.301"/>
<updated>2026-10-15T19:21:45Z</updated>
<content type="html"><p>• Added CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS so unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) ends a request at a usage limit that resets too far away instead of waiting</p>
<p>• Added OpenTelemetry tracing guidance to the claude-api skill, including setting up trace destinations with the ant CLI</p>
<p>• Added the % motion to vim mode: jump to the matching bracket, alone or with d/c/y</p>
<p>• Added rows to a mod's Input: a text field of several lines in the terminal, where Enter submits and Shift+Enter or a backslash before Enter starts a new line</p>
<p>• Added classifier_verdict and permission_mode to OpenTelemetry tool_decision events, so auto mode classifier decisions can be told apart from permission rules</p>
<p>• Added classifier_category to OpenTelemetry tool_decision events, naming the built-in rule a classifier block matched, when OTEL_LOG_TOOL_DETAILS=1</p>
<p>• Fixed quitting removing a worktree made by a WorktreeCreate hook without asking when it may hold unpushed commits</p>
<p>• Fixed the fable (and best) model alias erroring on the Anthropic API when the newest Fable model is not available to your organization: Claude Code now retries once on the previous Fable model</p>
<p>• Fixed a misleading "Please run /login" error when a full disk keeps the login from being refreshed; the error now names the disk and says to delete files</p>
<p>• Fixed Grep and Glob reporting no matches when the search program failed unexpectedly before returning any results; they now return an error saying the search failed</p>
<p>• Fixed workflow agents sometimes skipping their step, and the run still reporting success, after reading the harness note that their task text carries no user authority</p>
<p>• Fixed artifact updates being refused where a PreToolUse hook covers Edit or Write; Claude now edits the file and then republishes instead of changing it in the publish call</p>
<p>• Fixed skills and commands with very many or very long argument names stalling for seconds when invoked; only the first 64 names, each up to 64 characters, are now filled in</p>
<p>• Fixed skills, commands and hooks using very large amounts of memory when their arguments fill many placeholders</p>
<p>• Fixed stray characters such as &gt;0q covering the folder trust prompt, and &gt;4m before the shell prompt at exit, in terminals built on VTE older than 0.53 such as MATE Terminal on RHEL 8</p>
<p>• Fixed stray GOK text appearing in the prompt at startup in some versions of iTerm2</p>
<p>• Fixed switching to a model whose name contains application-inference-profile running your awsAuthRefresh command and delaying model-switch hooks when the provider is not Bedrock</p>
<p>• Fixed sign-in refresh timeouts and unexpected sign-outs after a short command such as claude auth status or claude plugin list exited in the middle of a token refresh</p>
<p>• Fixed a tool call cut off by a message sent mid-turn during its permission check being reported to the model as rejected by the user</p>
<p>• Fixed a case where switching to a model with a smaller context window could spend usage credits on a summary by the previous model without asking first</p>
<p>• Fixed conversations being compacted over and over, on a model you didn't pick, behind an LLM gateway whose responses name a different model than the one requested</p>
<p>• Fixed vim mode sometimes staying in INSERT after Escape on a slow or busy machine</p>
<p>• Fixed Esc discarding a typed AskUserQuestion answer in vim mode: the free-text field now supports vim NORMAL mode, and Esc cancels only from NORMAL</p>
<p>• Fixed the Read tool reading binary files such as .xlsm, .parquet, .epub and .heic as text</p>
<p>• Fixed a Markdown table with only a header row drawing nothing when too wide for the terminal, including in plans on the plan approval card</p>
<p>• Fixed the /claude-api skill saying CMEK external-key endpoints aren't available on Claude Platform on AWS</p>
<p>• Fixed skills no longer being listed to the model after using /rewind</p>
<p>• Fixed the compaction row in a resumed session offering ctrl+o for history that is not loaded; it now says where the earlier messages are saved, and also shows in fullscreen</p>
<p>• Fixed the "new task? /clear to save tokens" hint coming back right after you interrupt a response</p>
<p>• Fixed the permission prompt for a plugin or skill hook's ask decision not showing which plugin or skill the hook comes from</p>
<p>• Fixed /diff not noticing a conflicted cherry-pick or revert in reftable repositories when one of its git checks timed out or failed</p>
<p>• Fixed workflow scripts asking for permission or being refused when read, edited or re-run after a Bash cd in the same session</p>
<p>• Fixed dim text on the dark ANSI theme and 16-color terminals: faint inside filled boxes, not faint under selection and search highlights, and list descriptions dimmed like other secondary text</p>
<p>• Fixed a mod's $.model.fork returning nothing-to-fork when called before the first response of a new Claude Code process had finished, as in claude -p runs and cloud sessions</p>
<p>• Fullscreen mode: Fixed /compact and auto-compact briefly freezing the UI while the visible transcript is rebuilt</p>
<p>• Self-hosted runner: Fixed sessions started from Slack being unable to find or attach a repository when managed settings restrict MCP servers; use deniedMcpServers to keep those tools off</p>
<p>• Self-hosted runner: Fixed sessions being reported as having a deleted source branch, and not retried, when an unrelated setup or session failure quoted git's missing-ref wording</p>
<p>• Self-hosted runner: Fixed the log promising a retry of a failed or declined session release for a session that is ending; repeated failures now show a count</p>
<p>• Windows: Fixed stopped background PowerShell commands missing the closing [killed] line in their output file</p>
<p>• Improved switching to a model with a smaller context window: a conversation too long for the new model is now summarized by the previous model first</p>
<p>• Improved rendering performance while a long-running subagent works: its progress trail now updates incrementally instead of being reprocessed in full on every render</p>
<p>• Improved artifacts: pages Claude writes now paint the band above a sticky header, so scrolled text no longer shows there in the mobile apps</p>
<p>• Improved mods: in VS Code and the desktop and mobile apps, a tree drawn above the question dialog can now hold Markdown and up to 48 rows; the terminal keeps 12 plain rows</p>
<p>• Changed a mod hook's .catch handler to run only when the hook throws or times out; events raised beneath the hook's own calls now skip that hook without asking its .catch</p>
<p>• Changed a mod's $.env.set to resolve with {} once the variable is set or unset, or with { deny } saying why when the write is not made</p>
<p>• [VSCode] Added LaTeX math rendering in Claude's responses, including $$ and multi-line \[ … \] blocks and inline $…$ and \(…\) math</p>
<p>• [VSCode] Added a "Get more usage" link to the usage-limit banner for Pro and Max plans in the VS Code and JetBrains panels</p>
<p>• [VSCode] Fixed a conversation that crashes or freezes the panel being reopened on every reload</p>
<p>• [VSCode] Fixed the chat panel slowing down during long thinking: it no longer re-parses the whole thinking text on every update</p>
<p>• [VSCode] Fixed diagnostics showing "[object Object]" instead of the rule code (e.g. MD013) for some language servers</p>
<p>• [VSCode] Fixed the native dictation audio module being loaded, to check microphone permission, where dictation is not offered (non-claude.ai sign-ins, remote windows)</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.300</id>
<title>Claude Code v2.1.300</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.300"/>
<updated>2026-10-14T18:24:07Z</updated>
<content type="html"><p>• Added virtualText to a mod's prompt decorations: text drawn in the prompt box that never enters the draft or the submitted prompt</p>
<p>• Added cache_creation_5m_tokens and cache_creation_1h_tokens to the OpenTelemetry api_request event, splitting cache writes by lifetime</p>
<p>• Added $.ui.view({ agentId }) for mods: shows an agent's transcript in the main view when you ask, and $.ui.view({}) goes back</p>
<p>• Added a dir prop on a mod's Text for right-to-left text: on Windows and in VS Code's terminal its rows read in that direction and sit flush right</p>
<p>• Added /advisor on Claude Platform on AWS; no advisor runs until you pick one with /advisor, advisorModel or --advisor, and CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 turns it off</p>
<p>• Added OpenTelemetry GenAI semantic-convention attributes to trace spans, such as gen_ai.provider.name, gen_ai.conversation.id, gen_ai.tool.name and error.type</p>
<p>• Added support for rewriting a workflow agent's prompt and model in the agent.spawn mod hook, which could only refuse workflow agents before</p>
<p>• Added the prompt.change mod hook, raised when the prompt box's text changes without a typed edit: a recalled history entry, a clear, an undo, or a plugin's fill</p>
<p>• Fixed cloud sessions telling Claude that an organization policy blocked a host when the session's own network settings did</p>
<p>• Fixed /autocompact warning about high token usage when you choose a smaller auto-compact window</p>
<p>• Fixed SessionEnd hooks sometimes not running when you exit while a background command is still running</p>
<p>• Fixed claude --help naming a removed tool in its description of --restricted</p>
<p>• Fixed claude agents not refreshing any pull request's status when the data for one of them came back incomplete</p>
<p>• Fixed Claude being told a background agent was lost, not resumable, after a cloud session's container was replaced, when the agent had already been resumed once</p>
<p>• Fixed subagents you had typed messages to disappearing from /tasks shortly after finishing, leaving no way back to the conversation</p>
<p>• Fixed a completed parent agent dropping off the breadcrumb (its child shown re-rooted at top level) while you were viewing the child</p>
<p>• Fixed the agents view taking a typed word such as "up", "down" or "escape" for that key when input arrived in a burst, which could move the peek mid-reply or clear a draft</p>
<p>• Fixed automatic tool search (ENABLE_TOOL_SEARCH=auto) turning off part-way through a conversation, for example while MCP servers reconnect after a resume</p>
<p>• Fixed a login refused by forceLoginOrgUUID leaving the refused organization's token stored, or live after /login</p>
<p>• Fixed the diff view in Claude Desktop and Remote Control sessions not noticing a conflicted cherry-pick or revert in reftable repositories</p>
<p>• Fixed the Artifact tool's verbose and ctrl+o line reading Artifact("(unprintable path)") while a call's input arrives; its row now shows "Waiting…" and "Running…" as Bash's does</p>
<p>• Fixed the first transcript entry written after resuming a session being lost when a crash had cut the transcript's last line short</p>
<p>• Fixed /branch dropping messages, and claude purge skipping subfolder projects, when they contain a Unicode line or paragraph separator (U+2028, U+2029)</p>
<p>• Fixed plugin WorktreeCreate and WorktreeRemove hooks not running when Claude Code starts with --worktree (not yet with --tmux)</p>
<p>• Fixed OpenTelemetry tool_result events missing git_commit_id after git commit -q in repositories using reftable ref storage</p>
<p>• Fixed a prompt that a mod's prompt.submit hook rewrote or dropped still being recorded as typed in the OpenTelemetry user_prompt event and interaction span, and in session title requests</p>
<p>• Fixed a note meant for Claude about mod hot-reloading appearing in the transcript as if you had typed it</p>
<p>• Fixed agent hooks ignoring their model: aliases like haiku now resolve, a subagent's model no longer overrides it, and an unavailable model falls back to the caller's instead of allowing the action</p>
<p>• Fixed --worktree sessions sometimes starting from the wrong commit when a tag or branch was named like a commit ID, and their starting git status naming a branch other than the new worktree's</p>
<p>• Fixed the branch showing as ".invalid" and --worktree failing to reopen a worktree in repositories using git's reftable ref storage</p>
<p>• Fixed Claude naming files in the session scratchpad by a bare filename or relative path instead of their full path</p>
<p>• Fixed claude remote-control servers giving up on renewing their connection after a brief sign-in error, such as a locked keychain; they now retry, and warn when you need to run claude /login</p>
<p>• Fixed --worktree failing in a worktree of a bare repository when origin's default branch can't be fetched; the fallback base is now the current checkout's HEAD, not the main repository's</p>
<p>• Fixed starting Claude Code in a VS Code, Cursor or Devin Desktop integrated terminal launching the editor's command-line tool twice to check for the extension; it now launches it once</p>
<p>• Fixed a mod's prompt.edit hook not being raised for a newline entered with the chat:newline keybinding (Ctrl+J, or a rebound Enter)</p>
<p>• Fixed a conversation failing on every turn with a 400 error when the API rejected an MCP tool's input schema; Claude Code now sends that tool without parameters for the rest of the conversation</p>
<p>• Fixed resuming a headless or Agent SDK session losing the recent messages a compaction had kept, when the compaction followed a reply cut at the output token limit (compactions from this version on)</p>
<p>• Fixed Claude not being told about an MCP server's tools and instructions until its next tool call, when the server finished connecting after a compaction</p>
<p>• Fixed Remote Control sessions being marked stopped while still running, on a computer serving several sessions at once</p>
<p>• Fixed resuming a headless or Agent SDK session losing its compaction summary or bringing back pre-compaction history, when the compaction followed a retried or unfinished reply in the same turn</p>
<p>• Fixed Claude polling a background command's output file or sleeping while it runs</p>
<p>• Fixed feature flags and staged rollouts staying stale behind a TLS-inspecting proxy whose certificate is trusted only through the OS certificate store</p>
<p>• Fixed claude daemon stop --any printing "stopped" while a stuck background service kept running: it now waits, force-kills the service, and says so with exit 1 if it is still there</p>
<p>• Fixed claude daemon stop exiting with no output, and leaving sessions listed as running, when telemetry is turned off</p>
<p>• Fixed Write, Edit and NotebookEdit in Cowork cloud sessions reporting success for a path on your own computer, where the file never arrived</p>
<p>• Fixed Claude searching for deferred tools already loaded earlier in the conversation when a session resumes a history that never listed them</p>
<p>• Fixed secondary (dim) text looking the same as normal text under the dark ANSI theme and on 16-color terminals</p>
<p>• Fixed cloud sessions hanging 5 minutes per turn when the organization's policy can't be read; the turn now ends promptly and says why</p>
<p>• Fixed a cloud session sometimes running an already answered message a second time after the session restarted during a long reply</p>
<p>• Self-hosted runner: Fixed the runner and orchestrator freezing (no polls, /healthz or SIGTERM shutdown) while nobody reads their output; logs keep the latest 256 KiB and count drops (not on Windows)</p>
<p>• Improved WebFetch in Cowork cloud sessions to tell Claude that a page failed moments ago instead of fetching it again</p>
<p>• Improved mod sharing in the built-in plugin-authoring skill: Claude scans a mod's files for keys before opening them, and asks before scanning a folder outside the project</p>
<p>• Improved the note Claude 3 models get about an @-mentioned PDF, so they less often answer without reading it</p>
<p>• Improved artifact updates: Claude now applies a small change and republishes the artifact in one call, and makes larger edits and republishes within a single response</p>
<p>• Changed CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST sessions to ignore CA-bundle, tool-proxy, git TLS and git config variables like SSL_CERT_FILE in settings; under Claude Desktop, only in project settings</p>
<p>• Changed exit to force-kill background commands still running 1.5 seconds after being asked to stop; in fullscreen mode they could previously be left running</p>
<p>• Changed Claude Desktop's Code tab to apply managed settings when forceLoginGatewayUrl names an Anthropic-operated gateway that serves the session's hostname; that gateway must be reachable at start</p>
<p>• Changed claude gateway to stop at start, naming the key, on a desktop: policy key that Claude Desktop cannot use from a gateway, where it earlier started with a warning</p>
<p>• Changed large requests to api.anthropic.com to use gzip compression even when telemetry is disabled; set CLAUDE_CODE_GZIP_REQUEST_BODIES=0 to turn it off</p>
<p>• Changed the claude-api skill to leave Managed Agents sessions in place unless you ask to archive or delete them</p>
<p>• Changed background sessions to resume a carried workflow through the Workflow tool's approval instead of running it from the handoff file</p>
<p>• Changed local session transcripts to also record each API request's system prompt, tools and parameters, so a transcript you choose to share can reproduce a request exactly</p>
<p>• Changed the /sandbox mode options to read "Sandbox commands" instead of "Sandbox BashTool"</p>
<p>• Changed PermissionRequest hooks in Cowork cloud sessions: a setMode update in a hook's allow is now ignored; the rest of the approval still applies</p>
<p>• Changed hooks: updatedInput from PreToolUse and PermissionRequest hooks is now validated like Claude's own input: unknown keys are dropped, and input the tool rejects denies the call</p>
<p>• Removed the --sandbox and --no-sandbox flags from claude remote-control, which had no effect; passing either now exits with an error. Set sandbox.enabled in settings to sandbox sessions</p>
<p>• [VSCode] Added the claudeCode.attachSelection setting to stop text selected in the editor from being added to your messages</p>
<p>• [VSCode] Fixed fast mode staying on after usage credits ran out, which made each request be refused and re-sent; it now turns off until you turn it back on, with an error notice</p>
<p>• [VSCode] Fixed the Thinking toggle switching to Off on models that always think; the toggle is no longer shown for those models</p>
<p>• [VSCode] Fixed "Edit prompt" on a flagged message opening the file or command menu over the restored prompt; Enter now sends it as written</p>
<p>• [VSCode] Fixed Shift+dragging a file onto the prompt on Windows inserting an unreadable /c:/… path instead of a mention relative to the working directory</p>
<p>• [VSCode] Fixed changes to VS Code's chat font size settings needing a window reload or being undone by a theme change; diffs and the plan preview now follow them too</p>
<p>• [VSCode] Fixed "Resume session" and tabs restored after a reload opening an empty new conversation instead of one that had moved into a git worktree</p>
<p>• [VSCode] Fixed ↑ then Enter on a recalled slash command running it without its arguments; the command and file menus no longer open over a recalled prompt until you edit it</p>
<p>• [VSCode] Fixed Shift+dragging a file from the Explorer or an editor tab onto the prompt inserting nothing in WSL, SSH and Dev Container windows</p>
<p>• [VSCode] Fixed Ctrl+Alt+F toggling Focus view instead of opening Find in the Explorer, other tree views, or the Debug Console on Windows and Linux</p>
<p>• [VSCode] Fixed the check for sessions open in other windows or terminals creating extra processes on macOS: it now starts /bin/ps directly instead of searching PATH for ps on every check</p>
<p>• [VSCode] Windows: Fixed a conversation showing "still open somewhere else" after a crash or power loss, when Windows had since restarted and given the old process ID to another program</p>
<p>• [Cloud sessions] Fixed "Allow for this task" missing from Cowork's approval prompts for connector tools where an organization turns off "Always allow" (regression in 2.1.292)</p>
<p>• [Cloud sessions] Fixed most commands in the / menu losing their descriptions in cloud sessions once you sent a second message</p>
<p>• [Remote Control] Fixed the diff view in Remote Control sessions on claude.ai and the desktop app showing deleted and renamed files as modified; requires Claude Code v2.1.296 or later on your machine</p>
<p>• [Claude Tag] Added support for Slack Connect channels: an Owner or Claude Tag admin can let Claude in Slack answer in channels shared with another organization; it's off by default</p>
<p>• [Claude Tag] Added a private Allow once / Deny card in Slack threads for connector actions that need your approval, so Claude asks instead of refusing; others only see that it's waiting on you</p>
<p>• [Claude Tag] Added support for Slack voice clips in Claude in Slack: Claude reads Slack's transcript of a clip when Slack has one</p>
<p>• [Claude Tag] Fixed Claude in Slack not answering another app that tags it in a thread under a message Claude itself posted to the channel</p>
<p>• [Claude Tag] Changed access bundles an admin attached to a Slack channel to keep applying once the channel becomes a Slack Connect channel, with no need to remove and re-attach them</p>
<p>• [Code Review] Fixed Code Review ignoring @claude review comments from people with write access whose GitHub organization membership is private; their comments now start a review</p>
<p>• [Code Review] Fixed Code Review's "paused for this repository" comment sending admins to Code Review settings; it now says who can fix it and links the Git providers page</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.299</id>
<title>Claude Code v2.1.299</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.299"/>
<updated>2026-10-14T02:49:24Z</updated>
<content type="html"><p>• Added CLAUDE_CODE_DISABLE_FILE_MENTIONS environment variable: Claude gets the paths of @ file mentions to read with its file tools, not the files' contents</p>
<p>• Added idle compaction in the terminal: a 200K+ token conversation left idle for about 54 minutes is compacted before its one-hour prompt cache expires, so your next message doesn't reprocess it all</p>
<p>• Added CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS to change idle compaction's 200K-token minimum; "idleCompaction": false in settings.json turns it off. Both need v2.1.290 or later</p>
<p>• Added $.prompt.media so a prompt.submit hook of a mod installed by managed settings can read the bytes of an image or document attached to the prompt</p>
<p>• Added $.session.identity() for mods installed by managed settings: how the session is signed in, and its organization and email when managed forceLoginOrgUUID lists that organization</p>
<p>• Added size, weight, mono and tabular to a mod's Text and named spacing steps (xs to xl) to its Box; bold is deprecated in favor of weight</p>
<p>• Added --shutdown-drain-sec to claude self-hosted-runner orchestrator: on SIGTERM it stops polling and gives the poll in flight and running spawn hooks up to that many seconds to finish</p>
<p>• Added the skill's frontmatter, source, plugin name and file path to what a mod's skill.prompt hook receives</p>
<p>• Added /effort and /fast in agent view to set what new sessions start with; a bare /model, /effort or /fast there now opens a picker</p>
<p>• Added a "safe mode" line to the agents view peek panel for background sessions started with --safe-mode</p>
<p>• Added a one-time note when plan mode won't ask before most edits or commands because bypass permissions is available</p>
<p>• Added --disallow-tools and a disallowed_tools case field to claude plugin eval to keep specific built-in tools, such as Agent, out of eval runs</p>
<p>• Added support for turning off the attribution block in Claude Desktop's Code tab: set CLAUDE_CODE_ATTRIBUTION_HEADER=0 in the env of a Claude apps gateway's code policy</p>
<p>• Added a field to the attribution block in Claude Code sessions behind a Claude apps gateway; remove the block with CLAUDE_CODE_ATTRIBUTION_HEADER=0</p>
<p>• Added a queue door to the session.append mod hook, so a mod can make the transcript's queue records differ from the prompt as sent</p>
<p>• Added a note in /plugin and claude plugin validate naming a mod's hooks that are skipped where an organization manages Claude Code</p>
<p>• Added /usage warnings for max effort, workflows, always-on context and large tool results</p>
<p>• Fixed the error for a denied cloud session, which could point to the wrong organization when a key from apiKeyHelper was in use</p>
<p>• Fixed sessions on a gateway-specific model name behind a custom ANTHROPIC_BASE_URL ending with "Prompt is too long · automatic compaction failed" near 200K tokens instead of sending the request</p>
<p>• Fixed a mod that submits a prompt at the end of every turn keeping a headless run going past --max-turns, --max-budget-usd, an interrupt, or the end of the host's conversation</p>
<p>• Fixed cloud sessions sometimes showing the model's follow-up text after a tool group's one-line label</p>
<p>• Fixed the Write and Edit tools creating a mod in a session's mods folder without asking in accept-edits mode when the config directory's path has no .claude in it</p>
<p>• Fixed installed mods that kept running in an open session after being turned off remotely; they now unload between turns</p>
<p>• Fixed Edit and Retry in Cowork and claude.ai cloud sessions failing on a message stopped while its UserPromptSubmit or mod prompt.submit hooks were still running (regression in 2.1.296)</p>
<p>• Fixed an agent teammate started without a description keeping part of a credential from its prompt in the task description shown for it</p>
<p>• Fixed the claude.ai view of a Remote Control or cloud session freezing when a large batch of events could not finish uploading over a slow connection</p>
<p>• Fixed a sandboxed shell command being able to write into a --plugin-dir folder, whose code Claude Code reloads and runs outside the sandbox</p>
<p>• Fixed memory growth under heavy debug logging (--debug, --debug-file), and a hang on exit when the debug log is on a disk or network mount that stops accepting writes</p>
<p>• Fixed memory growing without bound when debug output goes to stderr and the parent process stops reading it</p>
<p>• Fixed rm prompts on shell -c scripts that don't run rm. An rm built at run time in a script Claude Code can't read no longer prompts unless CLAUDE_CODE_STRICT_INLINE_SHELL_RM_PROMPT=1</p>
<p>• Fixed double-clicking a word in an expanded transcript row in fullscreen mode collapsing the row instead of selecting the word</p>
<p>• Fixed claude mcp list, claude doctor and /status reporting an empty .mcp.json as invalid</p>
<p>• Fixed /btw jumping the transcript to the bottom when asked while scrolled up in fullscreen</p>
<p>• Fixed sandboxed commands failing on WSL2 with bwrap: Can't mkdir /mnt/c/Program Files/ClaudeCode when the sandbox can write to the Windows drive</p>
<p>• Fixed scheduled wakeups (ScheduleWakeup) not firing while a background task was running in Agent SDK, IDE and claude remote-control sessions</p>
<p>• Fixed a mod's prompt.submit rewrite being silently dropped, sending the prompt as typed, for some prompts with a pasted image or an image that can't be read</p>
<p>• Fixed a Remote Control prompt being lost when another queued prompt in the same batch failed to deliver</p>
<p>• Fixed a Remote Control prompt that had passed its hooks being dropped from prompt history when Stop interrupted the next queued prompt's hook</p>
<p>• Fixed sign-in, MCP servers and project trust appearing lost on Linux after a sandboxed command left an empty .config.json in the config directory</p>
<p>• Fixed /sandbox reporting success when its setting could not be saved because the project folder is not writable; it now says nothing changed and why</p>
<p>• Fixed SDK and headless sessions staying in auto mode after the host switched to a model that doesn't support auto mode</p>
<p>• Fixed MCP servers named constructor or prototype in an MCP config never being connected</p>
<p>• Fixed tools of an MCP server named constructor or toString asking for permission in auto mode and bypass permissions mode</p>
<p>• Fixed a spurious "synced[0] commands path not found" plugin error at startup when another Claude Code process had just updated a claude.ai-synced plugin</p>
<p>• Fixed the Artifact tool advising a retry when a publish that requests connectors or other access was refused by the server or a proxy (HTTP 403); it now says so and what to tell the user</p>
<p>• Fixed Cowork cloud sessions staying on an old account plugin after a plugin reload that timed out or a restart that reused a recent sync</p>
<p>• Fixed document blocks being dropped from your own message sent while Claude is working</p>
<p>• Fixed Claude in Chrome asking for permission while no browser is connected; it now says the extension is not connected</p>
<p>• Fixed the fullscreen "Update installed" notice being hidden behind the idle "/clear to save tokens" hint; it now shows beside the hint</p>
<p>• Fixed a mod hook, with or without a .catch, being run again without end when it waits on another mod's noun that does its work outside the call</p>
<p>• Fixed the Claude apps gateway serving models that a policy's availableModelsMatch: exact or deniedModels blocks; it now answers 400 and leaves them out of its model lists</p>
<p>• Fixed the server-managed settings request to Anthropic carrying a third-party gateway's API key when a managed settings file sets ANTHROPIC_BASE_URL</p>
<p>• Fixed streams through a custom ANTHROPIC_BASE_URL being aborted after 180 seconds with no data arriving; they now wait 300 seconds, whether or not feature flags are loaded</p>
<p>• Fixed a mod's tool.describe or prompt.section answer that changed after $.ui.invalidate never reaching Claude; the new answer is now sent on the next turn</p>
<p>• Fixed a settings file being ignored when enabledMcpjsonServers or disabledMcpjsonServers held a single server name (letters, digits, - or _) as a plain string</p>
<p>• Fixed claude plugin test pausing a hook's time budget while a served $ method it had called kept making $ calls after answering</p>
<p>• Fixed high memory use after resuming a cloud or Remote Control session that had run many subagents</p>
<p>• Fixed plugin hooks being skipped when they pass a very deeply nested tool input or message on with next()</p>
<p>• Fixed a value a mod's hook passes to next(), returns, or sends to a $ method being refused whole when one of its getters throws a RangeError; now only that key is refused</p>
<p>• Fixed /usage, the approaching-limit warning (terminal and VS Code) and the status line sometimes showing more than 100% used (anthropics/claude-code#92238)</p>
<p>• Fixed wrapped text mixing CJK or emoji with Latin words losing its last line or leaving a blank row at some terminal widths</p>
<p>• Fixed a cloud session sometimes ignoring the answer to a permission prompt or a question when the answer was given while the session's worker was being replaced</p>
<p>• Fixed bold, italic and other nested text styles running over table borders or being lost on wrapped rows</p>
<p>• Fixed Cowork cloud sessions running the old version of an account plugin changed, removed or disabled from another device until the session restarted</p>
<p>• Fixed deny and ask rules for an MCP server (mcp__&lt;server&gt;) not applying when the server's normalized name contains a double underscore</p>
<p>• Fixed long conversations losing newly attached images on every turn after one oversized image was refused by the API</p>
<p>• Fixed the plugin_loaded telemetry event reporting has_hooks as false for plugins whose hooks are a hooks module, built-in plugins included</p>
<p>• Fixed images attached while Claude is working (VS Code, desktop app, SDK) being sent at full size, which led to repeated image errors in long conversations</p>
<p>• Fixed the image coordinate hint being missing or slightly off for large near-square images on newer models</p>
<p>• Fixed feature flag, startup, fast mode, profile and feedback requests to Anthropic carrying the API key configured for a third-party gateway (ANTHROPIC_BASE_URL); Anthropic API keys are still sent</p>
<p>• Fixed a mod's hot reload ignoring a fix saved right after a failed reload; saving a mod file without changing it no longer reloads the mod</p>
<p>• Fixed mods loaded from source files being refused when a hook hands $ to a function declaration imported from another file of the mod</p>
<p>• Fixed a regression in 2.1.296 where cloud and headless sessions could run an approved tool call twice if a new message arrived as the session resumed after a restart</p>
<p>• Fixed scheduled tasks being announced for the wrong minute: the scheduling tools now report each job's actual next run time</p>
<p>• Fixed mods' hooks being handed values with __proto__ keys silently removed, which could skip a tool.check guard on a tool call another mod made</p>
<p>• Fixed claude -p saying nothing when a settings file fails validation: text-output runs now list the file and the invalid entry on stderr</p>
<p>• Fixed long pastes in terminals without bracketed paste losing all text after an invisible control character, such as a mis-decoded curly quote</p>
<p>• Fixed managed settings and organization policy not being fetched when the stored login's plan was changed locally on machines whose MDM or managed-settings file sets forceLoginOrgUUID</p>
<p>• Fixed MCP connections over HTTP hanging for 30 seconds and failing when a server never ends the body of its reply to a notification (anthropics/claude-code#99014)</p>
<p>• Fixed MCP servers added to a running headless or SDK session being connected before some policy checks ran; a blocked server is now reported as failed without being contacted</p>
<p>• Fixed claude mcp list, claude mcp get and subagent MCP servers starting a server that a policy check blocks; it is now reported as blocked without being started</p>
<p>• Fixed /reload-plugins not loading a plugin installed from another terminal a moment earlier</p>
<p>• Fixed blank rows appearing under CJK and emoji text squeezed into a one-cell column, as in a very narrow terminal</p>
<p>• Fixed text cut in the middle beside wide characters leaving a cell unused or being cut twice, and an emoji vanishing where a color changed inside it</p>
<p>• Fixed bare mode notices in background sessions telling you to restart without --bare, which keeps the mode; they now name /stop and claude --resume, as safe mode ones do</p>
<p>• Fixed ← not saying why it stayed put over a queued message while Remote Control is on</p>
<p>• Fixed $.http.fetch in mods refusing a 304, 204 or 205 response that declares a Content-Length over the 4 MiB body limit</p>
<p>• Fixed /config push notification toggles sending your account the previous setting instead of the one you just chose</p>
<p>• Fixed a cloud session leaving a reply unfinished when its worker was replaced just after the reply hit the output token limit</p>
<p>• Fixed Read failing on PDF page ranges in remote sessions on Linux that run without elevated privileges</p>
<p>• Fixed Enter answering a question or permission prompt that had been held back while you typed an unsent message</p>
<p>• Fixed a file attached to a message in a remote session being left out when its download stalled part way; the download is now tried again</p>
<p>• Fixed queued prompts sent as content blocks over --input-format stream-json running together without a line break when merged into one turn</p>
<p>• Fixed self-hosted runner sessions shutting down MCP servers added through an --exec-path wrapper's own --mcp-config when connectors change mid-session</p>
<p>• Fixed claude plugin eval passing runs that the API refused: a run that ends on an API error now scores 0 without grading and makes the suite exit 1</p>
<p>• Fixed permission prompts cutting off or wrapping too early when the reason text contains keycap or joined emoji</p>
<p>• Fixed forceLoginOrgUUID and forceLoginMethod from MDM or the managed-settings file being hidden or replaced by server-managed settings</p>
<p>• Fixed --bare sessions leaving out an MCP server named constructor or prototype that --channels asked for</p>
<p>• Fixed resuming a conversation from before /clear reattaching to the Remote Control session of the conversation after it</p>
<p>• Fixed a prompt starting with /, sent with the Agent SDK's verbatimPrompts option, running as a slash command when CLAUDE_CODE_RESUME_INTERRUPTED_TURN re-ran it after a restart</p>
<p>• Fixed background sessions started with --safe-mode silently leaving safe mode when the session was woken or restarted</p>
<p>• Fixed scheduled tasks and loops firing again after every turn, or firing early, during the repeated hour when daylight saving time ends</p>
<p>• Fixed the diff view listing a new file whose name begins or ends with a space under the wrong name</p>
<p>• Fixed MCP tool calls in headless and SDK sessions sometimes failing or running twice when a background reconnect closed the connection they were running on</p>
<p>• Fixed /btw side questions in non-interactive sessions not being cancelled when the session ends, and running a second time when the same request arrived again mid-run</p>
<p>• Fixed sandboxed commands on macOS being able to read or write a denied path by its real location when the denied path passes through a symlink</p>
<p>• Fixed sandbox denyRead and allowRead globs with braces, parentheses or backslashes in a folder's name being read differently by Claude Code's settings checks than by the sandbox</p>
<p>• Fixed sandbox glob allowRead and allowWrite entries not being re-checked when the directory they start from is replaced by a symlink</p>
<p>• Fixed worktree-isolated sessions accepting some awk programs the isolation guard should refuse</p>
<p>• Fixed claude mcp add &lt;name&gt; -- &lt;command&gt; --background being started as a background session</p>
<p>• Fixed a prompt or reply of --bg or --background to a background session being taken for the flag, which could start new sessions over and over instead of delivering it</p>
<p>• Fixed a custom slash command's embedded shell line running twice when a newer message interrupted the command while its prompt was being checked</p>
<p>• Fixed --worktree sessions leaving a folder behind in .git/worktrees in repositories using git's reftable ref storage</p>
<p>• Fixed claude self-hosted-runner sessions using Anthropic-managed git showing tracked files as staged deletions when starting in a reused clone whose remote is still empty</p>
<p>• Fixed Ultracode not being announced to scheduled tasks and other delivered headless turns when ultracode is on in settings</p>
<p>• Fixed MCP OAuth sign-in, token refresh and sign-out not sending configured headers/headersHelper values, which broke servers behind an authenticating proxy</p>
<p>• Fixed the Artifact tool reporting a spurious one-line difference against the live page, and refusing the publish, when a large page with a line break after &lt;head&gt; is published again unchanged</p>
<p>• Fixed $.ui.open reporting a mod's pane as placed in sessions where no surface draws it, such as Claude Code for VS Code and claude -p</p>
<p>• Fixed the agent.spawn mod hook not running when a finished subagent or a killed teammate is resumed: the hook's event now carries resume, and a mod can refuse it</p>
<p>• Fixed claude plugin validate rejecting a mod's $.state references when plugin.json has no types key and the contract is at ./types/index.d.ts</p>
<p>• Fixed a mod's dimColor text looking the same as plain text under the dark ANSI theme and on 16-color terminals</p>
<p>• Fixed plan mode running a write (an MCP tool's, a file's, a shell command's) that a PreToolUse hook or a mod's tool.check hook allowed</p>
<p>• Fixed background subagents in auto mode sometimes sending their final report twice, once as the result and once as a message</p>
<p>• Fixed SendMessage not finding a subagent by name after the CLI restarted and resumed the session (names given before the last compaction still need the agent ID)</p>
<p>• Fixed replies cut off at the output token limit ending the turn silently, with no retry or error, after a request fell back to non-streaming mode</p>
<p>• Fixed Read garbling UTF-16LE files with a byte-order mark, and Write dropping byte-order marks or silently converting Windows-1252, Shift-JIS, GBK or UTF-16BE files to UTF-8 (now refused)</p>
<p>• Fixed cloud sessions sometimes leaving a message unanswered when the worker was replaced right after a compaction</p>
<p>• Fixed cloud sessions and CLAUDE_CODE_RESUME_INTERRUPTED_TURN sometimes answering a finished turn again after a restart, when a tool ended the turn and a skill loaded in the same step</p>
<p>• Fixed photos sent over Remote Control being dropped when their copy could not be saved on your computer; Claude now still sees the photo</p>
<p>• Fixed files sent over Remote Control sometimes not arriving in long-running sessions</p>
<p>• Fixed files of 30 to 35 MiB sent over Remote Control or to a cloud session not arriving</p>
<p>• Fixed a user-installed mod's $.env.set changing the environment or shell prefix that command hooks from managed settings start with</p>
<p>• Windows: Fixed the process-liveness check leaving orphaned PowerShell processes behind on busy machines until memory ran out</p>
<p>• Windows: Fixed PreToolUse and PermissionRequest hooks that set no shell failing open when Git for Windows isn't installed; a guard that fails now blocks the call</p>
<p>• Windows: Fixed Bash commands failing with "command not found" for a whole session when Git Bash did not report its PATH at startup</p>
<p>• Self-hosted runner: Improved what setup and doctor say when the runner's machine has no git credentials</p>
<p>• Self-hosted runner: Fixed sessions that wrote output before their first turn being left with no release timer, ignoring --retire-at and delaying shutdown</p>
<p>• Improved the error shown when a cloud session is refused because your claude.ai login was rejected or has expired: it now tells you to sign in again with claude auth login</p>
<p>• Improved enforcement of managed permission rules, managed hooks and organization MCP tool names against user-installed mods</p>
<p>• Improved memory and disk use when PDFs are @-mentioned: their bytes are no longer kept in the session transcript</p>
<p>• Improved sandboxed Bash on Linux: Esc and Ctrl-C now work while wildcard read rules are being expanded for a command</p>
<p>• Improved the startup warning for an unrecognized model ID: it is now one short line under the welcome banner with a docs link, instead of a long raw message</p>
<p>• Improved the plugin-authoring skill's steps for sharing a mod: Claude asks public or private and checks the files before creating a GitHub repository</p>
<p>• Improved the Skill tool's "Unknown skill" error to suggest a skill's listed name when Claude wrongly adds the anthropic-skills: prefix to it</p>
<p>• Improved /reload-skills to say it re-sends the full skill list to Claude, which is how to get skills back after compaction</p>
<p>• Improved the error shown when a worktree cannot be created because its base commit does not resolve: it now says how the lookup ended and the likely reasons, such as a repository without a commit</p>
<p>• Improved the error for creating a worktree at a bare-repository layout's root: it now explains the layout instead of an unrelated git error</p>
<p>• Improved artifact watching: a local session can now watch up to 25 published artifacts at once, up from 10</p>
<p>• Improved background agent notifications: they now say when an agent is only waiting on its own background work, got a message too late for its result, or was stopped by a usage limit</p>
<p>• Changed plugin hooks and workflow scripts to refuse values they hand back that nest deeper than 28,000 levels, with an error naming the limit (workflow scripts allowed 100,000)</p>
<p>• Changed actions a plugin hook can block to be refused, not let through, when the hook cannot be handed them or cannot hand back its answer; a tool that already ran has its result withheld</p>
<p>• Changed requests to claude.ai's connector proxy and to Anthropic-hosted MCP servers to no longer follow HTTP redirects; redirects by a connector's own server are unaffected</p>
<p>• Changed MCP requests in cloud and self-hosted runner sessions to no longer follow HTTP redirects from the session's MCP proxy</p>
<p>• Changed skill and command loading: one whose file or folder name has hidden, direction-changing or blank-like characters, &lt; or &gt; is no longer offered until renamed; such a name: is ignored</p>
<p>• Changed ui.render trees in claude plugin test: each mod's Box or Text root now carries part: { plugin } naming the mod, so exact-tree assertions must include it</p>
<p>• Changed WebFetch page reads to pick their effort as web searches do: the caller's level on the caller's own model, otherwise the level settings give the small model</p>
<p>• Changed claude plugin test to fail a call to a mod's served $ method that has not answered within ten seconds, as a session does</p>
<p>• Changed MCP allow rules to reach only the server they name: mcp__a no longer allows a server named a__b or a_; write mcp__&lt;server&gt;__* with the server's whole normalized name</p>
<p>• Changed agent tools: lists to take only the named MCP server's tools; list a server whose name contains __ as mcp__&lt;whole name&gt;__*</p>
<p>• Changed Claude in Chrome in Cowork cloud sessions outside auto mode: an approved-site action the safety classifier flags now asks you instead of being refused, unless managed settings apply</p>
<p>• Changed cloud session and Remote Control MCP connectors to negotiate MCP protocol version 2026-07-28 by default on installs that fetch no flags; MCP_PROTOCOL_NEGOTIATION=legacy opts out</p>
<p>• Changed MCP tool descriptions and server instructions from Anthropic's first-party MCP servers at api.anthropic.com to reach Claude in full instead of being cut at 4,096 characters</p>
<p>• Changed auto mode in Cowork cloud sessions: a PermissionRequest hook can no longer approve shell commands or subagents; those prompts wait or are denied</p>
<p>• Changed the resume command printed at exit: it names the session by its ID and no longer by its name, so that nothing in a session name can run when the line is pasted</p>
<p>• Changed the resume command printed at exit of a worktree session: it uses -w and -r if the long flags do not fit the terminal. If neither fits a kept worktree, rows above it say where to run it</p>
<p>• Changed /btw side questions in non-interactive sessions to return a timeout error when still unanswered after 11 minutes</p>
<p>• Changed UserPromptSubmit hooks to run before a skill or custom slash command expands, so a hook that blocks the prompt now also stops its embedded shell commands</p>
<p>• Changed a skill's own front-matter UserPromptSubmit hook to first run on the prompt after the one that invokes the skill</p>
<p>• Changed the turn.start mod hook to also hear subagents' and teammates' turns, not only the main loop's; tell them apart by e.agentId (absent on the main loop)</p>
<p>• Changed the errors shown when /ultrareview can't upload a repository to stop suggesting git add ., which could stage or commit untracked files such as .env</p>
<p>• Changed the cyber safeguard notice to no longer ask people to apply to the Cyber Verification Program</p>
<p>• [VSCode] Fixed an unsent prompt and its attachments being lost when switching to another session and back</p>
<p>• [VSCode] Fixed unused blank chats keeping a background Claude process running after starting a new conversation</p>
<p>• [VSCode] Fixed the mic button showing an internal error message when you are signed out of claude.ai; it now offers to sign you in</p>
<p>• [VSCode] Improved startup time in workspaces without a Python environment by starting Claude while the Python extension loads</p>
<p>• [VSCode] Improved startup: the model picker and slash command menu now fill in right away in a new window on a folder you've opened before</p>
<p>• [Cloud sessions] Fixed a memory spike that could crash a session when many of its existing output files were re-sent to it at once</p>
<p>• [Cloud sessions] Fixed saving an edited routine silently moving it to a different environment when its own had been deleted or wasn't in the list; the routine now keeps its environment</p>
<p>• [Cloud sessions] Fixed Sessions search in a self-hosted environment's admin details finding nothing when you paste the session ID from a session's link</p>
<p>• [Cloud sessions] Fixed the Sessions and Runners lists in a self-hosted environment's admin details saying the list is empty when a search just has no matches</p>
<p>• [Cloud sessions] Improved the deploy command shown when you create a self-hosted environment or environment key: it shows in full, wraps between arguments, and has a visible copy button</p>
<p>• [Cloud sessions] Changed deleting a self-hosted environment to turn off its routines right away, with the reason shown on each routine, instead of leaving their runs to fail</p>
<p>• [Remote Control] Fixed Remote Control sessions whose computer can't be reached still appearing to send your messages; your text now stays in the box and Send is off until it reconnects</p>
<p>• [Claude Tag] Added the ability for Claude in Slack to delete a canvas it created in a channel when someone asks it to</p>
<p>• [Claude Tag] Fixed Claude in Slack staying silent on untagged posts that a channel's own instructions tell it to answer, such as posts that tag someone else, in channels with guests</p>
<p>• [Claude Tag] Fixed Claude in Slack reporting a reply to another channel's thread as posted when it isn't a member there; it now says the reply wasn't delivered and how to fix that</p>
<p>• [Claude Tag] Fixed Claude in Slack sometimes ending a turn without posting its answer when a self-hosted runner's image has no python3</p>
<p>• [Claude Tag] Changed how Claude in Slack corrects a message it got wrong: it edits the message in place and adds a short "Edited" note instead of striking through the old text</p>
<p>• [Claude Tag] Changed Claude in Slack to join channels with more than 100 members quietly, with no intro message</p>
<p>• [Code Review] Fixed Code Review's monthly spend-limit comment and check-run card sending admins to Claude Code settings; they now link the Usage page, where that limit is set</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.296</id>
<title>Claude Code v2.1.296</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.296"/>
<updated>2026-10-09T19:28:36Z</updated>
<content type="html"><p>• Added a code key to the Claude apps gateway's managed.policies[]: the same settings as cli, also applied in Claude Desktop's Code tab; beside desktop, it turns on Claude Desktop's gateway mode</p>
<p>• Added autoCompactWindow to subagent frontmatter and --agents definitions, so a subagent can auto-compact earlier than the main conversation's window</p>
<p>• Added CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL to run every workflow agent on one model while other subagents keep theirs</p>
<p>• Added CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS environment variable to set a longer maximum delay for the backoff when retrying an overloaded (529) request</p>
<p>• Added a note in /plugin on a plugin whose hooks are left out because another enabled plugin has the same name</p>
<p>• Added an allow_large option to the Read tool so Claude can read a text file past the usual size limits in one call when it needs the whole file and the context has room</p>
<p>• Fixed managed-settings PreToolUse hooks that deny a tool call with "continue": false, and managed prompt hooks that block one, refusing the call but not ending the turn</p>
<p>• Fixed PostToolUse hooks in managed settings not applying updatedMCPToolOutput in some sessions</p>
<p>• Fixed headless sessions starting a folder's .mcp.json or plugin MCP server that was switched off for that folder, after changing directory or reloading plugins</p>
<p>• Fixed a Claude apps gateway that serves allowedProviders with "gateway" locking out laptops that name that gateway in user settings</p>
<p>• Fixed a saved Claude apps gateway sign-in being ignored on machines whose managed settings set forceLoginMethod to gateway with no forceLoginGatewayUrl (regression in 2.1.295)</p>
<p>• Fixed --teleport opening an empty conversation when the session's history could not be read</p>
<p>• Fixed token counts for Haiku 5.5 and other models that take only adaptive thinking, which failed behind some gateways and were counted with budget thinking elsewhere</p>
<p>• Fixed resumed subagents being told that the user rejected a tool call that a session shutdown had interrupted</p>
<p>• Fixed hook output being altered when it contained text resembling a plugin hint tag</p>
<p>• Fixed secret redaction in shared transcripts and debug logs missing some values that follow a key with no value, including in JSON written inside a shell string</p>
<p>• Fixed a stray 52;c;… escape sequence printed on screen after copying in older VTE-based terminals such as MATE Terminal</p>
<p>• Fixed toasts and notifications waiting unseen for as long as the /diff panel or dialog was open</p>
<p>• Fixed Esc or an interrupt during a UserPromptSubmit hook or a mod's prompt.submit hook ending headless sessions, clearing the typed prompt, or letting the unchecked prompt through</p>
<p>• Fixed SessionStart hooks of a plugin loaded after a headless session starts being skipped when a different plugin with the same name, or another spelling of it, had already run</p>
<p>• Fixed claude self-hosted-runner printing misleading errors when registration is refused: it now names the org admin setting, or says a restarted on-demand runner needs a fresh work order</p>
<p>• Fixed a self-hosted runner session's git fetch, pull and push failing while another session of the same repository starts on a runner with --capacity above 1</p>
<p>• Fixed workflow scripts silently truncating results, agent options and other values nested deeper than about 20,000 levels, and deeply nested results writing huge task output files</p>
<p>• Fixed a plugin's served $ methods running in the main session's working directory instead of the calling agent's, and ignoring the turn their calling hook holds</p>
<p>• Fixed $.agent.register succeeding from a mod's hook that was still running after the mod was reloaded or removed; the call is now refused</p>
<p>• Fixed $.http.fetch in mods refusing a HEAD request when the response declares a Content-Length over the 4 MiB body limit</p>
<p>• Fixed claude plugin marketplace add, marketplace update and plugin install failing with an internal error for a marketplace named like constructor; add now refuses such names clearly</p>
<p>• Fixed a plugin secret named constructor or prototype being deleted by the next save of that plugin's options</p>
<p>• Fixed cloud sessions skipping auto mode's checks on Claude in Chrome actions that a saved permission allows when their feature flags had not loaded</p>
<p>• Fixed CLAUDE_CODE_RESUME_INTERRUPTED_TURN re-running a finished turn after a restart when an MCP tool result had ended that turn</p>
<p>• Fixed Bash permission checks auto-approving some commands that assign the BASH_ARGV0 shell variable and then use it; these now prompt for approval</p>
<p>• Fixed Edit and NotebookEdit replacing every non-ASCII character in files that are not valid UTF-8 (Windows-1252, Shift-JIS, GBK); such edits are now refused</p>
<p>• Fixed a prompt sent just after ← being run twice, once unseen in the foreground, when the background service was slow to answer</p>
<p>• Fixed a prompt sent while SessionStart hooks were still running vanishing when ← moved the session to the background; it is still not sent, but ↑ now brings it back</p>
<p>• Fixed a late-loading plugin's SessionStart hook output reaching the new conversation after /clear in headless sessions</p>
<p>• Fixed PowerShell commands not seeing variables that hooks write to CLAUDE_ENV_FILE (when the file holds only plain assignments)</p>
<p>• Fixed Claude calling cloud sessions non-interactive and suggesting /mcp or claude mcp when an MCP server needs authentication</p>
<p>• Fixed /code-review ending on a raw JSON array in cloud sessions, the Agent SDK and IDE integrations; the findings now print as a numbered list</p>
<p>• Fixed auto mode occasionally refusing one update to your own artifact, saying its sharing had changed when it had not</p>
<p>• Fixed skills synced from claude.ai never finishing their install, and being downloaded again at every sync, when several sessions share a config directory</p>
<p>• Fixed a plugin synced from claude.ai being disabled when the marketplace dependency it declares was also synced from claude.ai</p>
<p>• Fixed a startup hang on macOS when plugin paths copied from a Linux machine pointed under /home</p>
<p>• Fixed the Workflow tool refusing script files with CRLF line endings, such as files checked out on Windows</p>
<p>• Fixed OpenTelemetry tool_result events missing git_commit_id after git commit -q or git -C &lt;dir&gt; commit</p>
<p>• Fixed CLAUDE_CODE_TRANSCRIPT_LOCAL_GC dropping a message from the saved transcript when its text held a Unicode line or paragraph separator (U+2028, U+2029)</p>
<p>• Fixed claude purge leaving a prompt in the history file when its text held a Unicode line or paragraph separator (U+2028, U+2029)</p>
<p>• Windows: Fixed PowerShell commands longer than about 1 KB always asking for permission, so allow rules and read-only detection now apply up to 32 KB</p>
<p>• Windows: Fixed stdio MCP servers being force-killed at shutdown; stdin now closes first and the process tree is killed only if the server is still running after 300 ms</p>
<p>• Windows: Fixed claude plugin install failing for GitHub owner/repo plugin sources on machines with no GitHub SSH key; the clone is now retried over HTTPS</p>
<p>• Windows: Fixed rm -rf /c/Users/&lt;name&gt; in Git Bash not asking in bypass permissions mode</p>
<p>• Improved fullscreen mode: the link under the mouse pointer is now underlined to show it can be opened</p>
<p>• Improved transcript toggle (ctrl+o) responsiveness in code-heavy conversations by caching syntax-highlighted code blocks</p>
<p>• Improved Claude Desktop's Code tab behind a Claude apps gateway: when a session can't start, including on a machine not set up for the gateway's code settings, the reason shows as a reply</p>
<p>• Improved the errors for a refused cloud session: they now say why your organization's policy couldn't be loaded, and name an API key or auth token that overrides your claude.ai login</p>
<p>• Improved --debug output to name unrecognized frontmatter fields in custom agent files, with a hint for likely typos</p>
<p>• Improved auto mode: a tool call that wasn't run because auto mode's check had no usable answer now shows as a dim "Not run" row instead of a red error</p>
<p>• Improved --debug output for hooks: command hooks on tool calls, prompts, SessionStart and Stop now log their command, plugin, outcome and duration when they finish, so a slow hook is identifiable</p>
<p>• Improved CLAUDE_CODE_TRANSCRIPT_LOCAL_GC: a large transcript file is no longer rewritten when that would free under 10% of it</p>
<p>• Updated /cost, the status line, --max-budget-usd and the SDK's cost figures to price Sonnet 5.5 cache reads at $0.10 per million tokens (was $0.20)</p>
<p>• Updated the bundled dataviz skill: lighter violet for the seventh series in light mode, softer primary text in dark mode, and compact y-axis labels like 1K</p>
<p>• Changed the default limit on MCP tool descriptions sent up front and on MCP server instructions from 2,048 to 4,096 characters</p>
<p>• Changed ←: a turn or ! command started while the session moves to the background is now stopped instead of finishing out of sight</p>
<p>• [VSCode] Fixed claudeCode.spinnerVerbs missing from the extension's settings, so settings.json now completes and validates it; a malformed value no longer breaks the chat panel</p>
<p>• [VSCode] Changed Claude in Chrome to ask before browser actions in every session, including one connected with @browser, as the terminal does; allowing a site for the session stops repeat asks</p>
<p>• [VSCode] Fixed chat links written as a full Windows path, such as C:\repo\file.ts or file:///C:/repo/file.ts, not opening the file on Windows</p>
<p>• [VSCode] Fixed the working indicator still animating when reduced motion is turned on in your OS, in VS Code, or with the prefersReducedMotion setting</p>
<p>• [VSCode] Fixed the prompt cache clock reading warm after the panel caught up on messages late, such as after the display was off or a remote window reconnected</p>
<p>• [Cloud sessions] Added a status filter to the Sessions and Runners lists on a self-hosted environment's Activity tab in admin settings; you can pick several statuses at once</p>
<p>• [Cloud sessions] Fixed every cloud session waiting for a self-hosted runner showing the same queue position; each now shows how many sessions are ahead of it</p>
<p>• [Cloud sessions] Fixed a message you send while Claude is still replying in a cloud session jumping above that reply when it finishes; it now stays below it, including after a reload</p>
<p>• [Claude Tag] Changed Claude in Slack to show the footer with the session link, model and cost only on its newest reply in a thread; the reply before it drops the footer</p>
<p>• [Claude Tag] Fixed links to URLs that contain parentheses breaking in some of Claude's Slack replies and task checklists, which showed stray bracket text and opened the wrong page</p>
<p>• [Claude Tag] Fixed Claude's Slack replies drawing color swatches beside codes that only look like hex colors, such as six-digit pull request numbers</p>
<p>• [Claude Tag] Added creating, editing and deleting workspace and channel memory files on the Activity page's Memory tab for members with the Claude Tag Admin permission</p>
<p>• [Claude Tag] Fixed the plugin confirmation card Claude posts in a Slack channel showing a plugin's ID instead of its name</p>
<p>• [Claude Tag] Fixed Claude in Slack posting a card to remove a plugin the channel's own settings don't include; it now explains where the plugin comes from instead</p>
<p>• [Claude Tag] Fixed Claude in Slack sometimes losing its reply when a session in a self-hosted environment moved to a new runner partway through a task</p>
<p>• [Code Review] Fixed the Code Review check sometimes staying "in progress" on a pull request after the review finished; it now shows the review's result</p>
<p>• [Code Review] Improved Code Review admin settings to say why a setting couldn't be saved, such as a policy restriction, instead of a generic failure message</p></content>
</entry>
<entry>
<id>https://github.com/anthropics/claude-code/releases/tag/v2.1.295</id>
<title>Claude Code v2.1.295</title>
<link rel="alternate" type="text/html" href="https://github.com/anthropics/claude-code/releases/tag/v2.1.295"/>
<updated>2026-10-08T19:48:16Z</updated>
<content type="html"><p>• Added onFailure: "block" for command and HTTP hooks: a hook that can't start, times out, or exits with an unexpected code blocks the action instead of letting it through</p>
<p>• Added Program Status Protocol (OSC 7501) support: terminals that implement it can show whether Claude Code is working, waiting on you, or done</p>
<p>• Added quoted text to the /copy picker, so a drafted message copies without its &gt; markers</p>
<p>• Added a warning to claude plugin install, enable, disable and marketplace add when the settings file they write to does not load</p>
<p>• Added a line on stderr, when it is a terminal, that says what a claude -p run is waiting for when it stays open after its last turn</p>
<p>• Added support for timeouts.upstream_ttfb_ms on the Claude apps gateway's Bedrock, Vertex, Foundry and other cloud upstreams: a value you set now limits how long a stream may take to start there, after which it fails over or gets a 502</p>
<p>• Added a "Backgrounding cancelled" message when you stop the turn while ← is waiting for the current tool to finish</p>
<p>• Added an optional models list to every Claude apps gateway upstream: only the listed models are sent there, on failover too, and one * in an entry is a wildcard</p>
<p>• Added support for forceLoginMethod: "gateway" and forceLoginGatewayUrl in your own user settings on machines with no managed settings, so /login opens on that Claude apps gateway</p>
<p>• Added advice to claude plugin validate when a plugin's README has no install line: it prints the line to paste and never changes the exit code, even with --strict</p>
<p>• Added upstream_request_id to the Claude apps gateway's inference audit event: the request ID from Amazon Bedrock, the Anthropic API or another upstream, for support cases</p>
<p>• Added $.ui.notify for mods: raises a native notification through your own notification setting and says which channel sent it</p>
<p>• Added children to a mod's Button: strings and Text, so a row of a list is one pressable with a chip or a dim detail inside</p>
<p>• Added CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS to limit how long unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) waits out 429 and 529 errors</p>
<p>• Added a request-id header to the Claude apps gateway's successful inference responses, so request_id in Claude Code telemetry matches the gateway's audit log</p>
<p>• Fixed every request failing on a [1m] model when a gateway, Bedrock, Vertex or Foundry refuses the context-1m beta; Claude Code now resends without it</p>
<p>• Fixed claude -p text output dropping earlier responses when background work started another turn; each turn's response now prints when the turn ends</p>
<p>• Fixed remote MCP servers in headless and SDK sessions staying disconnected after an outage longer than 15 seconds, or reconnecting in a tight loop to a server that drops each connection right after it connects; repeated drops now back off, up to 30s</p>
<p>• Fixed remote MCP connections being dropped when a server's error reply happened to contain a network error name</p>
<p>• Fixed MCP servers that repeat a pagination cursor being asked for the same page up to 20 times at every connect</p>
<p>• Fixed CSS, JavaScript and XML files returned by MCP tools being saved as .bin, which the Read tool refuses; font and icon files now get their own extension too</p>
<p>• Fixed Bash tool calls failing when the model passes command_description instead of description</p>
<p>• Fixed Claude in Chrome not applying a site deny rule written with port 80 (host:80) to plain http:// pages on that host</p>
<p>• Fixed /plugin's Errors tab removing a marketplace that failed to load, and uninstalling its plugins, on Enter without asking first</p>
<p>• Fixed claude plugin marketplace add reporting success for a marketplace whose name no plugin can be installed under; such an add is now refused</p>
<p>• Fixed CLAUDE_AUTO_BACKGROUND_TASKS moving a subagent to the background while an edit or shell command waited behind it, which started that call before the subagent finished</p>
<p>• Fixed PushNotification saying a push was not sent in claude remote-control sessions right after a phone message, without the /config toggle, or when started from inside Claude Code</p>
<p>• Fixed files sent from remote sessions being refused as "could not be vouched for" when more than 256 were sent at once</p>
<p>• Fixed a rare failure to load managed settings at startup right after a login refresh</p>
<p>• Fixed /tui exiting without a message, or with a raw system error, when Claude Code could not be started again</p>
<p>• Fixed a link address shown as text being hidden by a colour or conceal style a reply left on, including where it wraps in a table or a question preview</p>
<p>• Fixed Fable models listed in availableModels not appearing in the /model picker for sessions signed in to a Claude apps gateway; such a model now shows its built-in row in place of a modelPicker row added for the same model</p>
<p>• Fixed the Claude apps gateway's admin spend view showing a developer's old groups and group cap after their session stopped carrying groups</p>
<p>• Fixed CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC hiding the Claude apps gateway spend limit in /usage and the status line. The spend limit request goes to the gateway the session is signed in to</p>
<p>• Fixed subagents in their own linked worktree being shown the parent session's git branch, status and recent commits</p>
<p>• Fixed Claude stopping at the end of the current tool when text typed in the prompt cancelled backgrounding with ←; Claude now keeps working in the foreground</p>
<p>• Fixed --tools and --restricted not applying to built-in tools that register after launch, and deprecated tool names reaching tools outside the caller's tool set</p>
<p>• Fixed an interrupt not ending the turn until a timeout while Claude waited for an MCP server's resource list</p>
<p>• Fixed a mod's hook being handed a deeply nested tool input cut short with no error, so a guard could pass content it never saw</p>
<p>• Fixed Esc not stopping a self-paced /loop that was moved to the background with ←; cancelling a pending wakeup now shows a notice</p>
<p>• Fixed commands and hooks in background sessions inheriting FORCE_COLOR=3, which put color escape codes into the output Claude reads</p>
<p>• Fixed claude agents starting a new background service as it exited when both were stopped with a session open (for example at a reboot), which could delay shutdown and restart an interrupted session</p>
<p>• Fixed a custom agent named worker being shown as "Agent" in auto-mode denial notices and in the activity lists of task detail views</p>
<p>• Fixed Bash permission checks for for-loops over glob patterns, improving permission-check accuracy</p>
<p>• Fixed forked skills invoked from Workflow subagents delivering their results to the main conversation instead of the invoking agent</p>
<p>• Fixed in-process agent teammates failing their first SendMessage call until they loaded the tool through tool search</p>
<p>• Fixed Claude being told on resume that an unfinished background workflow may have been stopped by TaskStop, which can never be the cause</p>
<p>• Fixed Claude not being told when you stop a long-running MCP tool call from the tasks panel or a connected client</p>
<p>• Fixed a background session's /loop stopping without notice when its next wakeup came due while the session's process was down; the session now says so and Claude is told</p>
<p>• Fixed raw terminal hyperlink bytes in a reply or a teammate's message being drawn as a clickable link with a hidden address</p>
<p>• Fixed plugin marketplaces whose repository has large git submodules failing to add or refresh: only the submodules that hold plugin files are now fetched</p>
<p>• Fixed the /advisor dialog showing a checkmark on a saved advisor model that is no longer available; it now opens on "No advisor"</p>
<p>• Fixed the notification for an MCP tool call that moved to the background showing a shortened task id</p>
<p>• Fixed vim mode's ~ moving the cursor past the last character of a line, so x after it did nothing, and 3~ running on into the next line</p>
<p>• Fixed the cursor landing one character too far after pasting accented text copied from macOS (such as a file name) into the middle of the prompt</p>
<p>• Fixed the terminal freezing, with ctrl+c ignored, when a response ran to tens of thousands of lines</p>
<p>• Fixed calls a mod makes while it reloads during a plugin hooks worker restart getting past another mod's guard hook that has a .catch; such calls are now refused</p>
<p>• Fixed plugins whose hooks module nests code thousands of levels deep failing to load or validate with a bare stack-overflow message</p>
<p>• Fixed claude plugin test passing a session.append hook that removes tool call, tool result or thinking blocks that a real session keeps</p>
<p>• Fixed Claude not being told it can resume background subagents with SendMessage after a session was killed and resumed a second time</p>
<p>• Fixed a file being treated as already read after a Bash command such as cat ran without printing it</p>
<p>• Fixed plugin options named constructor or prototype always reading as their default and never reloading the plugin when edited</p>
<p>• Fixed a mod's hot reload missing a save made while /reload-plugins or session start was reading the mod's files</p>
<p>• Fixed the mod hot-reloading question being asked again every turn for the whole session when it is approved without picking an answer</p>
<p>• Fixed /model, /fast and /output-style saving their setting without asking a plugin's config.set hook</p>
<p>• Fixed bold text being drawn faint in piped output when it directly follows dim text</p>
<p>• Fixed replies whose quotes nest deeper every few lines freezing the terminal for seconds and using gigabytes of memory</p>
<p>• Fixed a mod's hot reload missing a save made within a few milliseconds of its last reload, which left the mod on its old version until the next save</p>
<p>• Fixed claude mcp serve background Bash results not naming the output file, and its tool description promising a notification that never arrives</p>
<p>• Fixed an async SessionStart hook's unchanged context being added to the conversation again on every resume</p>
<p>• Fixed variables a SessionStart hook writes to CLAUDE_ENV_FILE not reaching the Bash tool after an in-app /resume or /branch</p>
<p>• Fixed a skill's allowed-tools and effort being dropped when the Skill tool finished before the response stream ended, which denied the skill's Bash commands in -p runs</p>
<p>• Fixed a tampered cache of server-managed settings making a person's own plugin count as organization-managed on machines whose managed settings list or enable plugins</p>