Bumps the production-dependencies group with 8 updates in the /autogpt_platform/autogpt_libs directory: | Package | From | To | | --- | --- | --- | | [fastapi](https://github.com/fastapi/fastapi) | `0.116.1` | `0.128.0` | | [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` | | [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.12.0` | `9.14.1` | | [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.12.5` | | [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.10.1` | `2.12.0` | | [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` | | [supabase](https://github.com/supabase/supabase-py) | `2.16.0` | `2.27.2` | | [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` | Updates `fastapi` from 0.116.1 to 0.128.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastapi/fastapi/releases">fastapi's releases</a>.</em></p> <blockquote> <h2>0.128.0</h2> <h3>Breaking Changes</h3> <ul> <li>➖ Drop support for <code>pydantic.v1</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14609">#14609</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>✅ Run performance tests only on Pydantic v2. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14608">#14608</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h2>0.127.1</h2> <h3>Refactors</h3> <ul> <li>🔊 Add a custom <code>FastAPIDeprecationWarning</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14605">#14605</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Docs</h3> <ul> <li>📝 Add documentary to website. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14600">#14600</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Translations</h3> <ul> <li>🌐 Update translations for de (update-outdated). PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14602">#14602</a> by <a href="https://github.com/nilslindemann"><code>@nilslindemann</code></a>.</li> <li>🌐 Update translations for de (update-outdated). PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14581">#14581</a> by <a href="https://github.com/nilslindemann"><code>@nilslindemann</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>🔧 Update pre-commit to use local Ruff instead of hook. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14604">#14604</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>✅ Add missing tests for code examples. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14569">#14569</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> <li>👷 Remove <code>lint</code> job from <code>test</code> CI workflow. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14593">#14593</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> <li>👷 Update secrets check. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14592">#14592</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14586">#14586</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>🔨 Update scripts and pre-commit to autofix files. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14585">#14585</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h2>0.127.0</h2> <h3>Breaking Changes</h3> <ul> <li>🔊 Add deprecation warnings when using <code>pydantic.v1</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14583">#14583</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Translations</h3> <ul> <li>🔧 Add LLM prompt file for Korean, generated from the existing translations. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14546">#14546</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14545">#14545</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14579">#14579</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h2>0.126.0</h2> <h3>Upgrades</h3> <ul> <li>➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's <code>pydantic.v1</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14575">#14575</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="8322a4445a"><code>8322a44</code></a> 🔖 Release version 0.128.0</li> <li><a href="4b2cfcfd34"><code>4b2cfcf</code></a> 📝 Update release notes</li> <li><a href="e300630551"><code>e300630</code></a> ➖ Drop support for <code>pydantic.v1</code> (<a href="https://redirect.github.com/fastapi/fastapi/issues/14609">#14609</a>)</li> <li><a href="1b3bea8b6b"><code>1b3bea8</code></a> 📝 Update release notes</li> <li><a href="34e884156f"><code>34e8841</code></a> ✅ Run performance tests only on Pydantic v2 (<a href="https://redirect.github.com/fastapi/fastapi/issues/14608">#14608</a>)</li> <li><a href="cd90c78391"><code>cd90c78</code></a> 🔖 Release version 0.127.1</li> <li><a href="93f4dfd88b"><code>93f4dfd</code></a> 📝 Update release notes</li> <li><a href="535b5daa31"><code>535b5da</code></a> 🔊 Add a custom <code>FastAPIDeprecationWarning</code> (<a href="https://redirect.github.com/fastapi/fastapi/issues/14605">#14605</a>)</li> <li><a href="6b53786f62"><code>6b53786</code></a> 📝 Update release notes</li> <li><a href="d98f4eb56e"><code>d98f4eb</code></a> 🔧 Update pre-commit to use local Ruff instead of hook (<a href="https://redirect.github.com/fastapi/fastapi/issues/14604">#14604</a>)</li> <li>Additional commits viewable in <a href="https://github.com/fastapi/fastapi/compare/0.116.1...0.128.0">compare view</a></li> </ul> </details> <br /> Updates `google-cloud-logging` from 3.12.1 to 3.13.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-logging/releases">google-cloud-logging's releases</a>.</em></p> <blockquote> <h2>google-cloud-logging 3.13.0</h2> <h2><a href="https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0">3.13.0</a> (2025-12-15)</h2> <h3>Features</h3> <ul> <li>Add support for python 3.14 (<a href="https://redirect.github.com/googleapis/python-logging/issues/1065">#1065</a>) (<a href="https://github.com/googleapis/python-logging/commit/6be3df6a">6be3df6a</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>remove setup.cfg configuration for creating universal wheels (<a href="https://redirect.github.com/googleapis/python-logging/issues/981">#981</a>) (<a href="https://github.com/googleapis/python-logging/commit/70f612c3">70f612c3</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md">google-cloud-logging's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0">3.13.0</a> (2025-12-15)</h2> <h3>Features</h3> <ul> <li>Add support for python 3.14 (<a href="https://redirect.github.com/googleapis/python-logging/issues/1065">#1065</a>) (<a href="6be3df6aa9">6be3df6aa94539cd2ab22a4fac55b343862228b2</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>remove setup.cfg configuration for creating universal wheels (<a href="https://redirect.github.com/googleapis/python-logging/issues/981">#981</a>) (<a href="70f612c328">70f612c3281f1df13f3aba6b19bc4e9397297f3d</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="1415883be0"><code>1415883</code></a> chore: librarian release pull request: 20251215T134006Z (<a href="https://redirect.github.com/googleapis/python-logging/issues/1066">#1066</a>)</li> <li><a href="6be3df6aa9"><code>6be3df6</code></a> feat: Add support for python 3.14 (<a href="https://redirect.github.com/googleapis/python-logging/issues/1065">#1065</a>)</li> <li><a href="36fb4270b3"><code>36fb427</code></a> chore(librarian): onboard to librarian (<a href="https://redirect.github.com/googleapis/python-logging/issues/1061">#1061</a>)</li> <li><a href="eb189bf712"><code>eb189bf</code></a> chore: update Python generator version to 1.25.1 (<a href="https://redirect.github.com/googleapis/python-logging/issues/1003">#1003</a>)</li> <li><a href="a7a28d1b93"><code>a7a28d1</code></a> test: ignore DeprecationWarning for <code>credentials_file</code> argument and Python ve...</li> <li><a href="70f612c328"><code>70f612c</code></a> fix: remove setup.cfg configuration for creating universal wheels (<a href="https://redirect.github.com/googleapis/python-logging/issues/981">#981</a>)</li> <li><a href="e4c445a856"><code>e4c445a</code></a> chore: Update gapic-generator-python to 1.25.0 (<a href="https://redirect.github.com/googleapis/python-logging/issues/985">#985</a>)</li> <li><a href="14364a534a"><code>14364a5</code></a> test: Added cleanup of old sink storage buckets (<a href="https://redirect.github.com/googleapis/python-logging/issues/991">#991</a>)</li> <li>See full diff in <a href="https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0">compare view</a></li> </ul> </details> <br /> Updates `launchdarkly-server-sdk` from 9.12.0 to 9.14.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/launchdarkly/python-server-sdk/releases">launchdarkly-server-sdk's releases</a>.</em></p> <blockquote> <h2>v9.14.1</h2> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.14.0...9.14.1">9.14.1</a> (2025-12-15)</h2> <h3>Bug Fixes</h3> <ul> <li>Remove all synchronizers in daemon mode (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/388">#388</a>) (<a href="441a5ecb3d">441a5ec</a>)</li> </ul> <hr /> <p>This PR was generated with <a href="https://github.com/googleapis/release-please">Release Please</a>. See <a href="https://github.com/googleapis/release-please#release-please">documentation</a>.</p> <!-- raw HTML omitted --> <h2>v9.14.0</h2> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.13.1...9.14.0">9.14.0</a> (2025-12-04)</h2> <h3>Features</h3> <ul> <li>adding data system option to create file datasource intializer (<a href="e5b121f92a">e5b121f</a>)</li> <li>adding file data source as an intializer (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/381">#381</a>) (<a href="3700d1ddd9">3700d1d</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Add warning if relying on Redis <code>max_connections</code> parameter (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/387">#387</a>) (<a href="e6395fa531">e6395fa</a>), closes <a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/386">#386</a></li> <li>modified initializer behavior to spec (<a href="064f65c761">064f65c</a>)</li> </ul> <hr /> <p>This PR was generated with <a href="https://github.com/googleapis/release-please">Release Please</a>. See <a href="https://github.com/googleapis/release-please#release-please">documentation</a>.</p> <!-- raw HTML omitted --> <h2>v9.13.1</h2> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.13.0...9.13.1">9.13.1</a> (2025-11-19)</h2> <h3>Bug Fixes</h3> <ul> <li>Include ldclient.datasystem in docs (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/379">#379</a>) (<a href="318c6fea07">318c6fe</a>)</li> </ul> <hr /> <p>This PR was generated with <a href="https://github.com/googleapis/release-please">Release Please</a>. See <a href="https://github.com/googleapis/release-please#release-please">documentation</a>.</p> <!-- raw HTML omitted --> <h2>v9.13.0</h2> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.12.3...9.13.0">9.13.0</a> (2025-11-19)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/launchdarkly/python-server-sdk/blob/main/CHANGELOG.md">launchdarkly-server-sdk's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.14.0...9.14.1">9.14.1</a> (2025-12-15)</h2> <h3>Bug Fixes</h3> <ul> <li>Remove all synchronizers in daemon mode (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/388">#388</a>) (<a href="441a5ecb3d">441a5ec</a>)</li> </ul> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.13.1...9.14.0">9.14.0</a> (2025-12-04)</h2> <h3>Features</h3> <ul> <li>adding data system option to create file datasource intializer (<a href="e5b121f92a">e5b121f</a>)</li> <li>adding file data source as an intializer (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/381">#381</a>) (<a href="3700d1ddd9">3700d1d</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Add warning if relying on Redis <code>max_connections</code> parameter (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/387">#387</a>) (<a href="e6395fa531">e6395fa</a>), closes <a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/386">#386</a></li> <li>modified initializer behavior to spec (<a href="064f65c761">064f65c</a>)</li> </ul> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.13.0...9.13.1">9.13.1</a> (2025-11-19)</h2> <h3>Bug Fixes</h3> <ul> <li>Include ldclient.datasystem in docs (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/379">#379</a>) (<a href="318c6fea07">318c6fe</a>)</li> </ul> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.12.3...9.13.0">9.13.0</a> (2025-11-19)</h2> <h3>Features</h3> <ul> <li><strong>experimental:</strong> Release EAP support for FDv2 data system (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/376">#376</a>) (<a href="0e7c32b4df">0e7c32b</a>)</li> </ul> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.12.2...9.12.3">9.12.3</a> (2025-10-30)</h2> <h3>Bug Fixes</h3> <ul> <li>Fix overly generic type hint on File data source (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/365">#365</a>) (<a href="52a7499f7c">52a7499</a>), closes <a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/364">#364</a></li> </ul> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.12.1...9.12.2">9.12.2</a> (2025-10-27)</h2> <h3>Bug Fixes</h3> <ul> <li>Fix incorrect event count in failure message (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/359">#359</a>) (<a href="91f416329b">91f4163</a>)</li> </ul> <h2><a href="https://github.com/launchdarkly/python-server-sdk/compare/9.12.0...9.12.1">9.12.1</a> (2025-09-30)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="54e62cc706"><code>54e62cc</code></a> chore(main): release 9.14.1 (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/389">#389</a>)</li> <li><a href="441a5ecb3d"><code>441a5ec</code></a> fix: Remove all synchronizers in daemon mode (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/388">#388</a>)</li> <li><a href="7bb537827f"><code>7bb5378</code></a> chore(main): release 9.14.0 (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/382">#382</a>)</li> <li><a href="e6395fa531"><code>e6395fa</code></a> fix: Add warning if relying on Redis <code>max_connections</code> parameter (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/387">#387</a>)</li> <li><a href="45786a9a7e"><code>45786a9</code></a> chore: Expose flag change listeners from data system (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/384">#384</a>)</li> <li><a href="2b7eedc836"><code>2b7eedc</code></a> chore: Clean up unused _data_availability (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/383">#383</a>)</li> <li><a href="3700d1ddd9"><code>3700d1d</code></a> feat: adding file data source as an intializer (<a href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/381">#381</a>)</li> <li><a href="04a2c538e5"><code>04a2c53</code></a> chore: PR comments</li> <li><a href="064f65c761"><code>064f65c</code></a> fix: modified initializer behavior to spec</li> <li><a href="e5b121f92a"><code>e5b121f</code></a> feat: adding data system option to create file datasource intializer</li> <li>Additional commits viewable in <a href="https://github.com/launchdarkly/python-server-sdk/compare/9.12.0...9.14.1">compare view</a></li> </ul> </details> <br /> Updates `pydantic` from 2.11.7 to 2.12.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/releases">pydantic's releases</a>.</em></p> <blockquote> <h2>v2.12.5 2025-11-26</h2> <h2>v2.12.5 (2025-11-26)</h2> <p>This is the fifth 2.12 patch release, addressing an issue with the <code>MISSING</code> sentinel and providing several documentation improvements.</p> <p>The next 2.13 minor release will be published in a couple weeks, and will include a new <em>polymorphic serialization</em> feature addressing the remaining unexpected changes to the <em>serialize as any</em> behavior.</p> <ul> <li>Fix pickle error when using <code>model_construct()</code> on a model with <code>MISSING</code> as a default value by <a href="https://github.com/ornariece"><code>@ornariece</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12522">#12522</a>.</li> <li>Several updates to the documentation by <a href="https://github.com/Viicos"><code>@Viicos</code></a>.</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5">https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5</a></p> <h2>v2.12.4 2025-11-05</h2> <h2>v2.12.4 (2025-11-05)</h2> <p>This is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the <code>build()</code> method of the <a href="https://docs.pydantic.dev/latest/api/networks/"><code>AnyUrl</code> and Dsn types</a>.</p> <p>This patch release also fixes an issue with the serialization of IP address types, when <code>serialize_as_any</code> is used. The next patch release will try to address the remaining issues with <em>serialize as any</em> behavior by introducing a new <em>polymorphic serialization</em> feature, that should be used in most cases in place of <em>serialize as any</em>.</p> <ul> <li> <p>Fix issue with forward references in parent <code>TypedDict</code> classes by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12427">#12427</a>.</p> <p>This issue is only relevant on Python 3.14 and greater.</p> </li> <li> <p>Exclude fields with <code>exclude_if</code> from JSON Schema required fields by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12430">#12430</a></p> </li> <li> <p>Revert URL percent-encoding of credentials in the <code>build()</code> method of the <a href="https://docs.pydantic.dev/latest/api/networks/"><code>AnyUrl</code> and Dsn types</a> by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1833">pydantic-core#1833</a>.</p> <p>This was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include an opt-in option to percent-encode components of the URL.</p> </li> <li> <p>Add type inference for IP address types by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1868">pydantic-core#1868</a>.</p> <p>The 2.12 changes to the <code>serialize_as_any</code> behavior made it so that IP address types could not properly serialize to JSON.</p> </li> <li> <p>Avoid getting default values from defaultdict by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1853">pydantic-core#1853</a>.</p> <p>This fixes a subtle regression in the validation behavior of the <a href="https://docs.python.org/3/library/collections.html#collections.defaultdict"><code>collections.defaultdict</code></a> type.</p> </li> <li> <p>Fix issue with field serializers on nested typed dictionaries by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1879">pydantic-core#1879</a>.</p> </li> <li> <p>Add more <code>pydantic-core</code> builds for the three-threaded version of Python 3.14 by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1864">pydantic-core#1864</a>.</p> </li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4">https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4</a></p> <h2>v2.12.3 2025-10-17</h2> <h2>v2.12.3 (2025-10-17)</h2> <h3>What's Changed</h3> <p>This is the third 2.13 patch release, fixing issues related to the <code>FieldInfo</code> class, and reverting a change to the supported <a href="https://docs.pydantic.dev/latest/concepts/validators/#model-validators"><em>after</em> model validator</a> function signatures.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/blob/main/HISTORY.md">pydantic's changelog</a>.</em></p> <blockquote> <h2>v2.12.5 (2025-11-26)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.12.5">GitHub release</a></p> <p>This is the fifth 2.12 patch release, addressing an issue with the <code>MISSING</code> sentinel and providing several documentation improvements.</p> <p>The next 2.13 minor release will be published in a couple weeks, and will include a new <em>polymorphic serialization</em> feature addressing the remaining unexpected changes to the <em>serialize as any</em> behavior.</p> <ul> <li>Fix pickle error when using <code>model_construct()</code> on a model with <code>MISSING</code> as a default value by <a href="https://github.com/ornariece"><code>@ornariece</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12522">#12522</a>.</li> <li>Several updates to the documentation by <a href="https://github.com/Viicos"><code>@Viicos</code></a>.</li> </ul> <h2>v2.12.4 (2025-11-05)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.12.4">GitHub release</a></p> <p>This is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the <code>build()</code> method of the <a href="https://docs.pydantic.dev/latest/api/networks/"><code>AnyUrl</code> and Dsn types</a>.</p> <p>This patch release also fixes an issue with the serialization of IP address types, when <code>serialize_as_any</code> is used. The next patch release will try to address the remaining issues with <em>serialize as any</em> behavior by introducing a new <em>polymorphic serialization</em> feature, that should be used in most cases in place of <em>serialize as any</em>.</p> <ul> <li> <p>Fix issue with forward references in parent <code>TypedDict</code> classes by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12427">#12427</a>.</p> <p>This issue is only relevant on Python 3.14 and greater.</p> </li> <li> <p>Exclude fields with <code>exclude_if</code> from JSON Schema required fields by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12430">#12430</a></p> </li> <li> <p>Revert URL percent-encoding of credentials in the <code>build()</code> method of the <a href="https://docs.pydantic.dev/latest/api/networks/"><code>AnyUrl</code> and Dsn types</a> by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1833">pydantic-core#1833</a>.</p> <p>This was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include an opt-in option to percent-encode components of the URL.</p> </li> <li> <p>Add type inference for IP address types by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1868">pydantic-core#1868</a>.</p> <p>The 2.12 changes to the <code>serialize_as_any</code> behavior made it so that IP address types could not properly serialize to JSON.</p> </li> <li> <p>Avoid getting default values from defaultdict by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1853">pydantic-core#1853</a>.</p> <p>This fixes a subtle regression in the validation behavior of the <a href="https://docs.python.org/3/library/collections.html#collections.defaultdict"><code>collections.defaultdict</code></a> type.</p> </li> <li> <p>Fix issue with field serializers on nested typed dictionaries by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1879">pydantic-core#1879</a>.</p> </li> <li> <p>Add more <code>pydantic-core</code> builds for the three-threaded version of Python 3.14 by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-core/pull/1864">pydantic-core#1864</a>.</p> </li> </ul> <h2>v2.12.3 (2025-10-17)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.12.3">GitHub release</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="bd2d0dd013"><code>bd2d0dd</code></a> Prepare release v2.12.5</li> <li><a href="7d0302ec7e"><code>7d0302e</code></a> Document security implications when using <code>create_model()</code></li> <li><a href="e9ef980def"><code>e9ef980</code></a> Fix typo in Standard Library Types documentation</li> <li><a href="f2c20c00c2"><code>f2c20c0</code></a> Add <code>pydantic-docs</code> dev dependency, make use of versioning blocks</li> <li><a href="a76c1aa26f"><code>a76c1aa</code></a> Update documentation about JSON Schema</li> <li><a href="8cbc72ca48"><code>8cbc72c</code></a> Add documentation about custom <code>__init__()</code></li> <li><a href="99eba59906"><code>99eba59</code></a> Add additional test for <code>FieldInfo.get_default()</code></li> <li><a href="c71076988e"><code>c710769</code></a> Special case <code>MISSING</code> sentinel in <code>smart_deepcopy()</code></li> <li><a href="20a9d771c2"><code>20a9d77</code></a> Do not delete mock validator/serializer in <code>rebuild_dataclass()</code></li> <li><a href="c86515a3a8"><code>c86515a</code></a> Update parts of the model and <code>revalidate_instances</code> documentation</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic/compare/v2.11.7...v2.12.5">compare view</a></li> </ul> </details> <br /> Updates `pydantic-settings` from 2.10.1 to 2.12.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic-settings/releases">pydantic-settings's releases</a>.</em></p> <blockquote> <h2>v2.12.0</h2> <h2>What's Changed</h2> <ul> <li>Support for enum kebab case. by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/686">pydantic/pydantic-settings#686</a></li> <li>Apply source order: init > env > dotenv > secrets > defaults and pres… by <a href="https://github.com/chbndrhnns"><code>@chbndrhnns</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/688">pydantic/pydantic-settings#688</a></li> <li>Add NestedSecretsSettings source by <a href="https://github.com/makukha"><code>@makukha</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/690">pydantic/pydantic-settings#690</a></li> <li>Strip non-explicit default values. by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/692">pydantic/pydantic-settings#692</a></li> <li>Coerce env vars if strict is True. by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/693">pydantic/pydantic-settings#693</a></li> <li>Restore init kwarg names before returning final state dictionary. by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/700">pydantic/pydantic-settings#700</a></li> <li>Drop Python3.9 support by <a href="https://github.com/hramezani"><code>@hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/699">pydantic/pydantic-settings#699</a></li> <li>Adapt test_protected_namespace_defaults for dev. Pydantic by <a href="https://github.com/musicinmybrain"><code>@musicinmybrain</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/637">pydantic/pydantic-settings#637</a></li> <li>Add Python 3.14 by <a href="https://github.com/hramezani"><code>@hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/704">pydantic/pydantic-settings#704</a></li> <li>Prepare release 2.12 by <a href="https://github.com/hramezani"><code>@hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/705">pydantic/pydantic-settings#705</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/chbndrhnns"><code>@chbndrhnns</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/688">pydantic/pydantic-settings#688</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0">https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0</a></p> <h2>v2.11.0</h2> <h2>What's Changed</h2> <ul> <li>CLI Serialize Support by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/643">pydantic/pydantic-settings#643</a></li> <li>Inspect type aliases to determine if an annotation is complex by <a href="https://github.com/tselepakis"><code>@tselepakis</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/644">pydantic/pydantic-settings#644</a></li> <li>Revert "fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/611">#611</a>)" by <a href="https://github.com/hramezani"><code>@hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/655">pydantic/pydantic-settings#655</a></li> <li>Remove parsing of command line arguments from <code>CliSettingsSource.__init__</code>. by <a href="https://github.com/trygve-baerland"><code>@trygve-baerland</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/656">pydantic/pydantic-settings#656</a></li> <li>turn off allow_abbrev on subparsers by <a href="https://github.com/mroch"><code>@mroch</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/658">pydantic/pydantic-settings#658</a></li> <li>CLI Serialization Fixes by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/649">pydantic/pydantic-settings#649</a></li> <li>Fix PydanticModel type checking. by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/659">pydantic/pydantic-settings#659</a></li> <li>Avoid env_prefix falling back to env vars without prefix by <a href="https://github.com/tselepakis"><code>@tselepakis</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/648">pydantic/pydantic-settings#648</a></li> <li>Warn if model_config sets unused keys for missing settings sources by <a href="https://github.com/HomerusJa"><code>@HomerusJa</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/663">pydantic/pydantic-settings#663</a></li> <li>Included endpoint_url kwarg in AWSSecretsManagerSettingsSource class by <a href="https://github.com/adrianohrl"><code>@adrianohrl</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/664">pydantic/pydantic-settings#664</a></li> <li>Fix typo ("Accesing") in the "Adding sources" docs by <a href="https://github.com/deepyaman"><code>@deepyaman</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/668">pydantic/pydantic-settings#668</a></li> <li>CLI Windows Path Fix by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/669">pydantic/pydantic-settings#669</a></li> <li>Cli root model support by <a href="https://github.com/kschwab"><code>@kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/677">pydantic/pydantic-settings#677</a></li> <li>Snake case conversion in Azure Key Vault by <a href="https://github.com/AndreuCodina"><code>@AndreuCodina</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/680">pydantic/pydantic-settings#680</a></li> <li>Make <code>InitSettingsSource</code> resolution deterministic by <a href="https://github.com/enrico-stauss"><code>@enrico-stauss</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/681">pydantic/pydantic-settings#681</a></li> <li>Update deps by <a href="https://github.com/hramezani"><code>@hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/683">pydantic/pydantic-settings#683</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/tselepakis"><code>@tselepakis</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/644">pydantic/pydantic-settings#644</a></li> <li><a href="https://github.com/trygve-baerland"><code>@trygve-baerland</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/656">pydantic/pydantic-settings#656</a></li> <li><a href="https://github.com/mroch"><code>@mroch</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/658">pydantic/pydantic-settings#658</a></li> <li><a href="https://github.com/HomerusJa"><code>@HomerusJa</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/663">pydantic/pydantic-settings#663</a></li> <li><a href="https://github.com/adrianohrl"><code>@adrianohrl</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/664">pydantic/pydantic-settings#664</a></li> <li><a href="https://github.com/deepyaman"><code>@deepyaman</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/668">pydantic/pydantic-settings#668</a></li> <li><a href="https://github.com/enrico-stauss"><code>@enrico-stauss</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/681">pydantic/pydantic-settings#681</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0">https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="584983d253"><code>584983d</code></a> Prepare release 2.12 (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/705">#705</a>)</li> <li><a href="6b4d87e776"><code>6b4d87e</code></a> Add Python 3.14 (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/704">#704</a>)</li> <li><a href="02de5b622b"><code>02de5b6</code></a> Adapt test_protected_namespace_defaults for dev. Pydantic (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/637">#637</a>)</li> <li><a href="4239ea460a"><code>4239ea4</code></a> Drop Python3.9 support (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/699">#699</a>)</li> <li><a href="5008c694f6"><code>5008c69</code></a> Restore init kwarg names before returning final state dictionary. (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/700">#700</a>)</li> <li><a href="4433101fef"><code>4433101</code></a> Coerce env vars if strict is True. (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/693">#693</a>)</li> <li><a href="4d2ebfd543"><code>4d2ebfd</code></a> Strip non-explicit default values. (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/692">#692</a>)</li> <li><a href="4a6ffcaeae"><code>4a6ffca</code></a> Add NestedSecretsSettings source (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/690">#690</a>)</li> <li><a href="7a6e96ebfc"><code>7a6e96e</code></a> Apply source order: init > env > dotenv > secrets > defaults and pres… (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/688">#688</a>)</li> <li><a href="68563eddc0"><code>68563ed</code></a> Support for enum kebab case. (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/686">#686</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.12.0">compare view</a></li> </ul> </details> <br /> Updates `pyjwt` from 2.10.1 to 2.11.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jpadilla/pyjwt/releases">pyjwt's releases</a>.</em></p> <blockquote> <h2>2.11.0</h2> <h2>What's Changed</h2> <ul> <li>Fixed type error in comment by <a href="https://github.com/shuhaib-aot"><code>@shuhaib-aot</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1026">jpadilla/pyjwt#1026</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1018">jpadilla/pyjwt#1018</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1033">jpadilla/pyjwt#1033</a></li> <li>Make note of use of leeway with nbf by <a href="https://github.com/djw8605"><code>@djw8605</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1034">jpadilla/pyjwt#1034</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1035">jpadilla/pyjwt#1035</a></li> <li>Fixes <a href="https://redirect.github.com/jpadilla/pyjwt/issues/964">#964</a>: Validate key against allowed types for Algorithm family by <a href="https://github.com/pachewise"><code>@pachewise</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/985">jpadilla/pyjwt#985</a></li> <li>Feat <a href="https://redirect.github.com/jpadilla/pyjwt/issues/1024">#1024</a>: Add iterator for PyJWKSet by <a href="https://github.com/pachewise"><code>@pachewise</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1041">jpadilla/pyjwt#1041</a></li> <li>Fixes <a href="https://redirect.github.com/jpadilla/pyjwt/issues/1039">#1039</a>: Add iss, issuer type checks by <a href="https://github.com/pachewise"><code>@pachewise</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1040">jpadilla/pyjwt#1040</a></li> <li>Fixes <a href="https://redirect.github.com/jpadilla/pyjwt/issues/660">#660</a>: Improve typing/logic for <code>options</code> in decode, decode_complete; Improve docs by <a href="https://github.com/pachewise"><code>@pachewise</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1045">jpadilla/pyjwt#1045</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1042">jpadilla/pyjwt#1042</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1052">jpadilla/pyjwt#1052</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1053">jpadilla/pyjwt#1053</a></li> <li>Fix <a href="https://redirect.github.com/jpadilla/pyjwt/issues/1022">#1022</a>: Map <code>algorithm=None</code> to "none" by <a href="https://github.com/qqii"><code>@qqii</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1056">jpadilla/pyjwt#1056</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1055">jpadilla/pyjwt#1055</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1058">jpadilla/pyjwt#1058</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1060">jpadilla/pyjwt#1060</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1061">jpadilla/pyjwt#1061</a></li> <li>Fixes <a href="https://redirect.github.com/jpadilla/pyjwt/issues/1047">#1047</a>: Correct <code>PyJWKClient.get_signing_key_from_jwt</code> annotation by <a href="https://github.com/khvn26"><code>@khvn26</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1048">jpadilla/pyjwt#1048</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1062">jpadilla/pyjwt#1062</a></li> <li>Fixed doc string typo in _validate_jti() function <a href="https://redirect.github.com/jpadilla/pyjwt/issues/1063">#1063</a> by <a href="https://github.com/kuldeepkhatke"><code>@kuldeepkhatke</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1064">jpadilla/pyjwt#1064</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1065">jpadilla/pyjwt#1065</a></li> <li>Update SECURITY.md by <a href="https://github.com/auvipy"><code>@auvipy</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1057">jpadilla/pyjwt#1057</a></li> <li>Typing fix: use <code>float</code> instead of <code>int</code> for <code>lifespan</code> and <code>timeout</code> by <a href="https://github.com/nikitagashkov"><code>@nikitagashkov</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1068">jpadilla/pyjwt#1068</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1067">jpadilla/pyjwt#1067</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1071">jpadilla/pyjwt#1071</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1076">jpadilla/pyjwt#1076</a></li> <li>Fix TYP header documentation by <a href="https://github.com/fobiasmog"><code>@fobiasmog</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1046">jpadilla/pyjwt#1046</a></li> <li>doc: Document claims sub and jti by <a href="https://github.com/cleder"><code>@cleder</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1088">jpadilla/pyjwt#1088</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1077">jpadilla/pyjwt#1077</a></li> <li>Bump actions/setup-python from 5 to 6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1089">jpadilla/pyjwt#1089</a></li> <li>Bump actions/stale from 8 to 10 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1090">jpadilla/pyjwt#1090</a></li> <li>Bump actions/checkout from 4 to 5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1083">jpadilla/pyjwt#1083</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1091">jpadilla/pyjwt#1091</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1093">jpadilla/pyjwt#1093</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1096">jpadilla/pyjwt#1096</a></li> <li>Resolve package build warnings by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1105">jpadilla/pyjwt#1105</a></li> <li>Support Python 3.14, and test against PyPy 3.10+ by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1104">jpadilla/pyjwt#1104</a></li> <li>Fix a <code>SyntaxWarning</code> caused by invalid escape sequences by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1103">jpadilla/pyjwt#1103</a></li> <li>Standardize CHANGELOG links to PRs by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1110">jpadilla/pyjwt#1110</a></li> <li>Migrate from <code>pep517</code>, which is deprecated, to <code>build</code> by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1108">jpadilla/pyjwt#1108</a></li> <li>Fix incorrectly-named test suite function by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1116">jpadilla/pyjwt#1116</a></li> <li>Fix Read the Docs builds by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1111">jpadilla/pyjwt#1111</a></li> <li>Bump actions/download-artifact from 4 to 6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1118">jpadilla/pyjwt#1118</a></li> <li>Escalate test suite warnings to errors by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1107">jpadilla/pyjwt#1107</a></li> <li>Add pyupgrade as a pre-commit hook by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1109">jpadilla/pyjwt#1109</a></li> <li>Simplify the test suite decorators by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1113">jpadilla/pyjwt#1113</a></li> <li>Improve coverage config and eliminate unused test suite code by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1115">jpadilla/pyjwt#1115</a></li> <li>Build a shared wheel once in the test suite by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1114">jpadilla/pyjwt#1114</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst">pyjwt's changelog</a>.</em></p> <blockquote> <h2><code>v2.11.0 <https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0></code>__</h2> <p>Fixed</p> <pre><code> - Enforce ECDSA curve validation per RFC 7518 Section 3.4. - Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) <https://github.com/jpadilla/pyjwt/pull/1105>`__ - Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) <https://github.com/jpadilla/pyjwt/pull/964>`__ - Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) <https://github.com/jpadilla/pyjwt/pull/1041>`__ - Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) <https://github.com/jpadilla/pyjwt/pull/1040>`__ - Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) <https://github.com/jpadilla/pyjwt/pull/1045>`__ - Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) <https://github.com/jpadilla/pyjwt/pull/1068>`__ - Fix ``SyntaxWarning``\s/``DeprecationWarning``\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) <https://github.com/jpadilla/pyjwt/pull/1103>`__ - Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) <https://github.com/jpadilla/pyjwt/pull/1114>`__ - Development: Test type annotations across all supported Python versions, increase the strictness of the type checking, and remove the mypy pre-commit hook by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) <https://github.com/jpadilla/pyjwt/pull/1112>`__ <p>Added </code></pre></p> <ul> <li>Support Python 3.14, and test against PyPy 3.10 and 3.11 by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <code>[#1104](https://github.com/jpadilla/pyjwt/issues/1104) <https://github.com/jpadilla/pyjwt/pull/1104></code>__</li> <li>Development: Migrate to <code>build</code> to test package building in CI by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <code>[#1108](https://github.com/jpadilla/pyjwt/issues/1108) <https://github.com/jpadilla/pyjwt/pull/1108></code>__</li> <li>Development: Improve coverage config and eliminate unused test suite code by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <code>[#1115](https://github.com/jpadilla/pyjwt/issues/1115) <https://github.com/jpadilla/pyjwt/pull/1115></code>__</li> <li>Docs: Standardize CHANGELOG links to PRs by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <code>[#1110](https://github.com/jpadilla/pyjwt/issues/1110) <https://github.com/jpadilla/pyjwt/pull/1110></code>__</li> <li>Docs: Fix Read the Docs builds by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <code>[#1111](https://github.com/jpadilla/pyjwt/issues/1111) <https://github.com/jpadilla/pyjwt/pull/1111></code>__</li> <li>Docs: Add example of using leeway with nbf by <a href="https://github.com/djw8605"><code>@djw8605</code></a> in <code>[#1034](https://github.com/jpadilla/pyjwt/issues/1034) <https://github.com/jpadilla/pyjwt/pull/1034></code>__</li> <li>Docs: Refactored docs with <code>autodoc</code>; added <code>PyJWS</code> and <code>jwt.algorithms</code> docs by <a href="https://github.com/pachewise"><code>@pachewise</code></a> in <code>[#1045](https://github.com/jpadilla/pyjwt/issues/1045) <https://github.com/jpadilla/pyjwt/pull/1045></code>__</li> <li>Docs: Documentation improvements for "sub" and "jti" claims by <a href="https://github.com/cleder"><code>@cleder</code></a> in <code>[#1088](https://github.com/jpadilla/pyjwt/issues/1088) <https://github.com/jpadilla/pyjwt/pull/1088></code>__</li> <li>Development: Add pyupgrade as a pre-commit hook by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <code>[#1109](https://github.com/jpadilla/pyjwt/issues/1109) <https://github.com/jpadilla/pyjwt/pull/1109></code>__</li> <li>Add minimum key length validation for HMAC and RSA keys (CWE-326). Warns by default via <code>InsecureKeyLengthWarning</code> when keys are below minimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and NIST SP 800-131A (RSA). Pass <code>enforce_minimum_key_length=True</code> in options to <code>PyJWT</code> or <code>PyJWS</code> to raise <code>InvalidKeyError</code> instead.</li> <li>Refactor <code>PyJWT</code> to own an internal <code>PyJWS</code> instance instead of calling global <code>api_jws</code> functions.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="697344d259"><code>697344d</code></a> bump up version</li> <li><a href="e4d0aec024"><code>e4d0aec</code></a> fix: pre-commit</li> <li><a href="df9a6a0c44"><code>df9a6a0</code></a> fix: failing test</li> <li><a href="2b2e53cd23"><code>2b2e53c</code></a> fix: docs</li> <li><a href="635c8d89dd"><code>635c8d8</code></a> fix: failing mypy</li> <li><a href="96ae3563b9"><code>96ae356</code></a> feat: add minimum key length validation for HMAC and RSA</li> <li><a href="5b86227733"><code>5b86227</code></a> fix: enforce ECDSA curve validation per RFC 7518 Section 3.4</li> <li><a href="04947d75dc"><code>04947d7</code></a> Bump actions/download-artifact from 6 to 7 (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1125">#1125</a>)</li> <li><a href="dd448344c3"><code>dd44834</code></a> Fix leeway value in usage documentation (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1124">#1124</a>)</li> <li><a href="407f0bde99"><code>407f0bd</code></a> Thoroughly test type annotations, and resolve errors (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1112">#1112</a>)</li> <li>Additional commits viewable in <a href="https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0">compare view</a></li> </ul> </details> <br /> Updates `supabase` from 2.16.0 to 2.27.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/supabase/supabase-py/releases">supabase's releases</a>.</em></p> <blockquote> <h2>v2.27.2</h2> <h2><a href="https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2">2.27.2</a> (2026-01-14)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>ci:</strong> generate new token for release-please (<a href="https://redirect.github.com/supabase/supabase-py/issues/1348">#1348</a>) (<a href="c2ad37f9dc">c2ad37f</a>)</li> <li><strong>ci:</strong> run CI when .github files change (<a href="https://redirect.github.com/supabase/supabase-py/issues/1349">#1349</a>) (<a href="a221aac029">a221aac</a>)</li> <li><strong>realtime:</strong> ammend reconnect logic to not unsubscribe (<a href="https://redirect.github.com/supabase/supabase-py/issues/1346">#1346</a>) (<a href="cfbe5943cb">cfbe594</a>)</li> </ul> <h2>v2.27.1</h2> <h2><a href="https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1">2.27.1</a> (2026-01-06)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>realtime:</strong> use 'event' instead of 'events' in postgres_changes protocol (<a href="https://redirect.github.com/supabase/supabase-py/issues/1339">#1339</a>) (<a href="c1e7986c5e">c1e7986</a>)</li> <li><strong>storage:</strong> catch bad responses from server (<a href="https://redirect.github.com/supabase/supabase-py/issues/1344">#1344</a>) (<a href="ddb50547db">ddb5054</a>)</li> </ul> <h2>v2.27.0</h2> <h2><a href="https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0">2.27.0</a> (2025-12-16)</h2> <h3>Features</h3> <ul> <li><strong>auth:</strong> add X (OAuth 2.0) provider (<a href="https://redirect.github.com/supabase/supabase-py/issues/1335">#1335</a>) (<a href="f600f96b52">f600f96</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>storage:</strong> replace deprecated pydantic Extra with literal values (<a href="https://redirect.github.com/supabase/supabase-py/issues/1334">#1334</a>) (<a href="6df3545785">6df3545</a>)</li> </ul> <h2>v2.26.... _Description has been truncated_ --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle <ntindle@users.noreply.github.com> Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: Nick Tindle <nick@ntindle.com>
This is the frontend for AutoGPT's next generation
🧢 Getting Started
This project uses pnpm as the package manager via corepack. Corepack is a Node.js tool that automatically manages package managers without requiring global installations.
For architecture, conventions, data fetching, feature flags, design system usage, state management, and PR process, see CONTRIBUTING.md. For Playwright and Storybook testing setup, see TESTING.md.
Prerequisites
Make sure you have Node.js 16.10+ installed. Corepack is included with Node.js by default.
Setup
1. Enable corepack (run this once on your system):
corepack enable
This enables corepack to automatically manage pnpm based on the packageManager field in package.json.
2. Install dependencies:
pnpm i
3. Start the development server:
Running the Front-end & Back-end separately
We recommend this approach if you are doing active development on the project. First spin up the Back-end:
# on `autogpt_platform`
docker compose --profile local up deps_backend -d
# on `autogpt_platform/backend`
poetry run app
Then start the Front-end:
# on `autogpt_platform/frontend`
pnpm dev
Open http://localhost:3000 with your browser to see the result. If the server starts on http://localhost:3001 it means the Front-end is already running via Docker. You have to kill the container then or do docker compose down.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
Running both the Front-end and Back-end via Docker
If you run:
# on `autogpt_platform`
docker compose up -d
It will spin up the Back-end and Front-end via Docker. The Front-end will start on port 3000. This might not be
what you want when actively contributing to the Front-end as you won't have direct/easy access to the Next.js dev server.
Subsequent Runs
For subsequent development sessions, you only need to run:
pnpm dev
Every time a new Front-end dependency is added by you or others, you will need to run pnpm i to install the new dependencies.
Available Scripts
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLint and Prettier checkspnpm format- Format code with Prettierpnpm types- Run TypeScript type checkingpnpm test- Run Playwright testspnpm test-ui- Run Playwright tests with UIpnpm fetch:openapi- Fetch OpenAPI spec from backendpnpm generate:api-client- Generate API client from OpenAPI specpnpm generate:api- Fetch OpenAPI spec and generate API client
This project uses next/font to automatically optimize and load Inter, a custom Google Font.
🔄 Data Fetching
See CONTRIBUTING.md for guidance on generated API hooks, SSR + hydration patterns, and usage examples. You generally do not need to run OpenAPI commands unless adding/modifying backend endpoints.
🚩 Feature Flags
See CONTRIBUTING.md for feature flag usage patterns, local development with mocks, and how to add new flags.
🚚 Deploy
TODO
📙 Storybook
Storybook is a powerful development environment for UI components. It allows you to build UI components in isolation, making it easier to develop, test, and document your components independently from your main application.
Purpose in the Development Process
- Component Development: Develop and test UI components in isolation.
- Visual Testing: Easily spot visual regressions.
- Documentation: Automatically document components and their props.
- Collaboration: Share components with your team or stakeholders for feedback.
How to Use Storybook
-
Start Storybook: Run the following command to start the Storybook development server:
pnpm storybookThis will start Storybook on port 6006. Open http://localhost:6006 in your browser to view your component library.
-
Build Storybook: To build a static version of Storybook for deployment, use:
pnpm build-storybook -
Running Storybook Tests: Storybook tests can be run using:
pnpm test-storybook -
Writing Stories: Create
.stories.tsxfiles alongside your components to define different states and variations of your components.
By integrating Storybook into our development workflow, we can streamline UI development, improve component reusability, and maintain a consistent design system across the project.
🔭 Tech Stack
Core Framework & Language
- Next.js - React framework with App Router
- React - UI library for building user interfaces
- TypeScript - Typed JavaScript for better developer experience
Styling & UI Components
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Re-usable components built with Radix UI and Tailwind CSS
- Radix UI - Headless UI components for accessibility
- Phosphor Icons - Icon set used across the app
- Framer Motion - Animation library for React
Development & Testing
- Storybook - Component development environment
- Playwright - End-to-end testing framework
- ESLint - JavaScript/TypeScript linting
- Prettier - Code formatting
Backend & Services
- Supabase - Backend-as-a-Service (database, auth, storage)
- Sentry - Error monitoring and performance tracking
Package Management
Additional Libraries
- React Hook Form - Forms with easy validation
- Zod - TypeScript-first schema validation
- React Table - Headless table library
- React Flow - Interactive node-based diagrams
- React Query - Data fetching and caching
- React Query DevTools - Debugging tool for React Query
Development Tools
NEXT_PUBLIC_REACT_QUERY_DEVTOOL- Enable React Query DevTools. Set totrueto enable.