nikita-ashihmin
996d488589
feat: align Claude modes and clear-context planning ( #1004 )
...
## Summary
- translate Claude SDK permission suggestions and tool-specific
decisions into ACP v1 presentation and editable option metadata
- align Claude session permission modes and clear-context plan handling
- split permission effects, modes, normalization, option construction,
presentation, and response handling into focused modules
- document the permission extension and add unit plus live-audit
coverage for native edge cases
## Tests
- `npm run check`
- `npm run build`
- `env -u ANTHROPIC_BASE_URL npm run test:run` (931 passed, 27 skipped)
2026-08-22 14:59:03 +04:00
dependabot[bot]
ee9f300db4
feat(deps): Bump @anthropic-ai/claude-agent-sdk to 0.3.238 ( #1018 )
...
Bumps the minor group with 6 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
|
[@anthropic-ai/claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-typescript )
| `0.3.232` | `0.3.233` |
| [@tsconfig/node22](https://github.com/tsconfig/bases/tree/HEAD/bases )
| `22.0.5` | `22.0.6` |
| [@hono/node-server](https://github.com/honojs/node-server ) | `2.1.0` |
`2.1.1` |
| [@tsconfig/node10](https://github.com/tsconfig/bases/tree/HEAD/bases )
| `1.0.12` | `1.0.13` |
| [es-module-lexer](https://github.com/guybedford/es-module-lexer ) |
`2.3.1` | `2.3.2` |
| [jose](https://github.com/panva/jose ) | `6.2.8` | `6.2.9` |
Updates `@anthropic-ai/claude-agent-sdk` from 0.3.232 to 0.3.233
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/claude-agent-sdk-typescript/releases ">@anthropic-ai/claude-agent-sdk's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.233</h2>
<h2>What's changed</h2>
<ul>
<li>Notification hooks now fire for pending permission prompts on the
SDK path, matching the interactive REPL behavior</li>
<li>Todo/task-tracking tools
(<code>TaskCreate</code>/<code>TaskGet</code>/<code>TaskUpdate</code>/<code>TaskList</code>,
<code>TodoWrite</code>) are no longer in the default tool surface on
Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models; name them in
the <code>tools</code> option or reference them in
<code>allowedTools</code> (or set
<code>CLAUDE_CODE_ENABLE_TODO_TOOLS=1</code>) to keep them</li>
</ul>
<h2>Update</h2>
<pre lang="sh"><code>npm install @anthropic-ai/claude-agent-sdk@0.3.233
# or
yarn add @anthropic-ai/claude-agent-sdk@0.3.233
# or
pnpm add @anthropic-ai/claude-agent-sdk@0.3.233
# or
bun add @anthropic-ai/claude-agent-sdk@0.3.233
</code></pre>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md ">@anthropic-ai/claude-agent-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>0.3.233</h2>
<ul>
<li>Notification hooks now fire for pending permission prompts on the
SDK path, matching the interactive REPL behavior</li>
<li>Todo/task-tracking tools
(<code>TaskCreate</code>/<code>TaskGet</code>/<code>TaskUpdate</code>/<code>TaskList</code>,
<code>TodoWrite</code>) are no longer in the default tool surface on
Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models; name them in
the <code>tools</code> option or reference them in
<code>allowedTools</code> (or set
<code>CLAUDE_CODE_ENABLE_TODO_TOOLS=1</code>) to keep them</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="73a28abad0 "><code>73a28ab</code></a>
chore: Update CHANGELOG.md</li>
<li>See full diff in <a
href="https://github.com/anthropics/claude-agent-sdk-typescript/compare/v0.3.232...v0.3.233 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@tsconfig/node22` from 22.0.5 to 22.0.6
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/tsconfig/bases/commits/HEAD/bases ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@anthropic-ai/claude-agent-sdk-darwin-arm64` from 0.3.232 to
0.3.233
Updates `@anthropic-ai/claude-agent-sdk-darwin-x64` from 0.3.232 to
0.3.233
Updates `@anthropic-ai/claude-agent-sdk-linux-arm64` from 0.3.232 to
0.3.233
Updates `@anthropic-ai/claude-agent-sdk-linux-arm64-musl` from 0.3.232
to 0.3.233
Updates `@anthropic-ai/claude-agent-sdk-linux-x64` from 0.3.232 to
0.3.233
Updates `@anthropic-ai/claude-agent-sdk-linux-x64-musl` from 0.3.232 to
0.3.233
Updates `@anthropic-ai/claude-agent-sdk-win32-arm64` from 0.3.232 to
0.3.233
Updates `@anthropic-ai/claude-agent-sdk-win32-x64` from 0.3.232 to
0.3.233
Updates `@hono/node-server` from 2.1.0 to 2.1.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/node-server/releases ">@hono/node-server's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.1</h2>
<h2>What's Changed</h2>
<ul>
<li>perf: lazily materialize request headers by <a
href="https://github.com/BlankParticle "><code>@BlankParticle</code></a>
in <a
href="https://redirect.github.com/honojs/node-server/pull/389 ">honojs/node-server#389</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/node-server/compare/v2.1.0...v2.1.1 ">https://github.com/honojs/node-server/compare/v2.1.0...v2.1.1 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="73c03adfb0 "><code>73c03ad</code></a>
2.1.1</li>
<li><a
href="5515aa0a37 "><code>5515aa0</code></a>
perf: lazily materialize request headers (<a
href="https://redirect.github.com/honojs/node-server/issues/389 ">#389</a>)</li>
<li>See full diff in <a
href="https://github.com/honojs/node-server/compare/v2.1.0...v2.1.1 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@tsconfig/node10` from 1.0.12 to 1.0.13
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/tsconfig/bases/commits/HEAD/bases ">compare
view</a></li>
</ul>
</details>
<br />
Updates `es-module-lexer` from 2.3.1 to 2.3.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/guybedford/es-module-lexer/releases ">es-module-lexer's
releases</a>.</em></p>
<blockquote>
<h2>2.3.2</h2>
<h2>What's Changed</h2>
<ul>
<li>perf(lexer): skip identifier and number runs by <a
href="https://github.com/BridgeAR "><code>@BridgeAR</code></a> in <a
href="https://redirect.github.com/guybedford/es-module-lexer/pull/227 ">guybedford/es-module-lexer#227</a></li>
<li>fix: annotate asm.js integer return type by <a
href="https://github.com/Justineo "><code>@Justineo</code></a> in <a
href="https://redirect.github.com/guybedford/es-module-lexer/pull/230 ">guybedford/es-module-lexer#230</a></li>
<li>Add side effects to package.json by <a
href="https://github.com/denisx "><code>@denisx</code></a> in <a
href="https://redirect.github.com/guybedford/es-module-lexer/pull/183 ">guybedford/es-module-lexer#183</a></li>
<li>fix: forward the sourcename through the pre-init parse path by <a
href="https://github.com/hdimer "><code>@hdimer</code></a> in <a
href="https://redirect.github.com/guybedford/es-module-lexer/pull/236 ">guybedford/es-module-lexer#236</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Justineo "><code>@Justineo</code></a>
made their first contribution in <a
href="https://redirect.github.com/guybedford/es-module-lexer/pull/230 ">guybedford/es-module-lexer#230</a></li>
<li><a href="https://github.com/denisx "><code>@denisx</code></a> made
their first contribution in <a
href="https://redirect.github.com/guybedford/es-module-lexer/pull/183 ">guybedford/es-module-lexer#183</a></li>
<li><a href="https://github.com/hdimer "><code>@hdimer</code></a> made
their first contribution in <a
href="https://redirect.github.com/guybedford/es-module-lexer/pull/236 ">guybedford/es-module-lexer#236</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/guybedford/es-module-lexer/compare/2.3.1...2.3.2 ">https://github.com/guybedford/es-module-lexer/compare/2.3.1...2.3.2 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="08ee1be867 "><code>08ee1be</code></a>
fix: forward the sourcename through the pre-init parse path (<a
href="https://redirect.github.com/guybedford/es-module-lexer/issues/236 ">#236</a>)</li>
<li><a
href="5a824a13a6 "><code>5a824a1</code></a>
Update package.json (<a
href="https://redirect.github.com/guybedford/es-module-lexer/issues/183 ">#183</a>)</li>
<li><a
href="8274d0331a "><code>8274d03</code></a>
fix: annotate asm.js integer return type (<a
href="https://redirect.github.com/guybedford/es-module-lexer/issues/230 ">#230</a>)</li>
<li><a
href="2abc49eafc "><code>2abc49e</code></a>
perf(lexer): skip identifier and number runs (<a
href="https://redirect.github.com/guybedford/es-module-lexer/issues/227 ">#227</a>)</li>
<li>See full diff in <a
href="https://github.com/guybedford/es-module-lexer/compare/2.3.1...2.3.2 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `jose` from 6.2.8 to 6.2.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/panva/jose/releases ">jose's
releases</a>.</em></p>
<blockquote>
<h2>v6.2.9</h2>
<h3>Fixes</h3>
<ul>
<li>reject a JWE whose generated Key Management Parameters collide (<a
href="6ed19a6a97 ">6ed19a6</a>)</li>
<li><strong>types:</strong> undeprecate PBES2 p2c parameter (<a
href="33bf832986 ">33bf832</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/panva/jose/blob/main/CHANGELOG.md ">jose's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/panva/jose/compare/v6.2.8...v6.2.9 ">6.2.9</a>
(2026-08-15)</h2>
<h3>Fixes</h3>
<ul>
<li>reject a JWE whose generated Key Management Parameters collide (<a
href="6ed19a6a97 ">6ed19a6</a>)</li>
<li><strong>types:</strong> undeprecate PBES2 p2c parameter (<a
href="33bf832986 ">33bf832</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f3a3c780b9 "><code>f3a3c78</code></a>
chore(release): 6.2.9</li>
<li><a
href="33bf832986 "><code>33bf832</code></a>
fix(types): undeprecate PBES2 p2c parameter</li>
<li><a
href="6ed19a6a97 "><code>6ed19a6</code></a>
fix: reject a JWE whose generated Key Management Parameters collide</li>
<li><a
href="944840d167 "><code>944840d</code></a>
ci: use shared release workflows</li>
<li><a
href="05bccf2399 "><code>05bccf2</code></a>
chore: bump packages</li>
<li><a
href="f7392d1217 "><code>f7392d1</code></a>
test: account for workerd nodejs_compat flag default changes</li>
<li><a
href="4e944be71e "><code>4e944be</code></a>
ci: drop the wait-for-npm machinery</li>
<li><a
href="4285b6f411 "><code>4285b6f</code></a>
chore(deps-dev): bump undici</li>
<li><a
href="cb114ecde7 "><code>cb114ec</code></a>
chore: cleanup after release</li>
<li>See full diff in <a
href="https://github.com/panva/jose/compare/v6.2.8...v6.2.9 ">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com >
2026-08-20 23:55:54 +00:00
Andrey Bragin
d334766ef9
feat: add ai generated session title ( #984 )
...
Claude Code's automatic title generation never runs under the Agent SDK,
so `SDKSessionInfo.summary` degrades to the raw first prompt — meaning
we were publishing up to 256 characters of the user's opening message as
the session title.
This PR asks the SDK for a real title instead. On the first completed
turn we send the `generate_session_title` control request with the
trailing 1000 characters of the session's own user + assistant text,
fired in the background off the `idle` handler so turn-end never waits
on the ~2 s small-model call, and publish the result through the
existing `session_info_update`.
A title is generated once per session, and any title already in the
session file — a user `/rename` or one we generated earlier, which the
SDK folds into the same field — is adopted rather than
overwritten.`persist: true` writes it to the transcript, so
`session/list` and `session/load` show the same name.
The SDK method is undeclared in `sdk.d.ts`, so it's called behind a
`typeof` check and a `try/catch` that degrades to the previous
behaviour.
2026-08-19 17:25:52 +02:00
acp-release-bot[bot]
d0aafb1ca2
chore(main): release 0.70.0 ( #1010 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.70.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.69.0...v0.70.0 )
(2026-08-17)
### Features
* switch providers for loaded Claude sessions
([#1002 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/1002 ))
([50a9543 ](50a95434e9 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.70.0
2026-08-18 15:15:59 +02:00
Sergey Shkredov
50a95434e9
feat: switch providers for loaded Claude sessions ( #1002 )
...
### Problem
Provider routing is captured when the Claude SDK `Query` is created. As
a result, `providers/set` and `providers/disable` updated newly created
sessions but an already loaded ACP session continued using its previous
backend.
User and project Claude settings could also override the ACP-selected
URL or credentials after the subprocess environment was assembled,
making the configured proxy ineffective.
### Solution
- Serialize provider changes and wait for submitted turns to settle.
- Close and recreate every loaded SDK query with the same Claude session
ID, cwd, MCP configuration, and ACP creation parameters.
- Block new/load/resume/prompt requests only while a provider update is
in progress.
- Apply the active ACP route in both the subprocess environment and
programmatic settings tier.
- Clear competing Anthropic, Bedrock, Vertex, OAuth, API-key, and
`apiKeyHelper` routing while an ACP override is active; preserve
unrelated settings.
- Restore native/environment routing when the provider is disabled.
- Add opt-in routing diagnostics through `CLAUDE_AGENT_LOGS` without
logging request content or secret headers.
### Tests
Added coverage for:
- native behavior when Providers API is unused;
- live recreation of loaded sessions;
- waiting for active turns;
- multiple loaded sessions across native → proxy A → proxy B → native;
- user settings precedence and preservation of unrelated settings;
- Anthropic, Bedrock, Vertex, legacy gateway auth, and logout behavior.
Verification:
- `npm test`: 789 passed, 20 skipped
- `npm run build`
- `npm run check`
- `git diff --check`
---------
Co-authored-by: Junie <junie@jetbrains.com >
2026-08-17 14:49:34 +02:00
acp-release-bot[bot]
59a7e9367b
chore(main): release 0.69.0 ( #1007 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.69.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.68.0...v0.69.0 )
(2026-08-16)
### Features
* report changed files to AIR
([#1001 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/1001 ))
([450d6b1 ](450d6b19dc ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.69.0
2026-08-16 11:18:05 +02:00
Sergey Ignatov
450d6b19dc
feat: report changed files to AIR ( #1001 )
...
## Summary
- negotiate the opt-in AIR `_meta.jetbrains.air.agentFileChangeReport`
capability
- assign a unique `requestId` to each prompt and return canonical,
workspace-bounded changed paths in response metadata
- add a hidden Stop hook and an internal MCP reporting tool so Claude
can report files changed through shell commands, Git operations, and
generators
The audit is best-effort and is inactive unless the client advertises
the capability.
## Safety
- accept reports only for the active session and matching turn request
- canonicalize filesystem aliases, including `/tmp` to `/private/tmp` on
macOS
- reject paths outside the session working directory and deduplicate
valid paths
## Tests
- `npm run test:run`
- `npm run build`
- `npm run check`
2026-08-16 11:15:49 +02:00
acp-release-bot[bot]
5de5d4a2c8
chore(main): release 0.68.0 ( #1000 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.68.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.67.0...v0.68.0 )
(2026-08-14)
### Features
* align typed session failures with AIR protocol
([#992 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/992 ))
([0581b9c ](0581b9cf39 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.68.0
2026-08-14 17:32:04 +04:00
nikita-ashihmin
0581b9cf39
feat: align typed session failures with AIR protocol ( #992 )
...
## Summary
- align `_meta.jetbrains.air.sessionFailure` with AIR's
transcript-record protocol: `id`, `revision`, broad `category`, explicit
`severity`, `title`, optional `details`, and `actions`
- forward Claude's actual user-facing assistant/result text as `title`;
use adapter-authored fallback text only when Claude provides no message
(transport failure, worker EOF, or an internal invariant)
- reduce categories to `connection`, `access`, `limit`, `request`,
`service`, and `unknown`
- limit suggested actions to `retry`, `login`, and `new_session`
- update one transcript record through `id + revision`, keep resolved
entries in history, and remove clear/tombstone updates
- suppress duplicate assistant failure prose only for clients that
negotiated typed failures; preserve legacy ACP behavior otherwise
- restore synthetic usage-limit failures from session history with their
exact stored Claude text
- document negotiation, delivery carriers, identity/revision behavior,
mappings, recovery, and compatibility in the extension spec
## Validation
- `npm run check`
- `npm run build`
- `npm run test:run` — 777 passed, 26 skipped
- `git diff --check`
## Tracking
[IJAI-993](https://youtrack.jetbrains.com/issue/IJAI-993 )
2026-08-14 17:29:39 +04:00
Sergey Shkredov
11dd73b871
Restore native provider state after overrides ( #996 )
...
### Summary
- expose one `main` provider slot because Anthropic, Bedrock, and Vertex
routing are mutually exclusive
- advertise all three supported API types on that slot and replace the
active configuration on each `providers/set`
- restore native Claude routing when the slot is disabled
- keep provider headers out of list responses and preserve per-protocol
validation
### Testing
- `npm run test:run` (767 passed, 20 skipped)
- `npm run build`
- `npm run check`
Co-authored-by: Junie <junie@jetbrains.com >
2026-08-14 10:13:38 +00:00
acp-release-bot[bot]
e4dba808ea
chore(main): release 0.67.0 ( #975 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.67.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.66.0...v0.67.0 )
(2026-08-14)
### Features
* **deps:** Update to @anthropic-ai/claude-agent-sdk v0.3.232
([#993 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/993 ))
([de0d0e2 ](de0d0e2b7d ))
* expose typed session failures for AIR
([#979 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/979 ))
([8157ee1 ](8157ee113e ))
* publish the model fallback as a warning advisory
([#990 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/990 ))
([35aaddb ](35aaddb3d5 ))
* surface resolved model name in default model option description
([#982 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/982 ))
([ec73cd8 ](ec73cd8560 ))
* surface Skill tool calls with name and kind in _meta
([#986 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/986 ))
([1f09e9a ](1f09e9a3ca ))
### Bug Fixes
* preserve task plans across prompts
([#974 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/974 ))
([1afa940 ](1afa940a2c ))
* show a pending title while Claude prepares a file
([#978 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/978 ))
([3df1ede ](3df1ede89f ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.67.0
2026-08-14 00:40:45 +00:00
dependabot[bot]
de0d0e2b7d
feat(deps): Update to @anthropic-ai/claude-agent-sdk v0.3.232 ( #993 )
...
Bumps the minor group with 12 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
|
[@anthropic-ai/claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-typescript )
| `0.3.220` | `0.3.226` |
|
[@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript )
| `0.115.0` | `0.116.0` |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node )
| `26.1.2` | `26.2.0` |
|
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin )
| `8.65.0` | `8.66.0` |
|
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser )
| `8.65.0` | `8.66.0` |
| [eslint](https://github.com/eslint/eslint ) | `10.8.0` | `10.8.1` |
|
[express-rate-limit](https://github.com/express-rate-limit/express-rate-limit )
| `8.6.1` | `8.6.2` |
| [hono](https://github.com/honojs/hono ) | `4.13.0` | `4.13.2` |
| [ip-address](https://github.com/beaugunderson/ip-address ) | `10.4.0` |
`10.5.0` |
| [postcss](https://github.com/postcss/postcss ) | `8.5.25` | `8.5.26` |
|
[rolldown](https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown )
| `1.2.2` | `1.2.4` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) |
`8.2.0` | `8.2.1` |
Updates `@anthropic-ai/claude-agent-sdk` from 0.3.220 to 0.3.226
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/claude-agent-sdk-typescript/releases ">@anthropic-ai/claude-agent-sdk's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.226</h2>
<h2>What's changed</h2>
<ul>
<li>Updated to parity with Claude Code v2.1.226</li>
</ul>
<h2>Update</h2>
<pre lang="sh"><code>npm install @anthropic-ai/claude-agent-sdk@0.3.226
# or
yarn add @anthropic-ai/claude-agent-sdk@0.3.226
# or
pnpm add @anthropic-ai/claude-agent-sdk@0.3.226
# or
bun add @anthropic-ai/claude-agent-sdk@0.3.226
</code></pre>
<h2>v0.3.225</h2>
<h2>What's changed</h2>
<ul>
<li>Fixed background subagents in headless/SDK sessions never resuming
when a background shell command or Monitor they left running completed,
so the subagent never saw the result</li>
</ul>
<h2>Update</h2>
<pre lang="sh"><code>npm install @anthropic-ai/claude-agent-sdk@0.3.225
# or
yarn add @anthropic-ai/claude-agent-sdk@0.3.225
# or
pnpm add @anthropic-ai/claude-agent-sdk@0.3.225
# or
bun add @anthropic-ai/claude-agent-sdk@0.3.225
</code></pre>
<h2>v0.3.224</h2>
<h2>What's changed</h2>
<ul>
<li>Added <code>crossSessionInbound</code> and <code>dialogExpiry</code>
settings: cross-session messages sent to a session running with bypassed
permissions are held for your approval, and messages to other sessions
auto-deliver</li>
<li>Added <code>subkind: 'peer-send-message'</code> to the
<code>task-notification</code> member of <code>SDKMessageOrigin</code>,
marking a notification raised by a cross-session
<code>SendMessage</code></li>
<li>Added <code>source: 'archive'</code> plugin config variant to
<code>Settings</code>, with <code>url</code> and optional
<code>sha256</code>, for installing plugins from a zip over HTTPS</li>
<li>Added sandbox credential-masking fields to <code>Settings</code>:
<code>decode: 'jwt'</code> with <code>maskClaims</code>,
<code>extract</code>/<code>onExtractNoMatch</code> on
<code>envVars</code>, and <code>awsPairs</code>/<code>sigv4</code> for
AWS SigV4 re-signing</li>
<li>Fixed long (>200 char) project paths resolving to another
project's session directory under a shared sanitized prefix; session
list/get/rename/tag/fork/delete and <code>/resume</code> no longer cross
projects</li>
</ul>
<h2>Update</h2>
<pre lang="sh"><code>npm install @anthropic-ai/claude-agent-sdk@0.3.224
# or
yarn add @anthropic-ai/claude-agent-sdk@0.3.224
# or
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md ">@anthropic-ai/claude-agent-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>0.3.226</h2>
<ul>
<li>Updated to parity with Claude Code v2.1.226</li>
</ul>
<h2>0.3.225</h2>
<ul>
<li>Fixed background subagents in headless/SDK sessions never resuming
when a background shell command or Monitor they left running completed,
so the subagent never saw the result</li>
</ul>
<h2>0.3.224</h2>
<ul>
<li>Added <code>crossSessionInbound</code> and <code>dialogExpiry</code>
settings: cross-session messages sent to a session running with bypassed
permissions are held for your approval, and messages to other sessions
auto-deliver</li>
<li>Added <code>subkind: 'peer-send-message'</code> to the
<code>task-notification</code> member of <code>SDKMessageOrigin</code>,
marking a notification raised by a cross-session
<code>SendMessage</code></li>
<li>Added <code>source: 'archive'</code> plugin config variant to
<code>Settings</code>, with <code>url</code> and optional
<code>sha256</code>, for installing plugins from a zip over HTTPS</li>
<li>Added sandbox credential-masking fields to <code>Settings</code>:
<code>decode: 'jwt'</code> with <code>maskClaims</code>,
<code>extract</code>/<code>onExtractNoMatch</code> on
<code>envVars</code>, and <code>awsPairs</code>/<code>sigv4</code> for
AWS SigV4 re-signing</li>
<li>Fixed long (>200 char) project paths resolving to another
project's session directory under a shared sanitized prefix; session
list/get/rename/tag/fork/delete and <code>/resume</code> no longer cross
projects</li>
</ul>
<h2>0.3.223</h2>
<ul>
<li>Added <code>resumeDropsTurn</code> option: with
<code>resumeSessionAt</code>, declares the turn a truncating resume
intends to drop; the CLI refuses the resume if anything else would be
discarded</li>
<li>Result messages for repeated 529 overload failures now include
<code>api_error_status: 529</code>, so SDK consumers can detect overload
terminations structurally instead of matching message text</li>
<li>Bare headless (<code>-p</code> / SDK <code>query()</code> without
<code>canUseTool</code>) now emits <code>system/permission_denied</code>
stream events when a tool call is auto-denied</li>
<li>Documented <code>usage</code> vs <code>modelUsage</code> on
stream-json results: <code>usage</code> is main-loop-only and per-turn;
<code>modelUsage</code> is cumulative, covers all query-pipeline calls,
and is the field for cost accounting</li>
</ul>
<h2>0.3.222</h2>
<ul>
<li>Fixed <code>query({ sessionStore, resume })</code> not carrying user
<code>settings.json</code> (<code>apiKeyHelper</code>, <code>env</code>,
<code>hooks</code>, <code>permissions</code>) into the resumed
subprocess</li>
</ul>
<h2>0.3.221</h2>
<ul>
<li>Improved <code>skills</code> option validation: malformed names
(delimiters or control characters) and wildcard-form names are rejected
with a clear error; use <code>skills: 'all'</code> to enable every
skill</li>
<li>Fixed external MCP servers passed via the <code>mcpServers</code>
option not being connected before the first turn, which caused the model
to emit tool calls as literal text</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d13c50c54d "><code>d13c50c</code></a>
chore: Update CHANGELOG.md</li>
<li><a
href="4cae4b7634 "><code>4cae4b7</code></a>
chore: Update CHANGELOG.md</li>
<li><a
href="86e3e9464e "><code>86e3e94</code></a>
chore: Update CHANGELOG.md</li>
<li><a
href="064793e6da "><code>064793e</code></a>
chore: Update CHANGELOG.md</li>
<li><a
href="6e143f440c "><code>6e143f4</code></a>
chore: Update CHANGELOG.md</li>
<li><a
href="31fbbfd403 "><code>31fbbfd</code></a>
chore: Update CHANGELOG.md</li>
<li>See full diff in <a
href="https://github.com/anthropics/claude-agent-sdk-typescript/compare/v0.3.220...v0.3.226 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@anthropic-ai/sdk` from 0.115.0 to 0.116.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-typescript/releases ">@anthropic-ai/sdk's
releases</a>.</em></p>
<blockquote>
<h2>sdk: v0.116.0</h2>
<h2>0.116.0 (2026-08-07)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.115.0...sdk-v0.116.0 ">sdk-v0.115.0...sdk-v0.116.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add
<code>mid-conversation-tool-changes-2026-07-01</code> beta (<a
href="70e04f689b ">70e04f6</a>)</li>
<li><strong>api:</strong> add support for session budgets, advisor tool,
pinned inference location and skills auto-loading from GitHub (<a
href="1336a4a903 ">1336a4a</a>)</li>
<li><strong>tools:</strong> make bash timeout and abort errors matchable
by class (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/259 ">#259</a>)
(<a
href="201b12e8ac ">201b12e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> use hardcoded User-Agent strings instead of
constructor names (<a
href="0b97f04042 ">0b97f04</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> remove retired Claude Opus 4.1 models (<a
href="11b685c66f ">11b685c</a>)</li>
<li><strong>docs:</strong> small updates to descriptions (<a
href="413cc5f120 ">413cc5f</a>)</li>
<li><strong>docs:</strong> updates to a few documentation strings (<a
href="c38a1de5fc ">c38a1de</a>)</li>
<li><strong>internal/deps:</strong> bump <code>@babel/core</code> and
<code>@babel/helpers</code> to 7.29.7 (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/261 ">#261</a>)
(<a
href="3164934680 ">3164934</a>)</li>
<li><strong>internal/deps:</strong> install tsc-multi from the npm
registry (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/265 ">#265</a>)
(<a
href="c787f9022c ">c787f90</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="73b3d61009 ">73b3d61</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md ">@anthropic-ai/sdk's
changelog</a>.</em></p>
<blockquote>
<h2>0.116.0 (2026-08-07)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.115.0...sdk-v0.116.0 ">sdk-v0.115.0...sdk-v0.116.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add
<code>mid-conversation-tool-changes-2026-07-01</code> beta (<a
href="70e04f689b ">70e04f6</a>)</li>
<li><strong>api:</strong> add support for session budgets, advisor tool,
pinned inference location and skills auto-loading from GitHub (<a
href="1336a4a903 ">1336a4a</a>)</li>
<li><strong>tools:</strong> make bash timeout and abort errors matchable
by class (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/259 ">#259</a>)
(<a
href="201b12e8ac ">201b12e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> use hardcoded User-Agent strings instead of
constructor names (<a
href="0b97f04042 ">0b97f04</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> remove retired Claude Opus 4.1 models (<a
href="11b685c66f ">11b685c</a>)</li>
<li><strong>docs:</strong> small updates to descriptions (<a
href="413cc5f120 ">413cc5f</a>)</li>
<li><strong>docs:</strong> updates to a few documentation strings (<a
href="c38a1de5fc ">c38a1de</a>)</li>
<li><strong>internal/deps:</strong> bump <code>@babel/core</code> and
<code>@babel/helpers</code> to 7.29.7 (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/261 ">#261</a>)
(<a
href="3164934680 ">3164934</a>)</li>
<li><strong>internal/deps:</strong> install tsc-multi from the npm
registry (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/265 ">#265</a>)
(<a
href="c787f9022c ">c787f90</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="73b3d61009 ">73b3d61</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ed02a89f5b "><code>ed02a89</code></a>
chore: release main</li>
<li><a
href="d72ff6a1c8 "><code>d72ff6a</code></a>
feat(api): add support for session budgets, advisor tool, pinned
inference lo...</li>
<li><a
href="dbfed51cc3 "><code>dbfed51</code></a>
chore(internal/deps): refresh provider package dev tooling to
mirror-availabl...</li>
<li><a
href="b7e95bfe0f "><code>b7e95bf</code></a>
chore(docs): updates to a few documentation strings</li>
<li><a
href="9efb7bd454 "><code>9efb7bd</code></a>
chore(api): remove retired Claude Opus 4.1 models</li>
<li><a
href="342d422c7d "><code>342d422</code></a>
chore(internal/deps): install tsc-multi from the npm registry (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/265 ">#265</a>)</li>
<li><a
href="501955ca31 "><code>501955c</code></a>
chore(internal/deps): bump <code>@babel/core</code> and
<code>@babel/helpers</code> to 7.29.7 (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/261 ">#261</a>)</li>
<li><a
href="6641c5e46f "><code>6641c5e</code></a>
feat(tools): make bash timeout and abort errors matchable by class (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/259 ">#259</a>)</li>
<li><a
href="e421c43ea6 "><code>e421c43</code></a>
chore(docs): small updates to descriptions</li>
<li><a
href="c0a963eff5 "><code>c0a963e</code></a>
feat(api): add <code>mid-conversation-tool-changes-2026-07-01</code>
beta</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.115.0...sdk-v0.116.0 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@types/node` from 26.1.2 to 26.2.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/eslint-plugin` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/eslint-plugin's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md ">@typescript-eslint/eslint-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li><a
href="20cb15e6db "><code>20cb15e</code></a>
chore(eslint-plugin): split prefer-optional-chain.test.ts in multiple
files (...</li>
<li><a
href="780a8c52d5 "><code>780a8c5</code></a>
docs(eslint-plugin): [member-ordering] add lacking commas in default
member t...</li>
<li><a
href="08dd427202 "><code>08dd427</code></a>
fix(eslint-plugin): [class-literal-property-style] preserve type
annotations ...</li>
<li><a
href="6be25d3b45 "><code>6be25d3</code></a>
fix(eslint-plugin): [no-unnecessary-type-parameters] check MappedType
key rem...</li>
<li><a
href="8826d0ebf7 "><code>8826d0e</code></a>
fix(eslint-plugin): [no-useless-default-assignment] don't report
defaults use...</li>
<li><a
href="7aecc1c44e "><code>7aecc1c</code></a>
fix(eslint-plugin): [prefer-nullish-coalescing] handle shadowed Boolean
calls...</li>
<li><a
href="5ffa76049a "><code>5ffa760</code></a>
fix(eslint-plugin): [no-unnecessary-type-conversion] ignore shadowed
built-in...</li>
<li><a
href="f282f84df6 "><code>f282f84</code></a>
chore(eslint-plugin): fix all
<code>eslint-plugin/require-test-error-positions</code> (#...</li>
<li><a
href="c8cafa4ae9 "><code>c8cafa4</code></a>
docs: [unified-signatures] caveats regarding signatures merging (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12581 ">#12581</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/eslint-plugin ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/parser` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/parser's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md ">@typescript-eslint/parser's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<p>This was a version bump only for parser to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/parser ">compare
view</a></li>
</ul>
</details>
<br />
Updates `eslint` from 10.8.0 to 10.8.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases ">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v10.8.1</h2>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="18eb0a7e78 "><code>18eb0a7</code></a>
fix: prevent ASI hazard in <code>no-unused-labels</code> autofix (<a
href="https://redirect.github.com/eslint/eslint/issues/21173 ">#21173</a>)
(dongkyu lee)</li>
<li><a
href="151ba3f583 "><code>151ba3f</code></a>
fix: false positives in <code>getter-return</code> and
<code>accessor-pairs</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21163 ">#21163</a>)
(Grit)</li>
<li><a
href="6898df9364 "><code>6898df9</code></a>
fix: ignore meta-property names in <code>id-denylist</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21166 ">#21166</a>)
(Pixel)</li>
<li><a
href="4d7db6628e "><code>4d7db66</code></a>
fix: ignore meta-property names in <code>id-match</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21167 ">#21167</a>)
(Pixel)</li>
<li><a
href="677214e7ee "><code>677214e</code></a>
fix: handle ASI hazards in no-unused-vars removeVar suggestion (<a
href="https://redirect.github.com/eslint/eslint/issues/20935 ">#20935</a>)
(kuldeep kumar)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="7d0cbf81cf "><code>7d0cbf8</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="0a05812adb "><code>0a05812</code></a>
docs: add missing backticks to <code>no-duplicate-imports.js</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21183 ">#21183</a>)
(Lee Daeun)</li>
<li><a
href="678c90b55d "><code>678c90b</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="8a104242e8 "><code>8a10424</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="69bb948061 "><code>69bb948</code></a>
docs: Update README (GitHub Actions Bot)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="0a14800505 "><code>0a14800</code></a>
chore: update github/codeql-action action to v4.37.4 (<a
href="https://redirect.github.com/eslint/eslint/issues/21196 ">#21196</a>)
(renovate[bot])</li>
<li><a
href="05adcb1354 "><code>05adcb1</code></a>
test: fix failing ecosystem test for <code>eslint-plugin-unicorn</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/21191 ">#21191</a>)
(Lazizbek Ergashev)</li>
<li><a
href="5611035665 "><code>5611035</code></a>
test: add error locations info to <code>no-void</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21185 ">#21185</a>)
(Lee Daeun)</li>
<li><a
href="ee47333aa6 "><code>ee47333</code></a>
ci: bump github/codeql-action from 4 to 4.37.3 (<a
href="https://redirect.github.com/eslint/eslint/issues/21176 ">#21176</a>)
(dependabot[bot])</li>
<li><a
href="f131c034ad "><code>f131c03</code></a>
chore: improve ecosystem test failure reporting (<a
href="https://redirect.github.com/eslint/eslint/issues/20937 ">#20937</a>)
(crimsonjay0)</li>
<li><a
href="1f6eddee60 "><code>1f6edde</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/21182 ">#21182</a>)
(ESLint Bot)</li>
<li><a
href="d3266fb26c "><code>d3266fb</code></a>
chore: unpin <code>webpack</code> dependency (<a
href="https://redirect.github.com/eslint/eslint/issues/21172 ">#21172</a>)
(Francesco Trotta)</li>
<li><a
href="65a6519cc8 "><code>65a6519</code></a>
chore: add allowScripts field to package.json (<a
href="https://redirect.github.com/eslint/eslint/issues/21092 ">#21092</a>)
(GiHoon Noh)</li>
<li><a
href="22e5256853 "><code>22e5256</code></a>
ci: add <code>triage:no</code> label to Dependabot PRs (<a
href="https://redirect.github.com/eslint/eslint/issues/21141 ">#21141</a>)
(lumir)</li>
<li><a
href="55c9038836 "><code>55c9038</code></a>
ci: bump actions/labeler from 6 to 7 (<a
href="https://redirect.github.com/eslint/eslint/issues/21159 ">#21159</a>)
(dependabot[bot])</li>
<li><a
href="7280e78183 "><code>7280e78</code></a>
chore: update dependency prettier to v3.9.6 (<a
href="https://redirect.github.com/eslint/eslint/issues/21162 ">#21162</a>)
(renovate[bot])</li>
<li><a
href="eddbad6015 "><code>eddbad6</code></a>
test: fix failing ecosystem test for <code>eslint-plugin-unicorn</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/21156 ">#21156</a>)
(Francesco Trotta)</li>
<li><a
href="60a178d5ef "><code>60a178d</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/21150 ">#21150</a>)
(ESLint Bot)</li>
<li><a
href="f9f61dc611 "><code>f9f61dc</code></a>
test: add error locations to <code>no-unreachable</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21151 ">#21151</a>)
(JIYEON)</li>
<li><a
href="d08629382b "><code>d086293</code></a>
test: add error locations to <code>no-undef</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21147 ">#21147</a>)
(JIYEON)</li>
<li><a
href="cc01b67061 "><code>cc01b67</code></a>
test: add error locations to <code>no-useless-catch</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21144 ">#21144</a>)
(devoil)</li>
<li><a
href="688e75ede0 "><code>688e75e</code></a>
chore: add missing backticks in JSDoc (<a
href="https://redirect.github.com/eslint/eslint/issues/21143 ">#21143</a>)
(Bo Hyun Kim)</li>
<li><a
href="7c1e17543a "><code>7c1e175</code></a>
test: add error locations to <code>require-await</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21145 ">#21145</a>)
(Grit)</li>
<li><a
href="588a26ddce "><code>588a26d</code></a>
test: add error locations to <code>no-extra-label</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21139 ">#21139</a>)
(dongkyu lee)</li>
<li><a
href="059aa89574 "><code>059aa89</code></a>
test: add error locations to <code>no-useless-concat</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21140 ">#21140</a>)
(dongkyu lee)</li>
<li><a
href="5a452a8ba5 "><code>5a452a8</code></a>
test: add error locations to <code>no-const-assign</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21138 ">#21138</a>)
(dongkyu lee)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c049dc3c42 "><code>c049dc3</code></a>
10.8.1</li>
<li><a
href="a3f7826941 "><code>a3f7826</code></a>
Build: changelog update for 10.8.1</li>
<li><a
href="18eb0a7e78 "><code>18eb0a7</code></a>
fix: prevent ASI hazard in <code>no-unused-labels</code> autofix (<a
href="https://redirect.github.com/eslint/eslint/issues/21173 ">#21173</a>)</li>
<li><a
href="0a14800505 "><code>0a14800</code></a>
chore: update github/codeql-action action to v4.37.4 (<a
href="https://redirect.github.com/eslint/eslint/issues/21196 ">#21196</a>)</li>
<li><a
href="7d0cbf81cf "><code>7d0cbf8</code></a>
docs: Update README</li>
<li><a
href="05adcb1354 "><code>05adcb1</code></a>
test: fix failing ecosystem test for <code>eslint-plugin-unicorn</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/21191 ">#21191</a>)</li>
<li><a
href="5611035665 "><code>5611035</code></a>
test: add error locations info to <code>no-void</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21185 ">#21185</a>)</li>
<li><a
href="ee47333aa6 "><code>ee47333</code></a>
ci: bump github/codeql-action from 4 to 4.37.3 (<a
href="https://redirect.github.com/eslint/eslint/issues/21176 ">#21176</a>)</li>
<li><a
href="f131c034ad "><code>f131c03</code></a>
chore: improve ecosystem test failure reporting (<a
href="https://redirect.github.com/eslint/eslint/issues/20937 ">#20937</a>)</li>
<li><a
href="0a05812adb "><code>0a05812</code></a>
docs: add missing backticks to <code>no-duplicate-imports.js</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21183 ">#21183</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint/eslint/compare/v10.8.0...v10.8.1 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@anthropic-ai/claude-agent-sdk-darwin-arm64` from 0.3.220 to
0.3.226
Updates `@anthropic-ai/claude-agent-sdk-darwin-x64` from 0.3.220 to
0.3.226
Updates `@anthropic-ai/claude-agent-sdk-linux-arm64` from 0.3.220 to
0.3.226
Updates `@anthropic-ai/claude-agent-sdk-linux-arm64-musl` from 0.3.220
to 0.3.226
Updates `@anthropic-ai/claude-agent-sdk-linux-x64` from 0.3.220 to
0.3.226
Updates `@anthropic-ai/claude-agent-sdk-linux-x64-musl` from 0.3.220 to
0.3.226
Updates `@anthropic-ai/claude-agent-sdk-win32-arm64` from 0.3.220 to
0.3.226
Updates `@anthropic-ai/claude-agent-sdk-win32-x64` from 0.3.220 to
0.3.226
Updates `@typescript-eslint/project-service` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/project-service's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/project-service/CHANGELOG.md ">@typescript-eslint/project-service's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<p>This was a version bump only for project-service to align it with
other projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/project-service ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/scope-manager` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/scope-manager's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/scope-manager/CHANGELOG.md ">@typescript-eslint/scope-manager's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<p>This was a version bump only for scope-manager to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li><a
href="0c94e088e9 "><code>0c94e08</code></a>
chore: add CI check to ensure snapshots dirs don't have stale files (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/scope-manager/issues/12623 ">#12623</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/scope-manager ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/tsconfig-utils` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/tsconfig-utils's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/tsconfig-utils/CHANGELOG.md ">@typescript-eslint/tsconfig-utils's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<p>This was a version bump only for tsconfig-utils to align it with
other projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/tsconfig-utils ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/type-utils` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/type-utils's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/type-utils/CHANGELOG.md ">@typescript-eslint/type-utils's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<p>This was a version bump only for type-utils to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/type-utils ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/types` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/types's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/types/CHANGELOG.md ">@typescript-eslint/types's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<p>This was a version bump only for types to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li><a
href="918411c1b6 "><code>918411c</code></a>
chore(types): fix <code>build</code> nx task inputs (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/types/issues/12634 ">#12634</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/types ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/typescript-estree` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/typescript-estree's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-estree/CHANGELOG.md ">@typescript-eslint/typescript-estree's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li><a
href="e88c943f01 "><code>e88c943</code></a>
feat(typescript-estree): handle import.defer() as ImportExpression (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-estree/issues/12609 ">#12609</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/typescript-estree ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/utils` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/utils's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>typescript-estree:</strong> handle import.defer() as
ImportExpression (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12609 ">#12609</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-conversion]
ignore shadowed built-ins (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12590 ">#12590</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-nullish-coalescing] handle
shadowed Boolean calls (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12591 ">#12591</a>)</li>
<li><strong>eslint-plugin:</strong> [no-useless-default-assignment]
don't report defaults used by other overloads (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12607 ">#12607</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters]
check MappedType key remapping (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12588 ">#12588</a>)</li>
<li><strong>eslint-plugin:</strong> [class-literal-property-style]
preserve type annotations and don't drop decorators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12617 ">#12617</a>)</li>
<li><strong>website:</strong> list
<code>onUnsupportedTypeScriptVersion</code> in parser options (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12585 ">#12585</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit "><code>@StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger "><code>@kirkwaiblinger</code></a></li>
<li>Steffen Schroeder</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md ">@typescript-eslint/utils's
changelog</a>.</em></p>
<blockquote>
<h2>8.66.0 (2026-08-03)</h2>
<p>This was a version bump only for utils to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.66.0 ">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning ">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases ">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e51b11ba3a "><code>e51b11b</code></a>
chore(release): publish 8.66.0</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/utils ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@typescript-eslint/visitor-keys` from 8.65.0 to 8.66.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases ">@typescript-eslint/visitor-keys's
releases</a>.</em></p>
<blockquote>
<h2>v8.66.0</h2>
<h2>8.66.0 (2026-08-03)</h2>
<h3>🚀 Features</h3>
<ul>
<...
_Description has been truncated_
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com >
2026-08-14 02:39:32 +02:00
nikita-ashihmin
35aaddb3d5
feat: publish the model fallback as a warning advisory ( #990 )
...
## Problem
When the API refuses a turn, the SDK retries on the fallback model and
makes the swap persistent for the session. We flag that with a
transcript line:
```ts
text: `**Model fallback:** ${message.original_model} declined this request${category}; retried with ${message.fallback_model}. ${outcome}${explanation}`,
```
It goes out as an `agent_message_chunk`, so the client cannot tell a
session-level advisory from something the model actually said — the bold
label is the only severity signal available, and it is just characters
inside the assistant's own text.
The comment above that code already states the stakes: *"Without a
notice the user just sees regenerated output."* The notice matters; the
channel it uses does not fit it.
## Change
Routes it through the AIR typed session-failure extension instead, as a
new `advisory` category:
- `severity?: "error" | "warning"` on the record. **Optional, and absent
means `error`**, so a client that predates this keeps treating every
record it receives as a failure.
- The advisory carries its own wording (`safeMessage`) rather than the
canned per-category message, so the client renders the explanation
verbatim in a warning banner.
- **Clients that did not negotiate the `sessionFailure` capability keep
the exact transcript line they get today.**
### Advisories are not turn failures
Two existing behaviours would have mangled them, so both are now
guarded:
- `createSessionFailure` clears every other active record when a new one
is published. An advisory no longer does that, and is no longer cleared
by one — otherwise a model-fallback notice would erase an actionable
error, or vice versa.
- `clearFailuresFromEarlierTurns` clears everything whose `turnId` is
not the active turn. Advisories carry no `turnId`, so without the guard
every turn boundary would sweep them away.
They therefore live under their own `:notice:` id namespace,
session-scoped, one slot, newest wins.
## Scoped out
`**Fast mode turned off:**` (`syncFastMode…`) is the same pattern and
deserves the same treatment, but it sits in a class method while the
failure machinery is closure-scoped inside `prompt()`. Lifting that out
is a separate change rather than something to smuggle into this one.
## Tests
`npm run build`, `npm run check`, and `npm run test:run` (**766
passed**) are clean.
The existing `model_refusal_fallback` tests still assert the `**Model
fallback:**` transcript line and still pass — they never call
`initialize`, so they exercise the no-capability path, which is exactly
the backward-compatibility guarantee.
One test added for the typed path, asserting that the advisory is
published with `severity: "warning"`, that its `safeMessage` carries the
real model ids and refusal category, that it uses the `:notice:` id
namespace, that it contains no `**` markdown lead-in, and that the
transcript line is **not** also emitted.
Client side: IJAI-993.
2026-08-12 22:16:28 +04:00
nikita-ashihmin
1f09e9a3ca
feat: surface Skill tool calls with name and kind in _meta ( #986 )
...
## Summary
- Add `skill?: string` to `ToolUpdateMeta.claudeCode`, populated from
`toolUse.input.skill` in `claudeCodeMetaFromToolUse`. Lets ACP clients
detect skill invocations from structured metadata rather than parsing
the title string.
- Add `case "Skill":` to `toolInfoFromToolUse`: sets `title` to `"Load
skill: <name>"` and returns empty content — readable fallback for
clients that don't read `_meta`.
- Add `case "Skill":` to `toolUpdateFromToolResult`: returns `{}` to
suppress the raw `"Launching skill: <name>"` result text, matching the
pattern used for `Edit`/`Write`.
## Motivation
Without this, the Skill tool falls through to the `default` case and
renders as a generic `kind: "other"` block with title `"Skill"` and an
expand control showing the raw result text. With this change, clients
that read `_meta.claudeCode.skill` can render the block with the
appropriate icon, the skill name, and no expand control.
## Test plan
- [ ] Invoke a skill (e.g. `/commits`) and confirm
`_meta.claudeCode.skill` is present in the emitted `tool_call` update
- [ ] Confirm title is `"Load skill: commits"` in the ACP event stream
- [ ] Confirm no content is emitted for the skill tool result
2026-08-12 14:51:31 +04:00
nikita-ashihmin
ec73cd8560
feat: surface resolved model name in default model option description ( #982 )
...
## Summary
- When the SDK's `"default"` model entry carries a `resolvedModel` (e.g.
`"claude-sonnet-5"`), `buildConfigOptions` now sets the option's
`description` to the human-readable `displayName` of the matching named
model (e.g. `"Claude Sonnet 5"`)
- Falls back to the raw `resolvedModel` string if no named entry shares
that resolved ID
- No behaviour change when `resolvedModel` is absent
This lets ACP clients show the actual model behind "Default" — e.g.
"Default (Claude Sonnet 5)" — instead of just "Default (recommended)".
## Test plan
- [ ] `buildConfigOptions model option resolved description > sets
description to the named model's displayName when resolvedModel matches`
- [ ] `buildConfigOptions model option resolved description > falls back
to resolvedModel itself when no named model shares it`
- [ ] `buildConfigOptions model option resolved description > leaves
description undefined when default model has no resolvedModel`
- [ ] All 753 existing tests still pass
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-08-11 13:21:42 +04:00
nikita-ashihmin
8157ee113e
feat: expose typed session failures for AIR ( #979 )
...
## Summary
- Negotiate the JetBrains AIR `sessionFailure` extension when the client
advertises an integer version `>= 1` and the capability name.
- Return turn-terminal failures only on `PromptResponse._meta`; publish
idle and asynchronous session health failures through `session/update`.
- Preserve legacy ACP behavior for clients that do not negotiate the
extension.
- Emit bounded fixed safe messages without SDK/provider details, paths,
credentials, or stack traces.
## Recovery contract
Failures use `_meta.jetbrains.air.sessionFailure` with a stable id,
monotonic revision, phase, category, source, safe message, retryability,
and optional real turn attribution. Session-scoped ids include a
consumer epoch, so replayed tombstones from a dead consumer cannot
suppress failures after restart. Stale consumers cannot publish into a
replacement session.
AIR owns localized action presentation. Claude supplies typed category
and retryability facts. Billing maps to quota exhaustion, max-output
limits map to context exhaustion, and the irreversibly closed Claude
Query reports non-retryable `transport_lost` so AIR offers New Session.
A held-open turn keeps its already recorded successful `PromptResponse`,
while worker shutdown or transport death also emits a separate
session-scoped health failure without `turnId`; the next prompt is
proven to fail because the Query is closed. Worker-shutdown remains
armed through buffered trailing frames and is classified only when EOF
proves the live tail.
## Validation
- 750 passed, 25 skipped.
- Build passed.
- ESLint passed.
- Changed files pass Prettier; the repository-wide check is blocked only
by an unrelated untracked local proposal file.
- Tests cover negotiation, taxonomy, sanitization, terminal/asynchronous
carrier separation, stale consumers, worker replay/live-tail behavior,
held turns, process/transport failure, restart-safe ids, clear
revisions, and capability-off behavior.
2026-08-10 14:15:44 +04:00
nikita-ashihmin
3df1ede89f
fix: show a pending title while Claude prepares a file ( #978 )
...
## Summary
- show `Preparing file…` instead of the bare `Write` title while
streamed input has no `file_path`
- refine the same tool call to `Write <display path>` as soon as the
path is available
- cover both partial-field refinement and
complete-input/consolidated-message delivery
## Tests
- `npm run lint`
- `npx prettier --check src/tools.ts src/tests/acp-agent.test.ts`
- `npm run build`
- `npm run test:run` — 716 passed, 25 skipped
YouTrack: https://youtrack.jetbrains.com/issue/IJAI-841
2026-08-09 22:07:58 +04:00
nikita-ashihmin
1afa940a2c
fix: preserve task plans across prompts ( #974 )
...
## Summary
- republish unfinished Task* plan snapshots when a follow-up prompt
starts
- avoid resurfacing fully completed historical plans on unrelated
prompts
- clear stale task state when Claude starts a fresh conversation
- reconcile task state from authoritative TaskList results after resume
or history compaction
- consume structured Task* outputs during live sessions and parse Claude
Code textual output when replaying history
- reject logically failed TaskUpdate results instead of persisting the
requested mutation
- keep scanning structured tool output past unrelated JSON blocks
- use Claude activeForm for in-progress TodoWrite and Task* entries
This keeps ACP clients from losing an unfinished task list at prompt
boundaries, restores state when incremental history is unavailable, and
prevents plans from leaking across conversation resets.
## Tests
- npm run test:run (713 passed, 20 skipped)
- npm run check
- npm run build
- git diff --check
2026-08-08 14:23:28 +04:00
acp-release-bot[bot]
6b405138fc
chore(main): release 0.66.0 ( #961 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.66.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.65.0...v0.66.0 )
(2026-08-07)
### Features
* **deps-dev:** Bump globals from 17.8.0 to 17.9.0 in the minor group
([#960 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/960 ))
([7f27c47 ](7f27c47c5c ))
* expose provider-neutral ACP goal extension
([#964 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/964 ))
([8b31dea ](8b31dea11b ))
### Bug Fixes
* publish and replace Claude goals reliably
([#967 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/967 ))
([f8fd3ab ](f8fd3ab822 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.66.0
2026-08-07 15:22:06 +02:00
Mark Tkachenko
8aaf608b4e
ci: fix release flow ( #971 )
2026-08-07 15:16:50 +02:00
nikita-ashihmin
f8fd3ab822
fix: publish and replace Claude goals reliably ( #967 )
...
## Summary
- publish optimistic provider-neutral goal snapshots for submitted and
steered goal commands
- advertise and implement `set`, using steering for an active turn and
an ordinary prompt while idle
- suppress stale old-goal runtime updates while replacement/clear is
pending and roll back failed commands
- keep cancellation turn-scoped and orphan-account pending steers so
stale results cannot settle the next prompt
- reject unsupported pause/resume controls without host-side fallbacks
## Validation
- `npm test -- --run` (702 passed, 20 skipped)
- `npm run check`
- `npm run build`
- regression coverage for idle/active set and clear, stale runtime
updates, command failure rollback, cancellation, and stale steer
isolation
2026-08-07 17:01:18 +04:00
Mark Tkachenko
133337ffe5
ci: simplify the release flow and make it agent-friendly ( #965 )
2026-08-07 13:46:42 +02:00
nikita-ashihmin
8b31dea11b
feat: expose provider-neutral ACP goal extension ( #964 )
...
## Summary
- advertise a provider-neutral goal extension in
`InitializeResponse._meta.goal`
- map Claude SDK `active_goal` messages to
`session_info_update._meta.goal`
- expose the shared `_session/goal` control method with the truthfully
supported `clear` action
- document the extension as a candidate shape for a future first-class
ACP goal API
## Architecture
A goal is persistent **session state**, not the lifecycle of one
`session/prompt` request. `goal.status === "active"` says that the
objective may drive more work; it does not say that a prompt is
executing now.
This keeps two independent axes:
1. **Goal state** is published asynchronously as session metadata and
may survive multiple prompt turns.
2. **Prompt activity** follows the backend's actual running/quiescent
boundaries. While a turn runs, clients use advertised steering or prompt
queueing. Once the backend is quiescent, an ordinary `session/prompt` is
valid even if the goal remains active.
The metadata is deliberately provider-neutral:
```json
{
"_meta": {
"goal": {
"version": 1,
"controlMethod": "_session/goal",
"actions": ["clear"]
}
}
}
```
State is emitted as `session_info_update._meta.goal`; `null` clears it.
The common snapshot vocabulary supports `objective`, common statuses,
timestamps in Unix milliseconds, budgets/usage, iteration count, and a
continuation reason. Each implementation emits only fields it actually
knows. This shape is intentionally close to a future typed ACP
capability/update so promotion out of `_meta` would not require a
provider-specific migration.
Control actions are capability-negotiated. The shared vocabulary
reserves `set`, `pause`, `resume`, and `clear`, but an agent advertises
only the subset it can implement with correct semantics.
## Claude mapping
The Claude runtime already emits internal `active_goal` messages,
although that message is not currently included in the public
`SDKMessage` union. The adapter handles it before the exhaustive switch:
- `condition` → `objective`
- `iterations` → `iterations`
- `set_at` → `createdAt`
- `last_reason` → `lastReason`
- `value: null` → `goal: null`
Provider bookkeeping such as `tokens_at_start` is intentionally not
exposed. Goal updates do not settle, extend, or otherwise mutate ACP
prompt lifecycle. Claude's existing Stop hook remains authoritative for
whether the backend itself continues working.
Only `clear` is advertised for out-of-band control. It submits `/goal
clear` through the existing session prompt queue, preserving the
adapter's established ordering and turn ownership. Setting a goal
remains available through `/goal <condition>` but is not advertised as a
control action because it starts the long-running Stop-hook workflow.
The companion Codex implementation is agentclientprotocol/codex-acp#371 .
## Verification
- `npm run test:run` — 692 passed, 20 skipped
- `npm run build`
- `npm run check`
2026-08-06 17:01:56 +04:00
Mark Tkachenko
bba912728f
ci: validate PR titles against release-please conventions ( #962 )
2026-08-05 19:03:29 +02:00
dependabot[bot]
7f27c47c5c
feat(deps-dev): Bump globals from 17.8.0 to 17.9.0 in the minor group ( #960 )
...
Bumps the minor group with 1 update:
[globals](https://github.com/sindresorhus/globals ).
Updates `globals` from 17.8.0 to 17.9.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/globals/releases ">globals's
releases</a>.</em></p>
<blockquote>
<h2>v17.9.0</h2>
<ul>
<li>Update globals (2026-08-01) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/348 ">#348</a>)
5a958ed</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/globals/compare/v17.8.0...v17.9.0 ">https://github.com/sindresorhus/globals/compare/v17.8.0...v17.9.0 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8e7b9358b1 "><code>8e7b935</code></a>
17.9.0</li>
<li><a
href="5a958ed060 "><code>5a958ed</code></a>
Update globals (2026-08-01) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/348 ">#348</a>)</li>
<li>See full diff in <a
href="https://github.com/sindresorhus/globals/compare/v17.8.0...v17.9.0 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-05 16:46:45 +00:00
acp-release-bot[bot]
6d608cb399
chore(main): release 0.65.0 ( #957 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.65.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.64.2...v0.65.0 )
(2026-08-05)
### Features
* **deps-dev:** Bump nanoid from 3.3.16 to 3.3.17
([#951 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/951 ))
([b965dd2 ](b965dd2191 ))
* **deps-dev:** Bump tinyexec from 1.2.4 to 1.3.0 in the minor group
([#959 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/959 ))
([15b4eb4 ](15b4eb46f3 ))
* **deps:** Bump @hono/node-server from 1.19.17 to 2.1.0
([#956 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/956 ))
([f9123f3 ](f9123f3e18 ))
* **deps:** Bump fast-uri from 3.1.4 to 3.1.5
([#952 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/952 ))
([0988438 ](0988438428 ))
* **steering:** settle a steered turn at idle, not at the interrupt
([#958 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/958 ))
([a84b810 ](a84b81080a ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.65.0
2026-08-05 18:43:03 +02:00
Andrey Bragin
a84b81080a
feat(steering): settle a steered turn at idle, not at the interrupt ( #958 )
...
Steering is delivered at priority `now`, which makes the CLI **abort**
the running cycle instead of folding the message into it. The aborted
cycle ends with an ordinary human-origin `result`, so we answered
`session/prompt` with `end_turn` while the steered work was still going
— its remaining tool calls, its answer, and its file edits then streamed
with no turn in flight.
A steered turn's results now only record their outcome, and the turn
settles at the SDK's `idle` — the only signal spanning both the
interrupted and the steered cycle. The injected message's replay tells
them apart: an idle arriving before it means the steered cycle hasn't
started, so it is swallowed. `session/cancel` and the next prompt still
settle the turn early, with the recorded stop reason.
Four steering tests cover the interrupt, an early idle, the next-prompt
hand-off, and cancel.
2026-08-05 18:41:00 +02:00
dependabot[bot]
b965dd2191
feat(deps-dev): Bump nanoid from 3.3.16 to 3.3.17 ( #951 )
...
Bumps [nanoid](https://github.com/ai/nanoid ) from 3.3.16 to 3.3.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ai/nanoid/releases ">nanoid's
releases</a>.</em></p>
<blockquote>
<h2>3.3.17</h2>
<ul>
<li>Fixed infinite loop on zero size.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ai/nanoid/blob/main/CHANGELOG.md ">nanoid's
changelog</a>.</em></p>
<blockquote>
<h2>3.3.17</h2>
<ul>
<li>Fixed infinite loop on zero size.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="73d6716813 "><code>73d6716</code></a>
Release 3.3.17 version</li>
<li><a
href="f9d13f1508 "><code>f9d13f1</code></a>
Sync 0 size behaviour with PostCSS 5</li>
<li>See full diff in <a
href="https://github.com/ai/nanoid/compare/3.3.16...3.3.17 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-05 18:40:03 +02:00
dependabot[bot]
0988438428
feat(deps): Bump fast-uri from 3.1.4 to 3.1.5 ( #952 )
...
Bumps [fast-uri](https://github.com/fastify/fast-uri ) from 3.1.4 to
3.1.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fastify/fast-uri/releases ">fast-uri's
releases</a>.</em></p>
<blockquote>
<h2>v3.1.5</h2>
<h2>⚠️ Security Warning</h2>
<p>Fix for <a
href="https://github.com/fastify/fast-uri/security/advisories/GHSA-7p8r-x3mc-p8w7 ">https://github.com/fastify/fast-uri/security/advisories/GHSA-7p8r-x3mc-p8w7 </a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5 ">https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5e179cbb46 "><code>5e179cb</code></a>
Bumped v3.1.5</li>
<li><a
href="2cad02d6ed "><code>2cad02d</code></a>
Merge commit from fork</li>
<li>See full diff in <a
href="https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-05 18:39:45 +02:00
dependabot[bot]
15b4eb46f3
feat(deps-dev): Bump tinyexec from 1.2.4 to 1.3.0 in the minor group ( #959 )
...
Bumps the minor group with 1 update:
[tinyexec](https://github.com/tinylibs/tinyexec ).
Updates `tinyexec` from 1.2.4 to 1.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tinylibs/tinyexec/releases ">tinyexec's
releases</a>.</em></p>
<blockquote>
<h2>1.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps-dev): bump the development-dependencies group with 5
updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/143 ">tinylibs/tinyexec#143</a></li>
<li>chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the
github-actions group by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/142 ">tinylibs/tinyexec#142</a></li>
<li>chore(deps-dev): bump the development-dependencies group with 3
updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/145 ">tinylibs/tinyexec#145</a></li>
<li>chore(deps-dev): bump the development-dependencies group with 6
updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/147 ">tinylibs/tinyexec#147</a></li>
<li>chore(deps-dev): bump the development-dependencies group with 3
updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/149 ">tinylibs/tinyexec#149</a></li>
<li>chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the
github-actions group by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/148 ">tinylibs/tinyexec#148</a></li>
<li>fix: disable code minification by <a
href="https://github.com/bluwy "><code>@bluwy</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/150 ">tinylibs/tinyexec#150</a></li>
<li>feat: improve NonZeroExitError message by <a
href="https://github.com/bluwy "><code>@bluwy</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/151 ">tinylibs/tinyexec#151</a></li>
<li>chore(deps-dev): bump the development-dependencies group with 4
updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/152 ">tinylibs/tinyexec#152</a></li>
<li>fix: throw NonZeroExitError when process is killed by signal by <a
href="https://github.com/naveentehrpariya "><code>@naveentehrpariya</code></a>
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/146 ">tinylibs/tinyexec#146</a></li>
<li>chore(deps-dev): bump the development-dependencies group with 5
updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/153 ">tinylibs/tinyexec#153</a></li>
<li>chore(deps): bump the github-actions group with 2 updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/158 ">tinylibs/tinyexec#158</a></li>
<li>chore(deps-dev): bump the development-dependencies group across 1
directory with 7 updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/159 ">tinylibs/tinyexec#159</a></li>
<li>fix: add a second pass of resolution with no extension by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/161 ">tinylibs/tinyexec#161</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/naveentehrpariya "><code>@naveentehrpariya</code></a>
made their first contribution in <a
href="https://redirect.github.com/tinylibs/tinyexec/pull/146 ">tinylibs/tinyexec#146</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tinylibs/tinyexec/compare/1.2.4...1.3.0 ">https://github.com/tinylibs/tinyexec/compare/1.2.4...1.3.0 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7d37564956 "><code>7d37564</code></a>
fix: add a second pass of resolution with no extension (<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/161 ">#161</a>)</li>
<li><a
href="d9d6ab0d64 "><code>d9d6ab0</code></a>
chore(deps-dev): bump the development-dependencies group across 1
directory w...</li>
<li><a
href="1ab7d9e4bd "><code>1ab7d9e</code></a>
chore(deps): bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/158 ">#158</a>)</li>
<li><a
href="8a4ccdef4f "><code>8a4ccde</code></a>
chore(deps-dev): bump the development-dependencies group with 5 updates
(<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/153 ">#153</a>)</li>
<li><a
href="dc1042654e "><code>dc10426</code></a>
fix: throw NonZeroExitError when process is killed by signal (<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/146 ">#146</a>)</li>
<li><a
href="64f05030ab "><code>64f0503</code></a>
chore(deps-dev): bump the development-dependencies group with 4 updates
(<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/152 ">#152</a>)</li>
<li><a
href="e2c6a2fe3a "><code>e2c6a2f</code></a>
feat: improve NonZeroExitError message (<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/151 ">#151</a>)</li>
<li><a
href="c84e823712 "><code>c84e823</code></a>
fix: disable code minification (<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/150 ">#150</a>)</li>
<li><a
href="d6f3b734ef "><code>d6f3b73</code></a>
chore(deps): bump actions/checkout in the github-actions group (<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/148 ">#148</a>)</li>
<li><a
href="68a1c79994 "><code>68a1c79</code></a>
chore(deps-dev): bump the development-dependencies group with 3 updates
(<a
href="https://redirect.github.com/tinylibs/tinyexec/issues/149 ">#149</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tinylibs/tinyexec/compare/1.2.4...1.3.0 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-05 18:37:46 +02:00
dependabot[bot]
fc95717b38
feat(deps): Bump the minor group across 1 directory with 8 updates ( #950 )
...
Bumps the minor group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
|
[@napi-rs/wasm-runtime](https://github.com/napi-rs/napi-rs/tree/HEAD/wasm-runtime )
| `1.2.0` | `1.2.2` |
| [brace-expansion](https://github.com/juliangruber/brace-expansion ) |
`5.0.8` | `5.0.9` |
| [flatted](https://github.com/WebReflection/flatted ) | `3.4.3` |
`3.4.4` |
| [hono](https://github.com/honojs/hono ) | `4.12.32` | `4.13.0` |
| [ip-address](https://github.com/beaugunderson/ip-address ) | `10.3.1` |
`10.4.0` |
| [jose](https://github.com/panva/jose ) | `6.2.4` | `6.2.8` |
| [postcss](https://github.com/postcss/postcss ) | `8.5.24` | `8.5.25` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) |
`8.1.5` | `8.2.0` |
Updates `@napi-rs/wasm-runtime` from 1.2.0 to 1.2.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/napi-rs/napi-rs/blob/main/wasm-runtime/CHANGELOG.md ">@napi-rs/wasm-runtime's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/napi-rs/napi-rs/compare/@napi-rs/wasm-runtime@1.2.1...@napi-rs/wasm-runtime@1.2.2 ">1.2.2</a>
(2026-07-31)</h2>
<h3>Performance Improvements</h3>
<ul>
<li><strong>wasm-runtime:</strong> remove sourcemap (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3428 ">#3428</a>)
(<a
href="0fd17fa5f0 ">0fd17fa</a>)</li>
</ul>
<h2><a
href="https://github.com/napi-rs/napi-rs/compare/@napi-rs/wasm-runtime@1.2.0...@napi-rs/wasm-runtime@1.2.1 ">1.2.1</a>
(2026-07-30)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>wasm-runtime:</strong> preserve emnapi v1 compatibility (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3426 ">#3426</a>)
(<a
href="856326b305 ">856326b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5b344c367e "><code>5b344c3</code></a>
chore(release): publish</li>
<li><a
href="0fd17fa5f0 "><code>0fd17fa</code></a>
perf(wasm-runtime): remove sourcemap (<a
href="https://github.com/napi-rs/napi-rs/tree/HEAD/wasm-runtime/issues/3428 ">#3428</a>)</li>
<li><a
href="164a1ca6b1 "><code>164a1ca</code></a>
chore(release): publish</li>
<li><a
href="856326b305 "><code>856326b</code></a>
fix(wasm-runtime): preserve emnapi v1 compatibility (<a
href="https://github.com/napi-rs/napi-rs/tree/HEAD/wasm-runtime/issues/3426 ">#3426</a>)</li>
<li>See full diff in <a
href="https://github.com/napi-rs/napi-rs/commits/@napi-rs/wasm-runtime@1.2.2/wasm-runtime ">compare
view</a></li>
</ul>
</details>
<br />
Updates `brace-expansion` from 5.0.8 to 5.0.9
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fbcf8ec75b "><code>fbcf8ec</code></a>
5.0.9</li>
<li><a
href="f6f3939e53 "><code>f6f3939</code></a>
test: cover dropping empties when only some prefixes are empty</li>
<li><a
href="688a99eeaa "><code>688a99e</code></a>
Merge commit from fork</li>
<li><a
href="c66e5f9bce "><code>c66e5f9</code></a>
docs: make the maxLength example produce a non-empty result (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/137 ">#137</a>)</li>
<li><a
href="473d3e95e9 "><code>473d3e9</code></a>
Bump linkify-it from 5.0.1 to 5.0.2 (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/128 ">#128</a>)</li>
<li>See full diff in <a
href="https://github.com/juliangruber/brace-expansion/compare/v5.0.8...v5.0.9 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `flatted` from 3.4.3 to 3.4.4
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e6f5ca700c "><code>e6f5ca7</code></a>
3.4.4</li>
<li><a
href="47f14fac0b "><code>47f14fa</code></a>
removed E_STRICT from PHP</li>
<li><a
href="4050568846 "><code>4050568</code></a>
fixced go-lang issues in CI</li>
<li><a
href="4303f4db38 "><code>4303f4d</code></a>
Merge pull request <a
href="https://redirect.github.com/WebReflection/flatted/issues/101 ">#101</a>
from mfinelli/gocriticfixes</li>
<li><a
href="106735b609 "><code>106735b</code></a>
updated package-lock.json</li>
<li><a
href="b85577f39f "><code>b85577f</code></a>
Fix go-critic errors</li>
<li>See full diff in <a
href="https://github.com/WebReflection/flatted/compare/v3.4.3...v3.4.4 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `hono` from 4.12.32 to 4.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases ">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.13.0</h2>
<p>Hono v4.13.0 is now available!</p>
<p>The highlight of this release is performance: a batch of low-level
optimizations makes the core request/response path significantly faster
— up to 1.25x on common routes in our benchmark. This release also adds
first-class support for the HTTP QUERY method, defined in <a
href="https://www.rfc-editor.org/rfc/rfc10008.html ">RFC 10008</a>, a new
Method Not Allowed middleware, and more.</p>
<h2>Performance improvements</h2>
<p>This release includes a series of small optimizations: skipping
unnecessary <code>Headers</code> allocations, replacing regex tests with
<code>indexOf</code>, allocating internal state lazily, and more.</p>
<p>Here is <a
href="https://github.com/honojs/hono/tree/main/benchmarks/fetch "><code>benchmarks/fetch</code></a>
comparing v4.12 and v4.13 (<code>ROUNDS=5 ./compare.sh</code>, Bun
1.4.0, Apple Silicon — each measurement runs in a fresh process, and the
variant order is reversed every round to avoid warm-up bias):</p>
<table>
<thead>
<tr>
<th>Benchmark</th>
<th align="right">v4.12</th>
<th align="right">v4.13</th>
<th align="right">Speedup</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ping</code> — <code>GET /</code></td>
<td align="right">165.83 ns</td>
<td align="right">163.99 ns</td>
<td align="right">1.01x</td>
</tr>
<tr>
<td><code>query</code> — <code>GET /id/1?name=bun</code></td>
<td align="right">674.40 ns</td>
<td align="right">616.99 ns</td>
<td align="right"><strong>1.09x</strong></td>
</tr>
<tr>
<td><code>json</code> — <code>GET /user</code></td>
<td align="right">528.99 ns</td>
<td align="right">422.44 ns</td>
<td align="right"><strong>1.25x</strong></td>
</tr>
<tr>
<td><code>body</code> — <code>POST /json</code></td>
<td align="right">1.16 µs</td>
<td align="right">1.00 µs</td>
<td align="right"><strong>1.15x</strong></td>
</tr>
</tbody>
</table>
<p>The individual changes:</p>
<ul>
<li>perf(context): iterate the header record with <code>for..in</code>
<a
href="https://redirect.github.com/honojs/hono/pull/5118 ">honojs/hono#5118</a></li>
<li>perf(url): replace regex tests with <code>indexOf</code> <a
href="https://redirect.github.com/honojs/hono/pull/5121 ">honojs/hono#5121</a></li>
<li>perf(context): skip <code>Headers</code> creation when there are no
headers to merge <a
href="https://redirect.github.com/honojs/hono/pull/5122 ">honojs/hono#5122</a></li>
<li>perf(urls): refactor <code>tryDecodeURIComponent</code> <a
href="https://redirect.github.com/honojs/hono/pull/5158 ">honojs/hono#5158</a></li>
<li>perf(request): allocate <code>#validatedData</code> lazily <a
href="https://redirect.github.com/honojs/hono/pull/5175 ">honojs/hono#5175</a></li>
<li>perf(request): probe the body cache without allocating <a
href="https://redirect.github.com/honojs/hono/pull/5176 ">honojs/hono#5176</a></li>
</ul>
<p>In addition, the RegExpRouter rewrite described below makes route
registration plus the first match roughly 20% faster.</p>
<p>Thanks <a
href="https://github.com/kibertoad "><code>@kibertoad</code></a> for the
contributions!</p>
<h2>First-class QUERY method support</h2>
<p>The QUERY method — a safe, idempotent method that carries a request
body — is now a first-class citizen in Hono. You can define QUERY
handlers with <code>app.query()</code>:</p>
<pre lang="ts"><code>const app = new Hono()
<p>app.query('/search', async (c) => {<br />
const conditions = await c.req.json()<br />
return c.json(await search(conditions))<br />
})<br />
</code></pre></p>
<p>Thanks <a
href="https://github.com/shellhaki "><code>@shellhaki</code></a>!</p>
<h2>QUERY support across built-in middleware</h2>
<p>The built-in middleware has been updated to handle QUERY requests
properly:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="192768fbaf "><code>192768f</code></a>
4.13.0</li>
<li><a
href="b0c2d90eb0 "><code>b0c2d90</code></a>
Merge pull request <a
href="https://redirect.github.com/honojs/hono/issues/5154 ">#5154</a>
from honojs/next</li>
<li><a
href="8f07028270 "><code>8f07028</code></a>
fix(compress): set Vary: Accept-Encoding on negotiated responses (<a
href="https://redirect.github.com/honojs/hono/issues/5137 ">#5137</a>)</li>
<li><a
href="8a0b18fd9b "><code>8a0b18f</code></a>
feat(reg-exp-router): throw UnsupportedPathError during route
registration (#...</li>
<li><a
href="3feb3551d4 "><code>3feb355</code></a>
fix(jsx): allow a function component to return an array (<a
href="https://redirect.github.com/honojs/hono/issues/5179 ">#5179</a>)</li>
<li><a
href="5d911d2ab7 "><code>5d911d2</code></a>
feat(utils/headers): add HTTP fields newly registered with IANA (<a
href="https://redirect.github.com/honojs/hono/issues/5153 ">#5153</a>)</li>
<li><a
href="30277aee0d "><code>30277ae</code></a>
feat(jwt,jwk): add a configurable WWW-Authenticate realm (<a
href="https://redirect.github.com/honojs/hono/issues/5141 ">#5141</a>)</li>
<li><a
href="1f707c5637 "><code>1f707c5</code></a>
feat(middleware): add method-not-allowed middleware (<a
href="https://redirect.github.com/honojs/hono/issues/5132 ">#5132</a>)</li>
<li><a
href="2df0b47659 "><code>2df0b47</code></a>
feat(jsx): add React-compatible overloads to useRef (<a
href="https://redirect.github.com/honojs/hono/issues/5063 ">#5063</a>)</li>
<li><a
href="3bc96ba915 "><code>3bc96ba</code></a>
feat(cache): add first-class support for QUERY requests (<a
href="https://redirect.github.com/honojs/hono/issues/5119 ">#5119</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.12.32...v4.13.0 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `ip-address` from 10.3.1 to 10.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/beaugunderson/ip-address/releases ">ip-address's
releases</a>.</em></p>
<blockquote>
<h2>v10.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add GitHub Actions CI by <a
href="https://github.com/beaugunderson "><code>@beaugunderson</code></a>
in <a
href="https://redirect.github.com/beaugunderson/ip-address/pull/213 ">beaugunderson/ip-address#213</a></li>
<li>Keep the package loadable on node 12, and enforce it by <a
href="https://github.com/beaugunderson "><code>@beaugunderson</code></a>
in <a
href="https://redirect.github.com/beaugunderson/ip-address/pull/216 ">beaugunderson/ip-address#216</a></li>
<li>Validate the byte arrays Address6 is given by <a
href="https://github.com/beaugunderson "><code>@beaugunderson</code></a>
in <a
href="https://redirect.github.com/beaugunderson/ip-address/pull/217 ">beaugunderson/ip-address#217</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/beaugunderson/ip-address/compare/v10.3.1...v10.4.0 ">https://github.com/beaugunderson/ip-address/compare/v10.3.1...v10.4.0 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fbb8db28f1 "><code>fbb8db2</code></a>
10.4.0</li>
<li><a
href="45a2b11ec2 "><code>45a2b11</code></a>
Validate the byte arrays Address6 is given (<a
href="https://redirect.github.com/beaugunderson/ip-address/issues/217 ">#217</a>)</li>
<li><a
href="bac8810b39 "><code>bac8810</code></a>
Keep the package loadable on node 12, and enforce it (<a
href="https://redirect.github.com/beaugunderson/ip-address/issues/216 ">#216</a>)</li>
<li><a
href="9b3d8488d1 "><code>9b3d848</code></a>
Add a security policy and a README section on security posture</li>
<li><a
href="e84a7b381d "><code>e84a7b3</code></a>
Order the README API reference Address4, Address6, AddressError</li>
<li><a
href="015160b85e "><code>015160b</code></a>
Collapse each class in the README API reference</li>
<li><a
href="34061a897d "><code>34061a8</code></a>
Pin checkout and setup-node to commits in the release job</li>
<li><a
href="c5fae5d9bd "><code>c5fae5d</code></a>
Pin action-gh-release to a commit and move it to 3.0.2</li>
<li><a
href="e0ef048419 "><code>e0ef048</code></a>
Replace CircleCI with GitHub Actions</li>
<li><a
href="5e3ceb779a "><code>5e3ceb7</code></a>
Add GitHub Actions CI across Node 20, 22, 24 and 25 (<a
href="https://redirect.github.com/beaugunderson/ip-address/issues/213 ">#213</a>)</li>
<li>See full diff in <a
href="https://github.com/beaugunderson/ip-address/compare/v10.3.1...v10.4.0 ">compare
view</a></li>
</ul>
</details>
<details>
<summary>Install script changes</summary>
<p>This version adds <code>prepare</code> script that runs during
installation. Review the package contents before updating.</p>
</details>
<br />
Updates `jose` from 6.2.4 to 6.2.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/panva/jose/releases ">jose's
releases</a>.</em></p>
<blockquote>
<h2>v6.2.8</h2>
<h3>Fixes</h3>
<ul>
<li>enforce a single recipient when decrypting dir and ECDH-ES (<a
href="505c3833ec ">505c383</a>)</li>
<li>reject a non-string "alg" in EmbeddedJWK (<a
href="714f870434 ">714f870</a>)</li>
</ul>
<h3>Refactor</h3>
<ul>
<li>index the JWS and JWE registries without a wrapper (<a
href="925f3bbbee ">925f3bb</a>)</li>
<li>name the "alg" source in unsupported algorithm failures
(<a
href="1500459c6f ">1500459</a>)</li>
</ul>
<h2>v6.2.7</h2>
<h3>Fixes</h3>
<ul>
<li>require own JOSE properties for presence checks (<a
href="90ab09c461 ">90ab09c</a>)</li>
</ul>
<h3>Refactor</h3>
<ul>
<li>reduce bundle size (<a
href="767d7f12d0 ">767d7f1</a>)</li>
</ul>
<h2>v6.2.6</h2>
<h3>Fixes</h3>
<ul>
<li><strong>types:</strong> accept host CryptoKey declarations (<a
href="b48a15b396 ">b48a15b</a>)</li>
</ul>
<h2>v6.2.5</h2>
<h3>Fixes</h3>
<ul>
<li>compare claim values for falsy validation options (<a
href="eb8695699c ">eb86956</a>)</li>
<li>forward key management parameters for a single JWE recipient (<a
href="2d4f8014e0 ">2d4f801</a>)</li>
<li>handle a zero-length JWE additional authenticated data (<a
href="16ca398103 ">16ca398</a>)</li>
<li>reject a generateKeyPair crv option the algorithm does not imply (<a
href="76364e9f15 ">76364e9</a>)</li>
<li>reject an unencoded payload in the JWS Compact Serialization (<a
href="01d053f3b0 ">01d053f</a>)</li>
<li>reject characters outside the Base64URL alphabet (<a
href="0ebb97158a ">0ebb971</a>),
references <a
href="https://redirect.github.com/panva/jose/issues/879 ">#879</a></li>
<li>reject duplicate "crit" values when producing (<a
href="31d60e1542 ">31d60e1</a>)</li>
<li>reject invalid UTF-8 in JOSE Headers and JWT Claims Sets (<a
href="5df3fedcc0 ">5df3fed</a>)</li>
<li>reject truncated ASN.1 key data (<a
href="7a16c66b9f ">7a16c66</a>)</li>
<li>surface non-ASCII token segments as JOSE errors (<a
href="194fe11450 ">194fe11</a>)</li>
<li><strong>types:</strong> correct JWK and CryptoKey types (<a
href="62a196dc8e ">62a196d</a>)</li>
<li><strong>types:</strong> correct key resolver and JWT header types
(<a
href="e95f8c4086 ">e95f8c4</a>)</li>
<li>validate the clockTolerance and currentDate options are finite (<a
href="ab2f18dad4 ">ab2f18d</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>correct subpaths and API documentation (<a
href="2daec38296 ">2daec38</a>)</li>
<li>document consumer-supplied type parameters (<a
href="9e9f66c86b ">9e9f66c</a>)</li>
<li>stop claiming the JWK "use" parameter is used during
import (<a
href="47a07b2f95 ">47a07b2</a>)</li>
<li>update CHANGELOG.md (<a
href="fc51bf56f9 ">fc51bf5</a>)</li>
</ul>
<h3>Refactor</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/panva/jose/blob/main/CHANGELOG.md ">jose's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/panva/jose/compare/v6.2.7...v6.2.8 ">6.2.8</a>
(2026-08-03)</h2>
<h3>Fixes</h3>
<ul>
<li>enforce a single recipient when decrypting dir and ECDH-ES (<a
href="505c3833ec ">505c383</a>)</li>
<li>reject a non-string "alg" in EmbeddedJWK (<a
href="714f870434 ">714f870</a>)</li>
</ul>
<h3>Refactor</h3>
<ul>
<li>index the JWS and JWE registries without a wrapper (<a
href="925f3bbbee ">925f3bb</a>)</li>
<li>name the "alg" source in unsupported algorithm failures
(<a
href="1500459c6f ">1500459</a>)</li>
</ul>
<h2><a
href="https://github.com/panva/jose/compare/v6.2.6...v6.2.7 ">6.2.7</a>
(2026-08-01)</h2>
<h3>Fixes</h3>
<ul>
<li>require own JOSE properties for presence checks (<a
href="90ab09c461 ">90ab09c</a>)</li>
</ul>
<h3>Refactor</h3>
<ul>
<li>reduce bundle size (<a
href="767d7f12d0 ">767d7f1</a>)</li>
</ul>
<h2><a
href="https://github.com/panva/jose/compare/v6.2.5...v6.2.6 ">6.2.6</a>
(2026-07-31)</h2>
<h3>Fixes</h3>
<ul>
<li><strong>types:</strong> accept host CryptoKey declarations (<a
href="b48a15b396 ">b48a15b</a>)</li>
</ul>
<h2><a
href="https://github.com/panva/jose/compare/v6.2.4...v6.2.5 ">6.2.5</a>
(2026-07-29)</h2>
<h3>Fixes</h3>
<ul>
<li>compare claim values for falsy validation options (<a
href="eb8695699c ">eb86956</a>)</li>
<li>forward key management parameters for a single JWE recipient (<a
href="2d4f8014e0 ">2d4f801</a>)</li>
<li>handle a zero-length JWE additional authenticated data (<a
href="16ca398103 ">16ca398</a>)</li>
<li>reject a generateKeyPair crv option the algorithm does not imply (<a
href="76364e9f15 ">76364e9</a>)</li>
<li>reject an unencoded payload in the JWS Compact Serialization (<a
href="01d053f3b0 ">01d053f</a>)</li>
<li>reject characters outside the Base64URL alphabet (<a
href="0ebb97158a ">0ebb971</a>),
references <a
href="https://redirect.github.com/panva/jose/issues/879 ">#879</a></li>
<li>reject duplicate "crit" values when producing (<a
href="31d60e1542 ">31d60e1</a>)</li>
<li>reject invalid UTF-8 in JOSE Headers and JWT Claims Sets (<a
href="5df3fedcc0 ">5df3fed</a>)</li>
<li>reject truncated ASN.1 key data (<a
href="7a16c66b9f ">7a16c66</a>)</li>
<li>surface non-ASCII token segments as JOSE errors (<a
href="194fe11450 ">194fe11</a>)</li>
<li><strong>types:</strong> correct JWK and CryptoKey types (<a
href="62a196dc8e ">62a196d</a>)</li>
<li><strong>types:</strong> correct key resolver and JWT header types
(<a
href="e95f8c4086 ">e95f8c4</a>)</li>
<li>validate the clockTolerance and currentDate options are finite (<a
href="ab2f18dad4 ">ab2f18d</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>correct subpaths and API documentation (<a
href="2daec38296 ">2daec38</a>)</li>
<li>document consumer-supplied type parameters (<a
href="9e9f66c86b ">9e9f66c</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8b768eb8d2 "><code>8b768eb</code></a>
chore(release): 6.2.8</li>
<li><a
href="1500459c6f "><code>1500459</code></a>
refactor: name the "alg" source in unsupported algorithm
failures</li>
<li><a
href="714f870434 "><code>714f870</code></a>
fix: reject a non-string "alg" in EmbeddedJWK</li>
<li><a
href="925f3bbbee "><code>925f3bb</code></a>
refactor: index the JWS and JWE registries without a wrapper</li>
<li><a
href="505c3833ec "><code>505c383</code></a>
fix: enforce a single recipient when decrypting dir and ECDH-ES</li>
<li><a
href="514831da55 "><code>514831d</code></a>
chore(deps): bump the actions group with 3 updates</li>
<li><a
href="45965db443 "><code>45965db</code></a>
chore: cleanup after release</li>
<li><a
href="60b941f6d5 "><code>60b941f</code></a>
chore(release): 6.2.7</li>
<li><a
href="90ab09c461 "><code>90ab09c</code></a>
fix: require own JOSE properties for presence checks</li>
<li><a
href="767d7f12d0 "><code>767d7f1</code></a>
refactor: reduce bundle size</li>
<li>Additional commits viewable in <a
href="https://github.com/panva/jose/compare/v6.2.4...v6.2.8 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `postcss` from 8.5.24 to 8.5.25
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/releases ">postcss's
releases</a>.</em></p>
<blockquote>
<h2>8.5.25</h2>
<ul>
<li>Fixed 8.5.17 visitor regression.</li>
<li>Fixed <code>list.split()</code> for non-string values (by <a
href="https://github.com/amir-rezaei "><code>@amir-rezaei</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md ">postcss's
changelog</a>.</em></p>
<blockquote>
<h2>8.5.25</h2>
<ul>
<li>Fixed 8.5.17 visitor regression.</li>
<li>Fixed <code>list.split()</code> for non-string values (by <a
href="https://github.com/amir-rezaei "><code>@amir-rezaei</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="08c989c43c "><code>08c989c</code></a>
Release 8.5.25 version</li>
<li><a
href="24f6814716 "><code>24f6814</code></a>
Fix 8.5.17 visitor regression</li>
<li><a
href="f2fa53f11d "><code>f2fa53f</code></a>
Add supply chain security requirement to PostCSS plugin guide</li>
<li><a
href="10edf0b060 "><code>10edf0b</code></a>
fix: return empty array for empty string in list.split (<a
href="https://redirect.github.com/postcss/postcss/issues/2121 ">#2121</a>)</li>
<li>See full diff in <a
href="https://github.com/postcss/postcss/compare/8.5.24...8.5.25 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `vite` from 8.1.5 to 8.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases ">vite's
releases</a>.</em></p>
<blockquote>
<h2>create-vite@8.2.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/create-vite@8.2.0/packages/create-vite/CHANGELOG.md ">CHANGELOG.md</a>
for details.</p>
<h2>plugin-legacy@8.2.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/plugin-legacy@8.2.0/packages/plugin-legacy/CHANGELOG.md ">CHANGELOG.md</a>
for details.</p>
<h2>v8.2.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v8.2.0/packages/vite/CHANGELOG.md ">CHANGELOG.md</a>
for details.</p>
<h2>v8.2.0-beta.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v8.2.0-beta.0/packages/vite/CHANGELOG.md ">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md ">vite's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/vitejs/vite/compare/v8.2.0-beta.0...v8.2.0 ">8.2.0</a>
(2026-07-30)</h2>
<h3>Features</h3>
<ul>
<li>add <code>input</code> to <code>server.fs.allow</code> (<a
href="https://redirect.github.com/vitejs/vite/issues/23035 ">#23035</a>)
(<a
href="95a3cdab83 ">95a3cda</a>)</li>
<li><strong>bundled-dev:</strong> reload once after rebuild instead of
via the fallback page (<a
href="https://redirect.github.com/vitejs/vite/issues/23106 ">#23106</a>)
(<a
href="b24381d741 ">b24381d</a>)</li>
<li><strong>bundled-dev:</strong> support worker file update accepted by
HMR (<a
href="https://redirect.github.com/vitejs/vite/issues/23068 ">#23068</a>)
(<a
href="0d04351fdc ">0d04351</a>)</li>
<li><strong>config:</strong> include column in config incompatibility
location (<a
href="https://redirect.github.com/vitejs/vite/issues/23064 ">#23064</a>)
(<a
href="8a24572694 ">8a24572</a>)</li>
<li><strong>dev:</strong> resolve interface name for explicit host in
network URLs (<a
href="https://redirect.github.com/vitejs/vite/issues/22965 ">#22965</a>)
(<a
href="3ac77d9dd7 ">3ac77d9</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>bundledDev:</strong> print build errors to the terminal when
an HMR update fails (<a
href="https://redirect.github.com/vitejs/vite/issues/23024 ">#23024</a>)
(<a
href="41c465896e ">41c4658</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/23069 ">#23069</a>)
(<a
href="4c07b74416 ">4c07b74</a>)</li>
<li><strong>hmr:</strong> preserve environment snapshot during server
restart (<a
href="https://redirect.github.com/vitejs/vite/issues/22992 ">#22992</a>)
(<a
href="b1186c36d0 ">b1186c3</a>)</li>
<li><strong>importAnalysis:</strong> interop imports injected into
optimized dep files by plugins (<a
href="https://redirect.github.com/vitejs/vite/issues/23029 ">#23029</a>)
(<a
href="8c2a87d41f ">8c2a87d</a>)</li>
<li><strong>module-runner:</strong> keep stack trace interception
working when <code>Object.prototype</code> is frozen (<a
href="https://redirect.github.com/vitejs/vite/issues/23073 ">#23073</a>)
(<a
href="599c5b02a8 ">599c5b0</a>)</li>
<li><strong>server:</strong> strip base in indexHtml module graph lookup
(<a
href="https://redirect.github.com/vitejs/vite/issues/22932 ">#22932</a>)
(<a
href="fa005d19af ">fa005d1</a>)</li>
<li>support resolving top-level input option with plugins (<a
href="https://redirect.github.com/vitejs/vite/issues/23101 ">#23101</a>)
(<a
href="41df81a6a4 ">41df81a</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>config:</strong> correct cacheDir default fallback
description (<a
href="https://redirect.github.com/vitejs/vite/issues/23060 ">#23060</a>)
(<a
href="aafa103af5 ">aafa103</a>)</li>
</ul>
<h3>Tests</h3>
<ul>
<li>config CJS module vars in ESM case (<a
href="https://redirect.github.com/vitejs/vite/issues/23010 ">#23010</a>)
(<a
href="d8cd388302 ">d8cd388</a>)</li>
</ul>
<h2><a
href="https://github.com/vitejs/vite/compare/v8.1.5...v8.2.0-beta.0 ">8.2.0-beta.0</a>
(2026-07-22)</h2>
<h3>Features</h3>
<ul>
<li>add <code>input</code> option (<a
href="https://redirect.github.com/vitejs/vite/issues/22642 ">#22642</a>)
(<a
href="9beae37d72 ">9beae37</a>)</li>
<li><strong>config:</strong> warn features incompatible with native
loader in bundle loader (<a
href="https://redirect.github.com/vitejs/vite/issues/22850 ">#22850</a>)
(<a
href="05302b0726 ">05302b0</a>)</li>
<li><strong>css:</strong> export PostCSS config type for type-safe
configs (<a
href="https://redirect.github.com/vitejs/vite/issues/22792 ">#22792</a>)
(<a
href="302c755a81 ">302c755</a>)</li>
<li><strong>dev:</strong> label network URLs with their interface name
(<a
href="https://redirect.github.com/vitejs/vite/issues/22830 ">#22830</a>)
(<a
href="78accc42a5 ">78accc4</a>)</li>
<li><strong>optimizer:</strong> support aube lockfile (<a
href="https://redirect.github.com/vitejs/vite/issues/22813 ">#22813</a>)
(<a
href="6319827116 ">6319827</a>)</li>
<li><strong>optimizer:</strong> support nub lockfile (<a
href="https://redirect.github.com/vitejs/vite/issues/22891 ">#22891</a>)
(<a
href="65d3604f6f ">65d3604</a>)</li>
<li>update rolldown-related dependencies and use client-side HMR in
bundled-dev (<a
href="https://redirect.github.com/vitejs/vite/issues/22961 ">#22961</a>)
(<a
href="960e9efbc1 ">960e9ef</a>)</li>
<li><strong>wasm:</strong> expand test suite, unwrap WebAssembly.Global
and enable js-string builtins (<a
href="https://redirect.github.com/vitejs/vite/issues/22674 ">#22674</a>)
(<a
href="9e79b51579 ">9e79b51</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>build:</strong> map CSS chunks in chunk import maps (fix <a
href="https://redirect.github.com/vitejs/vite/issues/22946 ">#22946</a>)
(<a
href="https://redirect.github.com/vitejs/vite/issues/22947 ">#22947</a>)
(<a
href="e16ff3a119 ">e16ff3a</a>)</li>
<li><strong>config:</strong> exclude virtual modules from native config
compat check (<a
href="https://redirect.github.com/vitejs/vite/issues/22979 ">#22979</a>)
(<a
href="2ced1fe4e4 ">2ced1fe</a>)</li>
<li><strong>css:</strong> rewrite urls in OnceExit-injected content (<a
href="https://redirect.github.com/vitejs/vite/issues/22983 ">#22983</a>)
(<a
href="abb793e18c ">abb793e</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/22985 ">#22985</a>)
(<a
href="04f345b370 ">04f345b</a>)</li>
<li><strong>deps:</strong> update dependency magic-string to v1 (<a
href="https://redirect.github.com/vitejs/vite/issues/22998 ">#22998</a>)
(<a
href="c60b4d7cdb ">c60b4d7</a>)</li>
<li><strong>hmr:</strong> remove hot data after prune (<a
href="https://redirect.github.com/vitejs/vite/issues/23002 ">#23002</a>)
(<a
href="be9631658f ">be96316</a>)</li>
<li>resolve root to real path (<a
href="https://redirect.github.com/vitejs/vite/issues/22832 ">#22832</a>)
(<a
href="55bba7bbd9 ">55bba7b</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="24a611f1c8 "><code>24a611f</code></a>
release: v7.2.4</li>
<li><a
href="2d66b7b14a "><code>2d66b7b</code></a>
fix: revert "perf(deps): replace debug with obug (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21107 ">#21107</a>)"</li>
<li><a
href="a668014dba "><code>a668014</code></a>
release: v7.2.3</li>
<li><a
href="acfe939e1f "><code>acfe939</code></a>
perf(deps): replace debug with obug (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21107 ">#21107</a>)</li>
<li><a
href="4f8171eb30 "><code>4f8171e</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21128 ">#21128</a>)</li>
<li><a
href="5029720845 "><code>5029720</code></a>
chore(deps): update rolldown-related dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21127 ">#21127</a>)</li>
<li><a
href="5909efd8fb "><code>5909efd</code></a>
fix: allow multiple <code>bindCLIShortcuts</code> calls with shortcut
merging (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21103 ">#21103</a>)</li>
<li><a
href="39a0a15fd2 "><code>39a0a15</code></a>
chore(deps): update rolldown-related dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21095 ">#21095</a>)</li>
<li><a
href="6a34ac3422 "><code>6a34ac3</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21096 ">#21096</a>)</li>
<li><a
href="02ceaec45e "><code>02ceaec</code></a>
chore(deps): update dependency <code>@rollup/plugin-commonjs</code> to
v29 (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/21099 ">#21099</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite/commits/create-vite@8.2.0/packages/vite ">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-04 16:58:37 +02:00
dependabot[bot]
f9123f3e18
feat(deps): Bump @hono/node-server from 1.19.17 to 2.1.0 ( #956 )
...
Bumps [@hono/node-server](https://github.com/honojs/node-server ) from
1.19.17 to 2.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/node-server/releases ">@hono/node-server's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: add Early Hints (HTTP 103) middleware by <a
href="https://github.com/bilal-azam "><code>@bilal-azam</code></a> in <a
href="https://redirect.github.com/honojs/node-server/pull/378 ">honojs/node-server#378</a></li>
<li>fix(listener): avoid uncaught error when force-closing a
non-standard socket by <a
href="https://github.com/mohamedramadan14 "><code>@mohamedramadan14</code></a>
in <a
href="https://redirect.github.com/honojs/node-server/pull/383 ">honojs/node-server#383</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/bilal-azam "><code>@bilal-azam</code></a> made
their first contribution in <a
href="https://redirect.github.com/honojs/node-server/pull/378 ">honojs/node-server#378</a></li>
<li><a
href="https://github.com/mohamedramadan14 "><code>@mohamedramadan14</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/node-server/pull/383 ">honojs/node-server#383</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/node-server/compare/v2.0.12...v2.1.0 ">https://github.com/honojs/node-server/compare/v2.0.12...v2.1.0 </a></p>
<h2>v2.0.12</h2>
<h2>What's Changed</h2>
<ul>
<li>test: replace supertest by <a
href="https://github.com/BlankParticle "><code>@BlankParticle</code></a>
in <a
href="https://redirect.github.com/honojs/node-server/pull/379 ">honojs/node-server#379</a></li>
<li>fix(response): copy headers when init is a foreign Response by <a
href="https://github.com/yusukebe "><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/node-server/pull/382 ">honojs/node-server#382</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/node-server/compare/v2.0.11...v2.0.12 ">https://github.com/honojs/node-server/compare/v2.0.11...v2.0.12 </a></p>
<h2>v2.0.11</h2>
<h2>What's Changed</h2>
<ul>
<li>test: use a custom helper for path traversal tests by <a
href="https://github.com/BlankParticle "><code>@BlankParticle</code></a>
in <a
href="https://redirect.github.com/honojs/node-server/pull/377 ">honojs/node-server#377</a></li>
<li>perf(request): fast-path QUERY methods by <a
href="https://github.com/usualoma "><code>@usualoma</code></a> in <a
href="https://redirect.github.com/honojs/node-server/pull/376 ">honojs/node-server#376</a></li>
<li>perf(request): fast-path PATCH method by <a
href="https://github.com/yusukebe "><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/node-server/pull/380 ">honojs/node-server#380</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/node-server/compare/v2.0.10...v2.0.11 ">https://github.com/honojs/node-server/compare/v2.0.10...v2.0.11 </a></p>
<h2>v2.0.10</h2>
<h2>Security fixes</h2>
<p>This release includes a fix for the following security issue:</p>
<h3>Unauthenticated memory-leak DoS via aborted WebSocket handshake</h3>
<p>Affects: <code>upgradeWebSocket</code>. A WebSocket upgrade request
with a missing or malformed <code>Sec-WebSocket-Key</code> header leaked
the request's <code>IncomingMessage</code> and left a promise pending,
even though no connection was established. Since the route is reachable
pre-handshake without authentication, an attacker could flood it to
gradually exhaust memory. <a
href="https://github.com/honojs/node-server/security/advisories/GHSA-9mqv-5hh9-4cgg ">GHSA-9mqv-5hh9-4cgg</a></p>
<hr />
<p>Users of <code>upgradeWebSocket</code> are encouraged to upgrade to
this version.</p>
<h2>v2.0.9</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(websocket): polyfill missing ErrorEvent global by <a
href="https://github.com/otnc "><code>@otnc</code></a> in <a
href="https://redirect.github.com/honojs/node-server/pull/371 ">honojs/node-server#371</a></li>
<li>fix(serve-static): correct Range header parsing edge cases by <a
href="https://github.com/otnc "><code>@otnc</code></a> in <a
href="https://redirect.github.com/honojs/node-server/pull/372 ">honojs/node-server#372</a></li>
<li>fix: recover complete request bodies after client disconnect by <a
href="https://github.com/usualoma "><code>@usualoma</code></a> in <a
href="https://redirect.github.com/honojs/node-server/pull/375 ">honojs/node-server#375</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/otnc "><code>@otnc</code></a> made their
first contribution in <a
href="https://redirect.github.com/honojs/node-server/pull/371 ">honojs/node-server#371</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="82ba34e6b1 "><code>82ba34e</code></a>
2.1.0</li>
<li><a
href="1f2909a5ef "><code>1f2909a</code></a>
fix(listener): avoid uncaught error when force-closing a non-standard
socket ...</li>
<li><a
href="977a242557 "><code>977a242</code></a>
feat: add Early Hints (HTTP 103) middleware (<a
href="https://redirect.github.com/honojs/node-server/issues/378 ">#378</a>)</li>
<li><a
href="a813b6cdaa "><code>a813b6c</code></a>
2.0.12</li>
<li><a
href="caf48bafd4 "><code>caf48ba</code></a>
fix(response): copy headers when init is a foreign Response (<a
href="https://redirect.github.com/honojs/node-server/issues/382 ">#382</a>)</li>
<li><a
href="3b1dd68758 "><code>3b1dd68</code></a>
test: replace supertest (<a
href="https://redirect.github.com/honojs/node-server/issues/379 ">#379</a>)</li>
<li><a
href="834e54f15c "><code>834e54f</code></a>
2.0.11</li>
<li><a
href="ba72bcd8c5 "><code>ba72bcd</code></a>
perf(request): fast-path PATCH method (<a
href="https://redirect.github.com/honojs/node-server/issues/380 ">#380</a>)</li>
<li><a
href="962baa4638 "><code>962baa4</code></a>
perf(request): fast-path QUERY methods (<a
href="https://redirect.github.com/honojs/node-server/issues/376 ">#376</a>)</li>
<li><a
href="62284d6593 "><code>62284d6</code></a>
test: use a custom helper for path traversal tests (<a
href="https://redirect.github.com/honojs/node-server/issues/377 ">#377</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/node-server/compare/v1.19.17...v2.1.0 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/agentclientprotocol/claude-agent-acp/network/alerts ).
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-04 16:27:34 +02:00
Andrey Bragin
88da9d800f
Add an interactive console ACP simple client example ( #936 )
...
## Description
Testing this agent means wiring it into an editor's ACP integration,
which is an overkill when you just want to watch the JSON and reply with
JSON. This adds a second example next to `examples/steering.ts`: a
minimal interactive ACP client that spawns the built agent, prints every
JSON-RPC message in both directions, and turns what you type into
prompts.
```
npm run build
npm run example:simple-client
```
All four ways a client can get a message to this agent are reachable
from the prompt"
| Input | Wire |
| --- | --- |
| `<text>` | `session/prompt`; buffered client-side if a turn is running
|
| `!steer <text>` | `_session/steering`, injected into the running turn
|
| `!queue <text>` | `session/prompt` sent mid-turn, so the agent queues
it |
| `!cancel`, Ctrl-C | `session/cancel` |
## Additional options
* `--debug-port=<port>` rebuilds with source maps and starts the agent
under
* `--inspect-brk`, paused, so a debugger can attach and step through
`src/*.ts` —
replacing a hand-written editor run configuration. Teardown cancels any
live
turn, closes the agent's stdin (its clean-exit path), waits, and only
then
closes the connection, so neither side dies of EPIPE and nothing is
orphaned.
2026-08-04 15:10:58 +02:00
nikita-ashihmin
08e0e7f14e
chore: allow registry-only release recovery ( #947 )
...
npm may accept a package before the registry update stage can run, and
repeating the workflow would attempt to republish the same immutable
version.
Add an opt-out for npm publishing on manual dispatch so the repository
GitHub App can safely retry only the registry update. The default
remains `true`, preserving the normal manual release path.
Validation: Prettier workflow check.
2026-08-02 23:55:45 +04:00
nikita-ashihmin
11a3193574
chore: preserve registry update after manual publish ( #946 )
...
A skipped `release-please` job propagates to downstream jobs during a
manual release, even when npm publishing succeeds through an `always()`
condition.
Explicitly evaluate the npm job result so successful manual publications
continue to update the agent registry.
Validation: Prettier workflow check.
2026-08-02 23:53:19 +04:00
nikita-ashihmin
c98141201e
chore: recover 0.64.2 release publishing ( #945 )
...
Release-please cannot process the already-merged, untagged release PR
#943 .
This adds an explicit workflow dispatch path for publishing a supplied
tag or commit while preserving the normal push-driven release flow, and
restores the 0.64.2 release metadata for the recovery tag.
After merge, I will create `v0.64.2` at this commit and dispatch the
publish workflow for that tag.
Validation:
- ESLint
- Prettier
- TypeScript build
- Vitest: 684 passed, 20 skipped
v0.64.2
2026-08-02 23:49:28 +04:00
nikita-ashihmin
76009f1ede
fix: prepare ExitPlanMode revert release ( #944 )
...
Restore the last published version metadata so release-please can generate the real 0.64.2 release.
2026-08-02 23:45:07 +04:00
nikita-ashihmin
fd60fc2b31
chore(main): release 0.64.2 ( #943 )
...
Release 0.64.2 with the ExitPlanMode plan-update revert from #942 .
2026-08-02 23:42:27 +04:00
nikita-ashihmin
4302a4b0b6
Revert ExitPlanMode Markdown plan updates ( #942 )
...
## Summary
- revert the ExitPlanMode plan_update integration from #938
- restore the previous single switch_mode tool-call representation
- keep plan Markdown and approval state on the same transcript item
## Why
Clients currently receive both a plan_update and the separate tool call
required by requestPermission. Without a protocol-level link between
those entries, clients can render the same final plan twice. Returning
to the legacy representation avoids the duplicate while preserving the
existing approval flow.
## Testing
- pnpm exec vitest run src/tests/tools.test.ts
src/tests/acp-agent.test.ts src/tests/session-config-options.test.ts
(482 passed, 9 skipped)
- pnpm run build
- pnpm run lint
- pnpm run format:check
2026-08-02 23:36:47 +04:00
acp-release-bot[bot]
faa04bd0ca
chore(main): release 0.64.1 ( #940 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.64.1](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.64.0...v0.64.1 )
(2026-08-02)
### Bug Fixes
* release 0.65.0
([#939 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/939 ))
([0936ec2 ](0936ec281e ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.64.1
2026-08-02 14:07:49 +02:00
Mark Tkachenko
0936ec281e
fix: release 0.65.0 ( #939 )
2026-08-02 14:03:22 +02:00
nikita-ashihmin
9e50dfadee
Publish ExitPlanMode Markdown via ACP plan updates ( #938 )
...
## Summary
- publish `ExitPlanMode` Markdown through experimental ACP `plan_update`
when the client advertises `clientCapabilities.plan`
- keep `requestPermission` as the confirmation mechanism and retain
`rawInput.plan` on the `switch_mode` tool call
- fall back to the existing tool-call content for clients without plan
support
- serialize live plan publication through the permission path so
`plan_update` and the referenced `tool_call` are delivered before
`requestPermission`
- use stable per-scope plan IDs so main-agent and subagent plans cannot
overwrite each other
- replay capable-client plans through `plan_update` without duplicating
Markdown in tool content
## Testing
- permission-first and stream-first event ordering
- approve, reject, and cancel outcomes
- capable-client Markdown payload and legacy fallback
- empty plan suppression, replay, deduplication, and subagent plan IDs
- `vitest run` (697 passed, 20 skipped)
- `tsc --noEmit`
- ESLint and Prettier on changed files
2026-08-02 07:53:09 +00:00
nikita-ashihmin
08a62ed537
Expose structured permission changes in ACP metadata ( #930 )
...
## Summary
Expose Claude Code permission-update suggestions through the same
versioned option-level metadata contract used by other ACP agents:
```json
{
"_meta": {
"permission": {
"version": 1,
"changes": []
}
}
}
```
The approval actions are presented as `Deny`, `Allow Once`, and `Always
Allow`. Exact scope and policy details live in metadata instead of being
encoded into the button label.
## Why
ACP already transports button semantics via `PermissionOption.kind`,
display text via `name`, and the selected value via `optionId`. It does
not currently expose the exact persistent policy update.
Claude Code suggestions can do considerably more than add one allow
rule: they may add, remove, or replace allow/deny/ask rule sets, add or
remove directories, change permission mode, and target different storage
destinations. Flattening those suggestions into labels or a list of
scopes loses mutation semantics and can incorrectly describe a narrow or
restrictive update as permission for the whole tool.
## Contract
Every change carries a producer-supplied human-readable `description`.
Structured fields preserve:
- ordered `add`, `remove`, and atomic `replace` operations
- `allow`, `deny`, and `ask` rule sets through `ruleBehavior`
- whole-tool targets and provider-rule matchers
- filesystem directory targets
- permission-mode changes
- session, process, user, project, and project-local destinations as
lifetime/storage
Example scoped Bash rule:
```json
{
"type": "policy_rule",
"operation": "add",
"ruleBehavior": "allow",
"description": "Allow Bash calls matching npm test:*",
"lifetime": { "scope": "session" },
"targets": [
{
"type": "tool",
"toolName": "Bash",
"matcher": {
"type": "provider_rule",
"provider": "claudeCode",
"value": "npm test:*"
}
}
]
}
```
A tool target without a matcher means the whole tool. A provider rule is
intentionally opaque; clients should show `description` rather than
reverse-engineering Claude Code rule syntax.
When Claude Code supplies no suggestions, the adapter preserves its
existing fallback behavior by describing the exact session rule it
returns: allow the whole requested tool for the session.
## Compatibility
This remains on the current ACP protocol and uses only `_meta`. Clients
that do not understand `_meta.permission` continue rendering and
dispatching the standard options. Option IDs and permission outcomes are
unchanged.
## Tests
- full suite: 682 passed, 20 skipped
- lint passed
- Prettier check passed
- TypeScript build passed
- coverage includes whole-tool fallback, scoped rules, directories,
replace/remove, deny rules, destinations, and mode changes
2026-07-30 16:21:11 +00:00
acp-release-bot[bot]
e56f344691
chore(main): release 0.64.0 ( #926 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.64.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.63.0...v0.64.0 )
(2026-07-30)
### Features
* **deps:** Bump actions/checkout from 7.0.0 to 7.0.1
([#925 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/925 ))
([8e099e8 ](8e099e8442 ))
* **deps:** Bump the minor group with 7 updates
([#928 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/928 ))
([3f60921 ](3f60921959 ))
### Bug Fixes
* **steering:** add opt-in host-owned fallback
([#919 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/919 ))
([43af4ec ](43af4ec29e )),
closes
[#903 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/903 )
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.64.0
2026-07-30 17:36:36 +02:00
ranzhenyu
43af4ec29e
fix(steering): add opt-in host-owned fallback ( #919 )
...
Add an opt-in host-owned fallback for the `_session/steering` race while
preserving the existing default contract.
Fixes #903
2026-07-30 17:16:22 +02:00
nikita-ashihmin
d7a65ce1d0
Mark custom answer elicitation fields ( #929 )
...
## Why
AskUserQuestion emits a per-question free-text field that should be
rendered as the custom-answer companion for the preceding select
question. ACP clients need a stable metadata marker for that
relationship instead of guessing from field ids, titles, or
descriptions.
## What changed
- Mark each AskUserQuestion custom-answer companion field with
`_meta._askUserQuestionCustomAnswer`.
- Use the same non-agent-specific key that Codex and other bridges can
emit, so clients can parse one shared marker instead of maintaining
per-agent metadata names.
- Keep the existing response folding behavior unchanged.
## Tests
- Updated `includes a per-question optional free-text custom-answer
field` to assert the shared `_askUserQuestionCustomAnswer` marker on
each companion field.
```sh
npm test -- src/tests/elicitation.test.ts
```
2026-07-29 09:42:14 +00:00
dependabot[bot]
3f60921959
feat(deps): Bump the minor group with 7 updates ( #928 )
...
Bumps the minor group with 7 updates:
| Package | From | To |
| --- | --- | --- |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node )
| `26.1.1` | `26.1.2` |
|
[@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk )
| `1.29.0` | `1.30.0` |
|
[@napi-rs/wasm-runtime](https://github.com/napi-rs/napi-rs/tree/HEAD/wasm-runtime )
| `1.1.6` | `1.2.0` |
| [acorn](https://github.com/acornjs/acorn ) | `8.17.0` | `8.18.0` |
| [minimatch](https://github.com/isaacs/minimatch ) | `10.2.5` | `10.2.6`
|
| [postcss](https://github.com/postcss/postcss ) | `8.5.23` | `8.5.24` |
| [tinyrainbow](https://github.com/tinylibs/tinyrainbow ) | `3.1.0` |
`3.1.1` |
Updates `@types/node` from 26.1.1 to 26.1.2
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node ">compare
view</a></li>
</ul>
</details>
<br />
Updates `@modelcontextprotocol/sdk` from 1.29.0 to 1.30.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/typescript-sdk/releases ">@modelcontextprotocol/sdk's
releases</a>.</em></p>
<blockquote>
<h2>1.30.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(server): prioritize zod issues and format them by <a
href="https://github.com/mozmo15 "><code>@mozmo15</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1503 ">modelcontextprotocol/typescript-sdk#1503</a></li>
<li>chore(ci): switch publish to OIDC trusted publishing by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1839 ">modelcontextprotocol/typescript-sdk#1839</a></li>
<li>Add end-to-end test suite by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2167 ">modelcontextprotocol/typescript-sdk#2167</a></li>
<li>v1 stdio buffer limit by <a
href="https://github.com/KKonstantinov "><code>@KKonstantinov</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2239 ">modelcontextprotocol/typescript-sdk#2239</a></li>
<li>fix: support Zod 3.25 method literals by <a
href="https://github.com/mattzcarey "><code>@mattzcarey</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2368 ">modelcontextprotocol/typescript-sdk#2368</a></li>
<li>Validate Content-Type by parsed media type instead of substring
match (v1.x) by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2444 ">modelcontextprotocol/typescript-sdk#2444</a></li>
<li>fix: send SSE keep-alive comment frames from Streamable HTTP server
transport (v1.x) by <a
href="https://github.com/mattzcarey "><code>@mattzcarey</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2538 ">modelcontextprotocol/typescript-sdk#2538</a></li>
<li>fix(deps): widen <code>@hono/node-server</code> past
GHSA-frvp-7c67-39w9 by <a
href="https://github.com/arimu1 "><code>@arimu1</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2549 ">modelcontextprotocol/typescript-sdk#2549</a></li>
<li>Fix SSE keep-alive timer lifecycle in Streamable HTTP server
transport (v1.x) by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2547 ">modelcontextprotocol/typescript-sdk#2547</a></li>
<li>chore: bump version to 1.30.0 by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2563 ">modelcontextprotocol/typescript-sdk#2563</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mozmo15 "><code>@mozmo15</code></a> made
their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1503 ">modelcontextprotocol/typescript-sdk#1503</a></li>
<li><a href="https://github.com/arimu1 "><code>@arimu1</code></a> made
their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2549 ">modelcontextprotocol/typescript-sdk#2549</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.29.0...1.30.0 ">https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.29.0...1.30.0 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d889f2b32 "><code>2d889f2</code></a>
chore: bump version to 1.30.0 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2563 ">#2563</a>)</li>
<li><a
href="e3f3daa12c "><code>e3f3daa</code></a>
Fix SSE keep-alive timer lifecycle in Streamable HTTP server transport
(v1.x)...</li>
<li><a
href="bb5a718cbf "><code>bb5a718</code></a>
fix(deps): widen <code>@hono/node-server</code> past
GHSA-frvp-7c67-39w9 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2549 ">#2549</a>)</li>
<li><a
href="1dad2634ce "><code>1dad263</code></a>
fix: send SSE keep-alive comment frames from Streamable HTTP server
transport...</li>
<li><a
href="69749aa508 "><code>69749aa</code></a>
Validate Content-Type by parsed media type instead of substring match
(v1.x) ...</li>
<li><a
href="369513df7b "><code>369513d</code></a>
fix: support Zod 3.25 method literals (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2368 ">#2368</a>)</li>
<li><a
href="e7ee57c2f3 "><code>e7ee57c</code></a>
v1 stdio buffer limit (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2239 ">#2239</a>)</li>
<li><a
href="c36e1ef5bb "><code>c36e1ef</code></a>
Add end-to-end test suite (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2167 ">#2167</a>)</li>
<li><a
href="bf1e022bd2 "><code>bf1e022</code></a>
chore(ci): switch publish to OIDC trusted publishing (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1839 ">#1839</a>)</li>
<li><a
href="9edbab7a09 "><code>9edbab7</code></a>
fix(server): prioritize zod issues and format them (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1503 ">#1503</a>)</li>
<li>See full diff in <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.29.0...1.30.0 ">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions ">GitHub Actions</a>, a new
releaser for <code>@modelcontextprotocol/sdk</code> since your current
version.</p>
</details>
<br />
Updates `@napi-rs/wasm-runtime` from 1.1.6 to 1.2.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/napi-rs/napi-rs/blob/main/wasm-runtime/CHANGELOG.md ">@napi-rs/wasm-runtime's
changelog</a>.</em></p>
<blockquote>
<h1><a
href="https://github.com/napi-rs/napi-rs/compare/@napi-rs/wasm-runtime@1.1.6...@napi-rs/wasm-runtime@1.2.0 ">1.2.0</a>
(2026-07-28)</h1>
<h3>Features</h3>
<ul>
<li><strong>cli:</strong> support non-threaded WASI targets (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3353 ">#3353</a>)
(<a
href="b5ecfa3d6a ">b5ecfa3</a>),
closes <a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3352 ">#3352</a>
<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3400 ">#3400</a>
<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3405 ">#3405</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fb91bcd84e "><code>fb91bcd</code></a>
chore(release): publish</li>
<li><a
href="c646a46fb7 "><code>c646a46</code></a>
chore: upgrade memfs</li>
<li><a
href="b5ecfa3d6a "><code>b5ecfa3</code></a>
feat(cli): support non-threaded WASI targets (<a
href="https://github.com/napi-rs/napi-rs/tree/HEAD/wasm-runtime/issues/3353 ">#3353</a>)</li>
<li>See full diff in <a
href="https://github.com/napi-rs/napi-rs/commits/@napi-rs/wasm-runtime@1.2.0/wasm-runtime ">compare
view</a></li>
</ul>
</details>
<br />
Updates `acorn` from 8.17.0 to 8.18.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d788421b24 "><code>d788421</code></a>
Mark version 8.18.0</li>
<li><a
href="b61cb9a4f2 "><code>b61cb9a</code></a>
Add startLocation option</li>
<li><a
href="c8d515c7f9 "><code>c8d515c</code></a>
Don't compute curLine when locations are off</li>
<li><a
href="a7bd3cd157 "><code>a7bd3cd</code></a>
Reject an unparenthesized arrow function as the left operand of
<code>**</code></li>
<li><a
href="b7c31b626e "><code>b7c31b6</code></a>
Fix mistake in previous patch</li>
<li><a
href="5c4af50af1 "><code>5c4af50</code></a>
Avoid scanning from start of document in loose parser's resetTo</li>
<li>See full diff in <a
href="https://github.com/acornjs/acorn/compare/8.17.0...8.18.0 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `minimatch` from 10.2.5 to 10.2.6
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ded1bbd01b "><code>ded1bbd</code></a>
10.2.6</li>
<li><a
href="0215dfef07 "><code>0215dfe</code></a>
update deps and lint</li>
<li><a
href="10968eae89 "><code>10968ea</code></a>
improve test for .. eating drive letters</li>
<li>See full diff in <a
href="https://github.com/isaacs/minimatch/compare/v10.2.5...v10.2.6 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `postcss` from 8.5.23 to 8.5.24
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/releases ">postcss's
releases</a>.</em></p>
<blockquote>
<h2>8.5.24</h2>
<ul>
<li>Preserve the BOM after the processing (by <a
href="https://github.com/hdimer "><code>@hdimer</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md ">postcss's
changelog</a>.</em></p>
<blockquote>
<h2>8.5.24</h2>
<ul>
<li>Preserve the BOM after the processing (by <a
href="https://github.com/hdimer "><code>@hdimer</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0ebe8ad591 "><code>0ebe8ad</code></a>
Release 8.5.24 version</li>
<li><a
href="73218c6424 "><code>73218c6</code></a>
Update dependencies</li>
<li><a
href="9a114f62b0 "><code>9a114f6</code></a>
Preserve the BOM when stringifying (<a
href="https://redirect.github.com/postcss/postcss/issues/2119 ">#2119</a>)</li>
<li><a
href="9069261912 "><code>9069261</code></a>
Fix types check</li>
<li>See full diff in <a
href="https://github.com/postcss/postcss/compare/8.5.23...8.5.24 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `tinyrainbow` from 3.1.0 to 3.1.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tinylibs/tinyrainbow/releases ">tinyrainbow's
releases</a>.</em></p>
<blockquote>
<h2>v3.1.1</h2>
<h2>What's Changed</h2>
<ul>
<li>chore: bump devDependencies & add publish workflow by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/7 ">tinylibs/tinyrainbow#7</a></li>
<li>test: add browser tests by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/9 ">tinylibs/tinyrainbow#9</a></li>
<li>chore: only use clean-publish for cleaning by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/10 ">tinylibs/tinyrainbow#10</a></li>
<li>chore: enable <code>sideEffects: false</code> by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/11 ">tinylibs/tinyrainbow#11</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/43081j "><code>@43081j</code></a> made
their first contribution in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/7 ">tinylibs/tinyrainbow#7</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tinylibs/tinyrainbow/compare/v3.1.0...v3.1.1 ">https://github.com/tinylibs/tinyrainbow/compare/v3.1.0...v3.1.1 </a></p>
<h2>v3.1.1-pre.1</h2>
<h2>What's Changed</h2>
<ul>
<li>chore: only use clean-publish for cleaning by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/10 ">tinylibs/tinyrainbow#10</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tinylibs/tinyrainbow/compare/v3.1.1-pre.0...v3.1.1-pre.1 ">https://github.com/tinylibs/tinyrainbow/compare/v3.1.1-pre.0...v3.1.1-pre.1 </a></p>
<h2>v3.1.1-pre.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore: bump devDependencies & add publish workflow by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/7 ">tinylibs/tinyrainbow#7</a></li>
<li>test: add browser tests by <a
href="https://github.com/43081j "><code>@43081j</code></a> in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/9 ">tinylibs/tinyrainbow#9</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/43081j "><code>@43081j</code></a> made
their first contribution in <a
href="https://redirect.github.com/tinylibs/tinyrainbow/pull/7 ">tinylibs/tinyrainbow#7</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tinylibs/tinyrainbow/compare/v3.1.0...v3.1.1-pre.0 ">https://github.com/tinylibs/tinyrainbow/compare/v3.1.0...v3.1.1-pre.0 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1ec6f409a "><code>c1ec6f4</code></a>
chore: enable <code>sideEffects: false</code> (<a
href="https://redirect.github.com/tinylibs/tinyrainbow/issues/11 ">#11</a>)</li>
<li><a
href="4abe3ae182 "><code>4abe3ae</code></a>
chore: only use clean-publish for cleaning (<a
href="https://redirect.github.com/tinylibs/tinyrainbow/issues/10 ">#10</a>)</li>
<li><a
href="ccdf732245 "><code>ccdf732</code></a>
test: add browser tests (<a
href="https://redirect.github.com/tinylibs/tinyrainbow/issues/9 ">#9</a>)</li>
<li><a
href="f591d01b3e "><code>f591d01</code></a>
chore: bump devDependencies & add publish workflow (<a
href="https://redirect.github.com/tinylibs/tinyrainbow/issues/7 ">#7</a>)</li>
<li><a
href="5285a3c0f3 "><code>5285a3c</code></a>
chore: add script</li>
<li>See full diff in <a
href="https://github.com/tinylibs/tinyrainbow/compare/v3.1.0...v3.1.1 ">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions ">GitHub Actions</a>, a new
releaser for tinyrainbow since your current version.</p>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-28 16:41:06 +02:00
dependabot[bot]
8e099e8442
feat(deps): Bump actions/checkout from 7.0.0 to 7.0.1 ( #925 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 7.0.0
to 7.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases ">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>skip running unsafe pr check if input is default by <a
href="https://github.com/aiqiaoy "><code>@aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2518 ">actions/checkout#2518</a></li>
<li>trim only ascii whitespace for branch by <a
href="https://github.com/aiqiaoy "><code>@aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2521 ">actions/checkout#2521</a></li>
<li>escape values passed to --unset by <a
href="https://github.com/aiqiaoy "><code>@aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2530 ">actions/checkout#2530</a></li>
<li>Various dependency updates</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v7...v7.0.1 ">https://github.com/actions/checkout/compare/v7...v7.0.1 </a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md ">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v7.0.1</h2>
<ul>
<li>Skip running unsafe pr check if input is default by <a
href="https://github.com/aiqiaoy "><code>@aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2518 ">actions/checkout#2518</a></li>
<li>Trim only ascii whitespace for branch by <a
href="https://github.com/aiqiaoy "><code>@aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2521 ">actions/checkout#2521</a></li>
<li>Escape values passed to --unset by <a
href="https://github.com/aiqiaoy "><code>@aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2530 ">actions/checkout#2530</a></li>
<li>Various dependency updates</li>
</ul>
<h2>v7.0.0</h2>
<ul>
<li>Block checking out fork PR for pull_request_target and workflow_run
by <a href="https://github.com/aiqiaoy "><code>@aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2454 ">actions/checkout#2454</a></li>
<li>Various dependency updates</li>
</ul>
<h2>v6.0.3</h2>
<ul>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth "><code>@yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439 ">actions/checkout#2439</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth "><code>@yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414 ">actions/checkout#2414</a></li>
</ul>
<h2>v6.0.2</h2>
<ul>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356 ">actions/checkout#2356</a></li>
</ul>
<h2>v6.0.1</h2>
<ul>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327 ">actions/checkout#2327</a></li>
</ul>
<h2>v6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286 ">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc "><code>@salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248 ">actions/checkout#2248</a></li>
</ul>
<h2>v5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301 ">actions/checkout#2301</a></li>
</ul>
<h2>v5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc "><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226 ">actions/checkout#2226</a></li>
</ul>
<h2>v4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305 ">actions/checkout#2305</a></li>
</ul>
<h2>v4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss "><code>@motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971 ">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail "><code>@mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977 ">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells "><code>@benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043 ">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross "><code>@joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044 ">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89 "><code>@nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194 ">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang "><code>@TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224 ">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc "><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236 ">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3 "><code>@jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941 ">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3 "><code>@jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946 ">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy "><code>@orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924 ">actions/checkout#1924</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3d3c42e5aa "><code>3d3c42e</code></a>
prep v7.0.1 release (<a
href="https://redirect.github.com/actions/checkout/issues/2531 ">#2531</a>)</li>
<li><a
href="28802689a1 "><code>2880268</code></a>
escape values passed to --unset (<a
href="https://redirect.github.com/actions/checkout/issues/2530 ">#2530</a>)</li>
<li><a
href="12cd2235ef "><code>12cd223</code></a>
trim only ascii whitespace for branch (<a
href="https://redirect.github.com/actions/checkout/issues/2521 ">#2521</a>)</li>
<li><a
href="62661c4e71 "><code>62661c4</code></a>
skip running unsafe pr check if input is default (<a
href="https://redirect.github.com/actions/checkout/issues/2518 ">#2518</a>)</li>
<li><a
href="e8d4307400 "><code>e8d4307</code></a>
Bump the minor-actions-dependencies group with 2 updates (<a
href="https://redirect.github.com/actions/checkout/issues/2499 ">#2499</a>)</li>
<li><a
href="631c942040 "><code>631c942</code></a>
eslint 9 (<a
href="https://redirect.github.com/actions/checkout/issues/2474 ">#2474</a>)</li>
<li><a
href="4f1f4aec02 "><code>4f1f4ae</code></a>
Bump actions/upload-artifact from 4 to 7 (<a
href="https://redirect.github.com/actions/checkout/issues/2476 ">#2476</a>)</li>
<li><a
href="ba097532fb "><code>ba09753</code></a>
Bump actions/checkout from 6 to 7 (<a
href="https://redirect.github.com/actions/checkout/issues/2488 ">#2488</a>)</li>
<li><a
href="b9e0990d21 "><code>b9e0990</code></a>
Bump docker/login-action from 3.3.0 to 4.2.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2479 ">#2479</a>)</li>
<li><a
href="e8cb398be4 "><code>e8cb398</code></a>
Bump docker/build-push-action from 6.5.0 to 7.2.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2478 ">#2478</a>)</li>
<li>Additional commits viewable in <a
href="9c091bb21b...3d3c42e5aa ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-27 18:11:12 +02:00
acp-release-bot[bot]
15979bba79
chore(main): release 0.63.0 ( #922 )
...
🤖 I have created a release *beep* *boop*
---
##
[0.63.0](https://github.com/agentclientprotocol/claude-agent-acp/compare/v0.62.0...v0.63.0 )
(2026-07-27)
### Features
* Update to claude agent sdk v0.3.220
([#921 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/921 ))
([4c7b897 ](4c7b897183 ))
### Bug Fixes
* Only resolve a denied tool call the client was told about
([#923 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/923 ))
([8f67b6a ](8f67b6a92b )),
closes
[#918 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/918 )
* Report tool_progress heartbeats against the tool call they describe
([#916 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/916 ))
([5559ba8 ](5559ba890c ))
* **tools:** key Bash terminal metas off the announced tool_use id
([#917 ](https://github.com/agentclientprotocol/claude-agent-acp/issues/917 ))
([d060414 ](d0604140f9 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
v0.63.0
2026-07-27 14:03:48 +02:00
Ben Brandt
8f67b6a92b
fix: Only resolve a denied tool call the client was told about ( #923 )
...
`permission_denied` forwarded an SDK frame as a `tool_call_update`
without checking that the referenced `tool_call` was ever announced,
leaving it the last emitter without that check after #916 .
The id is the executing call's own, and the frame is enqueued from
inside canUseTool, so it lands between the call's `tool_use` and the
`tool_result` carrying the rejection — verified against the bundled CLI,
where the deny short-circuit only emits for pre-ask decisions (rules,
mode, classifier, asyncAgent) and fires exactly once per denial. In that
flow the call is announced and in flight, so the guard changes nothing.
It changes the denials that arrive outside that window. The
cancelled-turn guard drops the assistant message carrying the tool_use,
so no `tool_call` is emitted, and a denial for it can still land
afterwards — the same premise the `tool_result` fallback in
`toAcpNotifications` gates on `wasEmitted` for. Ids leave
`emittedToolCalls` at `tool_result`, so the check also stops a denial
trailing its own result from flipping a call the client has seen finish
back to failed.
While here: a denial raised inside a subagent identifies it by
`agent_id`, never by the Agent/Task call that spawned it, so the update
went out unattributed while the `tool_call` it resolves sits in the
subagent's transcript. Resolve the parent through `liveBackgroundTasks`,
as the canUseTool path already does, and leave the update unattributed
rather than dropped when `task_started` was never seen for that agent
id.
`permission_denied` had no test coverage. Add cases for the in-flight
resolve, the reason fallback, the never-announced and already-resolved
drops, and subagent attribution with and without a recorded parent.
Fixes #918
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-27 10:49:30 +00:00