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>
New LangGraph.js Project
This template demonstrates a simple chatbot implemented using LangGraph.js, designed for LangGraph Studio. The chatbot maintains persistent chat memory, allowing for coherent conversations across multiple interactions.
The core logic, defined in src/agent/graph.ts, showcases a straightforward chatbot that responds to user queries while maintaining context from previous messages.
🤔 What is this?
The simple chatbot:
- Takes a user message as input
- Maintains a history of the conversation
- Returns a placeholder response, updating the conversation history
This template provides a foundation that can be easily customized and extended to create more complex conversational agents.
📖 Documentation
For JavaScript and TypeScript documentation, see the LangGraph.js docs. LangGraph Studio also integrates with LangSmith for tracing and collaboration with teammates.
Getting Started
Assuming you have already installed LangGraph Studio, to set up:
- Create a
.envfile. This template does not require any environment variables by default, but you will likely want to add some when customizing.
cp .env.example .env
- Open the folder in LangGraph Studio!
- Customize the code as needed.
How to customize
- Add an LLM call: You can select and install a chat model wrapper from the LangChain.js ecosystem, or use LangGraph.js without LangChain.js.
- Extend the graph: The core logic of the chatbot is defined in graph.ts. You can modify this file to add new nodes, edges, or change the flow of the conversation.
You can also extend this template by:
- Adding custom tools or functions to enhance the chatbot's capabilities.
- Implementing additional logic for handling specific types of user queries or tasks.
- Add retrieval-augmented generation (RAG) capabilities by integrating external APIs or databases to provide more customized responses.
Development
While iterating on your graph, you can edit past state and rerun your app from previous states to debug specific nodes. Local changes will be automatically applied via hot reload. Try experimenting with:
- Modifying the system prompt to give your chatbot a unique personality.
- Adding new nodes to the graph for more complex conversation flows.
- Implementing conditional logic to handle different types of user inputs.
Follow-up requests will be appended to the same thread. You can create an entirely new thread, clearing previous history, using the + button in the top right.
For more advanced features and examples, refer to the LangGraph.js documentation. These resources can help you adapt this template for your specific use case and build more sophisticated conversational agents.
LangGraph Studio also integrates with LangSmith for more in-depth tracing and collaboration with teammates, allowing you to analyze and optimize your chatbot's performance.
