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>
AutoGPT Platform
Welcome to the AutoGPT Platform - a powerful system for creating and running AI agents to solve business problems. This platform enables you to harness the power of artificial intelligence to automate tasks, analyze data, and generate insights for your organization.
Getting Started
Prerequisites
- Docker
- Docker Compose V2 (comes with Docker Desktop, or can be installed separately)
Running the System
To run the AutoGPT Platform, follow these steps:
-
Clone this repository to your local machine and navigate to the
autogpt_platformdirectory within the repository:git clone <https://github.com/Significant-Gravitas/AutoGPT.git | git@github.com:Significant-Gravitas/AutoGPT.git> cd AutoGPT/autogpt_platform -
Run the following command:
cp .env.default .envThis command will copy the
.env.defaultfile to.env. You can modify the.envfile to add your own environment variables. -
Run the following command:
docker compose up -dThis command will start all the necessary backend services defined in the
docker-compose.ymlfile in detached mode. -
After all the services are in ready state, open your browser and navigate to
http://localhost:3000to access the AutoGPT Platform frontend.
Running Just Core services
You can now run the following to enable just the core services.
# For help
make help
# Run just Supabase + Redis + RabbitMQ
make start-core
# Stop core services
make stop-core
# View logs from core services
make logs-core
# Run formatting and linting for backend and frontend
make format
# Run migrations for backend database
make migrate
# Run backend server
make run-backend
# Run frontend development server
make run-frontend
Docker Compose Commands
Here are some useful Docker Compose commands for managing your AutoGPT Platform:
docker compose up -d: Start the services in detached mode.docker compose stop: Stop the running services without removing them.docker compose rm: Remove stopped service containers.docker compose build: Build or rebuild services.docker compose down: Stop and remove containers, networks, and volumes.docker compose watch: Watch for changes in your services and automatically update them.
Sample Scenarios
Here are some common scenarios where you might use multiple Docker Compose commands:
-
Updating and restarting a specific service:
docker compose build api_srv docker compose up -d --no-deps api_srvThis rebuilds the
api_srvservice and restarts it without affecting other services. -
Viewing logs for troubleshooting:
docker compose logs -f api_srv ws_srvThis shows and follows the logs for both
api_srvandws_srvservices. -
Scaling a service for increased load:
docker compose up -d --scale executor=3This scales the
executorservice to 3 instances to handle increased load. -
Stopping the entire system for maintenance:
docker compose stop docker compose rm -f docker compose pull docker compose up -dThis stops all services, removes containers, pulls the latest images, and restarts the system.
-
Developing with live updates:
docker compose watchThis watches for changes in your code and automatically updates the relevant services.
-
Checking the status of services:
docker compose psThis shows the current status of all services defined in your docker-compose.yml file.
These scenarios demonstrate how to use Docker Compose commands in combination to manage your AutoGPT Platform effectively.
Persisting Data
To persist data for PostgreSQL and Redis, you can modify the docker-compose.yml file to add volumes. Here's how:
-
Open the
docker-compose.ymlfile in a text editor. -
Add volume configurations for PostgreSQL and Redis services:
services: postgres: # ... other configurations ... volumes: - postgres_data:/var/lib/postgresql/data redis: # ... other configurations ... volumes: - redis_data:/data volumes: postgres_data: redis_data: -
Save the file and run
docker compose up -dto apply the changes.
This configuration will create named volumes for PostgreSQL and Redis, ensuring that your data persists across container restarts.
API Client Generation
The platform includes scripts for generating and managing the API client:
pnpm fetch:openapi: Fetches the OpenAPI specification from the backend service (requires backend to be running on port 8006)pnpm generate:api-client: Generates the TypeScript API client from the OpenAPI specification using Orvalpnpm generate:api: Runs both fetch and generate commands in sequence
Manual API Client Updates
If you need to update the API client after making changes to the backend API:
-
Ensure the backend services are running:
docker compose up -d -
Generate the updated API client:
pnpm generate:api
This will fetch the latest OpenAPI specification and regenerate the TypeScript client code.