Bumps the minor-and-patch group in /libs/cli/js-monorepo-example with 8 updates: | Package | From | To | | --- | --- | --- | | [turbo](https://github.com/vercel/turborepo) | `2.10.12` | `2.11.5` | | [@eslint/eslintrc](https://github.com/eslint/eslintrc) | `3.3.6` | `3.3.7` | | [eslint](https://github.com/eslint/eslint) | `10.9.1` | `10.11.0` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.68.0` | `8.70.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.68.0` | `8.70.1` | | [prettier](https://github.com/prettier/prettier) | `3.9.6` | `3.9.9` | | [@langchain/core](https://github.com/langchain-ai/langchainjs) | `1.2.9` | `1.2.13` | | [@langchain/langgraph](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core) | `1.4.13` | `1.4.18` | Updates `turbo` from 2.10.12 to 2.11.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/turborepo/releases">turbo's releases</a>.</em></p> <blockquote> <h2>Turborepo v2.11.5</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Changelog</h3> <ul> <li>chore: Release Turborepo 2.11.4 by <a href="https://github.com/github-actions"><code>@github-actions</code></a>[bot] in <a href="https://redirect.github.com/vercel/turborepo/pull/14231">vercel/turborepo#14231</a></li> <li>test: Move Python opt-in hint into filter contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14228">vercel/turborepo#14228</a></li> <li>test: Move dependency-output summary assertion into contract by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14230">vercel/turborepo#14230</a></li> <li>test: Move dependency-output selection and validation cases to engine contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14232">vercel/turborepo#14232</a></li> <li>test: Move Cargo exclude-only scope coverage by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14238">vercel/turborepo#14238</a></li> <li>test: Move Cargo cache-authority cases to contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14240">vercel/turborepo#14240</a></li> <li>test: Move JIT dependency graph scenario into engine contract by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14235">vercel/turborepo#14235</a></li> <li>test: Move dependency-output hash cases into task-hash contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14233">vercel/turborepo#14233</a></li> <li>test: Move Cargo task-filter cases into crate contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14239">vercel/turborepo#14239</a></li> <li>test: Move JIT input hash timing cases into task-hash contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14234">vercel/turborepo#14234</a></li> <li>test: Move package input normalization cases into engine contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14236">vercel/turborepo#14236</a></li> <li>test: Move structured startup and JIT input cases into contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14237">vercel/turborepo#14237</a></li> <li>fix: Back off remote artifact requests during outages by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14222">vercel/turborepo#14222</a></li> <li>chore: Release Turborepo 2.11.5-canary.1 by <a href="https://github.com/github-actions"><code>@github-actions</code></a>[bot] in <a href="https://redirect.github.com/vercel/turborepo/pull/14245">vercel/turborepo#14245</a></li> <li>test: Make new-package lockfile filter deterministic by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14241">vercel/turborepo#14241</a></li> <li>test: Trim redundant Go cache builds by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14242">vercel/turborepo#14242</a></li> <li>test: Reduce Go versioned-name test matrix by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14243">vercel/turborepo#14243</a></li> <li>test: Move Go binary checks into contracts by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14246">vercel/turborepo#14246</a></li> <li>test: Consolidate Go format smokes by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14244">vercel/turborepo#14244</a></li> <li>test: Reuse Cargo build artifacts safely by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14247">vercel/turborepo#14247</a></li> <li>test: Separate prune planning matrix from buildability smoke by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14248">vercel/turborepo#14248</a></li> <li>feat: Bundle docs in <code>turbo</code> npm package by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14108">vercel/turborepo#14108</a></li> <li>chore: Release Turborepo 2.11.5-canary.2 by <a href="https://github.com/github-actions"><code>@github-actions</code></a>[bot] in <a href="https://redirect.github.com/vercel/turborepo/pull/14249">vercel/turborepo#14249</a></li> <li>fix: Stabilize pnpm per-workspace lockfile hashes by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14253">vercel/turborepo#14253</a></li> <li>chore: Upgrade factory Next.js to 16.3.3 by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14254">vercel/turborepo#14254</a></li> <li>fix: Update js-yaml to address CVE-2026-84375 by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14255">vercel/turborepo#14255</a></li> <li>chore: Upgrade Next.js in docs and factory for CVE-2026-94545 by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14256">vercel/turborepo#14256</a></li> <li>fix: Remove unmaintained proc-macro-error2 by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14257">vercel/turborepo#14257</a></li> <li>refactor: Replace clap in production CLIs with usage-rs by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14259">vercel/turborepo#14259</a></li> <li>chore: Remove tiny-gradient dependency by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14260">vercel/turborepo#14260</a></li> <li>refactor: Replace human-panic with local crash reporting by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14261">vercel/turborepo#14261</a></li> <li>chore: Remove unused struct_iterable dependency by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14258">vercel/turborepo#14258</a></li> <li>fix: Sign complete on-disk artifacts after local cache writes by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14265">vercel/turborepo#14265</a></li> <li>chore: Remove <code>derive_setters</code> dependency by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14266">vercel/turborepo#14266</a></li> <li>chore: Remove port_scanner dependency by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14267">vercel/turborepo#14267</a></li> <li>chore: Remove unused Rust dependency declarations by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14268">vercel/turborepo#14268</a></li> <li>refactor: Remove unused public Rust APIs by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14269">vercel/turborepo#14269</a></li> <li>refactor: Use workspace Rust edition across crates by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14270">vercel/turborepo#14270</a></li> <li>chore: Clean up Rust Clippy exceptions by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14271">vercel/turborepo#14271</a></li> <li>refactor: Group task-hash and uv generation context by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14279">vercel/turborepo#14279</a></li> <li>refactor: Remove unused global hash wrapper by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14281">vercel/turborepo#14281</a></li> <li>refactor: Remove unused file-hash telemetry argument by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14282">vercel/turborepo#14282</a></li> <li>refactor: Remove dead CLI code and crate-wide allowance by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14283">vercel/turborepo#14283</a></li> <li>refactor: Remove dead Microfrontends config code by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14284">vercel/turborepo#14284</a></li> <li>refactor: Remove unused UI task types and dead-code allowance by <a href="https://github.com/anthonyshew"><code>@anthonyshew</code></a> in <a href="https://redirect.github.com/vercel/turborepo/pull/14286">vercel/turborepo#14286</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/turborepo/commit/8492b42667210270f4169f0df8c0edf725ff2f41"><code>8492b42</code></a> publish 2.11.5 to registry</li> <li><a href="https://github.com/vercel/turborepo/commit/a50ee6536eac2f7f3168cc38087ee7d8397fc0e9"><code>a50ee65</code></a> chore: Release Turborepo 2.11.5-canary.5 (<a href="https://redirect.github.com/vercel/turborepo/issues/14328">#14328</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/c9602f339008964f8dfaf6329491c374cf2f0a60"><code>c9602f3</code></a> fix: Pass repository to release asset commands (<a href="https://redirect.github.com/vercel/turborepo/issues/14327">#14327</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/8cb67669e73cf73bde0a8a9e0a9a829ddd34993f"><code>8cb6766</code></a> fix: Isolate installer test environment (<a href="https://redirect.github.com/vercel/turborepo/issues/14326">#14326</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/5108f6c9fda7a7aeb2d2f31c46a44bbe966970c7"><code>5108f6c</code></a> feat: Add standalone installers URLs for <code>curl | bash</code> (<a href="https://redirect.github.com/vercel/turborepo/issues/14325">#14325</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/a46f82a2742ef0f8e1b5f9acebfbe2544c34c528"><code>a46f82a</code></a> chore: Release Turborepo 2.11.5-canary.4 (<a href="https://redirect.github.com/vercel/turborepo/issues/14324">#14324</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/8427e6e5dd7efc7afdf5a332502551fc8f2eabc8"><code>8427e6e</code></a> fix: Run standalone archive job on manual releases (<a href="https://redirect.github.com/vercel/turborepo/issues/14323">#14323</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/7f57aa38406027a30a77d46489ebbdf9dd3ef0e5"><code>7f57aa3</code></a> feat: Publish versioned standalone turbo archives (<a href="https://redirect.github.com/vercel/turborepo/issues/14322">#14322</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/d6b852c53c8473ec88081e826b357feb35938e5e"><code>d6b852c</code></a> docs: Update Turborepo schema URL example (<a href="https://redirect.github.com/vercel/turborepo/issues/14321">#14321</a>)</li> <li><a href="https://github.com/vercel/turborepo/commit/c76ac66c4447bfe35301bee0a002d3c60e163342"><code>c76ac66</code></a> chore: Release Turborepo 2.11.5-canary.3 (<a href="https://redirect.github.com/vercel/turborepo/issues/14320">#14320</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/turborepo/compare/v2.10.12...v2.11.5">compare view</a></li> </ul> </details> <br /> Updates `@eslint/eslintrc` from 3.3.6 to 3.3.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eslint/eslintrc/releases">@eslint/eslintrc's releases</a>.</em></p> <blockquote> <h2>eslintrc: v3.3.7</h2> <h2><a href="https://github.com/eslint/eslintrc/compare/eslintrc-v3.3.6...eslintrc-v3.3.7">3.3.7</a> (2026-09-01)</h2> <h3>Bug Fixes</h3> <ul> <li>Bump js-yaml to 4.3.1 (<a href="https://redirect.github.com/eslint/eslintrc/issues/239">#239</a>) (<a href="https://github.com/eslint/eslintrc/commit/f27e7c94e6d9438bd51cb483d8d5da768e1cc0b9">f27e7c9</a>)</li> <li>update js-yaml to 4.3.2 to address security vulnerability (<a href="https://redirect.github.com/eslint/eslintrc/issues/243">#243</a>) (<a href="https://github.com/eslint/eslintrc/commit/bb0d97a338937b88fa99d6bbc0a904e34eda3d5f">bb0d97a</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eslint/eslintrc/blob/main/CHANGELOG.md">@eslint/eslintrc's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/eslint/eslintrc/compare/eslintrc-v3.3.6...eslintrc-v3.3.7">3.3.7</a> (2026-09-01)</h2> <h3>Bug Fixes</h3> <ul> <li>Bump js-yaml to 4.3.1 (<a href="https://redirect.github.com/eslint/eslintrc/issues/239">#239</a>) (<a href="https://github.com/eslint/eslintrc/commit/f27e7c94e6d9438bd51cb483d8d5da768e1cc0b9">f27e7c9</a>)</li> <li>update js-yaml to 4.3.2 to address security vulnerability (<a href="https://redirect.github.com/eslint/eslintrc/issues/243">#243</a>) (<a href="https://github.com/eslint/eslintrc/commit/bb0d97a338937b88fa99d6bbc0a904e34eda3d5f">bb0d97a</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eslint/eslintrc/commit/7943fa6dd55b236a539f658b88c763a4f9fbb38d"><code>7943fa6</code></a> chore: release 3.3.7 🚀 (<a href="https://redirect.github.com/eslint/eslintrc/issues/240">#240</a>)</li> <li><a href="https://github.com/eslint/eslintrc/commit/bb0d97a338937b88fa99d6bbc0a904e34eda3d5f"><code>bb0d97a</code></a> fix: update js-yaml to 4.3.2 to address security vulnerability (<a href="https://redirect.github.com/eslint/eslintrc/issues/243">#243</a>)</li> <li><a href="https://github.com/eslint/eslintrc/commit/5b4abc9c74dd92b9eb782ca81d559a88906509e9"><code>5b4abc9</code></a> docs: Update README sponsors</li> <li><a href="https://github.com/eslint/eslintrc/commit/f27e7c94e6d9438bd51cb483d8d5da768e1cc0b9"><code>f27e7c9</code></a> fix: Bump js-yaml to 4.3.1 (<a href="https://redirect.github.com/eslint/eslintrc/issues/239">#239</a>)</li> <li><a href="https://github.com/eslint/eslintrc/commit/b75e1d2425deebfd1ec7f952dda7d0c4f4d65d5c"><code>b75e1d2</code></a> docs: Update README sponsors</li> <li><a href="https://github.com/eslint/eslintrc/commit/302c13310e148268f990df3edbfd10dab44f2678"><code>302c133</code></a> docs: Update README sponsors</li> <li><a href="https://github.com/eslint/eslintrc/commit/e62e7661b0d9063e42a37af5551bbcb1897e188d"><code>e62e766</code></a> docs: Update README sponsors</li> <li><a href="https://github.com/eslint/eslintrc/commit/cf27f9fd8f775d94500f2569a5bfb6a7de9cdb33"><code>cf27f9f</code></a> docs: Update README sponsors</li> <li><a href="https://github.com/eslint/eslintrc/commit/c7f4cdf1ffa86e28b5b8bf09f9e8bc7fadbf87ff"><code>c7f4cdf</code></a> docs: Update README sponsors</li> <li><a href="https://github.com/eslint/eslintrc/commit/3319822ac925e018c47fcafa351b20ea0bf6eeff"><code>3319822</code></a> docs: Update README sponsors</li> <li>Additional commits viewable in <a href="https://github.com/eslint/eslintrc/compare/eslintrc-v3.3.6...eslintrc-v3.3.7">compare view</a></li> </ul> </details> <br /> Updates `eslint` from 10.9.1 to 10.11.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.11.0</h2> <h2>Features</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/d136fa4b0d2dd4a9e738ca1c012cc674d1441127"><code>d136fa4</code></a> feat: object-shorthand handle quoted properties for <code>ignoreConstructors</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21271">#21271</a>) (Pavel)</li> <li><a href="https://github.com/eslint/eslint/commit/397b3b8134b8ce1a61cbf414d4c29c945ba25690"><code>397b3b8</code></a> feat: report unsafe labeled <code>continue</code> in <code>no-unsafe-finally</code> rule (<a href="https://redirect.github.com/eslint/eslint/issues/21316">#21316</a>) (electrohyun)</li> <li><a href="https://github.com/eslint/eslint/commit/d3dd47f42e4cb5f9da27e3a2e741aa21e02ea1a4"><code>d3dd47f</code></a> feat: only exempt <code>new-cap</code> built-ins that reference the global (<a href="https://redirect.github.com/eslint/eslint/issues/21290">#21290</a>) (sethamus)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/22b09f54f67a9512d4cea39ddbab9b6973d5c476"><code>22b09f5</code></a> fix: ignore <code>__proto__</code> properties in <code>prefer-object-spread</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21311">#21311</a>) (xbinaryx)</li> <li><a href="https://github.com/eslint/eslint/commit/b684bb1cd7e6be03ad1b7a951baead936d9c2166"><code>b684bb1</code></a> fix: make TimePass.parse optional in types and docs (<a href="https://redirect.github.com/eslint/eslint/issues/21313">#21313</a>) (ntnyq)</li> <li><a href="https://github.com/eslint/eslint/commit/26d11bce3e0e21f223613d4bb4be3423839b229e"><code>26d11bc</code></a> fix: don't report <code>__proto__</code> properties in <code>object-shorthand</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21310">#21310</a>) (xbinaryx)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/9ecfdc5319f83580cf3b81beab7e936015fef2fa"><code>9ecfdc5</code></a> docs: note that --cache can serve stale results for cross-file rules (<a href="https://redirect.github.com/eslint/eslint/issues/21312">#21312</a>) (bytedoe)</li> <li><a href="https://github.com/eslint/eslint/commit/6c789ff39bc5420e94e8dafeb328bf2b7e3d35ab"><code>6c789ff</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/5997825635dc9c4e81434894607ef2e3887e0ea3"><code>5997825</code></a> docs: clarify preserve-caught-error known limitation (<a href="https://redirect.github.com/eslint/eslint/issues/21294">#21294</a>) (Akinyemi Toluwalase)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/520dd77a35922fb537e2dbfb3c839d047acbdd68"><code>520dd77</code></a> perf: Implement fast paths in critical areas (<a href="https://redirect.github.com/eslint/eslint/issues/21210">#21210</a>) (Nicholas C. Zakas)</li> <li><a href="https://github.com/eslint/eslint/commit/92086c87e042413a3d0363d8fc3fbb11db98d06a"><code>92086c8</code></a> test: update <code>EMFILE</code> error generation for Node.js 26.9.0 compatibility (<a href="https://redirect.github.com/eslint/eslint/issues/21330">#21330</a>) (Francesco Trotta)</li> <li><a href="https://github.com/eslint/eslint/commit/9ac7eb60525ec768c2fdc6699e5a292aa913ce9e"><code>9ac7eb6</code></a> chore: update github/codeql-action action to v4.38.0 (<a href="https://redirect.github.com/eslint/eslint/issues/21331">#21331</a>) (renovate[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/24310e3a0e22b3c086ca402f88448676f2e1cfcd"><code>24310e3</code></a> chore: update ecosystem plugins (<a href="https://redirect.github.com/eslint/eslint/issues/21324">#21324</a>) (ESLint Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/45ad79e54a39b54b4ce8eb47e612bd2f72a7a651"><code>45ad79e</code></a> ci: bump pnpm/action-setup from 6.0.10 to 6.1.0 (<a href="https://redirect.github.com/eslint/eslint/issues/21318">#21318</a>) (dependabot[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/ac74e37322ebf122ada676f153dc55c81f3caab0"><code>ac74e37</code></a> chore: Add AGENTS.md with AI disclosure requirements (<a href="https://redirect.github.com/eslint/eslint/issues/21221">#21221</a>) (Nicholas C. Zakas)</li> <li><a href="https://github.com/eslint/eslint/commit/c8326608e710e670beaf982501aed80ea104919a"><code>c832660</code></a> chore: Upgrade Stylelint to the latest version in docs (<a href="https://redirect.github.com/eslint/eslint/issues/21245">#21245</a>) (Jung Hyeon Jun)</li> <li><a href="https://github.com/eslint/eslint/commit/f9f88fcccd965fdc162b89c4615dd4018e3cabdf"><code>f9f88fc</code></a> chore: update ecosystem plugins (<a href="https://redirect.github.com/eslint/eslint/issues/21308">#21308</a>) (ESLint Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/fc81076a5b8145360654d81cbc130cf7d25dca77"><code>fc81076</code></a> ci: add more types integration tests (<a href="https://redirect.github.com/eslint/eslint/issues/20395">#20395</a>) (Nitin Kumar)</li> </ul> <h2>v10.10.0</h2> <h2>Features</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/264b4346d1963701df0c398b4aeb2f6e8b2af93e"><code>264b434</code></a> feat: add <code>d</code> and <code>v</code> flags to <code>no-unexpected-multiline</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21305">#21305</a>) (Gihyeon Jeong / 정기현)</li> <li><a href="https://github.com/eslint/eslint/commit/c6cc6c592f30901345d94ef75e0d42c1894fae6c"><code>c6cc6c5</code></a> feat: check <code>Object.prototype</code> property names in <code>new-cap</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21269">#21269</a>) (crimsonjay0)</li> <li><a href="https://github.com/eslint/eslint/commit/5661fa65fde9fd4c14f0b730e3cee6a42fc657c1"><code>5661fa6</code></a> feat: no-extra-bind false negatives with class fields and static blocks (<a href="https://redirect.github.com/eslint/eslint/issues/21260">#21260</a>) (synthex-byte)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/bb47dc6da2399a8f76c0c0c3273e6bc314c480e5"><code>bb47dc6</code></a> fix: update dependency file-entry-cache to v11 (<a href="https://redirect.github.com/eslint/eslint/issues/20801">#20801</a>) (Milos Djermanovic)</li> <li><a href="https://github.com/eslint/eslint/commit/427ac0a014066c36aa57fa8fa9af20fd9fb591e1"><code>427ac0a</code></a> fix: use format strings in debug calls (<a href="https://redirect.github.com/eslint/eslint/issues/21247">#21247</a>) (Francesco Trotta)</li> <li><a href="https://github.com/eslint/eslint/commit/9d8153223dbf47b9aecdc1474202aaee4845f146"><code>9d81532</code></a> fix: support <code>__proto__</code> in <code>/* exported */</code> comments (<a href="https://redirect.github.com/eslint/eslint/issues/21261">#21261</a>) (sethamus)</li> <li><a href="https://github.com/eslint/eslint/commit/87e0a082438264ad90b87fd74165ab4fd90f63ef"><code>87e0a08</code></a> fix: prefer-object-has-own autofix breaks when Object is shadowed (<a href="https://redirect.github.com/eslint/eslint/issues/21282">#21282</a>) (김채영)</li> <li><a href="https://github.com/eslint/eslint/commit/8e2cb142217f2efee1d10dcc02bfb75145ae775d"><code>8e2cb14</code></a> fix: <code>new-cap</code> false positive for <code>UTC</code> calls with <code>properties: false</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21275">#21275</a>) (Pixel)</li> <li><a href="https://github.com/eslint/eslint/commit/9f4a364ab0ade048dfce1f37792b1d461d866e55"><code>9f4a364</code></a> fix: Ignore static imports in no-unreachable (<a href="https://redirect.github.com/eslint/eslint/issues/21276">#21276</a>) (Taha Kotil)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/2417cad57d7d1bc4cf3ecf0f0575cfb10ff2011c"><code>2417cad</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/9cecb8a0a2348070abf72321965d41919c7cc626"><code>9cecb8a</code></a> docs: document <code>\c</code> control letter escapes in no-control-regex (<a href="https://redirect.github.com/eslint/eslint/issues/21286">#21286</a>) (한국)</li> <li><a href="https://github.com/eslint/eslint/commit/8724829f69f8ed80c876e3a5a017da199ce78739"><code>8724829</code></a> docs: update compat table links (<a href="https://redirect.github.com/eslint/eslint/issues/21263">#21263</a>) (fnx)</li> <li><a href="https://github.com/eslint/eslint/commit/5634542be580750ffb1a5766470f9e9c72719696"><code>5634542</code></a> docs: Clarify eqeqeq suggestion behavior (<a href="https://redirect.github.com/eslint/eslint/issues/21256">#21256</a>) (Müslüm Yılmaz)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/b3d876b46083d67899eb1d9613118c1c583632a2"><code>b3d876b</code></a> chore: disable npm audit in ecosystem tests (<a href="https://redirect.github.com/eslint/eslint/issues/21306">#21306</a>) (Francesco Trotta)</li> <li><a href="https://github.com/eslint/eslint/commit/1696682791661c13167eb905da2f38d1b8f4a3bf"><code>1696682</code></a> ci: restore EMFILE test on Node.js 26 (<a href="https://redirect.github.com/eslint/eslint/issues/21297">#21297</a>) (Marry (Subin Yang))</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eslint/eslint/commit/3c0b7c6e1fe2dec778b97a996018126f22d437ae"><code>3c0b7c6</code></a> 10.11.0</li> <li><a href="https://github.com/eslint/eslint/commit/321f0a70dd908ed461b11142e17fbdc0c0f1f198"><code>321f0a7</code></a> Build: changelog update for 10.11.0</li> <li><a href="https://github.com/eslint/eslint/commit/520dd77a35922fb537e2dbfb3c839d047acbdd68"><code>520dd77</code></a> perf: Implement fast paths in critical areas (<a href="https://redirect.github.com/eslint/eslint/issues/21210">#21210</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/9ecfdc5319f83580cf3b81beab7e936015fef2fa"><code>9ecfdc5</code></a> docs: note that --cache can serve stale results for cross-file rules (<a href="https://redirect.github.com/eslint/eslint/issues/21312">#21312</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/92086c87e042413a3d0363d8fc3fbb11db98d06a"><code>92086c8</code></a> test: update <code>EMFILE</code> error generation for Node.js 26.9.0 compatibility (<a href="https://redirect.github.com/eslint/eslint/issues/21330">#21330</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/9ac7eb60525ec768c2fdc6699e5a292aa913ce9e"><code>9ac7eb6</code></a> chore: update github/codeql-action action to v4.38.0 (<a href="https://redirect.github.com/eslint/eslint/issues/21331">#21331</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/22b09f54f67a9512d4cea39ddbab9b6973d5c476"><code>22b09f5</code></a> fix: ignore <code>__proto__</code> properties in <code>prefer-object-spread</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21311">#21311</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/24310e3a0e22b3c086ca402f88448676f2e1cfcd"><code>24310e3</code></a> chore: update ecosystem plugins (<a href="https://redirect.github.com/eslint/eslint/issues/21324">#21324</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/d136fa4b0d2dd4a9e738ca1c012cc674d1441127"><code>d136fa4</code></a> feat: object-shorthand handle quoted properties for <code>ignoreConstructors</code> (<a href="https://redirect.github.com/eslint/eslint/issues/21">#21</a>...</li> <li><a href="https://github.com/eslint/eslint/commit/45ad79e54a39b54b4ce8eb47e612bd2f72a7a651"><code>45ad79e</code></a> ci: bump pnpm/action-setup from 6.0.10 to 6.1.0 (<a href="https://redirect.github.com/eslint/eslint/issues/21318">#21318</a>)</li> <li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v10.9.1...v10.11.0">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/eslint-plugin` from 8.68.0 to 8.70.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.70.1</h2> <h2>8.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>ast-spec:</strong> narrow import attribute keys to identifiers and strings (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12879">#12879</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>rule-tester:</strong> test the final autofix output instead of the first pass (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12867">#12867</a>)</li> <li><strong>scope-manager:</strong> merge implicit global definitions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12809">#12809</a>)</li> <li><strong>type-utils:</strong> match package specifiers on whole path components (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12838">#12838</a>)</li> <li><strong>typescript-estree:</strong> resolve symlinked paths when matching files to projects (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12725">#12725</a>)</li> <li><strong>typescript-estree:</strong> add missing <code><</code> token opening type arguments (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12821">#12821</a>)</li> <li><strong>typescript-estree:</strong> require string literal import attribute values (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12894">#12894</a>)</li> <li><strong>website:</strong> prevent playground from breaking down after opening link with the .js file type (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12777">#12777</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Amin <a href="https://github.com/amiin-dev"><code>@amiin-dev</code></a></li> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Cameron</li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>overlookmotel</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>stoicism <a href="https://github.com/stoicism02"><code>@stoicism02</code></a></li> <li>Vinccool96</li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1">GitHub Releases</a> for more information.</p> <!-- 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.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>Vinccool96</li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.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.70.0 (2026-09-07)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] add rule (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12730">#12730</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-deprecated] report deprecated imported values used in object shorthand properties (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12780">#12780</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] no false positive on RHS of a nested logical expression (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12728">#12728</a>)</li> <li><strong>eslint-plugin:</strong> [member-ordering] don't report fields that read fields declared before them (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12729">#12729</a>)</li> </ul> <h3>❤️ Thank You</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/23d38ceeb8fb1237f55cb62fc2b54419e1fa1ed7"><code>23d38ce</code></a> chore(release): publish 8.70.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/9d82e4b1d9011da31d62d14387bb5a539853fafa"><code>9d82e4b</code></a> chore: expand eslint-plugin rules test files glob (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12878">#12878</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/f7482f636b89b8eab966b4191ce4a53a3f4b4d9c"><code>f7482f6</code></a> fix(eslint-plugin): [no-misused-promises] handle multiple Promise constituent...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/267304477e04538614fe72ad71e7e13082eb7a90"><code>2673044</code></a> docs(eslint-plugin): [prefer-promise-reject-errors] add option sections and e...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/8f141a2ba63d539465eb4e4604f7d79f6f50ce14"><code>8f141a2</code></a> fix(eslint-plugin): [no-useless-default-assignment] convert the fixer to a su...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/479cd85ff82b81dbec9989621681257ebc317a69"><code>479cd85</code></a> chore: enable assertion option <code>requireData</code> for all rule tests (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12816">#12816</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/f3c190c5b5cfa9edaba15fa3f944a76a7364b3ed"><code>f3c190c</code></a> fix(eslint-plugin): [no-unnecessary-condition] handle union-keyed index acces...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/b1993dfd3c45b2c2d83058627499f1dfec5d6d2c"><code>b1993df</code></a> fix(eslint-plugin): [unbound-method] treat Intl.Collator.prototype.compare as...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/da394bc9c21afe97f456040da723d2c558f99658"><code>da394bc</code></a> fix(eslint-plugin): [no-unnecessary-parameter-property-assignment] account fo...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/4a742ff890b7cca8cbf79e78a9a3b345913094c6"><code>4a742ff</code></a> fix(eslint-plugin): [await-thenable] prevent autofix from breaking code when ...</li> <li>Additional commits viewable in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/parser` from 8.68.0 to 8.70.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.70.1</h2> <h2>8.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>ast-spec:</strong> narrow import attribute keys to identifiers and strings (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12879">#12879</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>rule-tester:</strong> test the final autofix output instead of the first pass (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12867">#12867</a>)</li> <li><strong>scope-manager:</strong> merge implicit global definitions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12809">#12809</a>)</li> <li><strong>type-utils:</strong> match package specifiers on whole path components (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12838">#12838</a>)</li> <li><strong>typescript-estree:</strong> resolve symlinked paths when matching files to projects (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12725">#12725</a>)</li> <li><strong>typescript-estree:</strong> add missing <code><</code> token opening type arguments (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12821">#12821</a>)</li> <li><strong>typescript-estree:</strong> require string literal import attribute values (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12894">#12894</a>)</li> <li><strong>website:</strong> prevent playground from breaking down after opening link with the .js file type (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12777">#12777</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Amin <a href="https://github.com/amiin-dev"><code>@amiin-dev</code></a></li> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Cameron</li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>overlookmotel</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>stoicism <a href="https://github.com/stoicism02"><code>@stoicism02</code></a></li> <li>Vinccool96</li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1">GitHub Releases</a> for more information.</p> <!-- 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.70.1 (2026-09-21)</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.70.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.70.0 (2026-09-07)</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.70.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.69.0 (2026-08-31)</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.69.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/23d38ceeb8fb1237f55cb62fc2b54419e1fa1ed7"><code>23d38ce</code></a> chore(release): publish 8.70.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/7ee76085c22e923c0036b8e0733a3ca7dfd82b60"><code>7ee7608</code></a> chore(release): publish 8.70.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/9a6e546823e5d8f2dc015df2aa66c0230615e209"><code>9a6e546</code></a> chore(release): publish 8.69.0</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/parser">compare view</a></li> </ul> </details> <br /> Updates `prettier` from 3.9.6 to 3.9.9 <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.9</h2> <ul> <li>Markdown: Fix text with <code>$</code> been incorrectly parsed as math syntax (<a href="https://redirect.github.com/prettier/prettier/pull/20140">#20140</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.9/CHANGELOG.md#399">Changelog</a></p> <h2>3.9.8</h2> <ul> <li>Markdown: Don't let Liquid objects interrupt paragraphs (<a href="https://redirect.github.com/prettier/prettier/pull/20087">#20087</a> by <a href="https://github.com/seiyab"><code>@seiyab</code></a>)</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.9.8/CHANGELOG.md#398">Changelog</a></p> <h2>3.9.7</h2> <ul> <li>Support Angular 22.2</li> <li>Fix regressions in v3.9</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.9.7/CHANGELOG.md#397">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.9</h1> <p><a href="https://github.com/prettier/prettier/compare/3.9.8...3.9.9">diff</a></p> <h4>Markdown: Fix text with <code>$</code> been incorrectly parsed as math syntax (<a href="https://redirect.github.com/prettier/prettier/pull/20140">#20140</a> by <a href="https://github.com/fisker"><code>@fisker</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="md"><code><!-- Input --> **Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here. <p><!-- Prettier 3.9.8 --> <strong>Uses $FOO</strong> from <code>a.sh</code> and <code>b.sh</code>, plus <code>$BAR</code>from<code>c.sh</code>, before anything else runs here.</p> <p><!-- Prettier 3.9.9 --> <strong>Uses $FOO</strong> from <code>a.sh</code> and <code>b.sh</code>, plus <code>$BAR</code> from <code>c.sh</code>, before anything else runs here. </code></pre></p> <h1>3.9.8</h1> <p><a href="https://github.com/prettier/prettier/compare/3.9.7...3.9.8">diff</a></p> <h4>Markdown: Don't let Liquid objects interrupt paragraphs (<a href="https://redirect.github.com/prettier/prettier/pull/20087">#20087</a> by <a href="https://github.com/seiyab"><code>@seiyab</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="markdown"><code><!-- Input --> If `module` is not a [`WebAssembly.Module`](https://github.com/prettier/prettier/blob/main/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a {{jsxref("TypeError")}} is thrown. <p><!-- Prettier 3.9.7 --> If <code>module</code> is not a <a href="https://github.com/prettier/prettier/blob/main/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module"><code>WebAssembly.Module</code></a> object instance, a</p> <p>{{jsxref("TypeError")}} is thrown.</p> <p><!-- Prettier 3.9.8 --> If <code>module</code> is not a <a href="https://github.com/prettier/prettier/blob/main/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module"><code>WebAssembly.Module</code></a> object instance, a {{jsxref("TypeError")}} is thrown. </code></pre></p> <h1>3.9.7</h1> <p><a href="https://github.com/prettier/prettier/compare/3.9.6...3.9.7">diff</a></p> <h4>Markdown: Prevent indentation drift in list-item code blocks (<a href="https://redirect.github.com/prettier/prettier/pull/19647">#19647</a>, <a href="https://redirect.github.com/prettier/prettier/pull/19990">#19990</a> by <a href="https://github.com/Austin1serb"><code>@Austin1serb</code></a>, <a href="https://github.com/giaBaoJS"><code>@giaBaoJS</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="markdown"><code><!-- Input --> - [x] short first line. </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/prettier/prettier/commit/cdd17f2288b28b170a76416c72dac56e3ea5daff"><code>cdd17f2</code></a> Release 3.9.9</li> <li><a href="https://github.com/prettier/prettier/commit/dc7b8968e678f51ea00e2be3fe8c717d114691a3"><code>dc7b896</code></a> Disable <code>singleDollarTextMath</code> in <code>mdast-util-math</code> (<a href="https://redirect.github.com/prettier/prettier/issues/20140">#20140</a>)</li> <li><a href="https://github.com/prettier/prettier/commit/f9be58fb8ec62dd47197ea19a30aac5ad26dfee0"><code>f9be58f</code></a> Git blame ignore 3.9.8</li> <li><a href="https://github.com/prettier/prettier/commit/88470cb79ca3b757dd6b93906d9a992aa1a456c3"><code>88470cb</code></a> Bump Prettier dependency to 3.9.8</li> <li><a href="https://github.com/prettier/prettier/commit/9559cab39eb5082c99a27e8829760c055adba841"><code>9559cab</code></a> Clean changelog_unreleased</li> <li><a href="https://github.com/prettier/prettier/commit/4fc8ee87465de8d54780273a6996d74e8e9da827"><code>4fc8ee8</code></a> Update dependents count</li> <li><a href="https://github.com/prettier/prettier/commit/4f2ab6765d7cb29408a2abdac75d023d64d44107"><code>4f2ab67</code></a> Release 3.9.8</li> <li><a href="https://github.com/prettier/prettier/commit/3d82af8b15b8e89de20dd05cc65f66ab6d4ce8b0"><code>3d82af8</code></a> Update Regex related dependencies (<a href="https://redirect.github.com/prettier/prettier/issues/20082">#20082</a>)</li> <li><a href="https://github.com/prettier/prettier/commit/5ec8db1745c2bdcca3706ab8cfbbe5c11fc457c1"><code>5ec8db1</code></a> [3.9.x] Markdown: Don't let Liquid objects interrupt paragraphs (<a href="https://redirect.github.com/prettier/prettier/issues/20087">#20087</a>)</li> <li><a href="https://github.com/prettier/prettier/commit/5b142ed2bce0095161bf6865af30df2d5ba99466"><code>5b142ed</code></a> Release Release <code>@prettier/plugin-hermes</code><a href="https://github.com/0"><code>@0</code></a>.2.3, <code>@prettier/plugin-oxc</code><a href="https://github.com/0"><code>@0</code></a>.2.3, an...</li> <li>Additional commits viewable in <a href="https://github.com/prettier/prettier/compare/3.9.6...3.9.9">compare view</a></li> </ul> </details> <br /> Updates `@langchain/core` from 1.2.9 to 1.2.13 <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.13</h2> <h3>Patch Changes</h3> <ul> <li><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/11714">#11714</a> <a href="https://github.com/langchain-ai/langchainjs/commit/a83dfb14f8e17fcb66dc7a915f0cf8ed7b0dffa1"><code>a83dfb1</code></a> Thanks <a href="https://github.com/ccurme"><code>@ccurme</code></a>! - Abbreviate long tool-call IDs when formatting chat messages as strings, keeping original messages unchanged.</li> </ul> <h2><code>@langchain/core</code><a href="https://github.com/1"><code>@1</code></a>.2.12</h2> <h3>Patch Changes</h3> <ul> <li><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/11675">#11675</a> <a href="https://github.com/langchain-ai/langchainjs/commit/030a726639e0147488bc8c23c063a2e72b004c2e"><code>030a726</code></a> Thanks <a href="https://github.com/hntrl"><code>@hntrl</code></a>! - Preserve structured tool arguments in tracer run inputs.</li> </ul> <h2><code>@langchain/core</code><a href="https://github.com/1"><code>@1</code></a>.2.11</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/11603">#11603</a> <a href="https://github.com/langchain-ai/langchainjs/commit/fec9cd87b01976014dd549bd2cf7849aee89a566"><code>fec9cd8</code></a> Thanks <a href="https://github.com/thushanth-bengre-langchain"><code>@thushanth-bengre-langchain</code></a>! - fix(core): build streaming <code>llmOutput.tokenUsage</code> from the fully-accumulated chunk instead of whichever individual chunk's <code>usage_metadata</code> arrived last</p> <p>Affects both core streaming paths — <code>.stream()</code>/<code>.streamEvents()</code> (<code>_streamIterator</code>) and <code>.invoke()</code>/<code>.generate()</code> when a streaming-preferring callback is attached (<code>_generateWithCache</code>'s <code>hasStreamingHandler</code> branch). Previously, <code>llmOutput.tokenUsage</code> was overwritten by each chunk in turn, so only the last chunk carrying <code>usage_metadata</code> won — correct for providers that emit one cumulative total on a final chunk, but wrong for providers (e.g. <code>@langchain/google</code>, <code>@langchain/anthropic</code>) that emit <code>usage_metadata</code> as a per-chunk delta across multiple chunks, where the values must be summed.</p> <p>Note for provider authors: this assumes each streamed chunk's <code>usage_metadata</code> is either a per-chunk delta or appears only on a single final chunk. A provider that instead repeats a cumulative total on every chunk will now see it summed (and inflated) in <code>llmOutput.tokenUsage</code>, matching the existing behavior of the correctly-working <code>message.usage_metadata</code> field.</p> <p>Also fixes <code>@langchain/google</code>'s <code>invoke({streaming: true})</code> path (no streaming-preferring callback attached), where <code>llmOutput</code> was never populated at all.</p> </li> <li> <p><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/11590">#11590</a> <a href="https://github.com/langchain-ai/langchainjs/commit/ffebdc2f00f3290d19f85e5afd6a297920ae584c"><code>ffebdc2</code></a> Thanks <a href="https://github.com/thushanth-bengre-langchain"><code>@thushanth-bengre-langchain</code></a>! - Fix OpenAI Responses API replay under Zero Data Retention when a response contains more than one reasoning item, for both v0 and v1. In v0, the default replay path now reuses <code>response_metadata.output</code> directly, preserving every reasoning item's <code>id</code>/<code>encrypted_content</code> in original order. In v1, <code>AIMessage.contentBlocks</code> (<code>outputVersion: "v1"</code>) is fixed the same way. <code>additional_kwargs.reasoning</code> is unchanged.</p> </li> </ul> <h2><code>@langchain/core</code><a href="https://github.com/1"><code>@1</code></a>.2.10</h2> <h3>Patch Changes</h3> <ul> <li><a href="https://redirect.github.com/langchain-ai/langchainjs/pull/10047">#10047</a> <a href="https://github.com/langchain-ai/langchainjs/commit/ff1248fd49dacdb35f5da128278cd777068481d7"><code>ff1248f</code></a> Thanks <a href="https://github.com/afirstenberg"><code>@afirstenberg</code></a>! - fix(core): BaseMessage.text use contentBlocks</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langchainjs/commit/c8d12783ecc31a0816f3a47da1040fbd3c08fdbc"><code>c8d1278</code></a> chore: version packages (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11729">#11729</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/5d509ad4b8a5ed9dd4b83020b4c103ac8a69859c"><code>5d509ad</code></a> fix(openai): send in-memory prompt cache retention as in_memory (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11735">#11735</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/663b9a2076c5b274435c77524ad7730450b34f34"><code>663b9a2</code></a> feat(openai): support explicit prompt caching (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11232">#11232</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/7735b219221d6ae63eb5445fb67d26c18fce9c46"><code>7735b21</code></a> chore(infra): drop held mcp-adapters 2.0 changeset to unblock main releases (...</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/34edee1153f0fa40ba6997c8ff7bd45834ca8ce8"><code>34edee1</code></a> fix(langchain): return failed returnDirect tool calls to the model (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11712">#11712</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/0fcb98b4306a771c940e78d6881d0be9f88507c1"><code>0fcb98b</code></a> fix(textsplitters): use char length for loc.lines with custom lengthFunction ...</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/e4a3d1bd0c6753d4e1739a7f10064f48e6bc49ec"><code>e4a3d1b</code></a> chore: version packages (<a href="https://redirect.github.com/langchain-ai/langchainjs/issues/11683">#11683</a>)</li> <li><a href="https://github.com/langchain-ai/langchainjs/commit/a9ada857f22c4b746801e77... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@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": []
}
Git dependencies should use credential-free URLs. The CLI conservatively scans direct langgraph.json dependencies, common Python package files, uv project and lock files, and common Node.js package and lock files for HTTP Git URLs with userinfo. This check is not exhaustive: generated Docker builds can copy other files, including nested requirement or constraint files, into image layers without scanning them. For private dependencies, provide short-lived credentials through your build environment's secret-backed Git credential helper. Do not store credentials in copied files such as langgraph.json or pip_config_file.
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.