dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0cf2f960f6 chore(deps): bump the minor-and-patch group in /libs/cli with 6 updates (#8778)
Bumps the minor-and-patch group in /libs/cli with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |
| [langgraph-sdk](https://github.com/langchain-ai/langgraph) | `0.4.2` |
`0.4.4` |
| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2`
| `1.2.3` |
| [ruff](https://github.com/astral-sh/ruff) | `0.16.0` | `0.16.5` |
| [ty](https://github.com/astral-sh/ty) | `0.0.64` | `0.0.75` |
| [hatch](https://github.com/pypa/hatch) | `1.17.1` | `1.18.0` |

Updates `click` from 8.4.2 to 8.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/click/releases">click's
releases</a>.</em></p>
<blockquote>
<h2>8.5.0</h2>
<p>This is the Click 8.5.0 feature release. A feature release may
include new features, remove previously deprecated code, add new
deprecation, or introduce potentially breaking changes.</p>
<p>We encourage everyone to upgrade. You can read more about our <a
href="https://palletsprojects.com/versions">Version Support Policy</a>
on our website.</p>
<p>PyPI: <a
href="https://pypi.org/project/click/8.5.0/">https://pypi.org/project/click/8.5.0/</a>
Changes: <a
href="https://click.palletsprojects.com/page/changes/#version-8-5-0">https://click.palletsprojects.com/page/changes/#version-8-5-0</a>
Milestone <a
href="https://github.com/pallets/click/milestone/33">https://github.com/pallets/click/milestone/33</a></p>
<ul>
<li>Add built-in shell completion support for PowerShell (Windows
PowerShell
5.1+ and pwsh 7+) alongside the existing <code>bash</code>,
<code>zsh</code>, and <code>fish</code>
completers. Use <code>_FOO_BAR_COMPLETE=powershell_source foo-bar</code>
to generate
the completion script. <a
href="https://redirect.github.com/pallets/click/issues/2672">#2672</a>
<a
href="https://redirect.github.com/pallets/click/issues/3637">#3637</a></li>
<li>Supported versions of Windows enable ANSI terminal styles by
default.
Colorama is no longer a dependency and is not used. <a
href="https://redirect.github.com/pallets/click/issues/2986">#2986</a>
<a
href="https://redirect.github.com/pallets/click/issues/3505">#3505</a></li>
<li>{class}<code>Argument</code> accepts a <code>help</code> parameter,
and help output includes
a <code>Positional arguments</code> section when argument help is
available. <a
href="https://redirect.github.com/pallets/click/issues/2983">#2983</a>
<a
href="https://redirect.github.com/pallets/click/issues/3473">#3473</a></li>
<li><code>confirm()</code> and <code>prompt()</code> strip ANSI color
and style codes from the
prompt when the output stream does not support them, matching
<code>echo()</code>.
This stripping was lost in <code>8.4.0</code> when <a
href="https://redirect.github.com/pallets/click/issues/2969">#2969</a>
began writing the
prompt with <code>input()</code> directly. <a
href="https://redirect.github.com/pallets/click/issues/3572">#3572</a>
<a
href="https://redirect.github.com/pallets/click/issues/3653">#3653</a></li>
<li>{class}<code>Path</code> with <code>allow_dash=True</code> no longer
triggers a <code>BytesWarning</code>,
an error under <code>python -bb</code>, when checking a value against
the <code>-</code>
convention. <a
href="https://redirect.github.com/pallets/click/issues/2877">#2877</a>
<a
href="https://redirect.github.com/pallets/click/issues/3642">#3642</a></li>
<li>Add {func}<code>custom_version_option</code>, a
<code>--version</code> option whose output is
produced by a callback, covering cases {func}<code>version_option</code>
intentionally
does not. The feature set of {func}<code>version_option</code> is now
frozen; see
[discussion <a
href="https://redirect.github.com/pallets/click/issues/3527">#3527</a>](<a
href="https://github.com/pallets/click/discussions/3527">https://github.com/pallets/click/discussions/3527</a>).
<a
href="https://redirect.github.com/pallets/click/issues/3581">#3581</a></li>
<li><code>style()</code> and <code>secho()</code> no longer silently
drop the 256-color index <code>0</code>
(black) passed as <code>fg</code> or <code>bg</code>, and now validate
color arguments. Invalid
colors raise a <code>ValueError</code> instead of a
<code>TypeError</code>. <a
href="https://redirect.github.com/pallets/click/issues/3677">#3677</a></li>
<li>The automatic help option stores its value under the reserved name
<code>_click_default_help</code> instead of <code>help</code>, so a
parameter named <code>help</code> no
longer breaks parsing. The new name is visible in
{meth}<code>Command.to_info_dict</code> output. Parameters that
overwrite each other's
value trigger a warning: an argument sharing its name with another
parameter, or any parameter claiming the reserved name. Options may
still
share a name to compete for the same value (feature switches).
<a
href="https://redirect.github.com/pallets/click/issues/2819">#2819</a>
<a
href="https://redirect.github.com/pallets/click/issues/3678">#3678</a></li>
<li><code>unstyle</code> and the ANSI handling behind help-text wrapping
now strip the full
CSI escape-sequence grammar. <a
href="https://redirect.github.com/pallets/click/issues/3681">#3681</a></li>
<li>Streamline <code>Option</code> flag handling: the flag-kind, type,
lazy-default and
validation steps in <code>Option.__init__</code> move into focused
helpers, and
<code>flag_value</code> and <code>default</code> keep their unset
sentinel at construction
(resolved lazily on read) so <code>is UNSET</code> reliably tells a
user-supplied value
from an auto-derived one. Runtime behavior is unchanged, but
{meth}<code>Parameter.to_info_dict</code> now resolves
<code>default=True</code> on a feature
switch to its <code>flag_value</code>, matching what the function
receives at call</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/click/blob/main/CHANGES.md">click's
changelog</a>.</em></p>
<blockquote>
<h2>Version 8.5.0</h2>
<p>Released 2026-08-24</p>
<ul>
<li>Add built-in shell completion support for PowerShell (Windows
PowerShell
5.1+ and pwsh 7+) alongside the existing <code>bash</code>,
<code>zsh</code>, and <code>fish</code>
completers. Use <code>_FOO_BAR_COMPLETE=powershell_source foo-bar</code>
to generate
the completion script. {issue}<code>2672</code>
{pr}<code>3637</code></li>
<li>Supported versions of Windows enable ANSI terminal styles by
default.
Colorama is no longer a dependency and is not used.
{issue}<code>2986</code> {pr}<code>3505</code></li>
<li>{class}<code>Argument</code> accepts a <code>help</code> parameter,
and help output includes
a <code>Positional arguments</code> section when argument help is
available. {issue}<code>2983</code> {pr}<code>3473</code></li>
<li><code>confirm()</code> and <code>prompt()</code> strip ANSI color
and style codes from the
prompt when the output stream does not support them, matching
<code>echo()</code>.
This stripping was lost in <code>8.4.0</code> when {pr}<code>2969</code>
began writing the
prompt with <code>input()</code> directly. {issue}<code>3572</code>
{pr}<code>3653</code></li>
<li>Fix test failures when using pytest &gt;= 9.1.
{pr}<code>3656</code></li>
<li>{class}<code>Path</code> with <code>allow_dash=True</code> no longer
triggers a <code>BytesWarning</code>,
an error under <code>python -bb</code>, when checking a value against
the <code>-</code>
convention. {issue}<code>2877</code> {pr}<code>3642</code></li>
<li>Add {func}<code>custom_version_option</code>, a
<code>--version</code> option whose output is
produced by a callback, covering cases {func}<code>version_option</code>
intentionally
does not. The feature set of {func}<code>version_option</code> is now
frozen; see
[discussion <a
href="https://redirect.github.com/pallets/click/issues/3527">#3527</a>](<a
href="https://github.com/pallets/click/discussions/3527">https://github.com/pallets/click/discussions/3527</a>).
{pr}<code>3581</code></li>
<li><code>style()</code> and <code>secho()</code> no longer silently
drop the 256-color index <code>0</code>
(black) passed as <code>fg</code> or <code>bg</code>, and now validate
color arguments. Invalid
colors raise a <code>ValueError</code> instead of a
<code>TypeError</code>. {pr}<code>3677</code></li>
<li>The automatic help option stores its value under the reserved name
<code>_click_default_help</code> instead of <code>help</code>, so a
parameter named <code>help</code> no
longer breaks parsing. The new name is visible in
{meth}<code>Command.to_info_dict</code> output. Parameters that
overwrite each other's
value trigger a warning: an argument sharing its name with another
parameter, or any parameter claiming the reserved name. Options may
still
share a name to compete for the same value (feature switches).
{issue}<code>2819</code> {pr}<code>3678</code></li>
<li><code>unstyle</code> and the ANSI handling behind help-text wrapping
now strip the full
CSI escape-sequence grammar. {pr}<code>3681</code></li>
<li>Streamline <code>Option</code> flag handling: the flag-kind, type,
lazy-default and
validation steps in <code>Option.__init__</code> move into focused
helpers, and
<code>flag_value</code> and <code>default</code> keep their unset
sentinel at construction
(resolved lazily on read) so <code>is UNSET</code> reliably tells a
user-supplied value
from an auto-derived one. Runtime behavior is unchanged, but
{meth}<code>Parameter.to_info_dict</code> now resolves
<code>default=True</code> on a feature
switch to its <code>flag_value</code>, matching what the function
receives at call
time. {pr}<code>3641</code></li>
<li>{func}<code>get_binary_stream</code> and
{func}<code>get_text_stream</code> are deprecated and
will be removed in Click 9.0. {issue}<code>3481</code>
{pr}<code>3695</code></li>
<li>The following <code>click.utils</code> names were never
intentionally public and are
now private (<code>_</code>-prefixed). The old names remain available
with a
<code>DeprecationWarning</code> until Click 9.0: <code>LazyFile</code>,
<code>KeepOpenFile</code>,</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d"><code>8b19813</code></a>
Release version 8.5.0</li>
<li><a
href="https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369"><code>2c8cd3a</code></a>
Add FAQ entry about <code>UnicodeEncodeError</code> on Windows (<a
href="https://redirect.github.com/pallets/click/issues/3778">#3778</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac"><code>131c86a</code></a>
Add FAQ entry about <code>UnicodeEncodeError</code> on Windows</li>
<li><a
href="https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb"><code>e1fd594</code></a>
Add support of <code>pathlib.Path</code> to <code>edit</code> (<a
href="https://redirect.github.com/pallets/click/issues/3781">#3781</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781"><code>a1d8785</code></a>
Add support of <code>pathlib.Path</code> to <code>edit</code></li>
<li><a
href="https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4"><code>2103e15</code></a>
Forward all user's parameters set in <code>PAGER</code> and improve flag
detection (<a
href="https://redirect.github.com/pallets/click/issues/3777">#3777</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4"><code>a6256bf</code></a>
Forwards all user's parameters set in <code>PAGER</code></li>
<li><a
href="https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e"><code>61b69e9</code></a>
Resolve the pager command once, in <code>_pager_contextmanager</code>
(<a
href="https://redirect.github.com/pallets/click/issues/3776">#3776</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8"><code>9835b0f</code></a>
Resolve the pager command once, in
<code>_pager_contextmanager</code></li>
<li><a
href="https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7"><code>f36d58b</code></a>
Refactor pager stream handling (<a
href="https://redirect.github.com/pallets/click/issues/3767">#3767</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pallets/click/compare/8.4.2...8.5.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `langgraph-sdk` from 0.4.2 to 0.4.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langgraph/releases">langgraph-sdk's
releases</a>.</em></p>
<blockquote>
<h2>langgraph-sdk==0.4.4</h2>
<p>Changes since sdk==0.4.3</p>
<ul>
<li>release(sdk-py): 0.4.4 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8738">#8738</a>)</li>
<li>Merge commit from fork</li>
<li>feat: route LangSmith traces from thread streams (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8723">#8723</a>)</li>
</ul>
<h2>langgraph-sdk==0.4.3</h2>
<p>Changes since sdk==0.4.2</p>
<ul>
<li>release(sdk-py): 0.4.3 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8657">#8657</a>)</li>
<li>feat(sdk-py): add decrypt replacement result (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8598">#8598</a>)</li>
<li>release(langgraph): 1.2.11 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8595">#8595</a>)</li>
<li>chore(deps): bump the minor-and-patch group across 1 directory with
5 updates (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8532">#8532</a>)</li>
<li>release(checkpoint): 4.2.0 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8563">#8563</a>)</li>
<li>chore: enforce PLC0415 in tests for the remaining packages (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8547">#8547</a>)</li>
<li>release(langgraph): 1.2.10 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8462">#8462</a>)</li>
<li>chore(deps): bump websockets from 15.0.1 to 16.0 in /libs/sdk-py in
the major group (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8253">#8253</a>)</li>
<li>fix(sdk-py): support clearing cron end_time via
update(end_time=None) (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8334">#8334</a>)</li>
<li>release(langgraph): 1.2.9 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8316">#8316</a>)</li>
<li>release(langgraph): 1.2.8 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8292">#8292</a>)</li>
<li>chore(deps): bump websockets from 15.0.1 to 16.0 in /libs/langgraph
in the major group (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8256">#8256</a>)</li>
<li>chore(deps): bump the minor-and-patch group in /libs/sdk-py with 9
updates (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8252">#8252</a>)</li>
<li>release(langgraph): 1.2.7 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8223">#8223</a>)</li>
<li>chore(deps-dev): bump starlette from 1.0.1 to 1.3.1 in /libs/sdk-py
(<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8104">#8104</a>)</li>
<li>chore(deps): bump langsmith from 0.8.0 to 0.8.18 in /libs/sdk-py (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8174">#8174</a>)</li>
<li>release(langgraph): 1.2.6 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8139">#8139</a>)</li>
<li>docs: standardize package <code>README.md</code> structure (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8064">#8064</a>)</li>
<li>release(langgraph): 1.2.5 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8062">#8062</a>)</li>
<li>fix(langgraph): merge <code>lc_versions</code> config metadata (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8052">#8052</a>)</li>
<li>chore(deps-dev): bump starlette from 1.0.0 to 1.0.1 in /libs/sdk-py
(<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8006">#8006</a>)</li>
<li>chore: migrate Python type checking to ty (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/8002">#8002</a>)</li>
<li>release(langgraph): 1.2.4 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/7991">#7991</a>)</li>
<li>test(sdk-py): add factory-graph integration test exercising the
server factory path (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/7978">#7978</a>)</li>
<li>release(langgraph): 1.2.3 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/7945">#7945</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/a64414c87c8db294fd3b1c5581f39f5b491ef07e"><code>a64414c</code></a>
langgraph: release 0.4.4 (<a
href="https://redirect.github.com/langchain-ai/langgraph/issues/4704">#4704</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/3a1c02ff3364fa68d6659282dc994e5c57fd1833"><code>3a1c02f</code></a>
update for consistency</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/5ab2aa79bb4949ec96d593ffdd3f7fe6d1c7cc32"><code>5ab2aa7</code></a>
lint again</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/c33e64daa6295be3fadd5c8664185fc4268b9f71"><code>c33e64d</code></a>
use list</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/4ffae6065f1c7fe4dc00fed21ee9a584cbbb14b3"><code>4ffae60</code></a>
lint + update</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/54ddde9d4c73a31cb921420867231542ae7faa72"><code>54ddde9</code></a>
update</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/60c41ce69e17fff2367eb816a667dd38cf7bb58e"><code>60c41ce</code></a>
update</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/efd33d860fdef71bc37f286aeab71fae30a0e607"><code>efd33d8</code></a>
update</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/254a38560e0f036531ac2cde7f55ce93a2cc3ff0"><code>254a385</code></a>
langgraph: fix drawing graph with <strong>root</strong> channel</li>
<li><a
href="https://github.com/langchain-ai/langgraph/commit/b20130d4e4f50b95d3a97e648d461956d4a35445"><code>b20130d</code></a>
langgraph: fix graph drawing for self-loops</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langgraph/compare/0.4.2...0.4.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `python-dotenv` from 1.2.2 to 1.2.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/theskumar/python-dotenv/releases">python-dotenv's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.3</h2>
<h3>Fixed</h3>
<ul>
<li>Strip a leading UTF-8 BOM from <code>.env</code> file contents so
the first variable is no longer silently lost when the file is saved
with BOM (e.g. by some JetBrains IDEs on Windows) by [<a
href="https://github.com/h1whelan"><code>@​h1whelan</code></a>] in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/640">#640</a></li>
<li><code>set_key</code> now escapes backslashes, so values containing
them (Windows paths, regular expressions) survive a write/read
round-trip. Quoted values ending in an escaped backslash are no longer
mis-parsed as an escaped quote, which used to swallow the following
lines by [<a
href="https://github.com/dchaudhari7177"><code>@​dchaudhari7177</code></a>]
in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/680">#680</a></li>
<li><code>dotenv run</code> now prints a friendly error instead of a
traceback when no command is given by [<a
href="https://github.com/bbc2"><code>@​bbc2</code></a>] in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/606">#606</a></li>
<li>Cache the parsed result for empty <code>.env</code> files so
repeated <code>dotenv_values</code>/<code>load_dotenv</code> calls no
longer re-read the file by [<a
href="https://github.com/ReinerBRO"><code>@​ReinerBRO</code></a>] in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/638">#638</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md">python-dotenv's
changelog</a>.</em></p>
<blockquote>
<h2>[1.2.3] - 2026-08-16</h2>
<h3>Fixed</h3>
<ul>
<li>Strip a leading UTF-8 BOM from <code>.env</code> file contents so
the first variable is no longer silently lost when the file is saved
with BOM (e.g. by some JetBrains IDEs on Windows) by [<a
href="https://github.com/h1whelan"><code>@​h1whelan</code></a>] in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/640">#640</a></li>
<li><code>set_key</code> now escapes backslashes, so values containing
them (Windows paths, regular expressions) survive a write/read
round-trip. Quoted values ending in an escaped backslash are no longer
mis-parsed as an escaped quote, which used to swallow the following
lines by [<a
href="https://github.com/dchaudhari7177"><code>@​dchaudhari7177</code></a>]
in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/680">#680</a></li>
<li><code>dotenv run</code> now prints a friendly error instead of a
traceback when no command is given by [<a
href="https://github.com/bbc2"><code>@​bbc2</code></a>] in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/606">#606</a></li>
<li>Cache the parsed result for empty <code>.env</code> files so
repeated <code>dotenv_values</code>/<code>load_dotenv</code> calls no
longer re-read the file by [<a
href="https://github.com/ReinerBRO"><code>@​ReinerBRO</code></a>] in <a
href="https://redirect.github.com/theskumar/python-dotenv/issues/638">#638</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/49515afee2d50c33cad9419b3800b3a0dc93fc59"><code>49515af</code></a>
Bump version: 1.2.2 → 1.2.3</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1"><code>8ac846f</code></a>
chore: add release runbook (RELEASING.md) and make release target</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166"><code>bb31c94</code></a>
docs: add 1.2.3 release notes (<a
href="https://redirect.github.com/theskumar/python-dotenv/issues/606">#606</a>,
<a
href="https://redirect.github.com/theskumar/python-dotenv/issues/638">#638</a>,
<a
href="https://redirect.github.com/theskumar/python-dotenv/issues/680">#680</a>)</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/f7b18d9c72d1abcc2ad4023424b84f5bee30d266"><code>f7b18d9</code></a>
fix: round-trip backslashes through set_key (<a
href="https://redirect.github.com/theskumar/python-dotenv/issues/680">#680</a>)</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/751f8c148222e58aa173c83c4e5e6cfccb2cc124"><code>751f8c1</code></a>
ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the
github-actions gro...</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/f1937b68f338d7ebd7754da377ca08b2f0df8dbb"><code>f1937b6</code></a>
chore(deps): update mkdocs-include-markdown-plugin requirement from
&gt;=6.0.0 t...</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/45b93720dd5e9e127d0be3971a04855d34e464d8"><code>45b9372</code></a>
chore(deps): update pytest requirement from &gt;=3.9 to &gt;=9.0.3 (<a
href="https://redirect.github.com/theskumar/python-dotenv/issues/653">#653</a>)</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/72896e9244d2a1ff8d5e1934d3df8a35c813799a"><code>72896e9</code></a>
docs: fix broken mkdocs link in CONTRIBUTING.md (<a
href="https://redirect.github.com/theskumar/python-dotenv/issues/636">#636</a>)</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/72754a16a4743e4c92edf87ce59ba0e4ff78758d"><code>72754a1</code></a>
ci(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 in the
github-a...</li>
<li><a
href="https://github.com/theskumar/python-dotenv/commit/078325e92558330e9addc661b789c7b6123fa73c"><code>078325e</code></a>
ci(security): harden CI/CD supply chain with SHA pinning and
least-privilege ...</li>
<li>Additional commits viewable in <a
href="https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruff` from 0.16.0 to 0.16.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.16.5</h2>
<h2>Release Notes</h2>
<p>Released on 2026-08-27.</p>
<h3>Preview features</h3>
<ul>
<li>Allow rules without codes (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28049">#28049</a>)</li>
<li>Introduce category selectors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27666">#27666</a>)</li>
<li>Update preview default rules and categories (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27877">#27877</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>flake8-async</code>] Detect blocking generic HTTP requests
(<code>ASYNC210</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28024">#28024</a>)</li>
<li>[<code>flake8-datetimez</code>] Allow timezone-safe
<code>strptime</code> chains (<code>DTZ007</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28023">#28023</a>)</li>
<li>[<code>flake8-simplify</code>] Respect side effects in
<code>lambda</code> defaults (<code>SIM401</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28000">#28000</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Fix duplicated &quot;of&quot; in <code>ClientOptions</code> doc
comment (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27978">#27978</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Document rule acceptance guidelines (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27910">#27910</a>)</li>
<li>Document the new category selectors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27906">#27906</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
<li><a href="https://github.com/sharkdp"><code>@​sharkdp</code></a></li>
<li><a
href="https://github.com/jelle-openai"><code>@​jelle-openai</code></a></li>
<li><a
href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/aarushkandukoori"><code>@​aarushkandukoori</code></a></li>
</ul>
<h2>Install ruff 0.16.5</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.ps1
| iex&quot;
</code></pre>
<h2>Download ruff 0.16.5</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.16.5</h2>
<p>Released on 2026-08-27.</p>
<h3>Preview features</h3>
<ul>
<li>Allow rules without codes (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28049">#28049</a>)</li>
<li>Introduce category selectors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27666">#27666</a>)</li>
<li>Update preview default rules and categories (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27877">#27877</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>flake8-async</code>] Detect blocking generic HTTP requests
(<code>ASYNC210</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28024">#28024</a>)</li>
<li>[<code>flake8-datetimez</code>] Allow timezone-safe
<code>strptime</code> chains (<code>DTZ007</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28023">#28023</a>)</li>
<li>[<code>flake8-simplify</code>] Respect side effects in
<code>lambda</code> defaults (<code>SIM401</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28000">#28000</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Fix duplicated &quot;of&quot; in <code>ClientOptions</code> doc
comment (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27978">#27978</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Document rule acceptance guidelines (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27910">#27910</a>)</li>
<li>Document the new category selectors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27906">#27906</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
<li><a href="https://github.com/sharkdp"><code>@​sharkdp</code></a></li>
<li><a
href="https://github.com/jelle-openai"><code>@​jelle-openai</code></a></li>
<li><a
href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/aarushkandukoori"><code>@​aarushkandukoori</code></a></li>
</ul>
<h2>0.16.4</h2>
<p>Released on 2026-08-20.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-use-pathlib</code>] Add autofix for
<code>PTH116</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/26460">#26460</a>)</li>
<li>[<code>refurb</code>] Restrict <code>delete-full-slice</code> to
lists (<code>FURB131</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27711">#27711</a>)</li>
<li>[<code>refurb</code>] Skip <code>FURB101</code> and
<code>FURB103</code> when the <code>open</code> argument is a file
descriptor (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27643">#27643</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>InvalidInstruction</code> on Windows CPUs that do not
support <code>POPCNT</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27803">#27803</a>)</li>
<li>[<code>pyflakes</code>] Emit semantic syntax errors in string type
definitions as <code>F722</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27835">#27835</a>)</li>
<li>[<code>pylint</code>] Allow <code>os._exit</code> imports in
<code>import-private-name</code> (<code>PLC2701</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27738">#27738</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/9e4938c4a60bed3e87a11ee1e1db1bd23f4d964a"><code>9e4938c</code></a>
Bump 0.16.5 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28110">#28110</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/aad0e909ef1390f4b2a3ba8aa0a67fb8ea5cbacd"><code>aad0e90</code></a>
Allow rules without codes (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28049">#28049</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/5fdab73c5052350400c36b08c5d7710210343bc4"><code>5fdab73</code></a>
Update preview default rules and categories (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27877">#27877</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/29c8e5b2d0a46eb7dc4ff11c1b0a0dc5ccea52e4"><code>29c8e5b</code></a>
Document rule acceptance guidelines (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27910">#27910</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/50a4d7fd106603a5616b01ac3bef3306252b248f"><code>50a4d7f</code></a>
Document the new category selectors (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27906">#27906</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/ada87950ea188f882f69b7bd6e2213a9696e3ee2"><code>ada8795</code></a>
Introduce category selectors (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27666">#27666</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/d8947238863b61922bfc83f07edcc697c1cc07c0"><code>d894723</code></a>
[ty] Infer lambda parameters through callable type aliases (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28109">#28109</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/2685fdebbcf9938736fed8c45886a629f9c99a06"><code>2685fde</code></a>
[ty] Narrow functional enum members in <code>==</code> and
<code>match</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28103">#28103</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/efcffd2178ce62e9951a53d4c50cadc225a0cfec"><code>efcffd2</code></a>
[ty] Intersection simplifications with subtype-related generic
specialization...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/eb780488037504e11f145ed778654fd8a825028b"><code>eb78048</code></a>
[ty] Bump ecosystem-analyzer for HTML escaping (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28104">#28104</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.16.0...0.16.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `ty` from 0.0.64 to 0.0.75
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ty/releases">ty's
releases</a>.</em></p>
<blockquote>
<h2>0.0.75</h2>
<h2>Release Notes</h2>
<p>Released on 2026-08-26.</p>
<h3>Preview features</h3>
<ul>
<li>Initialize PEP 723 script environments in the CLI (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27544">#27544</a>)</li>
<li>Refresh PEP 723 script environments in watch mode (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27617">#27617</a>)</li>
<li>Run PEP 723 script synchronization on bounded workers (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27615">#27615</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Specialize <code>Self</code> bounds of inherited methods (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27990">#27990</a>)</li>
</ul>
<h3>LSP server</h3>
<ul>
<li>Add &quot;Go to Definition&quot; support for pytest fixtures (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27444">#27444</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix documented Python package build command (<a
href="https://redirect.github.com/astral-sh/ty/pull/4384">#4384</a>)</li>
<li>Link untyped-call tracking issue in migration guide (<a
href="https://redirect.github.com/astral-sh/ty/pull/4382">#4382</a>)</li>
</ul>
<h3>Library support</h3>
<ul>
<li>Resolve imported pytest fixture exposures (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27539">#27539</a>)</li>
<li>Resolve installed core pytest fixture providers (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27770">#27770</a>)</li>
<li>Resolve pytest fixtures through conftest (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27540">#27540</a>)</li>
</ul>
<h3>Diagnostics</h3>
<ul>
<li>Add more autofixes (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28029">#28029</a>)</li>
<li>Add a dedicated missing-slot diagnostic (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28039">#28039</a>)</li>
<li>Explain missing storage for declared slotted attributes (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27969">#27969</a>)</li>
<li>Improve diagnostic spans for unpacked variable assignments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28041">#28041</a>)</li>
</ul>
<h3>Core type checking</h3>
<ul>
<li>Account for known subclasses in equality inference (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28005">#28005</a>)</li>
<li>Expand <code>ParamSpec</code> signatures inferred from bound
receivers (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28020">#28020</a>)</li>
<li>Fix <code>Self</code> binding in <code>ParamSpec</code> protocols
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/28016">#28016</a>)</li>
<li>Fix <code>TypedDict</code> variance inference (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28052">#28052</a>)</li>
<li>Fix unsound narrowing through branch-assigned conditions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28006">#28006</a>)</li>
<li>Ignore inconsistent binding decorators on overloads (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28036">#28036</a>)</li>
<li>Infer <code>yield from</code> send/return types from the iterator
returned by <code>__iter__</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27987">#27987</a>)</li>
<li>Infer tuple type parameters from union arguments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28062">#28062</a>)</li>
<li>Infer variance through nonrecursive protocol references (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28065">#28065</a>)</li>
<li>Preserve bounds of non-literal metaclasses (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28046">#28046</a>)</li>
<li>Preserve correlated generic-call inference (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28043">#28043</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ty/blob/main/CHANGELOG.md">ty's
changelog</a>.</em></p>
<blockquote>
<h2>0.0.75</h2>
<p>Released on 2026-08-26.</p>
<h3>Preview features</h3>
<ul>
<li>Initialize PEP 723 script environments in the CLI (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27544">#27544</a>)</li>
<li>Refresh PEP 723 script environments in watch mode (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27617">#27617</a>)</li>
<li>Run PEP 723 script synchronization on bounded workers (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27615">#27615</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Specialize <code>Self</code> bounds of inherited methods (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27990">#27990</a>)</li>
</ul>
<h3>LSP server</h3>
<ul>
<li>Add &quot;Go to Definition&quot; support for pytest fixtures (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27444">#27444</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix documented Python package build command (<a
href="https://redirect.github.com/astral-sh/ty/pull/4384">#4384</a>)</li>
<li>Link untyped-call tracking issue in migration guide (<a
href="https://redirect.github.com/astral-sh/ty/pull/4382">#4382</a>)</li>
</ul>
<h3>Library support</h3>
<ul>
<li>Resolve imported pytest fixture exposures (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27539">#27539</a>)</li>
<li>Resolve installed core pytest fixture providers (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27770">#27770</a>)</li>
<li>Resolve pytest fixtures through conftest (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27540">#27540</a>)</li>
</ul>
<h3>Diagnostics</h3>
<ul>
<li>Add more autofixes (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28029">#28029</a>)</li>
<li>Add a dedicated missing-slot diagnostic (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28039">#28039</a>)</li>
<li>Explain missing storage for declared slotted attributes (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27969">#27969</a>)</li>
<li>Improve diagnostic spans for unpacked variable assignments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28041">#28041</a>)</li>
</ul>
<h3>Core type checking</h3>
<ul>
<li>Account for known subclasses in equality inference (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28005">#28005</a>)</li>
<li>Expand <code>ParamSpec</code> signatures inferred from bound
receivers (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28020">#28020</a>)</li>
<li>Fix <code>Self</code> binding in <code>ParamSpec</code> protocols
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/28016">#28016</a>)</li>
<li>Fix <code>TypedDict</code> variance inference (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28052">#28052</a>)</li>
<li>Fix unsound narrowing through branch-assigned conditions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28006">#28006</a>)</li>
<li>Ignore inconsistent binding decorators on overloads (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28036">#28036</a>)</li>
<li>Infer <code>yield from</code> send/return types from the iterator
returned by <code>__iter__</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27987">#27987</a>)</li>
<li>Infer tuple type parameters from union arguments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28062">#28062</a>)</li>
<li>Infer variance through nonrecursive protocol references (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28065">#28065</a>)</li>
<li>Preserve bounds of non-literal metaclasses (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28046">#28046</a>)</li>
<li>Preserve correlated generic-call inference (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28043">#28043</a>)</li>
<li>Preserve invariant materialization constraints (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28047">#28047</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ty/commit/a553dcc1a4c464b22d6fff8c46d444e326e0ae2d"><code>a553dcc</code></a>
Bump version to 0.0.75 (<a
href="https://redirect.github.com/astral-sh/ty/issues/4396">#4396</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/26b1b50998e92a5f50c342dc4a1fed84db2f8ee4"><code>26b1b50</code></a>
Update prek dependencies (<a
href="https://redirect.github.com/astral-sh/ty/issues/4392">#4392</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/73d226ee4d5a9274bc559c50a244159b61dfa315"><code>73d226e</code></a>
Fix documented Python package build command (<a
href="https://redirect.github.com/astral-sh/ty/issues/4384">#4384</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/5e264dac66970648d461a3fc8f2ebebd30a44dc9"><code>5e264da</code></a>
Link untyped-call tracking issue in migration guide (<a
href="https://redirect.github.com/astral-sh/ty/issues/4382">#4382</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/00199f0aaa6a8cd264fea08eae4f3c3fe4451c17"><code>00199f0</code></a>
Bump version to 0.0.74 (<a
href="https://redirect.github.com/astral-sh/ty/issues/4351">#4351</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/5769062fa10db84f6c03145bdf42d0b8da9aeb63"><code>5769062</code></a>
Update mypy/pyright comparison table (<a
href="https://redirect.github.com/astral-sh/ty/issues/4165">#4165</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/4fcb06010f2219b80adf3e688964abd9b0d72866"><code>4fcb060</code></a>
Remove Zulip from the PGO training (<a
href="https://redirect.github.com/astral-sh/ty/issues/4336">#4336</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/a7a706442a710db4a93c1a79779dff5ec5824cf6"><code>a7a7064</code></a>
Use the versions bot's ruleset bypass when merging (<a
href="https://redirect.github.com/astral-sh/ty/issues/4333">#4333</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/01b0fab0093c64535a401bc2731f80d7f5b6a7a8"><code>01b0fab</code></a>
Update prek dependencies (<a
href="https://redirect.github.com/astral-sh/ty/issues/4325">#4325</a>)</li>
<li><a
href="https://github.com/astral-sh/ty/commit/deef42f517bfbacb2ffe673046bef1e206c6b8ab"><code>deef42f</code></a>
Update dependency python to 3.14 (<a
href="https://redirect.github.com/astral-sh/ty/issues/4326">#4326</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ty/compare/0.0.64...0.0.75">compare
view</a></li>
</ul>
</details>
<br />

Updates `hatch` from 1.17.1 to 1.18.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/hatch/releases">hatch's
releases</a>.</em></p>
<blockquote>
<h2>Hatchling v1.18.0</h2>
<p><em><strong>Changed:</strong></em></p>
<ul>
<li>Drop support for Python 3.7</li>
</ul>
<p><em><strong>Added:</strong></em></p>
<ul>
<li>Update the list of directories that are always excluded for
builds</li>
</ul>
<h2>Hatch v1.18.0</h2>
<p><em><strong>Changed:</strong></em></p>
<ul>
<li>Upgrade default CPython distributions to 20260807</li>
</ul>
<p><em><strong>Added:</strong></em></p>
<ul>
<li>
<p>Add the <code>sources</code> environment option, which redirects
dependencies to a local path, Git repository, URL, alternate index, or
workspace member at install time without altering published metadata.
The top-level <code>[tool.hatch.sources]</code> table is an alias for
the <code>default</code> environment, environments inherit sources entry
by entry, the <code>HATCH_NO_SOURCES</code> environment variable
disables them, and <code>hatch dep show sources</code> reports what each
source redirects</p>
</li>
<li>
<p>Add the <code>--all</code>/<code>-a</code> flag to the
<code>build</code> command to build the workspace root and every
workspace member defined by the selected environment, consolidating
artifacts in the workspace root's <code>dist</code> directory by
default. A root that does not define a <code>project</code> table is
skipped so that a top-level <code>pyproject.toml</code> may only contain
workspace configuration</p>
</li>
<li>
<p>Add the <code>tool.hatch.requires-hatch</code> field, a version
specifier set that commands reading the project's metadata enforce
against the running version of Hatch</p>
</li>
<li>
<p>Add first-class support for free-threaded distribution names such as
<code>3.13t</code> and <code>3.14t</code> to the <code>python</code>
commands and environment <code>python</code> option, rather than
requiring the <code>HATCH_PYTHON_VARIANT_GIL</code> environment
variable</p>
</li>
<li>
<p>The <code>version</code> command can now bump versions that are
statically defined by the <code>project.version</code> field, updating
<code>pyproject.toml</code> in place. Pass <code>--force</code> to allow
an explicit downgrade</p>
</li>
<li>
<p>Support managing Python 3.15 distributions, currently 3.15.0rc1</p>
</li>
</ul>
<p><em><strong>Fixed:</strong></em></p>
<ul>
<li>
<p>Erase stale coverage data before running <code>hatch test
--cover</code>.</p>
</li>
<li>
<p>Fix environment creation crashing when a metadata hook exists that
doesn’t happen to be installed in the <code>hatch</code> CLI’s
environment.</p>
</li>
<li>
<p>Fix commands run by <code>hatch run</code> no longer being
interruptible with Ctrl-C, which happened because the ignored
<code>SIGINT</code> of the parent process was inherited by the child
process.</p>
</li>
<li>
<p>Fix the generated Pyrefly config being invalid on Windows, since
backslashes in the absolute paths were interpreted as TOML escape
sequences.</p>
</li>
<li>
<p>Fix the hardcoded reliance on <code>pip</code> when installing
dependencies internally by using <code>uv</code> instead.</p>
</li>
<li>
<p>Fix environment creation silently installing a GIL-enabled Python
distribution when Hatch itself runs on a free-threaded build. The
distribution matching the running interpreter, such as
<code>3.14t</code>, is now selected.</p>
</li>
<li>
<p>Fix free-threaded selectors such as <code>3.14t</code> being rejected
by an environment's <code>python</code> option, even though <code>hatch
python install 3.14t</code> already accepted them.</p>
</li>
<li>
<p>Never automatically select a prerelease Python distribution, such as
3.15.0rc1, when falling back to the latest compatible version. A
prerelease is still installed when requested explicitly.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/hatch/commit/558061c5ecbe7e9b10d81965d4cdc8df05832228"><code>558061c</code></a>
Fix ci (<a
href="https://redirect.github.com/pypa/hatch/issues/2377">#2377</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/bc6d1bc1347445dfad06e731d4ae50f562692683"><code>bc6d1bc</code></a>
release Hatch v1.18.0 (<a
href="https://redirect.github.com/pypa/hatch/issues/2376">#2376</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/8429e5d5bc84b2c9ace623b99518661e9032d422"><code>8429e5d</code></a>
release Hatchling v1.32.0 (<a
href="https://redirect.github.com/pypa/hatch/issues/2375">#2375</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/413b3a880cfa69cb5095a927a725b074be669930"><code>413b3a8</code></a>
Prepare for release (<a
href="https://redirect.github.com/pypa/hatch/issues/2374">#2374</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/4ccc9ea9cd2800c90549768f7eaa7dc9985b45e1"><code>4ccc9ea</code></a>
Bug Fix - fix CTRL-C behavior to correctly handle signals (<a
href="https://redirect.github.com/pypa/hatch/issues/2369">#2369</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/a8858032b372ad8e13950a06b1783e723ee892e5"><code>a885803</code></a>
Add sources to enable other types of local dependencies (<a
href="https://redirect.github.com/pypa/hatch/issues/2313">#2313</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/ab3e000585fc95c32196d406d0c224fca62ff1b1"><code>ab3e000</code></a>
Add --all flag to hatch build for building all workspace members (<a
href="https://redirect.github.com/pypa/hatch/issues/2352">#2352</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/bb9027761d1325a540ca1eda5aee067098249b41"><code>bb90277</code></a>
fix: Allow the <code>; private</code> annotation in
<code>import-names</code>/<code>import-namespaces</code> p...</li>
<li><a
href="https://github.com/pypa/hatch/commit/3a9d853a68d009db91e70e4271b1d688e5381d3b"><code>3a9d853</code></a>
fix: prevent backward relative paths in readme (<a
href="https://redirect.github.com/pypa/hatch/issues/2354">#2354</a>)</li>
<li><a
href="https://github.com/pypa/hatch/commit/c4dc4f8ab4399a9f35b56c3367ff39d6fb09271c"><code>c4dc4f8</code></a>
test: Fix test expectations for metadata generated by
<code>flit-core</code> (<a
href="https://redirect.github.com/pypa/hatch/issues/2365">#2365</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/hatch/compare/hatch-v1.17.1...hatch-v1.18.0">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>
2026-09-02 01:12:26 -07:00
2026-05-05 17:58:37 +02:00

Low-level orchestration framework for building stateful agents.

PyPI - License PyPI - Downloads Version Twitter / X

Trusted by companies shaping the future of agents including Klarna, Replit, Elastic, and more LangGraph is a low-level orchestration framework for building, managing, and deploying long-running, stateful agents.

pip install -U langgraph

Tip

If you're looking to quickly build agents, check out Deep Agents — a higher-level package built on LangGraph for agents that can plan, use subagents, and leverage file systems for complex tasks.

For an equivalent JS/TS library, check out LangGraph.js and the JS docs.

Why use LangGraph?

LangGraph provides low-level supporting infrastructure for any long-running, stateful workflow or agent:

  • Durable execution — Build agents that persist through failures and can run for extended periods, automatically resuming from exactly where they left off.
  • Human-in-the-loop — Seamlessly incorporate human oversight by inspecting and modifying agent state at any point during execution.
  • Comprehensive memory — Create truly stateful agents with both short-term working memory for ongoing reasoning and long-term persistent memory across sessions.
  • Debugging with LangSmith — Gain deep visibility into complex agent behavior with visualization tools that trace execution paths, capture state transitions, and provide detailed runtime metrics.
  • Production-ready deployment — Deploy sophisticated agent systems confidently with scalable infrastructure designed to handle the unique challenges of stateful, long-running workflows.

Tip

For developing, debugging, and deploying AI agents and LLM applications, see LangSmith.

LangGraph ecosystem

While LangGraph can be used standalone, it also integrates seamlessly with any LangChain product, giving developers a full suite of tools for building agents.

To improve your LLM application development, pair LangGraph with:

  • Deep Agents Build agents that can plan, use subagents, and leverage file systems for complex tasks.
  • LangChain Provides integrations and composable components to streamline LLM application development.
  • LangSmith Helpful for agent evals and observability. Debug poor-performing LLM app runs, evaluate agent trajectories, gain visibility in production, and improve performance over time.
  • LangSmith Deployment Deploy and scale agents effortlessly with a purpose-built deployment platform for long-running, stateful workflows. Discover, reuse, configure, and share agents across teams and iterate quickly with visual prototyping in LangSmith Studio.

Documentation

Discussions: Visit the LangChain Forum to connect with the community and share all of your technical questions, ideas, and feedback.

Additional resources

  • Guides Quick, actionable code snippets for topics such as streaming, adding memory & persistence, and design patterns (e.g. branching, subgraphs, etc.).
  • LangChain Academy Learn the basics of LangGraph in our free, structured course.
  • Case studies Hear how industry leaders use LangGraph to ship AI applications at scale.
  • Contributing Guide Learn how to contribute to LangChain projects and find good first issues.
  • Code of Conduct Our community guidelines and standards for participation.

Acknowledgements

LangGraph is inspired by Pregel and Apache Beam. The public interface draws inspiration from NetworkX. LangGraph is built by LangChain Inc, the creators of LangChain, but can be used without LangChain.

Languages
Python 99.6%
Makefile 0.2%
TypeScript 0.1%