Sourced from @anthropic-ai/claude-agent-sdk's releases.
v0.3.296
What's changed
- Added
claude_code_versionto theinitializecontrol response so clients know the CLI version before the first turn- Added
autoCompactWindowtoAgentDefinition, so a subagent can auto-compact earlier than the main conversation's window- Fixed the
sandboxoption discarding an inlinesettings.sandboxblock: the two now merge, the option's values win, and deny and credential lists from both sides are combined- Changed the default limit on MCP tool descriptions sent up front and on MCP server instructions, in-process SDK servers included, from 2,048 to 4,096 characters
- Changed permission answers that arrive after a restart to be parsed like live ones: over 4,096
updatedPermissionsentries count as a denial, and a malformed list is ignored as a whole- Updated to parity with Claude Code v2.1.296
Update
npm install @anthropic-ai/claude-agent-sdk@0.3.296 # or yarn add @anthropic-ai/claude-agent-sdk@0.3.296 # or pnpm add @anthropic-ai/claude-agent-sdk@0.3.296 # or bun add @anthropic-ai/claude-agent-sdk@0.3.296v0.3.295
What's changed
- Added
overageEnabledtoSDKRateLimitInfo: on usage-limit warnings, whether the account has extra usage turned on- Fixed an MCP server added with
mcp_set_serverssometimes keeping an outdated tool list when another server in the same request connected later- Fixed assistant text blocks losing their
citationsin streamed responses- Fixed Claude being told "disabled by the user" about an in-process MCP server that was switched off with
toggleMcpServer()- Fixed
rate_limit_eventwith statusallowed_warningomittingoverageStatus,overageResetsAtandoverageDisabledReason, whichallowedandrejectedevents already carry- Changed MCP tool descriptions the model loads through tool search, including those from in-process SDK servers, to be cut at 16,384 characters instead of 2,048
- Changed a permission answer whose
updatedPermissionsholds over 4,096 updates, rules and directories to count as a denial- Changed
tool_result_meta[].non_execution_kindto be absent when a mod withheld the result of a tool that ran without error; it waspermission-rule- Changed
pasted_contenton user messages to be ignored when it holds over 1,000 entries and blocks in all- Changed how the SDK passes option values to Claude Code: the values of its named options are now sent in the same argument as their flag (
--flag=value)- Changed
tool_use_resultfor MCP Apps tools:structuredContentor_metaover 8,388,608 JSON characters is left off, and_meta.uiwith noui://resource no longer lifts the ordinary caps- Changed
tool_use_resultfor MCP tools: when a long result is saved to a file, or cut because it could not be, the text kept past 500,000 characters is dropped, with a note of how much- Changed
tool_use_resultfor MCP tools: a result_metaover 1,048,576 JSON characters is left off, except for SDK-server tools; so is text blocks'_metathat totals over 65,536- Updated to parity with Claude Code v2.1.295
Update
npm install @anthropic-ai/claude-agent-sdk@0.3.295 # or yarn add @anthropic-ai/claude-agent-sdk@0.3.295 # or pnpm add @anthropic-ai/claude-agent-sdk@0.3.295 # or bun add @anthropic-ai/claude-agent-sdk@0.3.295 </tr></table>
... (truncated)
Sourced from @anthropic-ai/claude-agent-sdk's changelog.
0.3.296
- Added
claude_code_versionto theinitializecontrol response so clients know the CLI version before the first turn- Added
autoCompactWindowtoAgentDefinition, so a subagent can auto-compact earlier than the main conversation's window- Fixed the
sandboxoption discarding an inlinesettings.sandboxblock: the two now merge, the option's values win, and deny and credential lists from both sides are combined- Changed the default limit on MCP tool descriptions sent up front and on MCP server instructions, in-process SDK servers included, from 2,048 to 4,096 characters
- Changed permission answers that arrive after a restart to be parsed like live ones: over 4,096
updatedPermissionsentries count as a denial, and a malformed list is ignored as a whole- Updated to parity with Claude Code v2.1.296
0.3.295
- Added
overageEnabledtoSDKRateLimitInfo: on usage-limit warnings, whether the account has extra usage turned on- Fixed an MCP server added with
mcp_set_serverssometimes keeping an outdated tool list when another server in the same request connected later- Fixed assistant text blocks losing their
citationsin streamed responses- Fixed Claude being told "disabled by the user" about an in-process MCP server that was switched off with
toggleMcpServer()- Fixed
rate_limit_eventwith statusallowed_warningomittingoverageStatus,overageResetsAtandoverageDisabledReason, whichallowedandrejectedevents already carry- Changed MCP tool descriptions the model loads through tool search, including those from in-process SDK servers, to be cut at 16,384 characters instead of 2,048
- Changed a permission answer whose
updatedPermissionsholds over 4,096 updates, rules and directories to count as a denial- Changed
tool_result_meta[].non_execution_kindto be absent when a mod withheld the result of a tool that ran without error; it waspermission-rule- Changed
pasted_contenton user messages to be ignored when it holds over 1,000 entries and blocks in all- Changed how the SDK passes option values to Claude Code: the values of its named options are now sent in the same argument as their flag (
--flag=value)- Changed
tool_use_resultfor MCP Apps tools:structuredContentor_metaover 8,388,608 JSON characters is left off, and_meta.uiwith noui://resource no longer lifts the ordinary caps- Changed
tool_use_resultfor MCP tools: when a long result is saved to a file, or cut because it could not be, the text kept past 500,000 characters is dropped, with a note of how much- Changed
tool_use_resultfor MCP tools: a result_metaover 1,048,576 JSON characters is left off, except for SDK-server tools; so is text blocks'_metathat totals over 65,536- Updated to parity with Claude Code v2.1.295
0.3.294
- Updated to parity with Claude Code v2.1.294
85d8f8e
chore: Update CHANGELOG.mdda321bb
chore: Update CHANGELOG.md799dc78
chore: Update CHANGELOG.mdSourced from @anthropic-ai/sdk's releases.
sdk-v0.133.0
Features
- api: add types for the Chat and Cowork unified analytics metrics
- api: add workflows, multiagent configuration and thread status filtering to Managed Agents
Chores
- internal: remove the next branch rule from CLAUDE.md
Sourced from @anthropic-ai/sdk's changelog.
0.133.0 (2026-10-09)
Features
- api: add types for the Chat and Cowork unified analytics metrics
- api: add workflows, multiagent configuration and thread status filtering to Managed Agents
Chores
- internal: remove the next branch rule from CLAUDE.md
2979ed5
release: . 0.133.08486d9b
Merge pull request #908
from anthropics/synced/publishede0995e4
feat(api): add workflows, multiagent configuration and thread status
filterin...31eb3be
codegen metadata5127b32
codegen metadataf702a46
codegen metadatad64e976
codegen metadata9f75465
codegen metadata6ec2ea1
chore(internal): remove the next branch rule from CLAUDE.md373c33d
codegen metadataSourced from prettier's releases.
3.9.10
Sourced from prettier's changelog.
3.9.10
Markdown: Update
micromark-extension-gfm-tableto fix the table parse issue on performance (#20266 by@fisker)See https://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267 for details.
1172b82
Release 3.9.10d014227
Update micromark-extension-gfm-table to fix the table parse
issue on perfor...953b908
Bump Prettier dependency to 3.9.9ad8a6bf
Clean changelog_unreleasedSourced from express's releases.
v5.3.0
Highlights
🐞 Bug fixes
Fixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by
@YuryShkodain #4893Fixed the behavior of
res.send()to prevent conflicts betweenContent-LengthandTransfer-EncodingHTTP headers in responses. TheContent-Lengthheader inres.send()is now only added when aTransfer-Encodingheader is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of aTransfer-Encodingheader - by@cuishuangin #7459
Upgrade
qsto^6.16.0, which fixes CVE-2026-2391 (GHSA-w7fw-mjwx-w883), CVE-2026-82417 (GHSA-4mjr-xmp4-gh2g) and CVE-2026-82562 (GHSA-x5fp-wj9c-mxmx):arrayLimitbypasses in comma parsing and a denial of service via an attacker-controlledisBuffer- by@davetashnerin #7057 and #7478, and@cyphercodesin #7305Upgrade
proxy-addrto^2.0.8, which fixes CVE-2026-90711 - by@lazergin #7474🚀 Improvements
Allow conditional revalidation for QUERY requests.
req.freshpreviously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by@Cherryin #7366// QUERY /reports with If-None-Match: "12345" app.query('/reports', (req, res) => { res.set('ETag', '"12345"'); res.send(results); // now responds 304 Not Modified });Improve HTML structure in
res.redirect()responses when HTML format is accepted by adding<!DOCTYPE html>,<title>, and<body>tags for better browser compatibility - by@Bernice55231in #5167When calling
app.renderwith options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by AkaHarshit in #6903app.render('index', null, callback); // now works as expectedUpgrade
content-typeto^2.0.0, bringing a faster parser (~1.5x quickerContent-Typeparsing/formatting inres.send()) along with a behavior change:res.send()now keeps any existing parameters when adding the charset and no longer throws on aContent-Typethat fails to parse.type-isis upgraded to^2.1.0as part of the same change - by@blakeembreyin #7234res.set('Content-Type', 'text/plain; foo=bar').send('hey'); // -> Content-Type: text/plain; foo=bar; charset=utf-8The default error handler now logs the full error object instead of only its stack trace, so nested details such as
Error.causeand library-specific properties (e.g. Sequelize'sparent/original) are no longer swallowed - by@Nitin-Mohapatrain #6464Upgrade
content-dispositionto^2.0.1, which changes theContent-Dispositionheader emitted byres.download(),res.attachment(), andres.sendFile(): file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by@blakeembreyin #7233res.attachment('user.html'); // before -> Content-Disposition: attachment; filename="user.html" // after -> Content-Disposition: attachment; filename=user.html
... (truncated)
Sourced from express's changelog.
5.3.0
🐞 Bug fixes
Fixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by
@YuryShkodain #4893Fixed the behavior of
res.send()to prevent conflicts betweenContent-LengthandTransfer-EncodingHTTP headers in responses. TheContent-Lengthheader inres.send()is now only added when aTransfer-Encodingheader is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of aTransfer-Encodingheader - by@cuishuangin #7459
Upgrade
qsto^6.16.0, which fixes CVE-2026-2391 (GHSA-w7fw-mjwx-w883), CVE-2026-82417 (GHSA-4mjr-xmp4-gh2g) and CVE-2026-82562 (GHSA-x5fp-wj9c-mxmx):arrayLimitbypasses in comma parsing and a denial of service via an attacker-controlledisBuffer- by@davetashnerin #7057 and #7478, and@cyphercodesin #7305Upgrade
proxy-addrto^2.0.8, which fixes CVE-2026-90711 - by@lazergin #7474🚀 Improvements
Allow conditional revalidation for QUERY requests.
req.freshpreviously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by@Cherryin #7366// QUERY /reports with If-None-Match: "12345" app.query('/reports', (req, res) => { res.set('ETag', '"12345"'); res.send(results); // now responds 304 Not Modified });Improve HTML structure in
res.redirect()responses when HTML format is accepted by adding<!DOCTYPE html>,<title>, and<body>tags for better browser compatibility - by@Bernice55231in #5167When calling
app.renderwith options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by AkaHarshit in #6903app.render('index', null, callback); // now works as expectedUpgrade
content-typeto^2.0.0, bringing a faster parser (~1.5x quickerContent-Typeparsing/formatting inres.send()) along with a behavior change:res.send()now keeps any existing parameters when adding the charset and no longer throws on aContent-Typethat fails to parse.type-isis upgraded to^2.1.0as part of the same change - by@blakeembreyin #7234res.set('Content-Type', 'text/plain; foo=bar').send('hey'); // -> Content-Type: text/plain; foo=bar; charset=utf-8The default error handler now logs the full error object instead of only its stack trace, so nested details such as
Error.causeand library-specific properties (e.g. Sequelize'sparent/original) are no longer swallowed - by@Nitin-Mohapatrain #6464Upgrade
content-dispositionto^2.0.1, which changes theContent-Dispositionheader emitted byres.download(),res.attachment(), andres.sendFile(): file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by@blakeembreyin #7233res.attachment('user.html'); // before -> Content-Disposition: attachment; filename="user.html" // after -> Content-Disposition: attachment; filename=user.html
... (truncated)
cf6722b
5.3.0 (#7468)8c2fcfc
docs: fix typos and a stale API reference in lib comments (#7512)9efc29e
docs: fix pass-through typos (#7509)2717ae3
build(deps): bump the github-actions group with 3 updates (#7499)de77771
build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (#7500)9169cbe
docs: add missing apostrophe in example (#7483)7ef9844
build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (#7493)3b7e39f
deps: bump qs minimum to 6.16.0 (#7478)98bd4cd
deps: proxy-addr@^2.0.8 (#7474)9a34acf
fix(res.send): preserve ETag generation with Transfer-Encoding (#7459)This version was pushed to npm by GitHub Actions, a new releaser for express since your current version.
Sourced from vite's releases.
v8.3.4
Features
Bug Fixes
- avoid mutating hmr defaults (fix #23575) (#23576) (574d5e3)
- build: correct preloads when chunkImportMap is enabled with non-root base (#23698) (2a8c0f0)
- build: wait for in-flight stylesheets in preload helper (fix #23652) (#23662) (036b745)
- bundled-dev: serve
/@vite/clientand stub@vite/env(#23664) (5afc5a8)- client: skip rewriting unchanged adopted styles (#23697) (fa71469)
- css: resolve imported preprocessors from their file path with lightningcss (#23688) (cf52011)
- deps: update all non-major dependencies (#23648) (8a4c19c)
- deps: update rolldown-related dependencies (#23649) (794516d)
- dev: a restart requested during a restart used to be dropped (fix #23392) (#23484) (70d56ea)
- don't treat modules ending with js-like query as js (#23687) (fcb6f12)
- html: avoid adding filesystem root to watcher (#23689) (3a7f2ae)
- html: skip caching CSS of chunks in a cycle (fix #23628) (#23636) (15d82f7)
- optimizer: scan deep imports with custom extensions (#23678) (8579189)
- remove input option unescaping for now (#23694) (facc2fb)
- server: match static aliases on path boundaries (#23643) (b28db28)
- watcher: normalize file before root check in
ensureWatchedFile(#23673) (12bb28c)Performance Improvements
Code Refactoring
Sourced from vite's changelog.
8.3.4 (2026-10-08)
Features
Bug Fixes
- avoid mutating hmr defaults (fix #23575) (#23576) (574d5e3)
- build: correct preloads when chunkImportMap is enabled with non-root base (#23698) (2a8c0f0)
- build: wait for in-flight stylesheets in preload helper (fix #23652) (#23662) (036b745)
- bundled-dev: serve
/@vite/clientand stub@vite/env(#23664) (5afc5a8)- client: skip rewriting unchanged adopted styles (#23697) (fa71469)
- css: resolve imported preprocessors from their file path with lightningcss (#23688) (cf52011)
- deps: update all non-major dependencies (#23648) (8a4c19c)
- deps: update rolldown-related dependencies (#23649) (794516d)
- dev: a restart requested during a restart used to be dropped (fix #23392) (#23484) (70d56ea)
- don't treat modules ending with js-like query as js (#23687) (fcb6f12)
- html: avoid adding filesystem root to watcher (#23689) (3a7f2ae)
- html: skip caching CSS of chunks in a cycle (fix #23628) (#23636) (15d82f7)
- optimizer: scan deep imports with custom extensions (#23678) (8579189)
- remove input option unescaping for now (#23694) (facc2fb)
- server: match static aliases on path boundaries (#23643) (b28db28)
- watcher: normalize file before root check in
ensureWatchedFile(#23673) (12bb28c)Performance Improvements
Code Refactoring
b6c20f6
release: v8.3.4 (#23702)b28db28
fix(server): match static aliases on path boundaries (#23643)bc0f21c
feat(bundled-dev): support import.meta.hot.acceptExports
(#23463)fa71469
fix(client): skip rewriting unchanged adopted styles (#23697)2a8c0f0
fix(build): correct preloads when chunkImportMap is enabled with
non-root bas...3a7f2ae
fix(html): avoid adding filesystem root to watcher (#23689)facc2fb
fix: remove input option unescaping for now (#23694)70d56ea
fix(dev): a restart requested during a restart used to be dropped (fix
#23392...cf52011
fix(css): resolve imported preprocessors from their file path with
lightningc...fcb6f12
fix: don't treat modules ending with js-like query as js (#23687)