Bumps the minor-and-patch group in /libs/cli/js-examples with 6 updates: | Package | From | To | | --- | --- | --- | | [@langchain/core](https://github.com/langchain-ai/langchainjs) | `1.1.48` | `1.2.1` | | [@langchain/langgraph](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core) | `1.3.3` | `1.4.7` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.60.1` | `8.62.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.60.1` | `8.62.1` | | [eslint](https://github.com/eslint/eslint) | `10.4.1` | `10.6.0` | | [prettier](https://github.com/prettier/prettier) | `3.8.3` | `3.9.4` | Updates `@langchain/core` from 1.1.48 to 1.2.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langchainjs/releases">@langchain/core's releases</a>.</em></p> <blockquote> <h2><code>@langchain/core</code><a href="https://github.com/1"><code>@1</code></a>.2.1</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/10674">#10674</a> <a href="https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7"><code>f017708</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix: classify provider 429s before retrying</p> </li> <li> <p><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/11092">#11092</a> <a href="https://github.com/langchain-ai/langchainjs/commit/7918bbdd2eaf8d9aff736b122f359a555267e1e7"><code>7918bbd</code></a> Thanks <a href="https://github.com/aolsenjazz"><code>@aolsenjazz</code></a>! - fix(core): only treat arrays of content blocks as ToolMessage content</p> <p>Fix tool outputs that are arrays of plain objects being forwarded as malformed message content. An array is now only treated as message content blocks when every element is an object with a <code>type</code>; otherwise it is JSON-stringified.</p> </li> </ul> <h2><code>@langchain/core</code><a href="https://github.com/1"><code>@1</code></a>.2.0</h2> <h3>Minor Changes</h3> <ul> <li><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/10924">#10924</a> <a href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - feat(core): add OpenAI-compatible stream event conversion</li> </ul> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/11047">#11047</a> <a href="https://github.com/langchain-ai/langchainjs/commit/ac0f71d03994664cfee98e71a584d4aa3321746f"><code>ac0f71d</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix(core): preserve AIMessage content blocks</p> <p>Keep existing v1 contentBlocks when constructing AIMessage instances so serialized messages do not lose block content during deserialization.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langchainjs/commit/1ee0df0c49335104968f6c5130dbdb7e777f85d7"><code>1ee0df0</code></a> chore: version packages (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11097">#11097</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7"><code>f017708</code></a> fix(core): better 429 error handling (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/10674">#10674</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a> fix(openai): omit empty reasoning item id in Responses API input (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11045">#11045</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a> fix(openai): route standard url file blocks to native input_file in Responses...</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a> fix(openai): stream built-in tool progress events (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11090">#11090</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/d2e6afcf17b269aa11a2f18444c208bc8a4b2520"><code>d2e6afc</code></a> fix(groq): require <code>@langchain/core</code> >= 1.1.30 in peer dependency (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11072">#11072</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/c66870ea8ebf9e3b0794ab8d969b25dfb189f2de"><code>c66870e</code></a> feat(weaviate): add X-Weaviate-Client-Integration telemetry header (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11088">#11088</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/baa57ba7cdce2046ba3dd40e9e8cf3c93c9c1ac4"><code>baa57ba</code></a> fix(anthropic): omit default disabled thinking from requests (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11073">#11073</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/04edb8d0fa3c408adbc6e4c277d1f3aaf5b40161"><code>04edb8d</code></a> docs(ibm): fix "Recieved" typo in tool_choice error message (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11066">#11066</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/2b7f368c2baa3f2916a207bf099a437adce2179c"><code>2b7f368</code></a> chore(deps): bump uuid from 14.0.0 to 14.0.1 (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11094">#11094</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langchainjs/compare/@langchain/core@1.1.48...@langchain/core@1.2.1">compare view</a></li> </ul> </details> <br /> Updates `@langchain/langgraph` from 1.3.3 to 1.4.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langgraphjs/releases">@langchain/langgraph's releases</a>.</em></p> <blockquote> <h2><code>@langchain/langgraph</code><a href="https://github.com/1"><code>@1</code></a>.4.7</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2571">#2571</a> <a href="https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b"><code>85ba859</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix(langgraph): drop unused zod-to-json-schema peer dependency</p> <p>Remove the vestigial <code>zod-to-json-schema</code> (and its <code>peerDependenciesMeta</code>/dev) declarations. JSON Schema generation now flows through <code>@langchain/core</code>'s Zod v3/v4 interop (<code>toJsonSchema</code>), so the old <code>zod-to-json-schema@^3.x</code> peer (which pins <code>zod@^3.24.1</code>) is no longer needed and was the last source of install-time peer conflicts with Zod v4. Closes <a href="https://redirect.github.com/langchain-ai/langgraphjs/issues/1706">#1706</a>.</p> </li> </ul> <h2><code>@langchain/langgraph</code><a href="https://github.com/1"><code>@1</code></a>.4.6</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f"><code>03a0d8b</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix(langgraph): emit valid UUIDs for exit-mode delta task_ids</p> <p>Exit-mode DeltaChannel writes used a step-prefixed synthetic task id that produced a 6-segment string Postgres rejects for <code>checkpoint_writes.task_id uuid</code> in LangGraph API. Embed the superstep in the first UUID group instead, matching <a href="https://redirect.github.com/langchain-ai/langgraph/issues/8165">langchain-ai/langgraph#8165</a>.</p> </li> <li> <p>Updated dependencies [<a href="https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457"><code>0558e47</code></a>, <a href="https://github.com/langchain-ai/langgraphjs/commit/091a46f32ddd3a85ee89e35fb9ea953dfc4cf8b4"><code>091a46f</code></a>]:</p> <ul> <li><code>@langchain/langgraph-sdk</code><a href="https://github.com/1"><code>@1</code></a>.9.25</li> <li><code>@langchain/langgraph-checkpoint</code><a href="https://github.com/1"><code>@1</code></a>.1.3</li> </ul> </li> </ul> <h2><code>@langchain/langgraph</code><a href="https://github.com/1"><code>@1</code></a>.4.5</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2557">#2557</a> <a href="https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e"><code>b1e856d</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix(sdk): apply state update and goto alongside interrupt resume</p> <p><code>respond(decision, { update, goto })</code> now maps to LangGraph's <code>Command(resume, update, goto)</code>, so a human-in-the-loop UI can commit a state update (e.g. push the interrupt card into state) in the <strong>same superstep</strong> as the resume — one checkpoint, no separate <code>updateState</code> write, no flicker. <code>@langchain/langgraph-api</code> forwards <code>update</code>/<code>goto</code> through <code>input.respond</code>, and <code>@langchain/core</code> message instances in <code>update</code> are serialized to dicts before transport, exactly like <code>submit()</code>. Bumps <code>@langchain/protocol</code> to <code>^0.0.18</code> for the <code>Goto</code> type.</p> <p><code>respond</code>/<code>respondAll</code> also apply <code>update</code> <strong>optimistically</strong> (mirroring <code>submit()</code>): the pushed messages paint immediately, with stable ids minted so the resumed run's echo reconciles them in place. Without this the interrupt is cleared the instant <code>respond()</code> dispatches while the pushed card only reappears a server round-trip later — so the card would flicker in that gap. The optimistic state settles on the resumed run's terminal (pending → sent, or rolled back on a failure before any echo).</p> <p>User-initiated optimistic writes (<code>submit()</code> / <code>respond()</code> / <code>respondAll()</code>) now commit to the store <strong>synchronously</strong>, in the same tick as the triggering event, instead of being coalesced onto the next macrotask. This lets a framework render the pushed message in the <strong>same commit</strong> as any local UI state the caller flips alongside it (e.g. a HITL form swapping its inputs for the resolved card), so the card no longer blinks out for the one-macrotask window before the flush lands. High-frequency streaming writes keep their macrotask coalescing.</p> </li> <li> <p>Updated dependencies [<a href="https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e"><code>b1e856d</code></a>]:</p> <ul> <li><code>@langchain/langgraph-sdk</code><a href="https://github.com/1"><code>@1</code></a>.9.24</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langgraphjs/blob/main/libs/langgraph-core/CHANGELOG.md">@langchain/langgraph's changelog</a>.</em></p> <blockquote> <h2>1.4.7</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2571">#2571</a> <a href="https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b"><code>85ba859</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix(langgraph): drop unused zod-to-json-schema peer dependency</p> <p>Remove the vestigial <code>zod-to-json-schema</code> (and its <code>peerDependenciesMeta</code>/dev) declarations. JSON Schema generation now flows through <code>@langchain/core</code>'s Zod v3/v4 interop (<code>toJsonSchema</code>), so the old <code>zod-to-json-schema@^3.x</code> peer (which pins <code>zod@^3.24.1</code>) is no longer needed and was the last source of install-time peer conflicts with Zod v4. Closes <a href="https://redirect.github.com/langchain-ai/langgraphjs/issues/1706">#1706</a>.</p> </li> </ul> <h2>1.4.6</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f"><code>03a0d8b</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix(langgraph): emit valid UUIDs for exit-mode delta task_ids</p> <p>Exit-mode DeltaChannel writes used a step-prefixed synthetic task id that produced a 6-segment string Postgres rejects for <code>checkpoint_writes.task_id uuid</code> in LangGraph API. Embed the superstep in the first UUID group instead, matching <a href="https://redirect.github.com/langchain-ai/langgraph/issues/8165">langchain-ai/langgraph#8165</a>.</p> </li> <li> <p>Updated dependencies [<a href="https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457"><code>0558e47</code></a>, <a href="https://github.com/langchain-ai/langgraphjs/commit/091a46f32ddd3a85ee89e35fb9ea953dfc4cf8b4"><code>091a46f</code></a>]:</p> <ul> <li><code>@langchain/langgraph-sdk</code><a href="https://github.com/1"><code>@1</code></a>.9.25</li> <li><code>@langchain/langgraph-checkpoint</code><a href="https://github.com/1"><code>@1</code></a>.1.3</li> </ul> </li> </ul> <h2>1.4.5</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2557">#2557</a> <a href="https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e"><code>b1e856d</code></a> Thanks <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a>! - fix(sdk): apply state update and goto alongside interrupt resume</p> <p><code>respond(decision, { update, goto })</code> now maps to LangGraph's <code>Command(resume, update, goto)</code>, so a human-in-the-loop UI can commit a state update (e.g. push the interrupt card into state) in the <strong>same superstep</strong> as the resume — one checkpoint, no separate <code>updateState</code> write, no flicker. <code>@langchain/langgraph-api</code> forwards <code>update</code>/<code>goto</code> through <code>input.respond</code>, and <code>@langchain/core</code> message instances in <code>update</code> are serialized to dicts before transport, exactly like <code>submit()</code>. Bumps <code>@langchain/protocol</code> to <code>^0.0.18</code> for the <code>Goto</code> type.</p> <p><code>respond</code>/<code>respondAll</code> also apply <code>update</code> <strong>optimistically</strong> (mirroring <code>submit()</code>): the pushed messages paint immediately, with stable ids minted so the resumed run's echo reconciles them in place. Without this the interrupt is cleared the instant <code>respond()</code> dispatches while the pushed card only reappears a server round-trip later — so the card would flicker in that gap. The optimistic state settles on the resumed run's terminal (pending → sent, or rolled back on a failure before any echo).</p> <p>User-initiated optimistic writes (<code>submit()</code> / <code>respond()</code> / <code>respondAll()</code>) now commit to the store <strong>synchronously</strong>, in the same tick as the triggering event, instead of being coalesced onto the next macrotask. This lets a framework render the pushed message in the <strong>same commit</strong> as any local UI state the caller flips alongside it (e.g. a HITL form swapping its inputs for the resolved card), so the card no longer blinks out for the one-macrotask window before the flush lands. High-frequency streaming writes keep their macrotask coalescing.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/217463762364134fdf0611349d53861a59d2708c"><code>2174637</code></a> chore: version packages (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2572">#2572</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b"><code>85ba859</code></a> fix(langgraph): drop unused zod-to-json-schema dependency (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2571">#2571</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/86389fa3a64ec89e0cb26d97379efcc90c7a211f"><code>86389fa</code></a> chore: version packages (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2567">#2567</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f"><code>03a0d8b</code></a> fix(langgraph): emit valid UUIDs for exit-mode delta task_ids</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/31261c3be539f0e41e13cf3e21283c55228bc545"><code>31261c3</code></a> chore: version packages (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2558">#2558</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/5d279df5d524699e3824fdc7d8f9d8d0888edcc4"><code>5d279df</code></a> chore(deps): bump langchain (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2564">#2564</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e"><code>b1e856d</code></a> feat(sdk): apply state update and goto alongside interrupt resume (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2557">#2557</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/e6082e05755797a92e9d24149496923e044319ee"><code>e6082e0</code></a> chore: version packages (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2554">#2554</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783"><code>d662cbb</code></a> fix(langgraph): isolate concurrent singleton-agent invocations by thread (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2552">#2552</a>)</li> <li><a href="https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0"><code>1c2aa5b</code></a> fix(langgraph): recognize JSON-erased Overwrite values across runtimes (<a href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2553">#2553</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langgraphjs/commits/@langchain/langgraph@1.4.7/libs/langgraph-core">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/eslint-plugin` from 8.60.1 to 8.62.1 <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.62.1</h2> <h2>8.62.1 (2026-06-29)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [prefer-optional-chain] use suggestion instead of autofix for trailing binary operator (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12328">#12328</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-boolean-literal-compare] preserve boolean result in fixer for nullable true comparisons (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12365">#12365</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] parenthesize object literal at left edge of expression statement (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12443">#12443</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12418">#12418</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> <li>mdm317</li> <li>Patrick Aleite</li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">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> <h2>v8.62.0</h2> <h2>8.62.0 (2026-06-22)</h2> <h3>🚀 Features</h3> <ul> <li>remove redundant package.json "files" (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li>add "files" to rule-schema-to-typescript-types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12441">#12441</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <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.62.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> <h2>v8.61.1</h2> <h2>8.61.1 (2026-06-15)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [consistent-indexed-object-style] do not remove comments when fixing (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12396">#12396</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/10577">#10577</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] avoid false positive for template literal expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12281">#12281</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] wrap object literal in parens when removing TSTypeAssertion in arrow body (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12394">#12394</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12393">#12393</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-boolean-literal-compare] fix precedence bug in autofix (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12413">#12413</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-template-expression] respect ECMAScript line terminators (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12388">#12388</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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.62.1 (2026-06-29)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] parenthesize object literal at left edge of expression statement (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12443">#12443</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12418">#12418</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-boolean-literal-compare] preserve boolean result in fixer for nullable true comparisons (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12365">#12365</a>)</li> <li><strong>eslint-plugin:</strong> [prefer-optional-chain] use suggestion instead of autofix for trailing binary operator (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12328">#12328</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> <li>mdm317</li> <li>Patrick Aleite</li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">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> <h2>8.62.0 (2026-06-22)</h2> <h3>🚀 Features</h3> <ul> <li>remove redundant package.json "files" (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <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.62.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> <h2>8.61.1 (2026-06-15)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-unnecessary-template-expression] respect ECMAScript line terminators (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12388">#12388</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-boolean-literal-compare] fix precedence bug in autofix (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12413">#12413</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] wrap object literal in parens when removing TSTypeAssertion in arrow body (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12394">#12394</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12393">#12393</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] avoid false positive for template literal expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12281">#12281</a>)</li> <li><strong>eslint-plugin:</strong> [consistent-indexed-object-style] do not remove comments when fixing (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12396">#12396</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/10577">#10577</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Anas <a href="https://github.com/anasm266"><code>@anasm266</code></a></li> <li>Deftera <a href="https://github.com/Deftera186"><code>@Deftera186</code></a></li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> <li>lumir</li> <li>Sarath Francis <a href="https://github.com/sarathfrancis90"><code>@sarathfrancis90</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/3ea32f4ba5e196c08c6da1095619d7f65ba4905e"><code>3ea32f4</code></a> chore(release): publish 8.62.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/4ecca6d3f9ee1ab6468c8e9d6810ccc1c2f6bcf9"><code>4ecca6d</code></a> fix(eslint-plugin): [no-unnecessary-type-assertion] parenthesize object liter...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/f3a7ec78bf07b42a7e03f2091c98513e05310891"><code>f3a7ec7</code></a> chore(eslint-plugin-internal): [no-dynamic-tests] restrict where noFormat can...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/301f350cd11fecce4940b5be8a2b1146a9c6d58b"><code>301f350</code></a> fix(eslint-plugin): [no-unnecessary-boolean-literal-compare] preserve boolean...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/ebce2d40f83194599bc3022032ef4fa857977105"><code>ebce2d4</code></a> fix(eslint-plugin): [prefer-optional-chain] use suggestion instead of autofix...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/54e285728e5d8cb83fadb8041189f0c3b4ab436a"><code>54e2857</code></a> chore(release): publish 8.62.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/81e4c2654c3f4d923766a888691add2c45b5d64a"><code>81e4c26</code></a> feat: remove redundant package.json "files" (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12444">#12444</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/b784054b6f8fbb51eb742304852b37b0436a8a58"><code>b784054</code></a> chore: use <code>stableTypeOrdering</code> compiler option (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12427">#12427</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/aaad7187b529c4b6ff8088ffd7e948c69c2763b6"><code>aaad718</code></a> chore(release): publish 8.61.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/0cc8f3559591221400bed1e8bf8debce5edca4c4"><code>0cc8f35</code></a> fix(eslint-plugin): [no-unnecessary-template-expression] respect ECMAScript l...</li> <li>Additional commits viewable in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/parser` from 8.60.1 to 8.62.1 <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.62.1</h2> <h2>8.62.1 (2026-06-29)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [prefer-optional-chain] use suggestion instead of autofix for trailing binary operator (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12328">#12328</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-boolean-literal-compare] preserve boolean result in fixer for nullable true comparisons (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12365">#12365</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] parenthesize object literal at left edge of expression statement (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12443">#12443</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12418">#12418</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> <li>mdm317</li> <li>Patrick Aleite</li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">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> <h2>v8.62.0</h2> <h2>8.62.0 (2026-06-22)</h2> <h3>🚀 Features</h3> <ul> <li>remove redundant package.json "files" (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li>add "files" to rule-schema-to-typescript-types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12441">#12441</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <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.62.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> <h2>v8.61.1</h2> <h2>8.61.1 (2026-06-15)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [consistent-indexed-object-style] do not remove comments when fixing (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12396">#12396</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/10577">#10577</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] avoid false positive for template literal expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12281">#12281</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] wrap object literal in parens when removing TSTypeAssertion in arrow body (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12394">#12394</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12393">#12393</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-boolean-literal-compare] fix precedence bug in autofix (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12413">#12413</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-template-expression] respect ECMAScript line terminators (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12388">#12388</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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.62.1 (2026-06-29)</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.62.1">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> <h2>8.62.0 (2026-06-22)</h2> <h3>🚀 Features</h3> <ul> <li>remove redundant package.json "files" (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <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.62.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> <h2>8.61.1 (2026-06-15)</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.61.1">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> <h2>8.61.0 (2026-06-08)</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.61.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="https://github.com/typescript-eslint/typescript-eslint/commit/3ea32f4ba5e196c08c6da1095619d7f65ba4905e"><code>3ea32f4</code></a> chore(release): publish 8.62.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/54e285728e5d8cb83fadb8041189f0c3b4ab436a"><code>54e2857</code></a> chore(release): publish 8.62.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/81e4c2654c3f4d923766a888691add2c45b5d64a"><code>81e4c26</code></a> feat: remove redundant package.json "files" (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12444">#12444</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/aaad7187b529c4b6ff8088ffd7e948c69c2763b6"><code>aaad718</code></a> chore(release): publish 8.61.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/16a5b247affc32af21b695cf96dfd75d7ded50a3"><code>16a5b24</code></a> chore(release): publish 8.61.0</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/parser">compare view</a></li> </ul> </details> <br /> Updates `eslint` from 10.4.1 to 10.6.0 <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.6.0</h2> <h2>Features</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/b1f910628e29a018c860e2352bc14cd07c853d67"><code>b1f9106</code></a> feat: detect Symbol() and BigInt() in no-constant-binary-expression (<a href="https://redirect.github.com/eslint/eslint/issues/20981">#20981</a>) (Taejin Kim)</li> <li><a href="https://github.com/eslint/eslint/commit/f291007cb73f55c09cf3c2aa3a405df379a5c594"><code>f291007</code></a> feat: add checkRelationalComparisons to no-constant-binary-expression (<a href="https://redirect.github.com/eslint/eslint/issues/20948">#20948</a>) (sethamus)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/6b05784eb271ac98ca3e1e2a48c4b14bb588c786"><code>6b05784</code></a> fix: prefer-exponentiation-operator invalid autofix at statement start (<a href="https://redirect.github.com/eslint/eslint/issues/20997">#20997</a>) (Milos Djermanovic)</li> <li><a href="https://github.com/eslint/eslint/commit/bb9eb2ab28daf6e6dafc62daa6b5daf9c2b7046c"><code>bb9eb2a</code></a> fix: account for shadowed <code>Boolean</code> in <code>no-extra-boolean-cast</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21013">#21013</a>) (den$)</li> <li><a href="https://github.com/eslint/eslint/commit/8fd8741009a3ed7845c89bfe2fb3eaa2119b2d15"><code>8fd8741</code></a> fix: don't report shadowed undefined in <code>radix</code> rule (<a href="https://redirect.github.com/eslint/eslint/issues/21011">#21011</a>) (Pixel)</li> <li><a href="https://github.com/eslint/eslint/commit/5784980ce8ba99556db98907895d82ef49cd0a27"><code>5784980</code></a> fix: don't report shadowed undefined in no-throw-literal (<a href="https://redirect.github.com/eslint/eslint/issues/21010">#21010</a>) (Pixel)</li> <li><a href="https://github.com/eslint/eslint/commit/9cd1e6de5bad487a9c713bdc9fda5af7ea0babcd"><code>9cd1e6d</code></a> fix: suppress invalid class suggestion in no-promise-executor-return (<a href="https://redirect.github.com/eslint/eslint/issues/21008">#21008</a>) (Pixel)</li> <li><a href="https://github.com/eslint/eslint/commit/d4eb2dc95f17cdf491edca91b7d9caf05b86253f"><code>d4eb2dc</code></a> fix: don't report shadowed undefined in prefer-promise-reject-errors (<a href="https://redirect.github.com/eslint/eslint/issues/21006">#21006</a>) (Pixel)</li> <li><a href="https://github.com/eslint/eslint/commit/23604646db6d987d01edb8aa5f4d2a88bd4c01d0"><code>2360464</code></a> fix: prefer-promise-reject-errors false positives for shadowed Promise (<a href="https://redirect.github.com/eslint/eslint/issues/21003">#21003</a>) (den$)</li> <li><a href="https://github.com/eslint/eslint/commit/63d52d28de705ec46f328d18166e8b7170b3f024"><code>63d52d2</code></a> fix: restore max-classes-per-file report range (<a href="https://redirect.github.com/eslint/eslint/issues/21002">#21002</a>) (Pixel)</li> <li><a href="https://github.com/eslint/eslint/commit/7feaff0cfb8d6a6260d3ea56887c9161daf8c700"><code>7feaff0</code></a> fix: callback detection logic for IIFEs in max-nested-callbacks (<a href="https://redirect.github.com/eslint/eslint/issues/20979">#20979</a>) (fnx)</li> <li><a href="https://github.com/eslint/eslint/commit/399a2ec81bcbcff2c67920db51d9276b20ac1025"><code>399a2ec</code></a> fix: don't report inner non-callbacks in <code>max-nested-callbacks</code> (<a href="https://redirect.github.com/eslint/eslint/issues/20995">#20995</a>) (Milos Djermanovic)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/a83683db1c27193c2ad333fc5c0aedcc8a293db7"><code>a83683d</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/f5449f96c2caabbc1a28b15211873e2f672f5ae5"><code>f5449f9</code></a> docs: document userland patterns for global assertionOptions in RuleT… (<a href="https://redirect.github.com/eslint/eslint/issues/20986">#20986</a>) (playgirl)</li> <li><a href="https://github.com/eslint/eslint/commit/bea49f7b2899ebf708482f977ef2ada41fd2c3f0"><code>bea49f7</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/e5f70f9b06683a887dd0d6dc1cc91a9c9bea816d"><code>e5f70f9</code></a> docs: update code-path diagrams (<a href="https://redirect.github.com/eslint/eslint/issues/20984">#20984</a>) (Tanuj Kanti)</li> <li><a href="https://github.com/eslint/eslint/commit/8890c2d40880b195b9167735c24ec0cc5de5eb96"><code>8890c2d</code></a> docs: add TypeScript config guidance for MCP server (<a href="https://redirect.github.com/eslint/eslint/issues/20796">#20796</a>) (Pierluigi Lenoci)</li> <li><a href="https://github.com/eslint/eslint/commit/3eb3d9b1b5edecc3fcae0519ddba0e3745e889e3"><code>3eb3d9b</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/c5bb59cf613dabafd550227b6adaa9327b1095f5"><code>c5bb59c</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/eb3c97c776731ce11b28cc99f0271f41b9994701"><code>eb3c97c</code></a> docs: fix grammar in prefer-const rule description (<a href="https://redirect.github.com/eslint/eslint/issues/20983">#20983</a>) (lumir)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/6a42034a57a816b0a313720b3b9df09455bd0b5e"><code>6a42034</code></a> ci: run ecosystem tests on main branch (<a href="https://redirect.github.com/eslint/eslint/issues/20891">#20891</a>) (sethamus)</li> <li><a href="https://github.com/eslint/eslint/commit/3dbacdbb31673c87ca86ecafbb18712d8d1daed8"><code>3dbacdb</code></a> ci: bump actions/checkout from 6 to 7 (<a href="https://redirect.github.com/eslint/eslint/issues/21014">#21014</a>) (dependabot[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/c3abfca7c96cc9a244f54eeb66e9971c59280354"><code>c3abfca</code></a> chore: correct JSDoc param types in html formatter (<a href="https://redirect.github.com/eslint/eslint/issues/21018">#21018</a>) (Minseon Kim)</li> <li><a href="https://github.com/eslint/eslint/commit/a8323209cdbefefd540c5beeaa51418d8ec40f9e"><code>a832320</code></a> ci: split ecosystem tests into separate jobs (<a href="https://redirect.github.com/eslint/eslint/issues/21001">#21001</a>) (xbinaryx)</li> <li><a href="https://github.com/eslint/eslint/commit/27166e78511db526688afc34bbfab1a458405f3f"><code>27166e7</code></a> chore: update ecosystem plugins (<a href="https://redirect.github.com/eslint/eslint/issues/21005">#21005</a>) (ESLint Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/865d76e40107d4fa10a17fc3203b303eb8a88dc3"><code>865d76e</code></a> ci: bump pnpm/action-setup from 6.0.8 to 6.0.9 (<a href="https://redirect.github.com/eslint/eslint/issues/20989">#20989</a>) (dependabot[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/27a88c9fa7c040f4cd39e5a5e6e2d02441c408ef"><code>27a88c9</code></a> chore: update dependency markdown-it to v14 in root (<a href="https://redirect.github.com/eslint/eslint/issues/20994">#20994</a>) (Milos Djermanovic)</li> <li><a href="https://github.com/eslint/eslint/commit/970cea62b295d931a4109abedeb21ba192d3f2be"><code>970cea6</code></a> chore: update dependency markdown-it to v14 (<a href="https://redirect.github.com/eslint/eslint/issues/20993">#20993</a>) (Milos Djermanovic)</li> <li><a href="https://github.com/eslint/eslint/commit/b482120bacb40204fbf16f3b20be7207057157a5"><code>b482120</code></a> chore: update dependency prettier to v3.8.4 (<a href="https://redirect.github.com/eslint/eslint/issues/20990">#20990</a>) (renovate[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/6993fb3173da84999fc208507b93f523aa657448"><code>6993fb3</code></a> chore: update ecosystem plugins (<a href="https://redirect.github.com/eslint/eslint/issues/20985">#20985</a>) (ESLint Bot)</li> </ul> <h2>v10.5.0</h2> <h2>Features</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/5ca8c5278edea1fd84d3ba83d8ea3f52fb3831ad"><code>5ca8c52</code></a> feat: correct stack tracking in max-nested-callbacks (<a href="https://redirect.github.com/eslint/eslint/issues/20973">#20973</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/b5657837604fa5e8cf1278074782025cadd34b6c"><code>b565783</code></a> feat: report no-with violations at the with keyword (<a href="https://redirect.github.com/eslint/eslint/issues/20971">#20971</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/2ce032fbc72a1a80c024c084a4f382fb6dece684"><code>2ce032f</code></a> feat: report max-lines-per-function violations at function head (<a href="https://redirect.github.com/eslint/eslint/issues/20966">#20966</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/732cb3e09d5b8b809b5f461d118a5d9fdcd6427f"><code>732cb3e</code></a> feat: report max-nested-callbacks violations at function head (<a href="https://redirect.github.com/eslint/eslint/issues/20967">#20967</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/f9c138a0ba7d8e37aed39aef4a3ff1cae8c669f7"><code>f9c138a</code></a> feat: report max-depth violations on keywords (<a href="https://redirect.github.com/eslint/eslint/issues/20943">#20943</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/bdb496cc0d54b6d0a023aef9abd5f040ccff2101"><code>bdb496c</code></a> feat: correct max-depth handling for else-if chains (<a href="https://redirect.github.com/eslint/eslint/issues/20944">#20944</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/c29687354a7f96093f57f7d73eecb866ad5e2953"><code>c296873</code></a> feat: update error loc in <code>max-statements</code> to function header (<a href="https://redirect.github.com/eslint/eslint/issues/20907">#20907</a>) (Taejin Kim)</li> </ul> <h2>Documentation</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eslint/eslint/commit/5d12a0419636abb71628b7e45063a943c454a7c7"><code>5d12a04</code></a> 10.6.0</li> <li><a href="https://github.com/eslint/eslint/commit/f7ca54b138c4ba7b8e65f83b7fe58cc8de50af8b"><code>f7ca54b</code></a> Build: changelog update for 10.6.0</li> <li><a href="https://github.com/eslint/eslint/commit/6a42034a57a816b0a313720b3b9df09455bd0b5e"><code>6a42034</code></a> ci: run ecosystem tests on main branch (<a href="https://redirect.github.com/eslint/eslint/issues/20891">#20891</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/b1f910628e29a018c860e2352bc14cd07c853d67"><code>b1f9106</code></a> feat: detect Symbol() and BigInt() in no-constant-binary-expression (<a href="https://redirect.github.com/eslint/eslint/issues/20981">#20981</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/3dbacdbb31673c87ca86ecafbb18712d8d1daed8"><code>3dbacdb</code></a> ci: bump actions/checkout from 6 to 7 (<a href="https://redirect.github.com/eslint/eslint/issues/21014">#21014</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/c3abfca7c96cc9a244f54eeb66e9971c59280354"><code>c3abfca</code></a> chore: correct JSDoc param types in html formatter (<a href="https://redirect.github.com/eslint/eslint/issues/21018">#21018</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/a83683db1c27193c2ad333fc5c0aedcc8a293db7"><code>a83683d</code></a> docs: Update README</li> <li><a href="https://github.com/eslint/eslint/commit/a8323209cdbefefd540c5beeaa51418d8ec40f9e"><code>a832320</code></a> ci: split ecosystem tests into separate jobs (<a href="https://redirect.github.com/eslint/eslint/issues/21001">#21001</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/6b05784eb271ac98ca3e1e2a48c4b14bb588c786"><code>6b05784</code></a> fix: prefer-exponentiation-operator invalid autofix at statement start (<a href="https://redirect.github.com/eslint/eslint/issues/20997">#20997</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/bb9eb2ab28daf6e6dafc62daa6b5daf9c2b7046c"><code>bb9eb2a</code></a> fix: account for shadowed <code>Boolean</code> in <code>no-extra-boolean-cast</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21013">#21013</a>)</li> <li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v10.4.1...v10.6.0">compare view</a></li> </ul> </details> <br /> Updates `prettier` from 3.8.3 to 3.9.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/prettier/prettier/releases">prettier's releases</a>.</em></p> <blockquote> <h2>3.9.4</h2> <ul> <li>Angular: Format <code>@content(name)</code> -> <code>@content (name)</code> to align with other block syntax (<a href="https://redirect.github.com/prettier/prettier/pull/19499">#19499</a> by <a href="https://github.com/fisker"><code>@fisker</code></a>)</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.9.4/CHANGELOG.md#394">Changelog</a></p> <h2>3.9.3</h2> <ul> <li>Markdown: Fix unexpected removal of characters in liquid syntax (<a href="https://redirect.github.com/prettier/prettier/pull/19489">prettier/prettier#19489</a> by <a href="https://github.com/seiyab"><code>@seiyab</code></a>)</li> <li>TypeScript: Allow decorators to be used with declare on class fields (<a href="https://redirect.github.com/prettier/prettier/pull/19492">prettier/prettier#19492</a> by <a href="https://github.com/evoactivity"><code>@evoactivity</code></a>)</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.9.3/CHANGELOG.md#393">Changelog</a></p> <h2>3.9.1</h2> <ul> <li>CLI: Fix ignored file has been cached incorrectly (<a href="https://redirect.github.com/prettier/prettier/pull/19483">#19483</a> by <a href="https://github.com/kovsu"><code>@kovsu</code></a>)</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.9.1/CHANGELOG.md#391">Changelog</a></p> <h2>3.9.0</h2> <p><a href="https://github.com/prettier/prettier/compare/3.8.5...3.9.0">diff</a></p> <p>🔗 <a href="https://prettier.io/blog/2026/06/27/3.9.0">Prettier 3.9: Major parser upgrades and Formatting improvements</a></p> <h2>3.8.5</h2> <ul> <li>Fix Flow variance annotation print (<a href="https://redirect.github.com/prettier/prettier/pull/19022">#19022</a> by <a href="https://github.com/marcoww6"><code>@marcoww6</code></a>)</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.8.5/CHANGELOG.md#385">Changelog</a></p> <h2>3.8.4</h2> <ul> <li>Markdown: Fix blank lines between list items and nested sub-lists being removed in Markdown/MDX (<a href="https://redirect.github.com/prettier/prettier/pull/17746">prettier/prettier#17746</a> by <a href="https://github.com/byplayer"><code>@byplayer</code></a>)</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.8.4/CHANGELOG.md#384">Changelog</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's changelog</a>.</em></p> <blockquote> <h1>3.9.4</h1> <p><a href="https://github.com/prettier/prettier/compare/3.9.3...3.9.4">diff</a></p> <h4>Angular: Format <code>@content(name)</code> -> <code>@content (name)</code> to align with other block syntax (<a href="https://redirect.github.com/prettier/prettier/pull/19499">#19499</a> by <a href="https://github.com/fisker"><code>@fisker</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="html"><code><!-- Input --> <FancyButton [label]="title"> @content (icon) { <span>Icon!</span> } @content (description) { <span>Description text</span> } <span>Other children</span> </FancyButton> <p><!-- Prettier 3.9.3 --> <FancyButton [label]="title"> <a href="https://github.com/content"><code>@content</code></a>(icon) { <span>Icon!</span> } <a href="https://github.com/content"><code>@content</code></a>(description) { <span>Description text</span> } <span>Other children</span> </FancyButton></p> <p><!-- Prettier 3.9.4 --> <FancyButton [label]="title"> <a href="https://github.com/content"><code>@content</code></a> (icon) { <span>Icon!</span> } <a href="https://github.com/content"><code>@content</code></a> (description) { <span>Description text</span> } <span>Other children</span> </FancyButton> </code></pre></p> <h1>3.9.3</h1> <p><a href="https://github.com/prettier/prettier/compare/3.9.1...3.9.3">diff</a></p> <h4>Markdown: Fix unexpected removal of characters in liquid syntax (<a href="https://redirect.github.com/prettier/prettier/pull/19489">#19489</a> by <a href="https://github.com/seiyab"><code>@seiyab</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="md"><code></tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/prettier/prettier/commit/b693cb22b412b759784bc2298fc86880e351cd3a"><code>b693cb2</code></a> Release 3.9.4</li> <li><a href="https://github.com/prettier/prettier/commit/2e92ac0ee29fb83b7ce32277cb914c2eee192955"><code>2e92ac0</code></a> Angular: Format <code>@content(name)</code> -> <code>@content (name)</code> to align with other blo...</li> <li><a href="https://github.com/prettier/prettier/commit/abed2c22db3cb61e922b7284c3b6c65424353ac2"><code>abed2c2</code></a> Bump Prettier dependency to 3.9.3</li> <li><a href="https://github.com/prettier/prettier/commit/6cfbc00921de451e918b18bb5ab6b80e80f5cd34"><code>6cfbc00</code></a> Clean changelog_unreleased</li> <li><a href="https://github.com/prettier/prettier/commit/3732e1dee6a36bdb2e77a722d206a79ac7e67aa3"><code>3732e1d</code></a> Release 3.9.3</li> <li><a href="https://github.com/prettier/prettier/commit/a74a7b05dee7fbef39a6aeff378c3741e1a8ee15"><code>a74a7b0</code></a> Allow decorators to be used with <code>declare</code> on class fields (<a href="https://redirect.github.com/prettier/prettier/issues/19492">#19492</a>)</li> <li><a href="https://github.com/prettier/prettier/commit/bd9e11ab41e17a4f61f363a981c1ec24d2a4167a"><code>bd9e11a</code></a> Correct text identification in liquid syntax (<a href="https://redirect.github.com/prettier/prettier/issues/19489">#19489</a>)</li> <li><a href="https://github.com/prettier/prettier/commit/269eee3faa1f82b1de07bb7e4d15e1cee70f80d4"><code>269eee3</code></a> Bump Prettier dependency to 3.9.1</li> <li><a href="https://github.com/prettier/prettier/commit/ec7ccd1ea47c965bda3c958239899737e899603d"><code>ec7ccd1</code></a> Clean changelog_unreleased</li> <li><a href="https://github.com/prettier/prettier/commit/c47654c003fe525572e10d5cc1ea64d7b9c0ee55"><code>c47654c</code></a> Release 3.9.1</li> <li>Additional commits viewable in <a href="https://github.com/prettier/prettier/compare/3.8.3...3.9.4">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: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
LangGraph CLI
To help you ship LangGraph apps to production faster, check out LangSmith. LangSmith is a unified developer platform for building, testing, and monitoring LLM applications.
Quick Install
uv add langgraph-cli
🤔 What is this?
The LangGraph CLI is the official command-line interface for LangGraph. It provides tools to create, develop, build, and run LangGraph applications locally or in Docker.
📖 Documentation
For full documentation, see the LangGraph CLI reference. For conceptual guides and tutorials, see the LangGraph Docs.
For development mode with hot reloading:
uv add "langgraph-cli[inmem]"
Commands
langgraph new 🌱
Create a new LangGraph project from a template.
langgraph new [PATH] --template TEMPLATE_NAME
langgraph dev 🏃♀️
Run LangGraph API server in development mode with hot reloading.
langgraph dev [OPTIONS]
--host TEXT Host to bind to (default: 127.0.0.1)
--port INTEGER Port to bind to (default: 2024)
--no-reload Disable auto-reload
--debug-port INTEGER Enable remote debugging
--no-browser Skip opening browser window
-c, --config FILE Config file path (default: langgraph.json)
langgraph up 🚀
Launch LangGraph API server in Docker.
langgraph up [OPTIONS]
-p, --port INTEGER Port to expose (default: 8123)
--wait Wait for services to start
--watch Restart on file changes
--verbose Show detailed logs
-c, --config FILE Config file path
-d, --docker-compose Additional services file
langgraph build
Build a Docker image for your LangGraph application.
langgraph build -t IMAGE_TAG [OPTIONS]
--platform TEXT Target platforms (e.g., linux/amd64,linux/arm64)
--pull / --no-pull Use latest/local base image
-c, --config FILE Config file path
langgraph dockerfile
Generate a Dockerfile for custom deployments.
langgraph dockerfile SAVE_PATH [OPTIONS]
-c, --config FILE Config file path
Configuration
The CLI uses a langgraph.json configuration file with these key settings:
{
"dependencies": ["langchain_openai", "./your_package"],
"graphs": {
"my_graph": "./your_package/file.py:graph"
},
"env": "./.env",
"python_version": "3.11",
"pip_config_file": "./pip.conf",
"dockerfile_lines": []
}
See the full documentation for detailed configuration options.
Development
To develop the CLI itself:
- Clone the repository
- Navigate to the CLI directory:
cd libs/cli - Install development dependencies:
uv sync - Make your changes to the CLI code
- Test your changes:
# Run CLI commands directly
uv run langgraph --help
# Or use the examples
cd examples
uv sync
uv run langgraph dev # or other commands
📕 Releases & Versioning
See our Releases and Versioning policies.
💁 Contributing
As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
For detailed information on how to contribute, see the Contributing Guide.