Commit Graph

632 Commits

Author SHA1 Message Date
dependabot[bot]
4d6ec0031b chore(backend/deps): Update 8 packages (#10448)
Bumps the production-dependencies group with 8 updates in the
/autogpt_platform/backend directory:

| Package | From | To |
| --- | --- | --- |
| [anthropic](https://github.com/anthropics/anthropic-sdk-python) |
`0.57.1` | `0.59.0` |
|
[google-api-python-client](https://github.com/googleapis/google-api-python-client)
| `2.176.0` | `2.177.0` |
| [jsonschema](https://github.com/python-jsonschema/jsonschema) |
`4.24.1` | `4.25.0` |
| [mem0ai](https://github.com/mem0ai/mem0) | `0.1.114` | `0.1.115` |
| [openai](https://github.com/openai/openai-python) | `1.97.0` |
`1.97.1` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.33.0` |
`2.33.2` |
| [supabase](https://github.com/supabase/supabase-py) | `2.16.0` |
`2.17.0` |
|
[youtube-transcript-api](https://github.com/jdepoix/youtube-transcript-api)
| `1.1.1` | `1.2.1` |


Updates `anthropic` from 0.57.1 to 0.59.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-python/releases">anthropic's
releases</a>.</em></p>
<blockquote>
<h2>v0.59.0</h2>
<h2>0.59.0 (2025-07-23)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.58.2...v0.59.0">v0.58.2...v0.59.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> removed older deprecated models (<a
href="38998fdab7">38998fd</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>parsing:</strong> ignore empty metadata (<a
href="7099f32a40">7099f32</a>)</li>
<li><strong>parsing:</strong> parse extra field types (<a
href="dbea8a4046">dbea8a4</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> version bump (<a
href="5defffa3ab">5defffa</a>)</li>
</ul>
<h2>v0.58.2</h2>
<h2>0.58.2 (2025-07-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.58.1...v0.58.2">v0.58.1...v0.58.2</a></p>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> version bump (<a
href="cd5d1adc34">cd5d1ad</a>)</li>
</ul>
<h2>v0.58.1</h2>
<h2>0.58.1 (2025-07-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.58.0...v0.58.1">v0.58.0...v0.58.1</a></p>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> version bump (<a
href="31c3b380e5">31c3b38</a>)</li>
</ul>
<h2>v0.58.0</h2>
<h2>0.58.0 (2025-07-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.57.1...v0.58.0">v0.57.1...v0.58.0</a></p>
<h3>Features</h3>
<ul>
<li>clean up environment call outs (<a
href="4f64e9c1bd">4f64e9c</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md">anthropic's
changelog</a>.</em></p>
<blockquote>
<h2>0.59.0 (2025-07-23)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.58.2...v0.59.0">v0.58.2...v0.59.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> removed older deprecated models (<a
href="38998fdab7">38998fd</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>parsing:</strong> ignore empty metadata (<a
href="7099f32a40">7099f32</a>)</li>
<li><strong>parsing:</strong> parse extra field types (<a
href="dbea8a4046">dbea8a4</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> version bump (<a
href="5defffa3ab">5defffa</a>)</li>
</ul>
<h2>0.58.2 (2025-07-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.58.1...v0.58.2">v0.58.1...v0.58.2</a></p>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> version bump (<a
href="cd5d1adc34">cd5d1ad</a>)</li>
</ul>
<h2>0.58.1 (2025-07-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.58.0...v0.58.1">v0.58.0...v0.58.1</a></p>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> version bump (<a
href="31c3b380e5">31c3b38</a>)</li>
</ul>
<h2>0.58.0 (2025-07-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.57.1...v0.58.0">v0.57.1...v0.58.0</a></p>
<h3>Features</h3>
<ul>
<li>clean up environment call outs (<a
href="4f64e9c1bd">4f64e9c</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> don't send Content-Type header on GET
requests (<a
href="727268f2bd">727268f</a>)</li>
<li><strong>parsing:</strong> correctly handle nested discriminated
unions (<a
href="44dd47e15e">44dd47e</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="28fefb7648"><code>28fefb7</code></a>
release: 0.59.0</li>
<li><a
href="b2d8c264f8"><code>b2d8c26</code></a>
fix(parsing): parse extra field types</li>
<li><a
href="fce21e1daf"><code>fce21e1</code></a>
feat(api): removed older deprecated models</li>
<li><a
href="8d49f60915"><code>8d49f60</code></a>
fix(parsing): ignore empty metadata</li>
<li><a
href="e054e76c93"><code>e054e76</code></a>
chore(internal): version bump</li>
<li><a
href="79f7f10a71"><code>79f7f10</code></a>
release: 0.58.2</li>
<li><a
href="db95cdc0ab"><code>db95cdc</code></a>
chore(internal): version bump</li>
<li><a
href="16e941334b"><code>16e9413</code></a>
release: 0.58.1</li>
<li><a
href="b69c9ff676"><code>b69c9ff</code></a>
chore(internal): version bump</li>
<li><a
href="423601de8d"><code>423601d</code></a>
release: 0.58.0</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.57.1...v0.59.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-api-python-client` from 2.176.0 to 2.177.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-python-client/releases">google-api-python-client's
releases</a>.</em></p>
<blockquote>
<h2>v2.177.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-python-client/compare/v2.176.0...v2.177.0">2.177.0</a>
(2025-07-22)</h2>
<h3>Features</h3>
<ul>
<li><strong>admin:</strong> Update the api <a
href="90d92b4ded</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>adsenseplatform:</strong> Update the api <a
href="70cde9e2f6</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>aiplatform:</strong> Update the api <a
href="fef1ed967f</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>analyticsadmin:</strong> Update the api <a
href="1609c8ffe2</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>androidpublisher:</strong> Update the api <a
href="f4e40100db</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>apphub:</strong> Update the api <a
href="d192cdf02d</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>backupdr:</strong> Update the api <a
href="2d03602be0</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>beyondcorp:</strong> Update the api <a
href="992f2f231e</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>chat:</strong> Update the api <a
href="2bf379026a</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>chromemanagement:</strong> Update the api <a
href="6a2c4a5ea8</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>civicinfo:</strong> Update the api <a
href="38e107ad94</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>cloudasset:</strong> Update the api <a
href="0d243636fd</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>cloudbilling:</strong> Update the api <a
href="68858fd514</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>compute:</strong> Update the api <a
href="0670bbe7c2</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>compute:</strong> Update the api <a
href="0a77325ff1</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>connectors:</strong> Update the api <a
href="0a4db90998</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>contactcenteraiplatform:</strong> Update the api <a
href="39f0f5a371</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>contactcenterinsights:</strong> Update the api <a
href="6cd0f3b819</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>container:</strong> Update the api <a
href="0e91158f4e</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>dataflow:</strong> Update the api <a
href="b0faf39e2d</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>dataform:</strong> Update the api <a
href="d47f453ea5</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>dataplex:</strong> Update the api <a
href="30d50fe41f</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>datastream:</strong> Update the api <a
href="d2fb73fff7</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>dialogflow:</strong> Update the api <a
href="a861178e2f</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>discoveryengine:</strong> Update the api <a
href="656a393a35</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>discoveryengine:</strong> Update the api <a
href="e32141e90d</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>displayvideo:</strong> Update the api <a
href="04588ff464</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>dlp:</strong> Update the api <a
href="8bed235777</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>documentai:</strong> Update the api <a
href="799e9acca0</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>firebaseapphosting:</strong> Update the api <a
href="faa5767967</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>firebasedataconnect:</strong> Update the api <a
href="da5ae90399</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>firebaseml:</strong> Update the api <a
href="f658e6a1c5</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>gkehub:</strong> Update the api <a
href="f475ccbb03</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>healthcare:</strong> Update the api <a
href="3652423200</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>managedkafka:</strong> Update the api <a
href="6db60695a4</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>merchantapi:</strong> Update the api <a
href="2aada479db</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>merchantapi:</strong> Update the api <a
href="e4c81be4e2</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>migrationcenter:</strong> Update the api <a
href="55d8296b79</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>netapp:</strong> Update the api <a
href="30b488418d</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>networkmanagement:</strong> Update the api <a
href="37999dc933</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
<li><strong>networksecurity:</strong> Update the api <a
href="4171b55c76</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>notebooks:</strong> Update the api <a
href="42f4eac549</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>oracledatabase:</strong> Update the api <a
href="c2fbbec002</a>
(<a
href="6844949fa0">6844949</a>)</li>
<li><strong>recaptchaenterprise:</strong> Update the api <a
href="33f2183b4a</a>
(<a
href="1a80b7e383">1a80b7e</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2423ea179b"><code>2423ea1</code></a>
chore(main): release 2.177.0 (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2628">#2628</a>)</li>
<li><a
href="6844949fa0"><code>6844949</code></a>
chore: Update discovery artifacts (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2629">#2629</a>)</li>
<li><a
href="1a80b7e383"><code>1a80b7e</code></a>
chore: Update discovery artifacts (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2627">#2627</a>)</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-api-python-client/compare/v2.176.0...v2.177.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `jsonschema` from 4.24.1 to 4.25.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python-jsonschema/jsonschema/releases">jsonschema's
releases</a>.</em></p>
<blockquote>
<h2>v4.25.0</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<ul>
<li>Add support for the <code>iri</code> and <code>iri-reference</code>
formats to the <code>format-nongpl</code> extra by <a
href="https://github.com/jkowalleck"><code>@​jkowalleck</code></a> in <a
href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1388">python-jsonschema/jsonschema#1388</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/jkowalleck"><code>@​jkowalleck</code></a> made
their first contribution in <a
href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1388">python-jsonschema/jsonschema#1388</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0">https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst">jsonschema's
changelog</a>.</em></p>
<blockquote>
<h1>v4.25.0</h1>
<ul>
<li>Add support for the <code>iri</code> and <code>iri-reference</code>
formats to the <code>format-nongpl</code> extra via the MIT-licensed
<code>rfc3987-syntax</code>.
They were alread supported by the <code>format</code> extra. (<a
href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1388">#1388</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9889f69eb5"><code>9889f69</code></a>
Add the new functionality to the CHANGELOG.</li>
<li><a
href="18855d01f7"><code>18855d0</code></a>
Merge pull request <a
href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1388">#1388</a>
from jkowalleck/feat/validate_rfc3987_non-gpl/rfc398...</li>
<li><a
href="1a6067fc44"><code>1a6067f</code></a>
adjust rfc3987-syntax min-version</li>
<li><a
href="8dd4f567ca"><code>8dd4f56</code></a>
feat: use non-GPL validator for rfc3987</li>
<li>See full diff in <a
href="https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `mem0ai` from 0.1.114 to 0.1.115
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mem0ai/mem0/releases">mem0ai's
releases</a>.</em></p>
<blockquote>
<h2>0.1.115</h2>
<h2>What's Changed</h2>
<ul>
<li>Show details for query tokens by <a
href="https://github.com/Dev-Khant"><code>@​Dev-Khant</code></a> in <a
href="https://redirect.github.com/embedchain/embedchain/pull/1392">embedchain/embedchain#1392</a></li>
<li>Version bump by <a
href="https://github.com/Dev-Khant"><code>@​Dev-Khant</code></a> in <a
href="https://redirect.github.com/embedchain/embedchain/pull/1460">embedchain/embedchain#1460</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/embedchain/embedchain/compare/0.1.114...0.1.115">https://github.com/embedchain/embedchain/compare/0.1.114...0.1.115</a></p>
<h2>v0.1.115</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Memgraph Graph Generation Issue by <a
href="https://github.com/akshat1423"><code>@​akshat1423</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3109">mem0ai/mem0#3109</a></li>
<li>Security Link updated by <a
href="https://github.com/Itz-Antaripa"><code>@​Itz-Antaripa</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3108">mem0ai/mem0#3108</a></li>
<li>Add metadata field to memory update schema by <a
href="https://github.com/whysosaket"><code>@​whysosaket</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3115">mem0ai/mem0#3115</a></li>
<li>Fix: Changed keyword from assisstant to secretary by <a
href="https://github.com/V-Silpin"><code>@​V-Silpin</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/2937">mem0ai/mem0#2937</a></li>
<li>Abstraction for Project in MemoryClient by <a
href="https://github.com/Dev-Khant"><code>@​Dev-Khant</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3067">mem0ai/mem0#3067</a></li>
<li>feat: Memory Exports by <a
href="https://github.com/whysosaket"><code>@​whysosaket</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3117">mem0ai/mem0#3117</a></li>
<li>Add JavaScript examples for memory export API by <a
href="https://github.com/whysosaket"><code>@​whysosaket</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3119">mem0ai/mem0#3119</a></li>
<li>Add structured_data_schema to MemoryOptions interface by <a
href="https://github.com/whysosaket"><code>@​whysosaket</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3125">mem0ai/mem0#3125</a></li>
<li>AWS Bedrock Integration and spell checks by <a
href="https://github.com/Itz-Antaripa"><code>@​Itz-Antaripa</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3124">mem0ai/mem0#3124</a></li>
<li>Update personalized deep research example with GitHub link by <a
href="https://github.com/whysosaket"><code>@​whysosaket</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3136">mem0ai/mem0#3136</a></li>
<li>Restore and update handle_post_message implementation by <a
href="https://github.com/whysosaket"><code>@​whysosaket</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3152">mem0ai/mem0#3152</a></li>
<li>Updated livekit 1.0 integration by <a
href="https://github.com/parshvadaftari"><code>@​parshvadaftari</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3073">mem0ai/mem0#3073</a></li>
<li>docs: Add comprehensive LLM-friendly documentation by <a
href="https://github.com/askdevai-bot"><code>@​askdevai-bot</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3154">mem0ai/mem0#3154</a></li>
<li>Multi-LLM Research Team powered by memory by <a
href="https://github.com/Itz-Antaripa"><code>@​Itz-Antaripa</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3160">mem0ai/mem0#3160</a></li>
<li>Agno Mem0Tools update by <a
href="https://github.com/Itz-Antaripa"><code>@​Itz-Antaripa</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3139">mem0ai/mem0#3139</a></li>
<li>Multiagent Learning System with LlamaIndex by <a
href="https://github.com/Itz-Antaripa"><code>@​Itz-Antaripa</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3063">mem0ai/mem0#3063</a></li>
<li>Content Writing Example Rewrite by <a
href="https://github.com/Itz-Antaripa"><code>@​Itz-Antaripa</code></a>
in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3142">mem0ai/mem0#3142</a></li>
<li>Update Changelog by <a
href="https://github.com/Dev-Khant"><code>@​Dev-Khant</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3211">mem0ai/mem0#3211</a></li>
<li>docs: Update for new Project API and deprecation notices by <a
href="https://github.com/whysosaket"><code>@​whysosaket</code></a> in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3212">mem0ai/mem0#3212</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/V-Silpin"><code>@​V-Silpin</code></a>
made their first contribution in <a
href="https://redirect.github.com/mem0ai/mem0/pull/2937">mem0ai/mem0#2937</a></li>
<li><a
href="https://github.com/askdevai-bot"><code>@​askdevai-bot</code></a>
made their first contribution in <a
href="https://redirect.github.com/mem0ai/mem0/pull/3154">mem0ai/mem0#3154</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mem0ai/mem0/compare/v0.1.114...v0.1.115">https://github.com/mem0ai/mem0/compare/v0.1.114...v0.1.115</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mem0ai/mem0/blob/main/docs/changelog.mdx">mem0ai's
changelog</a>.</em></p>
<blockquote>
<hr />
<h2>title: &quot;Product Updates&quot;
mode: &quot;wide&quot;</h2>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<p><strong>New Features &amp; Updates:</strong></p>
<ul>
<li>Enhanced project management via <code>client.project</code> and
<code>AsyncMemoryClient.project</code> interfaces</li>
<li>Full support for project CRUD operations (create, read, update,
delete)</li>
<li>Project member management: add, update, remove, and list
members</li>
<li>Manage project settings including custom instructions, categories,
retrieval criteria, and graph enablement</li>
<li>Both sync and async support for all project management
operations</li>
</ul>
<p><strong>Improvements:</strong></p>
<ul>
<li>
<p><strong>Documentation:</strong></p>
<ul>
<li>Added detailed API reference and usage examples for new project
management methods.</li>
<li>Updated all docs to use <code>client.project.get()</code> and
<code>client.project.update()</code> instead of deprecated methods.</li>
</ul>
</li>
<li>
<p><strong>Deprecation:</strong></p>
<ul>
<li>Marked <code>get_project()</code> and <code>update_project()</code>
as deprecated (these methods were already present); added warnings to
guide users to the new API.</li>
</ul>
</li>
</ul>
<p><strong>Bug Fixes:</strong></p>
<ul>
<li><strong>Tests:</strong>
<ul>
<li>Fixed Gemini embedder and LLM test mocks for correct error handling
and argument structure.</li>
</ul>
</li>
<li><strong>vLLM:</strong>
<ul>
<li>Fixed duplicate import in vLLM module.</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<p><strong>New Features:</strong></p>
<ul>
<li><strong>OpenAI Agents:</strong> Added OpenAI agents SDK support</li>
<li><strong>Amazon Neptune:</strong> Added Amazon Neptune Analytics
graph_store configuration and integration</li>
<li><strong>vLLM:</strong> Added vLLM support</li>
</ul>
<p><strong>Improvements:</strong></p>
<ul>
<li><strong>Documentation:</strong>
<ul>
<li>Added SOC2 and HIPAA compliance documentation</li>
<li>Enhanced group chat feature documentation for platform</li>
<li>Added Google AI ADK Integration documentation</li>
<li>Fixed documentation images and links</li>
</ul>
</li>
<li><strong>Setup:</strong> Fixed Mem0 setup, logging, and documentation
issues</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="33500a7ce2"><code>33500a7</code></a>
Version bump (<a
href="https://redirect.github.com/mem0ai/mem0/issues/1460">#1460</a>)</li>
<li><a
href="4880557d51"><code>4880557</code></a>
Show details for query tokens (<a
href="https://redirect.github.com/mem0ai/mem0/issues/1392">#1392</a>)</li>
<li>See full diff in <a
href="https://github.com/mem0ai/mem0/compare/0.1.114...0.1.115">compare
view</a></li>
</ul>
</details>
<br />

Updates `openai` from 1.97.0 to 1.97.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/releases">openai's
releases</a>.</em></p>
<blockquote>
<h2>v1.97.1</h2>
<h2>1.97.1 (2025-07-22)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.97.0...v1.97.1">v1.97.0...v1.97.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>parsing:</strong> ignore empty metadata (<a
href="58c359ff67">58c359f</a>)</li>
<li><strong>parsing:</strong> parse extra field types (<a
href="d524b7e201">d524b7e</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> event shapes more accurate (<a
href="f3a9a92292">f3a9a92</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/blob/main/CHANGELOG.md">openai's
changelog</a>.</em></p>
<blockquote>
<h2>1.97.1 (2025-07-22)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.97.0...v1.97.1">v1.97.0...v1.97.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>parsing:</strong> ignore empty metadata (<a
href="58c359ff67">58c359f</a>)</li>
<li><strong>parsing:</strong> parse extra field types (<a
href="d524b7e201">d524b7e</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> event shapes more accurate (<a
href="f3a9a92292">f3a9a92</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e6c6757553"><code>e6c6757</code></a>
release: 1.97.1</li>
<li><a
href="48df6b4c30"><code>48df6b4</code></a>
fix(parsing): parse extra field types</li>
<li><a
href="bf4a9a422e"><code>bf4a9a4</code></a>
chore(api): event shapes more accurate</li>
<li><a
href="c6b9335202"><code>c6b9335</code></a>
fix(parsing): ignore empty metadata</li>
<li><a
href="fa466c099a"><code>fa466c0</code></a>
codegen metadata</li>
<li>See full diff in <a
href="https://github.com/openai/openai-python/compare/v1.97.0...v1.97.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `sentry-sdk` from 2.33.0 to 2.33.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-python/releases">sentry-sdk's
releases</a>.</em></p>
<blockquote>
<h2>2.33.2</h2>
<h3>Various fixes &amp; improvements</h3>
<ul>
<li>ref(spotlight): Do not import <code>sentry_sdk.spotlight</code>
unless enabled (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4607">#4607</a>)
by <a
href="https://github.com/sentrivana"><code>@​sentrivana</code></a></li>
<li>ref(gnu-integration): update clickhouse stacktrace parsing (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4598">#4598</a>)
by <a
href="https://github.com/MeredithAnya"><code>@​MeredithAnya</code></a></li>
</ul>
<h2>2.33.1</h2>
<h3>Various fixes &amp; improvements</h3>
<ul>
<li>fix(integrations): allow explicit op parameter in
<code>ai_track</code> (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4597">#4597</a>)
by <a
href="https://github.com/mshavliuk"><code>@​mshavliuk</code></a></li>
<li>fix: Fix <code>abs_path</code> bug in <code>serialize_frame</code>
(<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4599">#4599</a>)
by <a
href="https://github.com/szokeasaurusrex"><code>@​szokeasaurusrex</code></a></li>
<li>Remove pyrsistent from test dependencies (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4588">#4588</a>)
by <a
href="https://github.com/musicinmybrain"><code>@​musicinmybrain</code></a></li>
<li>Remove explicit <code>__del__</code>'s in threaded classes (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4590">#4590</a>)
by <a
href="https://github.com/sl0thentr0py"><code>@​sl0thentr0py</code></a></li>
<li>Remove forked from test_transport, separate gevent tests and
generalize capturing_server to be module level (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4577">#4577</a>)
by <a
href="https://github.com/sl0thentr0py"><code>@​sl0thentr0py</code></a></li>
<li>Improve token usage recording (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4566">#4566</a>)
by <a
href="https://github.com/antonpirker"><code>@​antonpirker</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md">sentry-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>2.33.2</h2>
<h3>Various fixes &amp; improvements</h3>
<ul>
<li>ref(spotlight): Do not import <code>sentry_sdk.spotlight</code>
unless enabled (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4607">#4607</a>)
by <a
href="https://github.com/sentrivana"><code>@​sentrivana</code></a></li>
<li>ref(gnu-integration): update clickhouse stacktrace parsing (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4598">#4598</a>)
by <a
href="https://github.com/MeredithAnya"><code>@​MeredithAnya</code></a></li>
</ul>
<h2>2.33.1</h2>
<h3>Various fixes &amp; improvements</h3>
<ul>
<li>fix(integrations): allow explicit op parameter in
<code>ai_track</code> (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4597">#4597</a>)
by <a
href="https://github.com/mshavliuk"><code>@​mshavliuk</code></a></li>
<li>fix: Fix <code>abs_path</code> bug in <code>serialize_frame</code>
(<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4599">#4599</a>)
by <a
href="https://github.com/szokeasaurusrex"><code>@​szokeasaurusrex</code></a></li>
<li>Remove pyrsistent from test dependencies (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4588">#4588</a>)
by <a
href="https://github.com/musicinmybrain"><code>@​musicinmybrain</code></a></li>
<li>Remove explicit <code>__del__</code>'s in threaded classes (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4590">#4590</a>)
by <a
href="https://github.com/sl0thentr0py"><code>@​sl0thentr0py</code></a></li>
<li>Remove forked from test_transport, separate gevent tests and
generalize capturing_server to be module level (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4577">#4577</a>)
by <a
href="https://github.com/sl0thentr0py"><code>@​sl0thentr0py</code></a></li>
<li>Improve token usage recording (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4566">#4566</a>)
by <a
href="https://github.com/antonpirker"><code>@​antonpirker</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f4907a9bbf"><code>f4907a9</code></a>
release: 2.33.2</li>
<li><a
href="24790ebb27"><code>24790eb</code></a>
ref(spotlight): Do not import <code>sentry_sdk.spotlight</code> unless
enabled (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4607">#4607</a>)</li>
<li><a
href="0e73049893"><code>0e73049</code></a>
ref(gnu-integration): update clickhouse stacktrace parsing (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4598">#4598</a>)</li>
<li><a
href="ca3241ec64"><code>ca3241e</code></a>
Merge branch 'release/2.33.1'</li>
<li><a
href="5cd43be596"><code>5cd43be</code></a>
meta: Update CHANGELOG.md</li>
<li><a
href="38c27dd99a"><code>38c27dd</code></a>
release: 2.33.1</li>
<li><a
href="7b028b6c83"><code>7b028b6</code></a>
fix(integrations): allow explicit op parameter in <code>ai_track</code>
(<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4597">#4597</a>)</li>
<li><a
href="d32e2eed6e"><code>d32e2ee</code></a>
fix: Fix <code>abs_path</code> bug in <code>serialize_frame</code> (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4599">#4599</a>)</li>
<li><a
href="b065719ddd"><code>b065719</code></a>
Remove pyrsistent from test dependencies (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4588">#4588</a>)</li>
<li><a
href="34dcba4acc"><code>34dcba4</code></a>
Remove explicit <strong>del</strong>'s in threaded classes (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4590">#4590</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-python/compare/2.33.0...2.33.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `supabase` from 2.16.0 to 2.17.0
<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.17.0</h2>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.16.0...v2.17.0">2.17.0</a>
(2025-07-16)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> bump realtime from 2.5.3 to 2.6.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1172">#1172</a>)
(<a
href="89fa81a6be">89fa81a</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>add note about explicit client.auth.sign_out() for proper shutdown
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/926">#926</a>)
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/1163">#1163</a>)
(<a
href="b657308e61">b657308</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md">supabase's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.16.0...v2.17.0">2.17.0</a>
(2025-07-16)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> bump realtime from 2.5.3 to 2.6.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1172">#1172</a>)
(<a
href="89fa81a6be">89fa81a</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>add note about explicit client.auth.sign_out() for proper shutdown
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/926">#926</a>)
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/1163">#1163</a>)
(<a
href="b657308e61">b657308</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="35c1a198fb"><code>35c1a19</code></a>
chore(main): release 2.17.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1164">#1164</a>)</li>
<li><a
href="ea1152d9d5"><code>ea1152d</code></a>
chore(typo): change PyPi tp PyPI in README (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1175">#1175</a>)</li>
<li><a
href="880a706454"><code>880a706</code></a>
chore(deps-dev): bump ruff from 0.12.2 to 0.12.3 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1173">#1173</a>)</li>
<li><a
href="89fa81a6be"><code>89fa81a</code></a>
feat(deps): bump realtime from 2.5.3 to 2.6.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1172">#1172</a>)</li>
<li><a
href="c07e9a46fe"><code>c07e9a4</code></a>
chore: pin supabase dependencies versions (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1170">#1170</a>)</li>
<li><a
href="4b193f5dfd"><code>4b193f5</code></a>
chore(deps): bump gotrue from 2.12.2 to 2.12.3 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1168">#1168</a>)</li>
<li><a
href="3a67df6bf0"><code>3a67df6</code></a>
chore(deps-dev): bump ruff from 0.12.1 to 0.12.2 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1167">#1167</a>)</li>
<li><a
href="a1db7a724d"><code>a1db7a7</code></a>
chore: replace isort, black, pyupgrade and autoflake with ruff (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1165">#1165</a>)</li>
<li><a
href="b657308e61"><code>b657308</code></a>
docs: add note about explicit client.auth.sign_out() for proper shutdown
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/92">#92</a>...</li>
<li><a
href="aef197f3dc"><code>aef197f</code></a>
chore(realtime): bump realtime from 2.5.1 to 2.5.3 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1162">#1162</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/supabase/supabase-py/compare/v2.16.0...v2.17.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `youtube-transcript-api` from 1.1.1 to 1.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jdepoix/youtube-transcript-api/releases">youtube-transcript-api's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Added the property <code>filter_ip_locations</code> to
<code>WebshareProxyConfig</code>. This allows for limiting the pool of
IPs that Webshare will be rotating through to those located in specific
countries. By choosing locations that are close to the machine that is
doing the requests, latency can be reduced. Also, this can be used to
work around location-based restrictions.
<pre lang="python"><code>ytt_api = YouTubeTranscriptApi(
    proxy_config=WebshareProxyConfig(
        proxy_username=&quot;&lt;proxy-username&gt;&quot;,
        proxy_password=&quot;&lt;proxy-password&gt;&quot;,
        filter_ip_locations=[&quot;de&quot;, &quot;us&quot;],
    )
)
<h1>Webshare will now only rotate through IPs located in Germany or the
United States!</h1>
<p>ytt_api.fetch(video_id)
</code></pre>
The full list of available locations (and how many IPs are available in
each location) can be found <a
href="https://www.webshare.io/features/proxy-locations?referral_code=w0xno53eb50g">here</a>.</li></p>
<li>[Fixes <a
href="https://redirect.github.com/jdepoix/youtube-transcript-api/issues/483">#483</a>]
Add <code>__all__</code> to <code>__init__.py</code> to support mypy
--strict usage by <a
href="https://github.com/Jer-Pha"><code>@​Jer-Pha</code></a> in <a
href="https://redirect.github.com/jdepoix/youtube-transcript-api/pull/486">jdepoix/youtube-transcript-api#486</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Jer-Pha"><code>@​Jer-Pha</code></a> made
their first contribution in <a
href="https://redirect.github.com/jdepoix/youtube-transcript-api/pull/486">jdepoix/youtube-transcript-api#486</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jdepoix/youtube-transcript-api/compare/v1.2.0...v1.2.1">https://github.com/jdepoix/youtube-transcript-api/compare/v1.2.0...v1.2.1</a></p>
<h2>v1.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li><strong>[BREAKING]</strong> Removed the deprecated methods
<code>get_transcript</code>, <code>get_transcripts</code> and
<code>list_transcripts</code>. They have already been deprecated in
<code>v1.0.0</code>, but I've kept them around to allow for an easier
migration to <code>v1.0.0</code>. However, these methods have led to a
lot of issues being created due to people initializing a
<code>YouTubeTranscriptApi</code> object and passing a proxy config into
the constructor, but then calling the deprecated static methods on that
object. As these methods are static they don't/can't access the state
set in the constructor, therefore, the proxy config is ignored.</li>
</ul>
<h2>Migration Guide</h2>
<p>If you're still using <code>get_transcript</code>,
<code>get_transcripts</code> you have to change your code as
follows:</p>
<pre lang="python"><code># old API
transcript = YouTubeTranscriptApi.get_transcript(&quot;abc&quot;)
<h1>new API</h1>
<p>ytt_api = YouTubeTranscriptApi()
transcript = ytt_api.fetch(&quot;abc&quot;).to_raw_data()
</code></pre></p>
<p>If you're still using <code>list_transcripts</code> you have to
change your code as follows:</p>
<pre lang="python"><code># old API
transcript_list = YouTubeTranscriptApi.list_transcripts(&quot;abc&quot;)
<h1>new API</h1>
<p>ytt_api = YouTubeTranscriptApi()
transcript_list = ytt_api.list(&quot;abc&quot;)
</code></pre></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jdepoix/youtube-transcript-api/compare/v1.1.1...v1.2.0">https://github.com/jdepoix/youtube-transcript-api/compare/v1.1.1...v1.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="aa50f3735c"><code>aa50f37</code></a>
v1.2.1</li>
<li><a
href="2c88d5c261"><code>2c88d5c</code></a>
Merge pull request <a
href="https://redirect.github.com/jdepoix/youtube-transcript-api/issues/486">#486</a>
from Jer-Pha/bugfix/ISSUE-483</li>
<li><a
href="d948c98455"><code>d948c98</code></a>
Merge branch 'master' into bugfix/ISSUE-483</li>
<li><a
href="11306c2288"><code>11306c2</code></a>
Merge pull request <a
href="https://redirect.github.com/jdepoix/youtube-transcript-api/issues/490">#490</a>
from jdepoix/feature/filter-webshare-ip-locations</li>
<li><a
href="4fa89a5799"><code>4fa89a5</code></a>
Merge branch 'master' into bugfix/ISSUE-483</li>
<li><a
href="747e245703"><code>747e245</code></a>
fmt</li>
<li><a
href="bf17e50119"><code>bf17e50</code></a>
added filter_ip_locations property to WebshareProxyConfig</li>
<li><a
href="da6920bf5d"><code>da6920b</code></a>
Merge pull request <a
href="https://redirect.github.com/jdepoix/youtube-transcript-api/issues/488">#488</a>
from jdepoix/feature/remove-depcreated-methods</li>
<li><a
href="a951854edc"><code>a951854</code></a>
v1.2.0</li>
<li><a
href="ed8b666608"><code>ed8b666</code></a>
removed deprecated methods: get_transcript, get_transcripts,
list_transcripts</li>
<li>Additional commits viewable in <a
href="https://github.com/jdepoix/youtube-transcript-api/compare/v1.1.1...v1.2.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-07-25 13:13:02 +00:00
Zamil Majdy
070e1c02ba fix: Remove DatabaseManager heath-check from RestAPI service 2025-07-25 07:16:59 +07:00
Zamil Majdy
38ea49c0c3 Merge branch 'master' of github.com:Significant-Gravitas/AutoGPT into dev 2025-07-25 07:09:42 +07:00
Ubbe
e3590e1eb0 chore(frontend): ci caching + e2e test data script (#10446)
## Changes 🏗️

- Make docker + deps cache actually work on the FE CI
- Run the E2E test data script before Playwright

## Checklist 📋

### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] CI is faster in repeated runs ( _uses cache_ )
  - [x] Test data script runs successfully 

### For configuration changes:
None
2025-07-24 19:17:14 +00:00
Nwani Victory
f78614247f fix: transfer NodeTextBoxInput to use local state to fix cursor jump (#10410)
<!-- Clearly explain the need for these changes: -->

### Changes 🏗️

<!-- Concisely describe all of the changes made in this pull request:
-->

This PR contains code changes that will resolve the cursor jump issue in
the **Note** block #9252 . The changes in code affects the
NodeTextBoxInput component to transfer the state into local state and
not mutate the `value` prop directly.

Also includes change to use store admin which is from rebase issue but
approved by maintainer @ntindle

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Tested the note block allows to edit text normally
 


https://github.com/user-attachments/assets/f2800bf1-9867-4627-ac9d-44718627b263

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com>
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
Co-authored-by: Ubbe <hi@ubbe.dev>
2025-07-24 18:37:09 +00:00
Zamil Majdy
ccad66427c feat: Add alert for notifying stuck running agent for more than a day (#10438)
We've been reporting agents that are stuck on the `QUEUED` status. This
change includes the one on. RUNNING status that's been stuck for more
than 24hours.

### Changes 🏗️

Report agent on RUNNING status for more than 24hours.

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Manual test
2025-07-23 21:35:01 +07:00
Zamil Majdy
51a39ef81a feat(platform): Move DatabaseManager away from RestAPI as a standalone sevice (#10437)
It's hard to debug two processes running in the same pod. We need to
decouple the two processes into two services.

### Changes 🏗️

Move DatabaseManager away from RestAPI as a standalone serice

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Manual test
2025-07-23 20:37:26 +07:00
Zamil Majdy
c3fe31eca9 feat: Introduce DatabaseManager startup process file (poetry run db) 2025-07-23 11:18:05 +07:00
Zamil Majdy
a58613a84c fix(backend): Fix Agent Input with empty string default value not being rendered (#10431)
Some AgentInput can store empty string as the default value, this will
cause error on non string input.

Error:
```
2025-07-22 23:14:10,424 WARNING  Invalid <class 'backend.blocks.io.AgentToggleInputBlock.Input'>: {'name': 'Enriched info (including email), will double the search cost', 'value': '', 'advanced': False, 'placeholder_values': []}, 1 validation error for Input
value
  Input should be a valid boolean, unable to interpret input [type=bool_parsing, input_value='', input_type=str]
    For further information visit https://errors.pydantic.dev/2.11/v/bool_parsing
2025-07-22 23:14:10,424 WARNING  Invalid <class 'backend.blocks.io.AgentNumberInputBlock.Input'>: {'name': 'Expected New Leads Count', 'value': '', 'advanced': False, 'placeholder_values': []}, 1 validation error for Input
value
  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str]
    For further information visit https://errors.pydantic.dev/2.11/v/int_parsing
```

### Changes 🏗️

Ignore invalid field when constructing agent input schema.

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
- [x] Use AgentNumberInput and AgenToggleInput with empty string value.
2025-07-22 16:21:08 +00:00
Nicholas Tindle
f8b9e80829 feat(backend): enable the google blocks + fix .env (#10430)
<!-- Clearly explain the need for these changes: -->
We setup launchdarkly so now we can dynamically control which blocks are
available on the UI

### Changes 🏗️
enables the google blocks + fixes the LD .env.example for the local env
<!-- Concisely describe all of the changes made in this pull request:
-->

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
- [x] Deploy to test environment and verify the blocks show correctly vs
are hidden when toggling Launch darlky rules
2025-07-22 15:41:20 +00:00
Zamil Majdy
f4a179e5d6 feat(backend): Add thread safety to NodeExecutionProgress output handling (#10415)
## Summary
- Add thread safety to NodeExecutionProgress class to prevent race
conditions between graph executor and node executor threads
- Fixes potential data corruption and lost outputs during concurrent
access to shared output lists
- Uses single global lock per node for minimal performance impact
- Instead of blocking the node evaluation before adding another node
evaluation, we move on to the next node, in case another node completes
it.

## Changes
- Added `threading.Lock` to NodeExecutionProgress class
- Protected `add_output()` calls from node executor thread with lock
- Protected `pop_output()` calls from graph executor thread with lock
- Protected `_pop_done_task()` output checks with lock

## Problem Solved
The `NodeExecutionProgress.output` dictionary was being accessed
concurrently:
- `add_output()` called from node executor thread (asyncio thread) 
- `pop_output()` called from graph executor thread (main thread)
- Python lists are not thread-safe for concurrent append/pop operations
- This could cause data corruption, index errors, and lost outputs

## Test Plan
- [x] Existing executor tests pass
- [x] No performance regression (operations are microsecond-level)
- [x] Thread safety verified through code analysis

## Technical Details
- Single `threading.Lock()` per NodeExecutionProgress instance (~64
bytes)
- Lock acquisition time (~100-200ns) is minimal compared to list
operations
- Maintains order guarantees for same node_execution_id processing
- No GIL contention issues as operations are very brief

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-22 01:11:46 +00:00
Zamil Majdy
6d25e8f195 feat(platform): Move NotificationManager service from rest-api pod to scheduler pod (#10425)
Rest-Api service is a vital service where we should minimize the amount
of external resources impacting it.
And the NotificationManager service is running as a singleton in nature
(similar to the scheduler service), so it makes sense to put it in a
single pod.

### Changes 🏗️

Move the NotificationManager service from rest-api pod to the scheduler
pod

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Manual test
2025-07-22 08:00:47 +07:00
Zamil Majdy
3b963e59cc feat(platform): Move NotificationManager service from rest-api pod to scheduler pod (#10425)
Rest-Api service is a vital service where we should minimize the amount
of external resources impacting it.
And the NotificationManager service is running as a singleton in nature
(similar to the scheduler service), so it makes sense to put it in a
single pod.

### Changes 🏗️

Move the NotificationManager service from rest-api pod to the scheduler
pod

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Manual test
2025-07-22 00:42:05 +00:00
Zamil Majdy
0c9b7334c1 feat(backend): Register agent subgraphs as library entries during agent import (#10409)
Currently, we only create a library entry of the top-most graph when
importing the graph from an exported file.
This can cause some complications, as there is no way to remove the
library entry of it.

### Changes 🏗️

Create the library entry for all the subgraphs during the import
process.

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Export an agent with subgraphs and import it back.
2025-07-21 11:54:42 +00:00
Swifty
e28eec6ff9 feat(backend): Add ReverseListOrderBlock for reversing list element order (#10352)
### Changes 🏗️

This PR adds a new utility block to the basic blocks collection. This
block provides a simple way to reverse the order of elements in any
list.

**New Features:**
- Added  class in 
- Block accepts any list as input and returns the same list with
elements in reversed order
- Preserves the original list (creates a copy before reversing)
- Works with lists containing any type of elements

**Technical Details:**
- Block ID: 
- Category: 
- Input:  - The list to reverse (accepts )
- Output:  - The list with elements in reversed order
- Includes test input/output for validation

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Created an agent with the ReverseListOrderBlock
  - [x] Tested with various list types (numbers, strings, mixed types)
  - [x] Verified the block preserves the original list
  - [x] Confirmed the block correctly reverses the order of elements
  - [x] Tested with empty lists and single-element lists
- [x] Verified the block integrates properly with other blocks in a
workflow

#### For configuration changes:
- [x]  is updated or already compatible with my changes
- [x]  is updated or already compatible with my changes
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)

**Note:** No configuration changes required - this is a pure code
addition that uses the existing block framework.

Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com>
2025-07-21 11:48:30 +02:00
Zamil Majdy
bf73b42890 fix(platform): Fix service health check mechanism on app service (#10401)
## Summary
- Introduced correct health check API for AppService
- Fixed service health check mechanism to properly handle health status
monitoring

## Changes Made
- Updated health check implementation in AppService.
- Make rest service health check checks the health of DatabaseManager
too.

## Test plan
- [x] Verify health check endpoint responds correctly
- [x] Test health check mechanism under various service states
- [x] Validate monitoring and alerting integration

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-07-21 16:45:18 +07:00
Zamil Majdy
f81d7e6a56 feat(backend): Add Missing FK indexes and remove unused & redundant indexes (#10412)
### Changes 🏗️

This PR optimizes database performance by adding missing foreign key
indexes, removing unused/redundant indexes, cleaning up all legacy
untracked indexes, and adding performance indexes for materialized views
to achieve 100% optimized database indexing.

**Foreign Key Indexes Added:**
- `AgentGraph`: `[forkedFromId, forkedFromVersion]` - For fork
relationship queries
- `AgentGraphExecution`: `[agentPresetId]` - For preset-based execution
filtering
- `AgentNodeExecution`: `[agentNodeId]` - For node execution lookups
- `AgentNodeExecutionInputOutput`: `[agentPresetId]` - For preset
input/output queries
- `AgentPreset`: `[agentGraphId, agentGraphVersion]` & `[webhookId]` -
For graph and webhook lookups
- `LibraryAgent`: `[agentGraphId, agentGraphVersion]` & `[creatorId]` -
For agent and creator queries
- `StoreListing`: `[agentGraphId, agentGraphVersion]` - For marketplace
agent lookups
- `StoreListingReview`: `[reviewByUserId]` - For user review queries

**Unused/Redundant Indexes Removed:**
- `User.email` - Unused index identified by linter
- `AnalyticsMetrics.userId` - Unused index causing write overhead
- `AnalyticsDetails.type` - Redundant (covered by composite `[userId,
type]`)
- `APIKey.key`, `APIKey.status` - Unused indexes
- Named index `"analyticsDetails"` - Converted to standard composite
index

**All Legacy Untracked Indexes Removed:**
- `idx_store_listing_version_status` - Redundant with Prisma composite
index
- `idx_slv_agent` - Redundant with Prisma-managed `[agentGraphId,
agentGraphVersion]`
- `idx_store_listing_version_approved_listing` - Redundant with unique
constraint
- `StoreListing_agentId_owningUserId_idx` - Legacy index superseded by
current strategy
- `StoreListing_isDeleted_isApproved_idx` - Replaced by optimized
composite index
- `StoreListing_isDeleted_idx` - Redundant with composite index
- `StoreListingVersion_agentId_agentVersion_isDeleted_idx` - Legacy
index replaced
- `idx_store_listing_approved` - Redundant with existing `[owningUserId,
slug]` unique constraint and `[isDeleted, hasApprovedVersion]` index
- `idx_slv_categories_gin` - Specialized array search index removed (can
be re-added if category filtering is implemented)
- `idx_profile_user` - Duplicate of Prisma-managed `Profile_userId_idx`

**Materialized View Performance Indexes Added:**
- `idx_mv_review_stats_rating` on `mv_review_stats(avg_rating DESC)` -
Optimizes sorting agents by rating
- `idx_mv_review_stats_count` on `mv_review_stats(review_count DESC)` -
Optimizes sorting agents by review count

**Result: 100% Optimized Database Indexing**
- All database indexes are now defined and managed through Prisma schema
- No more untracked indexes requiring manual SQL maintenance
- Added performance indexes for materialized views used by marketplace
views
- Improved query performance for agent sorting and filtering
- Enhanced maintainability and consistency across environments

**Schema Comments Updated:**
- Removed all references to dropped untracked indexes
- Simplified documentation to reflect Prisma-only approach for regular
tables
- Added comprehensive documentation for materialized view indexes and
their purposes
- Maintained documentation for materialized view refresh strategy

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Schema changes compile successfully with Prisma
- [x] Migration adds required FK indexes and materialized view
performance indexes
- [x] Migration drops all legacy indexes and redundant untracked indexes
  - [x] All pre-commit hooks pass (linting, formatting, type checking)
  - [x] No breaking changes to existing foreign key relationships
  - [x] Verified existing Prisma indexes cover all query patterns
  - [x] Schema comments comprehensively document all indexing strategy
- [x] Materialized view performance indexes optimize marketplace sorting

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-21 09:26:46 +00:00
Swifty
6dba6ec3e6 feat(backend): Add database index for improved query performance (#10411)
This PR adds a database index to improve query performance based on
Supabase query performance insights and index recommendations. These
indexes target frequently queried columns and relationships to reduce
query execution time.

### Changes 🏗️
- Added index on `AgentNodeExecutionInputOutput.agentPresetId`

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Verified schema changes are valid Prisma syntax
- [x] Confirmed indexes target frequently queried columns based on
Supabase recommendations
  - [x] Ensured no duplicate indexes are created

#### For configuration changes:
- [x] `.env.example` is updated or already compatible with my changes
- [x] `docker-compose.yml` is updated or already compatible with my
changes
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)
2025-07-21 08:19:37 +00:00
Zamil Majdy
b6d6b865de feat(backend): avoid using DatabaseManager when direct query is possible from the API layer (#10403)
This PR reduces the dependency of the API layer on the database manager
service by avoiding using DatabaseManager for credentials fetch when a
direct query is possible from the API layer

### Changes 🏗️

* If Prisma is available, use the direct query.
* Otherwise, utilize the database manager.

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Run blocks with credentials like AiTextGeneratorBlock
2025-07-18 23:18:52 +00:00
Nicholas Tindle
cf2ca63d52 fix(backend): use admin route for store downloads (#10406) 2025-07-18 16:12:02 -05:00
Zamil Majdy
c78143e517 fix(platform): Fix service health check mechanism on app service (#10401)
## Summary
- Introduced correct health check API for AppService
- Fixed service health check mechanism to properly handle health status
monitoring

## Changes Made
- Updated health check implementation in AppService.
- Make rest service health check checks the health of DatabaseManager
too.

## Test plan
- [x] Verify health check endpoint responds correctly
- [x] Test health check mechanism under various service states
- [x] Validate monitoring and alerting integration

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-07-18 13:43:59 +00:00
snehaoladri
6641a77c70 feat(blocks): add Replicate model blocks (#10337)
This PR adds two new blocks for running Replicate models in AutoGPT:

ReplicateModelBlock: Synchronous execution of any Replicate model with
custom inputs

Key Features:

Support for any public Replicate model via model name (e.g.,
"stability-ai/stable-diffusion")
Custom input parameters via dictionary (e.g., {"prompt": "a beautiful
landscape"})
Optional model version specification for reproducible results
Proper credentials handling using ProviderName.REPLICATE
Comprehensive test suite with 12 test cases covering success, error, and
edge cases
Type-safe implementation with full pyright compliance
Mock methods for testing and development

# Checklist 📋
## For code changes:
- [X] I have clearly listed my changes in the PR description
- [X] I have made a test plan
- [X] I have tested my changes according to the test plan:
  - Unit tests for ReplicateModelBlock (6 test cases)
  -  Test block initialization and configuration
  -  Test mock methods for development
  -  Test error handling and edge cases
  -  Verify type safety with pyright (0 errors)
  -  Verify code formatting with Black and isort
  -  Verify linting with Ruff (0 errors)
  -  Test credentials handling with ProviderName.REPLICATE
  -  Test model version specification functionality
  -  Test both synchronous and asynchronous execution paths

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-18 04:20:44 +00:00
Zamil Majdy
d33459ddb5 feat(backend): Integrate GCS file storage with automatic expiration for Agent File Input (#10340)
## Summary

This PR introduces a complete cloud storage infrastructure and file
upload system that agents can use instead of passing base64 data
directly in inputs, while maintaining backward compatibility for the
builder's node inputs.

### Problem Statement

Currently, when agents need to process files, they pass base64-encoded
data directly in the input, which has several limitations:
1. **Size limitations**: Base64 encoding increases file size by ~33%,
making large files impractical
2. **Memory usage**: Large base64 strings consume significant memory
during processing
3. **Network overhead**: Base64 data is sent repeatedly in API requests
4. **Performance impact**: Encoding/decoding base64 adds processing
overhead

### Solution

This PR introduces a complete cloud storage infrastructure and new file
upload workflow:
1. **New cloud storage system**: Complete `CloudStorageHandler` with
async GCS operations
2. **New upload endpoint**: Agents upload files via `/files/upload` and
receive a `file_uri`
3. **GCS storage**: Files are stored in Google Cloud Storage with
user-scoped paths
4. **URI references**: Agents pass the `file_uri` instead of base64 data
5. **Block processing**: File blocks can retrieve actual file content
using the URI

### Changes Made

#### New Files Introduced:
- **`backend/util/cloud_storage.py`** - Complete cloud storage
infrastructure (545 lines)
- **`backend/util/cloud_storage_test.py`** - Comprehensive test suite
(471 lines)

#### Backend Changes:
- **New cloud storage infrastructure** in
`backend/util/cloud_storage.py`:
  - Complete `CloudStorageHandler` class with async GCS operations
- Support for multiple cloud providers (GCS implemented, S3/Azure
prepared)
- User-scoped and execution-scoped file storage with proper
authorization
  - Automatic file expiration with metadata-based cleanup
  - Path traversal protection and comprehensive security validation
  - Async file operations with proper error handling and logging

- **New `UploadFileResponse` model** in `backend/server/model.py`:
- Returns `file_uri` (GCS path like
`gcs://bucket/users/{user_id}/file.txt`)
  - Includes `file_name`, `size`, `content_type`, `expires_in_hours`
  - Proper Pydantic schema instead of dictionary response

- **New `upload_file` endpoint** in `backend/server/routers/v1.py`:
  - Complete new endpoint for file upload with cloud storage integration
  - Returns GCS path URI directly as `file_uri`
  - Supports user-scoped file storage for proper isolation
  - Maintains fallback to base64 data URI when GCS not configured
- File size validation, virus scanning, and comprehensive error handling

#### Frontend Changes:
- **Updated API client** in
`frontend/src/lib/autogpt-server-api/client.ts`:
  - Modified return type to expect `file_uri` instead of `signed_url`
  - Supports the new upload workflow

- **Enhanced file input component** in
`frontend/src/components/type-based-input.tsx`:
- **Builder nodes**: Still use base64 for immediate data retention
without expiration
- **Agent inputs**: Use the new upload endpoint and pass `file_uri`
references
  - Maintains backward compatibility for existing workflows

#### Test Updates:
- **New comprehensive test suite** in
`backend/util/cloud_storage_test.py`:
  - 27 test cases covering all cloud storage functionality
  - Tests for file storage, retrieval, authorization, and cleanup
  - Tests for path validation, security, and error handling
  - Coverage for user-scoped, execution-scoped, and system storage

- **New upload endpoint tests** in `backend/server/routers/v1_test.py`:
  - Tests for GCS path URI format (`gcs://bucket/path`)
  - Tests for base64 fallback when GCS not configured
  - Validates file upload, virus scanning, and size limits
  - Tests user-scoped file storage and access control

### Benefits

1. **New Infrastructure**: Complete cloud storage system with
enterprise-grade features
2. **Scalability**: Supports larger files without base64 size penalties
3. **Performance**: Reduces memory usage and network overhead with async
operations
4. **Security**: User-scoped file storage with comprehensive access
control and path validation
5. **Flexibility**: Maintains base64 support for builder nodes while
providing URI-based approach for agents
6. **Extensibility**: Designed for multiple cloud providers (GCS, S3,
Azure)
7. **Reliability**: Automatic file expiration, cleanup, and robust error
handling
8. **Backward compatibility**: Existing builder workflows continue to
work unchanged

### Usage

**For Agent Inputs:**
```typescript
// 1. Upload file
const response = await api.uploadFile(file);
// 2. Pass file_uri to agent
const agentInput = { file_input: response.file_uri };
```

**For Builder Nodes (unchanged):**
```typescript
// Still uses base64 for immediate data retention
const nodeInput = { file_input: "data:image/jpeg;base64,..." };
```

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] All new cloud storage tests pass (27/27)
  - [x] All upload file tests pass (7/7)
  - [x] Full v1 router test suite passes (21/21)
  - [x] All server tests pass (126/126)
  - [x] Backend formatting and linting pass
  - [x] Frontend TypeScript compilation succeeds
  - [x] Verified GCS path URI format (`gcs://bucket/path`)
  - [x] Tested fallback to base64 data URI when GCS not configured
  - [x] Confirmed file upload functionality works in UI
  - [x] Validated response schema matches Pydantic model
  - [x] Tested agent workflow with file_uri references
  - [x] Verified builder nodes still work with base64 data
  - [x] Tested user-scoped file access control
  - [x] Verified file expiration and cleanup functionality
  - [x] Tested security validation and path traversal protection

#### For configuration changes:
- [x] No new configuration changes required
- [x] `.env.example` remains compatible 
- [x] `docker-compose.yml` remains compatible
- [x] Uses existing GCS configuration from media storage

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude AI <claude@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-18 10:20:54 +07:00
Toran Bruce Richards
e50366726c feat(blocks/gmail): add Gmail thread blocks (#9965)
This PR adds two new Gmail integration blocks—**Gmail Get Thread** and
**Gmail Reply**—to the platform, enhancing threaded email workflows. Key
changes include:

- **GmailGetThreadBlock**:  
- New block that retrieves an entire Gmail thread by `threadId`, with an
option to include or exclude messages from Spam and Trash.
- Supports use cases like fetching all messages in a conversation to
check for responses.

- **GmailReplyBlock**:  
- New block that sends a reply within an existing Gmail thread,
maintaining the thread context.
- Accepts detailed input fields including recipients, CC, BCC, subject,
body, and attachments.
- Ensures replies are properly associated with their parent message and
thread.

- **Enhancements to existing Gmail blocks**:  
- The `Email` model and related outputs now include a `threadId` field.
  - Updated test data and mock data to support threaded operations.
  - Expanded OAuth scopes for actions requiring thread metadata.

- **Documentation updates**:  
- Added documentation for the new Gmail blocks in both the general block
listing and the detailed Gmail block docs.
  - Clarified that the `Email` output now includes the `threadId`.

These updates enable more advanced and context-aware Gmail automations,
such as fetching full conversations and replying inline, supporting
richer communication workflows with Gmail.

## Checklist 📋

### For code changes

- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Try all the gmail blocks
  - [x] Send an email reply based on a thread from the get thread block

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 20:11:31 +00:00
dependabot[bot]
725440ff38 chore(backend/deps): Bump youtube-transcript-api from 0.6.3 to 1.1.1 in /autogpt_platform/backend (#10375)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=youtube-transcript-api&package-manager=pip&previous-version=0.6.3&new-version=1.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 16:49:37 +00:00
Zamil Majdy
08b05621c1 feat(block;backend): Truncate execution update payload on large data & Improve ReadSpreadsheetBlock performance (#10395)
### Changes 🏗️

This PR introduces several key improvements to message handling, block
functionality, and execution reliability:

- **Renamed CSV block to Spreadsheet block** with enhanced CSV/Excel
processing capabilities
- **Added message size limiting and truncation** for Redis communication
to prevent connection issues
- **Optimized FileReadBlock** to yield content chunks instead of
duplicated outputs for better performance
- **Improved execution termination handling** with better timeout
management and event publishing
- **Enhanced continuous retry decorator** with async function support
- **Implemented payload truncation** to prevent Redis connection issues
from oversized messages

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Verified backend starts without errors
  - [x] Confirmed message truncation works for large payloads
  - [x] Tested spreadsheet block functionality with CSV and Excel files
  - [x] Validated execution termination improvements
  - [x] Checked FileReadBlock chunk processing

#### For configuration changes:
- [x] `.env.example` is updated or already compatible with my changes
- [x] `docker-compose.yml` is updated or already compatible with my
changes
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-17 16:04:33 +00:00
Abhimanyu Yadav
e720f92123 feat(tests): Add E2E test data creator script for comprehensive testing (#10368)
### Changes
- Introduced a new script to generate test data for end-to-end (E2E)
tests using API functions, ensuring compatibility with future model
changes.
- The script creates test users, agent blocks, graphs, profiles, library
agents, presets, API keys, and store submissions.
- Utilizes external services for image and video URLs, and includes
error handling for data creation processes.
- Provides a summary of created data upon completion, enhancing the
testing framework for the AutoGPT platform.

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] Test scripts are working perfectly and not breaking anything. Data
is also correctly visible in the database.
2025-07-17 15:47:21 +00:00
dependabot[bot]
5e4dd43dcb chore(backend/deps): Bump websockets from 14.2 to 15.0.1 in /autogpt_platform/backend (#10384)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=websockets&package-manager=pip&previous-version=14.2&new-version=15.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 05:37:53 +00:00
dependabot[bot]
69c420e574 chore(libs/deps): Bump the production-dependencies group across 1 directory with 7 updates (#10371)
Bumps the production-dependencies group with 7 updates in the
/autogpt_platform/autogpt_libs directory:

| Package | From | To |
| --- | --- | --- |
| [pydantic](https://github.com/pydantic/pydantic) | `2.11.4` | `2.11.7`
|
| [pydantic-settings](https://github.com/pydantic/pydantic-settings) |
`2.9.1` | `2.10.1` |
| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` |
`3.14.1` |
| [supabase](https://github.com/supabase/supabase-py) | `2.15.1` |
`2.16.0` |
|
[launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk)
| `9.11.1` | `9.12.0` |
| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.116.1`
|
| [uvicorn](https://github.com/encode/uvicorn) | `0.34.3` | `0.35.0` |


Updates `pydantic` from 2.11.4 to 2.11.7
<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.11.7 2025-06-14</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Fixes</h3>
<ul>
<li>Copy <code>FieldInfo</code> instance if necessary during
<code>FieldInfo</code> build by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11980">pydantic/pydantic#11980</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7">https://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7</a></p>
<h2>v2.11.6 2025-06-13</h2>
<h2>v2.11.6 (2025-06-13)</h2>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Rebuild dataclass fields before schema generation by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11949">#11949</a></li>
<li>Always store the original field assignment on <code>FieldInfo</code>
by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11946">#11946</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6">https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6</a></p>
<h2>v2.11.5 2025-05-22</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Fixes</h3>
<ul>
<li>Check if <code>FieldInfo</code> is complete after applying type
variable map by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11855">#11855</a></li>
<li>Do not delete mock validator/serializer in
<code>model_rebuild()</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11890">#11890</a></li>
<li>Do not duplicate metadata on model rebuild by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11902">#11902</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.11.4...v2.11.5">https://github.com/pydantic/pydantic/compare/v2.11.4...v2.11.5</a></p>
</blockquote>
</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.11.7 (2025-06-14)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.11.7">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Copy <code>FieldInfo</code> instance if necessary during
<code>FieldInfo</code> build by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11898">#11898</a></li>
</ul>
<h2>v2.11.6 (2025-06-13)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.11.6">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Rebuild dataclass fields before schema generation by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11949">#11949</a></li>
<li>Always store the original field assignment on <code>FieldInfo</code>
by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11946">#11946</a></li>
</ul>
<h2>v2.11.5 (2025-05-22)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.11.5">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Check if <code>FieldInfo</code> is complete after applying type
variable map by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11855">#11855</a></li>
<li>Do not delete mock validator/serializer in
<code>model_rebuild()</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11890">#11890</a></li>
<li>Do not duplicate metadata on model rebuild by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11902">#11902</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5f033e46c5"><code>5f033e4</code></a>
Prepare release v2.11.7</li>
<li><a
href="c3368b83c4"><code>c3368b8</code></a>
Copy <code>FieldInfo</code> instance if necessary during
<code>FieldInfo</code> build (<a
href="https://redirect.github.com/pydantic/pydantic/issues/11980">#11980</a>)</li>
<li><a
href="3987b23db4"><code>3987b23</code></a>
Prepare release v2.11.6</li>
<li><a
href="dc7a9d20be"><code>dc7a9d2</code></a>
Always store the original field assignment on
<code>FieldInfo</code></li>
<li><a
href="c284c279a5"><code>c284c27</code></a>
Rebuild dataclass fields before schema generation</li>
<li><a
href="5e6d1dc71f"><code>5e6d1dc</code></a>
Prepare release v2.11.5</li>
<li><a
href="1b63218c42"><code>1b63218</code></a>
Do not duplicate metadata on model rebuild (<a
href="https://redirect.github.com/pydantic/pydantic/issues/11902">#11902</a>)</li>
<li><a
href="5aefad873b"><code>5aefad8</code></a>
Do not delete mock validator/serializer in
<code>model_rebuild()</code></li>
<li><a
href="8fbe6585f4"><code>8fbe658</code></a>
Check if <code>FieldInfo</code> is complete after applying type variable
map</li>
<li><a
href="12b371a0f7"><code>12b371a</code></a>
Update documentation about <code>@dataclass_transform</code>
support</li>
<li>Additional commits viewable in <a
href="https://github.com/pydantic/pydantic/compare/v2.11.4...v2.11.7">compare
view</a></li>
</ul>
</details>
<br />

Updates `pydantic-settings` from 2.9.1 to 2.10.1
<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.10.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix UnboundLocalError error in
_replace_field_names_case_insensitively by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/639">pydantic/pydantic-settings#639</a></li>
<li>Remove unknown file reference in documentation by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/640">pydantic/pydantic-settings#640</a></li>
<li>Prepare release 2.10.1 by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/642">pydantic/pydantic-settings#642</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1">https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1</a></p>
<h2>v2.10.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix running tests when azure-keyvault-secrets is not installed by <a
href="https://github.com/CyberTailor"><code>@​CyberTailor</code></a> in
<a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/601">pydantic/pydantic-settings#601</a></li>
<li>Fix running tests when google-cloud-secret-manager is not installed
by <a
href="https://github.com/CyberTailor"><code>@​CyberTailor</code></a> in
<a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/602">pydantic/pydantic-settings#602</a></li>
<li>Support loading a specific nested key from YAML in
YamlConfigSettingsSource by <a
href="https://github.com/Seunghan-Jung"><code>@​Seunghan-Jung</code></a>
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/603">pydantic/pydantic-settings#603</a></li>
<li>Fix CLI suppression for model group help by <a
href="https://github.com/kschwab"><code>@​kschwab</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/604">pydantic/pydantic-settings#604</a></li>
<li>Fix missing DEFAULT_PATH import by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/606">pydantic/pydantic-settings#606</a></li>
<li>Fix case-insensitive handling of nested aliases in
EnvironmentSettingsSource by <a
href="https://github.com/d15ky"><code>@​d15ky</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/608">pydantic/pydantic-settings#608</a></li>
<li>Azure Key Vault case insensitive support and dash-underscore
translation by <a
href="https://github.com/d15ky"><code>@​d15ky</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/607">pydantic/pydantic-settings#607</a></li>
<li>fix: Respect 'cli_parse_args' from model_config with
settings_customise_sources by <a
href="https://github.com/karta9821"><code>@​karta9821</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/611">pydantic/pydantic-settings#611</a></li>
<li>Bump astral-sh/setup-uv by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/612">pydantic/pydantic-settings#612</a></li>
<li>Update packages by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/613">pydantic/pydantic-settings#613</a></li>
<li>Update README.md by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/616">pydantic/pydantic-settings#616</a></li>
<li>Fix CI badge by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/617">pydantic/pydantic-settings#617</a></li>
<li>Update dependencies by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/618">pydantic/pydantic-settings#618</a></li>
<li>Fix coverage report by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/619">pydantic/pydantic-settings#619</a></li>
<li>Fix _consume_object_or_array on unbalanced brackets in JSON strings
by <a href="https://github.com/andryak"><code>@​andryak</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/621">pydantic/pydantic-settings#621</a></li>
<li>add region as a parameter to aws secret manager by <a
href="https://github.com/barakor-vs"><code>@​barakor-vs</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/622">pydantic/pydantic-settings#622</a></li>
<li>Expose GCP Secret Manager case sensitive option by <a
href="https://github.com/bellmatthewf"><code>@​bellmatthewf</code></a>
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/626">pydantic/pydantic-settings#626</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/633">pydantic/pydantic-settings#633</a></li>
<li>feat: Add <code>cli_shortcuts</code> to CLI settings by <a
href="https://github.com/karta9821"><code>@​karta9821</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/624">pydantic/pydantic-settings#624</a></li>
<li>Expose AWS Secrets Manager case sensitive option by <a
href="https://github.com/femiadebayo"><code>@​femiadebayo</code></a> in
<a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/629">pydantic/pydantic-settings#629</a></li>
<li>Prepare release 2.10.0 by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/635">pydantic/pydantic-settings#635</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/Seunghan-Jung"><code>@​Seunghan-Jung</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/603">pydantic/pydantic-settings#603</a></li>
<li><a href="https://github.com/d15ky"><code>@​d15ky</code></a> made
their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/608">pydantic/pydantic-settings#608</a></li>
<li><a href="https://github.com/karta9821"><code>@​karta9821</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/611">pydantic/pydantic-settings#611</a></li>
<li><a href="https://github.com/andryak"><code>@​andryak</code></a> made
their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/621">pydantic/pydantic-settings#621</a></li>
<li><a
href="https://github.com/barakor-vs"><code>@​barakor-vs</code></a> made
their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/622">pydantic/pydantic-settings#622</a></li>
<li><a
href="https://github.com/bellmatthewf"><code>@​bellmatthewf</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/626">pydantic/pydantic-settings#626</a></li>
<li><a
href="https://github.com/femiadebayo"><code>@​femiadebayo</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/629">pydantic/pydantic-settings#629</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0">https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6bae3ab4fb"><code>6bae3ab</code></a>
Prepare release 2.10.1 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/642">#642</a>)</li>
<li><a
href="36b8bfed90"><code>36b8bfe</code></a>
Remove unknown file reference in documentation (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/640">#640</a>)</li>
<li><a
href="697aaa621e"><code>697aaa6</code></a>
Fix UnboundLocalError error in _replace_field_names_case_insensitively
(<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/639">#639</a>)</li>
<li><a
href="910b1b1e0c"><code>910b1b1</code></a>
Prepare release 2.10.0 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/635">#635</a>)</li>
<li><a
href="1ee66248ad"><code>1ee6624</code></a>
Expose AWS Secrets Manager case sensitive option (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/629">#629</a>)</li>
<li><a
href="180e74e324"><code>180e74e</code></a>
feat: Add <code>cli_shortcuts</code> to CLI settings (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/624">#624</a>)</li>
<li><a
href="e162908054"><code>e162908</code></a>
Update deps (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/633">#633</a>)</li>
<li><a
href="159ef14dc1"><code>159ef14</code></a>
Expose GCP Secret Manager case sensitive option (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/626">#626</a>)</li>
<li><a
href="e9f7994872"><code>e9f7994</code></a>
add region as a parameter to aws secret manager (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/622">#622</a>)</li>
<li><a
href="ca4ff9f96f"><code>ca4ff9f</code></a>
Fix _consume_object_or_array on unbalanced brackets in JSON strings (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/621">#621</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `pytest-mock` from 3.14.0 to 3.14.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's
releases</a>.</em></p>
<blockquote>
<h2>v3.14.1</h2>
<ul>
<li><a
href="https://redirect.github.com/pytest-dev/pytest-mock/pull/503">#503</a>:
Python 3.14 is now officially supported.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's
changelog</a>.</em></p>
<blockquote>
<h2>3.14.1 (2025-08-26)</h2>
<ul>
<li><code>[#503](https://github.com/pytest-dev/pytest-mock/issues/503)
&lt;https://github.com/pytest-dev/pytest-mock/pull/503&gt;</code>_:
Python 3.14 is now officially supported.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="34dd61aa45"><code>34dd61a</code></a>
Release 3.14.1</li>
<li><a
href="299adb9664"><code>299adb9</code></a>
Add support for Python 3.14 (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/503">#503</a>)</li>
<li><a
href="f5fcef726a"><code>f5fcef7</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/504">#504</a>)</li>
<li><a
href="bae64d8c8e"><code>bae64d8</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/502">#502</a>)</li>
<li><a
href="824f334cc4"><code>824f334</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/501">#501</a>)</li>
<li><a
href="db1add6303"><code>db1add6</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/500">#500</a>)</li>
<li><a
href="48ac8746b6"><code>48ac874</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/499">#499</a>)</li>
<li><a
href="fe7ad9aab6"><code>fe7ad9a</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/498">#498</a>)</li>
<li><a
href="7857e60824"><code>7857e60</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/497">#497</a>)</li>
<li><a
href="a8b97ea2ca"><code>a8b97ea</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-mock/issues/496">#496</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.14.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `supabase` from 2.15.1 to 2.16.0
<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.16.0</h2>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.3...v2.16.0">2.16.0</a>
(2025-06-23)</h2>
<h3>Features</h3>
<ul>
<li>allow injection of httpx client (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1117">#1117</a>)
(<a
href="6539e16288">6539e16</a>)</li>
<li><strong>functions:</strong> bump supafunc from 0.9.4 to 0.10.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1146">#1146</a>)
(<a
href="8f662f205b">8f662f2</a>)</li>
<li><strong>postgrest:</strong> bump postgrest from 1.0.2 to 1.1.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1147">#1147</a>)
(<a
href="436d272ae3">436d272</a>)</li>
<li><strong>realtime:</strong> bump realtime from 2.4.3 to 2.5.1 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1149">#1149</a>)
(<a
href="7337b68141">7337b68</a>)</li>
<li><strong>storage:</strong> bump storage3 from 0.11.3 to 0.12.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1148">#1148</a>)
(<a
href="ec032c5a8d">ec032c5</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>custom headers not setting (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1155">#1155</a>)
(<a
href="cde2056ba9">cde2056</a>)</li>
<li>remove jwt key validation to allow new api keys (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1151">#1151</a>)
(<a
href="70fe491dbe">70fe491</a>)</li>
</ul>
<h2>v2.15.3</h2>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.2...v2.15.3">2.15.3</a>
(2025-06-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>copy client options instead of deepcopy (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1130">#1130</a>)
(<a
href="3d4da713f3">3d4da71</a>)</li>
</ul>
<h2>v2.15.2</h2>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.1...v2.15.2">2.15.2</a>
(2025-05-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>mutable reference headers <a
href="https://redirect.github.com/supabase/supabase-py/issues/1095">#1095</a>
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/1096">#1096</a>)
(<a
href="50d79c18f6">50d79c1</a>)</li>
<li><strong>postgrest:</strong> bump postgrest from 1.0.1 to 1.0.2 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1125">#1125</a>)
(<a
href="812a04d3f6">812a04d</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md">supabase's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.3...v2.16.0">2.16.0</a>
(2025-06-23)</h2>
<h3>Features</h3>
<ul>
<li>allow injection of httpx client (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1117">#1117</a>)
(<a
href="6539e16288">6539e16</a>)</li>
<li><strong>functions:</strong> bump supafunc from 0.9.4 to 0.10.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1146">#1146</a>)
(<a
href="8f662f205b">8f662f2</a>)</li>
<li><strong>postgrest:</strong> bump postgrest from 1.0.2 to 1.1.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1147">#1147</a>)
(<a
href="436d272ae3">436d272</a>)</li>
<li><strong>realtime:</strong> bump realtime from 2.4.3 to 2.5.1 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1149">#1149</a>)
(<a
href="7337b68141">7337b68</a>)</li>
<li><strong>storage:</strong> bump storage3 from 0.11.3 to 0.12.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1148">#1148</a>)
(<a
href="ec032c5a8d">ec032c5</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>custom headers not setting (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1155">#1155</a>)
(<a
href="cde2056ba9">cde2056</a>)</li>
<li>remove jwt key validation to allow new api keys (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1151">#1151</a>)
(<a
href="70fe491dbe">70fe491</a>)</li>
</ul>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.2...v2.15.3">2.15.3</a>
(2025-06-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>copy client options instead of deepcopy (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1130">#1130</a>)
(<a
href="3d4da713f3">3d4da71</a>)</li>
</ul>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.1...v2.15.2">2.15.2</a>
(2025-05-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>mutable reference headers <a
href="https://redirect.github.com/supabase/supabase-py/issues/1095">#1095</a>
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/1096">#1096</a>)
(<a
href="50d79c18f6">50d79c1</a>)</li>
<li><strong>postgrest:</strong> bump postgrest from 1.0.1 to 1.0.2 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1125">#1125</a>)
(<a
href="812a04d3f6">812a04d</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0a34ecadcc"><code>0a34eca</code></a>
chore(main): release 2.16.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1154">#1154</a>)</li>
<li><a
href="6539e16288"><code>6539e16</code></a>
feat: allow injection of httpx client (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1117">#1117</a>)</li>
<li><a
href="cde2056ba9"><code>cde2056</code></a>
fix: custom headers not setting (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1155">#1155</a>)</li>
<li><a
href="70fe491dbe"><code>70fe491</code></a>
fix: remove jwt key validation to allow new api keys (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1151">#1151</a>)</li>
<li><a
href="7337b68141"><code>7337b68</code></a>
feat(realtime): bump realtime from 2.4.3 to 2.5.1 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1149">#1149</a>)</li>
<li><a
href="ec032c5a8d"><code>ec032c5</code></a>
feat(storage): bump storage3 from 0.11.3 to 0.12.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1148">#1148</a>)</li>
<li><a
href="436d272ae3"><code>436d272</code></a>
feat(postgrest): bump postgrest from 1.0.2 to 1.1.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1147">#1147</a>)</li>
<li><a
href="8f662f205b"><code>8f662f2</code></a>
feat(functions): bump supafunc from 0.9.4 to 0.10.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1146">#1146</a>)</li>
<li><a
href="a8b030fb5e"><code>a8b030f</code></a>
chore(deps-dev): bump flake8 from 7.2.0 to 7.3.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1152">#1152</a>)</li>
<li><a
href="ff2a80b6e4"><code>ff2a80b</code></a>
chore(deps-dev): bump pytest from 8.3.5 to 8.4.1 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1145">#1145</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/supabase/supabase-py/compare/v2.15.1...v2.16.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `launchdarkly-server-sdk` from 9.11.1 to 9.12.0
<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.12.0</h2>
<h2><a
href="https://github.com/launchdarkly/python-server-sdk/compare/9.11.1...9.12.0">9.12.0</a>
(2025-07-11)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Add support for plugins. (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/337">#337</a>)
(<a
href="241f6f49b2">241f6f4</a>)</li>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)
(<a
href="0207665006">0207665</a>)</li>
</ul>
</blockquote>
</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.11.1...9.12.0">9.12.0</a>
(2025-07-11)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Add support for plugins. (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/337">#337</a>)
(<a
href="241f6f49b2">241f6f4</a>)</li>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)
(<a
href="0207665006">0207665</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="60ce4d1cc0"><code>60ce4d1</code></a>
chore(main): release 9.12.0 (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/340">#340</a>)</li>
<li><a
href="241f6f49b2"><code>241f6f4</code></a>
feat: Add support for plugins. (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/337">#337</a>)</li>
<li><a
href="a4955620ce"><code>a495562</code></a>
chore: Add missing make target; update poetry instructions (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/338">#338</a>)</li>
<li><a
href="a8eeb1ecc3"><code>a8eeb1e</code></a>
chore: Adjust release version (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/341">#341</a>)</li>
<li><a
href="0207665006"><code>0207665</code></a>
feat!: Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)</li>
<li>See full diff in <a
href="https://github.com/launchdarkly/python-server-sdk/compare/9.11.1...9.12.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `fastapi` from 0.115.12 to 0.116.1
<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.116.1</h2>
<h3>Upgrades</h3>
<ul>
<li>⬆️ Upgrade Starlette supported version range to
<code>&gt;=0.40.0,&lt;0.48.0</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13884">#13884</a>
by <a
href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li>
</ul>
<h3>Docs</h3>
<ul>
<li>📝 Add notification about impending changes in Translations to
<code>docs/en/docs/contributing.md</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13886">#13886</a>
by <a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>⬆ [pre-commit.ci] pre-commit autoupdate. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13871">#13871</a>
by <a
href="https://github.com/apps/pre-commit-ci"><code>@​pre-commit-ci[bot]</code></a>.</li>
</ul>
<h2>0.116.0</h2>
<h3>Features</h3>
<ul>
<li> Add support for deploying to FastAPI Cloud with <code>fastapi
deploy</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13870">#13870</a>
by <a
href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li>
</ul>
<p>Installing <code>fastapi[standard]</code> now includes
<code>fastapi-cloud-cli</code>.</p>
<p>This will allow you to deploy to <a
href="https://fastapicloud.com">FastAPI Cloud</a> with the <code>fastapi
deploy</code> command.</p>
<p>If you want to install <code>fastapi</code> with the standard
dependencies but without <code>fastapi-cloud-cli</code>, you can install
instead <code>fastapi[standard-no-fastapi-cloud-cli]</code>.</p>
<h3>Translations</h3>
<ul>
<li>🌐 Add Russian translation for
<code>docs/ru/docs/advanced/response-directly.md</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13801">#13801</a>
by <a
href="https://github.com/NavesSapnis"><code>@​NavesSapnis</code></a>.</li>
<li>🌐 Add Russian translation for
<code>docs/ru/docs/advanced/additional-status-codes.md</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13799">#13799</a>
by <a
href="https://github.com/NavesSapnis"><code>@​NavesSapnis</code></a>.</li>
<li>🌐 Add Ukrainian translation for
<code>docs/uk/docs/tutorial/body-updates.md</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13804">#13804</a>
by <a
href="https://github.com/valentinDruzhinin"><code>@​valentinDruzhinin</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>⬆ Bump pillow from 11.1.0 to 11.3.0. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13852">#13852</a>
by <a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>👥 Update FastAPI People - Sponsors. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13846">#13846</a>
by <a
href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li>
<li>👥 Update FastAPI GitHub topic repositories. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13848">#13848</a>
by <a
href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li>
<li>⬆ Bump mkdocs-material from 9.6.1 to 9.6.15. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13849">#13849</a>
by <a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ [pre-commit.ci] pre-commit autoupdate. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13843">#13843</a>
by <a
href="https://github.com/apps/pre-commit-ci"><code>@​pre-commit-ci[bot]</code></a>.</li>
<li>👥 Update FastAPI People - Contributors and Translators. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13845">#13845</a>
by <a
href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li>
</ul>
<h2>0.115.14</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Fix support for unions when using <code>Form</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13827">#13827</a>
by <a
href="https://github.com/patrick91"><code>@​patrick91</code></a>.</li>
</ul>
<h3>Docs</h3>
<ul>
<li>✏️ Fix grammar mistake in
<code>docs/en/docs/advanced/response-directly.md</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13800">#13800</a>
by <a
href="https://github.com/NavesSapnis"><code>@​NavesSapnis</code></a>.</li>
<li>📝 Update Speakeasy URL to Speakeasy Sandbox. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/13697">#13697</a>
by <a
href="https://github.com/ndimares"><code>@​ndimares</code></a>.</li>
</ul>
<h3>Translations</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="313723494b"><code>3137234</code></a>
🔖 Release version 0.116.1</li>
<li><a
href="095dab00c7"><code>095dab0</code></a>
📝 Update release notes</li>
<li><a
href="cad6880fd9"><code>cad6880</code></a>
⬆️ Upgrade Starlette supported version range to
<code>&gt;=0.40.0,&lt;0.48.0</code> (<a
href="https://redirect.github.com/fastapi/fastapi/issues/13884">#13884</a>)</li>
<li><a
href="a6e79e68a4"><code>a6e79e6</code></a>
📝 Update release notes</li>
<li><a
href="2c13b1ba4b"><code>2c13b1b</code></a>
📝 Add notification about impending changes in Translations to
`docs/en/docs/c...</li>
<li><a
href="7179d48fd7"><code>7179d48</code></a>
📝 Update release notes</li>
<li><a
href="07bcb18a5a"><code>07bcb18</code></a>
⬆ [pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/fastapi/fastapi/issues/13871">#13871</a>)</li>
<li><a
href="bd8f358fd9"><code>bd8f358</code></a>
🔖 Release version 0.116.0</li>
<li><a
href="18eb7a7080"><code>18eb7a7</code></a>
📝 Update release notes</li>
<li><a
href="dd906a998e"><code>dd906a9</code></a>
📝 Update release notes</li>
<li>Additional commits viewable in <a
href="https://github.com/fastapi/fastapi/compare/0.115.12...0.116.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `uvicorn` from 0.34.3 to 0.35.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/encode/uvicorn/releases">uvicorn's
releases</a>.</em></p>
<blockquote>
<h2>Version 0.35.0</h2>
<h2>Added</h2>
<ul>
<li>Add <code>WebSocketsSansIOProtocol</code> by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/encode/uvicorn/pull/2540">encode/uvicorn#2540</a></li>
</ul>
<h2>Changed</h2>
<ul>
<li>Refine help message for option <code>--proxy-headers</code> by <a
href="https://github.com/zhangyoufu"><code>@​zhangyoufu</code></a> in <a
href="https://redirect.github.com/encode/uvicorn/pull/2653">encode/uvicorn#2653</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/zhangyoufu"><code>@​zhangyoufu</code></a> made
their first contribution in <a
href="https://redirect.github.com/encode/uvicorn/pull/2653">encode/uvicorn#2653</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/encode/uvicorn/compare/0.34.3...0.35.0">https://github.com/encode/uvicorn/compare/0.34.3...0.35.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/encode/uvicorn/blob/master/docs/release-notes.md">uvicorn's
changelog</a>.</em></p>
<blockquote>
<h2>0.35.0 (June 28, 2025)</h2>
<h3>Added</h3>
<ul>
<li>Add <code>WebSocketsSansIOProtocol</code> (<a
href="https://redirect.github.com/encode/uvicorn/issues/2540">#2540</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Refine help message for option <code>--proxy-headers</code> (<a
href="https://redirect.github.com/encode/uvicorn/issues/2653">#2653</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="daecb45327"><code>daecb45</code></a>
Version 0.35.0 (<a
href="https://redirect.github.com/encode/uvicorn/issues/2654">#2654</a>)</li>
<li><a
href="22dfd3fa95"><code>22dfd3f</code></a>
refine help message for option --proxy-headers (<a
href="https://redirect.github.com/encode/uvicorn/issues/2653">#2653</a>)</li>
<li><a
href="b9606269a7"><code>b960626</code></a>
Add <code>WebSocketsSansIOProtocol</code> (<a
href="https://redirect.github.com/encode/uvicorn/issues/2540">#2540</a>)</li>
<li><a
href="5432729137"><code>5432729</code></a>
Add CITATION.cff (<a
href="https://redirect.github.com/encode/uvicorn/issues/2649">#2649</a>)</li>
<li>See full diff in <a
href="https://github.com/encode/uvicorn/compare/0.34.3...0.35.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 05:15:57 +00:00
dependabot[bot]
2682ed7439 chore(backend/deps-dev): Bump faker from 33.3.1 to 37.4.0 in /autogpt_platform/backend (#10386)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=faker&package-manager=pip&previous-version=33.3.1&new-version=37.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 04:50:51 +00:00
dependabot[bot]
1502f28481 chore(libs/deps): Bump pytest-asyncio from 0.26.0 to 1.0.0 in /autogpt_platform/autogpt_libs (#10175)
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio)
from 0.26.0 to 1.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-asyncio/releases">pytest-asyncio's
releases</a>.</em></p>
<blockquote>
<h2>pytest-asyncio 1.0.0</h2>
<h1><a
href="https://github.com/pytest-dev/pytest-asyncio/tree/1.0.0">1.0.0</a>
- 2025-05-26</h1>
<h2>Removed</h2>
<ul>
<li>The deprecated <em>event_loop</em> fixture.
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1106">#1106</a>)</li>
</ul>
<h2>Added</h2>
<ul>
<li>Prelimiary support for Python 3.14
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1025">#1025</a>)</li>
</ul>
<h2>Changed</h2>
<ul>
<li>Scoped event loops (e.g. module-scoped loops) are created once
rather
than per scope (e.g. per module). This reduces the number of fixtures
and speeds up collection time, especially for large test suites.
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1107">#1107</a>)</li>
<li>The <em>loop_scope</em> argument to <code>pytest.mark.asyncio</code>
no longer forces
that a pytest Collector exists at the level of the specified scope.
For example, a test function marked with
<code>pytest.mark.asyncio(loop_scope=&quot;class&quot;)</code> no longer
requires a class
surrounding the test. This is consistent with the behavior of the
<em>scope</em> argument to <code>pytest_asyncio.fixture</code>.
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1112">#1112</a>)</li>
</ul>
<h2>Fixed</h2>
<ul>
<li>An error caused when using pytest's [--setup-plan]{.title-ref}
option.
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/630">#630</a>)</li>
<li>Unsuppressed import errors with pytest option
<code>--doctest-ignore-import-errors</code>
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/797">#797</a>)</li>
<li>A &quot;fixture not found&quot; error in connection with
package-scoped loops
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1052">#1052</a>)</li>
</ul>
<h2>Notes for Downstream Packagers</h2>
<ul>
<li>Removed a test that had an ordering dependency on other tests.
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1114">#1114</a>)</li>
</ul>
<h2>pytest-asyncio 1.0.0a1</h2>
<h1><a
href="https://github.com/pytest-dev/pytest-asyncio/tree/1.0.0a1">1.0.0a1</a>
- 2025-05-09</h1>
<h2>Removed</h2>
<ul>
<li>The deprecated <em>event_loop</em> fixture.
(<a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1106">#1106</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5ef97bd60a"><code>5ef97bd</code></a>
chore: Prepare release of v1.0.0.</li>
<li><a
href="f212e24ec5"><code>f212e24</code></a>
docs: Mention fix of <a
href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/797">#797</a>.</li>
<li><a
href="32c1d10e87"><code>32c1d10</code></a>
test: Removed obsolete test for async_gen_fixtures.</li>
<li><a
href="627ce9265e"><code>627ce92</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="a55ff36f2c"><code>a55ff36</code></a>
Build(deps): Bump pluggy from 1.5.0 to 1.6.0 in
/dependencies/default</li>
<li><a
href="633389f302"><code>633389f</code></a>
Build(deps): Bump hypothesis in /dependencies/default</li>
<li><a
href="0c99466a6c"><code>0c99466</code></a>
docs: Fixed an error that reported a missing event_loop fixture when
using pa...</li>
<li><a
href="0688d17581"><code>0688d17</code></a>
ci: Replace Github template expansion with env variable expansion.</li>
<li><a
href="2adcf52664"><code>2adcf52</code></a>
ci: Quote Github variable expansion.</li>
<li><a
href="dd0fac96cd"><code>dd0fac9</code></a>
ci: Fixed a bug that prevented release notes from being extracted from a
Git ...</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-asyncio&package-manager=pip&previous-version=0.26.0&new-version=1.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 04:28:34 +00:00
dependabot[bot]
c0eae266d8 chore(backend/deps-dev): Bump the development-dependencies group in /autogpt_platform/backend with 2 updates (#10373)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 03:51:41 +00:00
dependabot[bot]
a15bb16ce2 chore(backend/deps): Bump the production-dependencies group across 1 directory with 4 updates (#10389)
Bumps the production-dependencies group with 4 updates in the
/autogpt_platform/backend directory:
[groq](https://github.com/groq/groq-python),
[launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk),
[openai](https://github.com/openai/openai-python) and
[sentry-sdk](https://github.com/getsentry/sentry-python).

Updates `groq` from 0.29.0 to 0.30.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/groq/groq-python/releases">groq's
releases</a>.</em></p>
<blockquote>
<h2>v0.30.0</h2>
<h2>0.30.0 (2025-07-11)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.29.0...v0.30.0">v0.29.0...v0.30.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> api update (<a
href="55abbbc39b">55abbbc</a>)</li>
<li><strong>api:</strong> api update (<a
href="cbd7df040d">cbd7df0</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>ci:</strong> correct conditional (<a
href="a470509421">a470509</a>)</li>
<li><strong>ci:</strong> release-doctor — report correct token name (<a
href="b036bba0a7">b036bba</a>)</li>
<li><strong>parsing:</strong> correctly handle nested discriminated
unions (<a
href="f57dd03354">f57dd03</a>)</li>
<li>performance tier enum overloads (<a
href="dc7c41bdfc">dc7c41b</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>Add bklieger-groq to CODEOWNERS (<a
href="5b9fc30d6a">5b9fc30</a>)</li>
<li><strong>ci:</strong> change upload type (<a
href="7044a2b6fb">7044a2b</a>)</li>
<li><strong>ci:</strong> only run for pushes and fork pull requests (<a
href="dc1b9eea77">dc1b9ee</a>)</li>
<li>fix code owners (<a
href="464ada9d4c">464ada9</a>)</li>
<li><strong>internal:</strong> bump pinned h11 dep (<a
href="47bddbdf76">47bddbd</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="9d7f071f79">9d7f071</a>)</li>
<li><strong>package:</strong> mark python 3.13 as supported (<a
href="55353b9f79">55353b9</a>)</li>
<li><strong>readme:</strong> fix version rendering on pypi (<a
href="e145b51351">e145b51</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/groq/groq-python/blob/main/CHANGELOG.md">groq's
changelog</a>.</em></p>
<blockquote>
<h2>0.30.0 (2025-07-11)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.29.0...v0.30.0">v0.29.0...v0.30.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> api update (<a
href="55abbbc39b">55abbbc</a>)</li>
<li><strong>api:</strong> api update (<a
href="cbd7df040d">cbd7df0</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>ci:</strong> correct conditional (<a
href="a470509421">a470509</a>)</li>
<li><strong>ci:</strong> release-doctor — report correct token name (<a
href="b036bba0a7">b036bba</a>)</li>
<li><strong>parsing:</strong> correctly handle nested discriminated
unions (<a
href="f57dd03354">f57dd03</a>)</li>
<li>performance tier enum overloads (<a
href="dc7c41bdfc">dc7c41b</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>Add bklieger-groq to CODEOWNERS (<a
href="5b9fc30d6a">5b9fc30</a>)</li>
<li><strong>ci:</strong> change upload type (<a
href="7044a2b6fb">7044a2b</a>)</li>
<li><strong>ci:</strong> only run for pushes and fork pull requests (<a
href="dc1b9eea77">dc1b9ee</a>)</li>
<li>fix code owners (<a
href="464ada9d4c">464ada9</a>)</li>
<li><strong>internal:</strong> bump pinned h11 dep (<a
href="47bddbdf76">47bddbd</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="9d7f071f79">9d7f071</a>)</li>
<li><strong>package:</strong> mark python 3.13 as supported (<a
href="55353b9f79">55353b9</a>)</li>
<li><strong>readme:</strong> fix version rendering on pypi (<a
href="e145b51351">e145b51</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c7d91561ec"><code>c7d9156</code></a>
release: 0.30.0 (<a
href="https://redirect.github.com/groq/groq-python/issues/247">#247</a>)</li>
<li><a
href="464ada9d4c"><code>464ada9</code></a>
chore: fix code owners</li>
<li><a
href="5b9fc30d6a"><code>5b9fc30</code></a>
chore: Add bklieger-groq to CODEOWNERS</li>
<li>See full diff in <a
href="https://github.com/groq/groq-python/compare/v0.29.0...v0.30.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `launchdarkly-server-sdk` from 9.11.1 to 9.12.0
<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.12.0</h2>
<h2><a
href="https://github.com/launchdarkly/python-server-sdk/compare/9.11.1...9.12.0">9.12.0</a>
(2025-07-11)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Add support for plugins. (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/337">#337</a>)
(<a
href="241f6f49b2">241f6f4</a>)</li>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)
(<a
href="0207665006">0207665</a>)</li>
</ul>
</blockquote>
</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.11.1...9.12.0">9.12.0</a>
(2025-07-11)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Add support for plugins. (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/337">#337</a>)
(<a
href="241f6f49b2">241f6f4</a>)</li>
<li>Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)
(<a
href="0207665006">0207665</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="60ce4d1cc0"><code>60ce4d1</code></a>
chore(main): release 9.12.0 (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/340">#340</a>)</li>
<li><a
href="241f6f49b2"><code>241f6f4</code></a>
feat: Add support for plugins. (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/337">#337</a>)</li>
<li><a
href="a4955620ce"><code>a495562</code></a>
chore: Add missing make target; update poetry instructions (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/338">#338</a>)</li>
<li><a
href="a8eeb1ecc3"><code>a8eeb1e</code></a>
chore: Adjust release version (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/341">#341</a>)</li>
<li><a
href="0207665006"><code>0207665</code></a>
feat!: Drop support for Python 3.8 (eol 2024-10-07) (<a
href="https://redirect.github.com/launchdarkly/python-server-sdk/issues/339">#339</a>)</li>
<li>See full diff in <a
href="https://github.com/launchdarkly/python-server-sdk/compare/9.11.1...9.12.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `openai` from 1.93.2 to 1.96.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/releases">openai's
releases</a>.</em></p>
<blockquote>
<h2>v1.96.0</h2>
<h2>1.96.0 (2025-07-15)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.95.1...v1.96.0">v1.95.1...v1.96.0</a></p>
<h3>Features</h3>
<ul>
<li>clean up environment call outs (<a
href="87c2e979e0">87c2e97</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> update realtime specs, build config (<a
href="bf06d88b33">bf06d88</a>)</li>
</ul>
<h2>v1.95.1</h2>
<h2>1.95.1 (2025-07-11)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.95.0...v1.95.1">v1.95.0...v1.95.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> don't send Content-Type header on GET
requests (<a
href="182b763065">182b763</a>)</li>
</ul>
<h2>v1.95.0</h2>
<h2>1.95.0 (2025-07-10)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.94.0...v1.95.0">v1.94.0...v1.95.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add file_url, fix event ID (<a
href="265e216396">265e216</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>readme:</strong> fix version rendering on pypi (<a
href="1eee5cabf2">1eee5ca</a>)</li>
</ul>
<h2>v1.94.0</h2>
<h2>1.94.0 (2025-07-10)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.93.3...v1.94.0">v1.93.3...v1.94.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> return better error message on missing
embedding (<a
href="https://redirect.github.com/openai/openai-python/issues/2369">#2369</a>)
(<a
href="e53464ae95">e53464a</a>)</li>
</ul>
<h2>v1.93.3</h2>
<h2>1.93.3 (2025-07-09)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.93.2...v1.93.3">v1.93.2...v1.93.3</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/blob/main/CHANGELOG.md">openai's
changelog</a>.</em></p>
<blockquote>
<h2>1.96.0 (2025-07-15)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.95.1...v1.96.0">v1.95.1...v1.96.0</a></p>
<h3>Features</h3>
<ul>
<li>clean up environment call outs (<a
href="87c2e979e0">87c2e97</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> update realtime specs, build config (<a
href="bf06d88b33">bf06d88</a>)</li>
</ul>
<h2>1.95.1 (2025-07-11)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.95.0...v1.95.1">v1.95.0...v1.95.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> don't send Content-Type header on GET
requests (<a
href="182b763065">182b763</a>)</li>
</ul>
<h2>1.95.0 (2025-07-10)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.94.0...v1.95.0">v1.94.0...v1.95.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add file_url, fix event ID (<a
href="265e216396">265e216</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>readme:</strong> fix version rendering on pypi (<a
href="1eee5cabf2">1eee5ca</a>)</li>
</ul>
<h2>1.94.0 (2025-07-10)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.93.3...v1.94.0">v1.93.3...v1.94.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> return better error message on missing
embedding (<a
href="https://redirect.github.com/openai/openai-python/issues/2369">#2369</a>)
(<a
href="e53464ae95">e53464a</a>)</li>
</ul>
<h2>1.93.3 (2025-07-09)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v1.93.2...v1.93.3">v1.93.2...v1.93.3</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>parsing:</strong> correctly handle nested discriminated
unions (<a
href="fc8a67715d">fc8a677</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1d77265e3d"><code>1d77265</code></a>
release: 1.96.0</li>
<li><a
href="34a5651648"><code>34a5651</code></a>
chore(api): update realtime specs, build config</li>
<li><a
href="1cb2bf6e0a"><code>1cb2bf6</code></a>
codegen metadata</li>
<li><a
href="2028ad2b95"><code>2028ad2</code></a>
feat: clean up environment call outs</li>
<li><a
href="1c0b464205"><code>1c0b464</code></a>
release: 1.95.1</li>
<li><a
href="05e3755b8f"><code>05e3755</code></a>
codegen metadata</li>
<li><a
href="043589aebf"><code>043589a</code></a>
codegen metadata</li>
<li><a
href="0fa4028ac5"><code>0fa4028</code></a>
codegen metadata</li>
<li><a
href="fcbb59831c"><code>fcbb598</code></a>
fix(client): don't send Content-Type header on GET requests</li>
<li><a
href="db5c35049a"><code>db5c350</code></a>
release: 1.95.0 (<a
href="https://redirect.github.com/openai/openai-python/issues/2456">#2456</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/openai/openai-python/compare/v1.93.2...v1.96.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `sentry-sdk` from 2.32.0 to 2.33.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-python/releases">sentry-sdk's
releases</a>.</em></p>
<blockquote>
<h2>2.33.0</h2>
<h3>Various fixes &amp; improvements</h3>
<ul>
<li>feat(langchain): Support <code>BaseCallbackManager</code> (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4486">#4486</a>)
by <a
href="https://github.com/szokeasaurusrex"><code>@​szokeasaurusrex</code></a></li>
<li>Use <code>span.data</code> instead of <code>measurements</code> for
token usage (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4567">#4567</a>)
by <a
href="https://github.com/antonpirker"><code>@​antonpirker</code></a></li>
<li>Fix custom model name (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4569">#4569</a>)
by <a
href="https://github.com/antonpirker"><code>@​antonpirker</code></a></li>
<li>fix: shut down &quot;session flusher&quot; more promptly (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4561">#4561</a>)
by <a href="https://github.com/bukzor"><code>@​bukzor</code></a></li>
<li>chore: Remove Lambda urllib3 pin on Python 3.10+ (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4549">#4549</a>)
by <a
href="https://github.com/sentrivana"><code>@​sentrivana</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md">sentry-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>2.33.0</h2>
<h3>Various fixes &amp; improvements</h3>
<ul>
<li>feat(langchain): Support <code>BaseCallbackManager</code> (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4486">#4486</a>)
by <a
href="https://github.com/szokeasaurusrex"><code>@​szokeasaurusrex</code></a></li>
<li>Use <code>span.data</code> instead of <code>measurements</code> for
token usage (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4567">#4567</a>)
by <a
href="https://github.com/antonpirker"><code>@​antonpirker</code></a></li>
<li>Fix custom model name (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4569">#4569</a>)
by <a
href="https://github.com/antonpirker"><code>@​antonpirker</code></a></li>
<li>fix: shut down &quot;session flusher&quot; more promptly (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4561">#4561</a>)
by <a href="https://github.com/bukzor"><code>@​bukzor</code></a></li>
<li>chore: Remove Lambda urllib3 pin on Python 3.10+ (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4549">#4549</a>)
by <a
href="https://github.com/sentrivana"><code>@​sentrivana</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="98b107fd21"><code>98b107f</code></a>
meta: Update CHANGELOG.md</li>
<li><a
href="220a235bdc"><code>220a235</code></a>
release: 2.33.0</li>
<li><a
href="a1f62bada1"><code>a1f62ba</code></a>
feat(langchain): Support <code>BaseCallbackManager</code> (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4486">#4486</a>)</li>
<li><a
href="c31ba06e17"><code>c31ba06</code></a>
tests: Regenerate tox.ini (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4583">#4583</a>)</li>
<li><a
href="1cba56ae83"><code>1cba56a</code></a>
Remove all forked markers in test_api (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4576">#4576</a>)</li>
<li><a
href="7d7027a586"><code>7d7027a</code></a>
Remove forked marker in client uwsgi test (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4575">#4575</a>)</li>
<li><a
href="710227aebf"><code>710227a</code></a>
Fix pytest collection warning (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4574">#4574</a>)</li>
<li><a
href="30ad1b26c7"><code>30ad1b2</code></a>
Remove print statements from excepthook test (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4573">#4573</a>)</li>
<li><a
href="6f71a1bb1d"><code>6f71a1b</code></a>
Use <code>span.data</code> instead of <code>measurements</code> for
token usage (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4567">#4567</a>)</li>
<li><a
href="1df6c9a984"><code>1df6c9a</code></a>
Fix custom model name (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/4569">#4569</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-python/compare/2.32.0...2.33.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 03:23:40 +00:00
dependabot[bot]
ff7157fbbe chore(backend/deps): Bump pinecone from 5.4.2 to 7.3.0 in /autogpt_platform/backend (#10378)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pinecone&package-manager=pip&previous-version=5.4.2&new-version=7.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-17 02:43:17 +00:00
Zamil Majdy
423b22214a feat(blocks): Add Excel support to ReadSpreadsheetBlock and introduced FileReadBlock (#10393)
This PR adds Excel file support to CSV processing and enhances text file
reading capabilities.

### Changes 🏗️

**ReadSpreadsheetBlock (formerly ReadCsvBlock):**
- Renamed `ReadCsvBlock` to `ReadSpreadsheetBlock` for better clarity
- Added Excel file support (.xlsx, .xls) with automatic conversion to
CSV using pandas
- Enhanced parameter `file_in` to `file_input` for consistency
- Excel files are automatically detected by extension and converted to
CSV format
- Maintains all existing CSV processing functionality (delimiters,
headers, etc.)
- Graceful error handling when pandas library is not available

**FileReadBlock:**
- Enhanced text file reading with advanced chunking capabilities
- Added parameters: `skip_size`, `skip_rows`, `row_limit`, `size_limit`,
`delimiter`
- Supports both character-based and row-based processing
- Chunked output for large files based on size limits
- Proper file handling with UTF-8 and latin-1 encoding fallbacks
- Uses `store_media_file` for secure file processing (URLs, data URIs,
local paths)
- Fixed test input to use data URI instead of non-existent file

**General Improvements:**
- Consistent parameter naming across blocks (`file_input`)
- Enhanced error handling and validation
- Comprehensive test coverage
- All existing functionality preserved

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] Both ReadSpreadsheetBlock and FileReadBlock instantiate correctly
- [x] ReadSpreadsheetBlock processes CSV data with existing
functionality
  - [x] FileReadBlock reads text files with data URI input
  - [x] All block tests pass (457 passed, 83 skipped)
  - [x] No linting errors in modified files
  - [x] Excel support gracefully handles missing pandas dependency

#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)

*Note: No configuration changes required for this PR.*
2025-07-16 12:00:40 +00:00
Tejas Dharani
db1f034544 Fix Gmail body parsing for multipart messages (#9863) (#10071)
<!-- Clearly explain the need for these changes: -->

The `GmailReadBlock._get_email_body()` method was only inspecting the
top-level payload and a single `text/plain` part, causing it to return
the fallback string "This email does not contain a text body." for most
Gmail messages. This occurred because Gmail messages are typically
wrapped in `multipart/alternative` or other multipart containers, which
the original implementation couldn't handle.

This critical issue made the Gmail integration unusable for reading
email body content, as virtually every real Gmail message uses multipart
MIME structures.

<!-- Concisely describe all of the changes made in this pull request:
-->

### Changes 

#### Core Implementation:
- **Replaced simple `_get_email_body()` with recursive multipart
parser** that can walk through nested MIME structures
- **Added `_walk_for_body()` method** for recursive traversal of email
parts with depth limiting (max 10 levels)
- **Implemented safe base64 decoding** with automatic padding correction
in `_decode_base64()`
- **Added attachment body support** via `_download_attachment_body()`
for emails where body content is stored as attachments

#### Email Format Support:
- **HTML to text conversion** using `html2text` library for HTML-only
emails
- **Multipart/alternative handling** with preference for `text/plain`
over `text/html`
- **Nested multipart structure support** (e.g., `multipart/mixed`
containing `multipart/alternative`)
- **Single-part email support** (maintains backward compatibility)

#### Dependencies & Testing:
- **Added `html2text = "^2024.2.26"`** to `pyproject.toml` for HTML
conversion
- **Created comprehensive unit tests** in `test/blocks/test_gmail.py`
covering all email types and edge cases
- **Added error handling and graceful fallbacks** for malformed data and
missing dependencies

#### Security & Performance:
- **Recursion depth limiting** prevents infinite loops on malformed
email structures
- **Exception handling** ensures graceful degradation when API calls
fail
- **Efficient tree traversal** with early returns for better performance

### Checklist 

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:

<details>
<summary>Test Plan</summary>

- **Single-part text/plain emails** - Verified correct extraction of
plain text content
- **Multipart/alternative emails** - Tested preference for plain text
over HTML when both available
- **HTML-only emails** - Confirmed HTML to text conversion works
correctly
- **Nested multipart structures** - Tested deeply nested
`multipart/mixed` containing `multipart/alternative`
- **Attachment-based body content** - Verified downloading and decoding
of body stored as attachments
- **Base64 padding edge cases** - Tested malformed base64 data with
missing padding
- **Recursion depth limits** - Confirmed protection against infinite
recursion
- **Error handling scenarios** - Tested graceful fallbacks for API
failures and missing dependencies
- **Backward compatibility** - Ensured existing functionality remains
unchanged for edge cases
- **Integration testing** - Ran standalone verification script with 100%
test pass rate

</details>

#### For configuration changes:
- [x] `.env.example` is updated or already compatible with my changes
- [x] `docker-compose.yml` is updated or already compatible with my
changes
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)

<details>
<summary>Configuration Changes</summary>

- Added `html2text` dependency to `pyproject.toml` - no environment or
infrastructure changes required
- No changes to ports, services, secrets, or databases
- Fully backward compatible with existing Gmail API configuration

</details>

---------

Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-15 19:39:02 +00:00
Zamil Majdy
c2eea593c0 fix(backend): Include node execution steps and cost of sub-graph execution (#10328)
## Summary
This PR enhances the node execution stats tracking system to properly
handle nested graph executions and additional cost/step metrics:

- **Add extra_cost and extra_steps fields** to `NodeExecutionStats`
model for tracking additional metrics from sub-graphs
- **Update AgentExecutorBlock** to merge nested execution stats from
sub-graphs into the parent execution
- **Fix stats update mechanism** in `execute_node` to use in-place
updates instead of `model_copy` for better performance
- **Add proper tracking** of extra costs and steps in graph execution
stats aggregation

## Changes Made
- Modified `backend/backend/data/model.py` to add `extra_cost` and
`extra_steps` fields
- Updated `backend/backend/blocks/agent.py` to merge stats from nested
graph executions
- Fixed `backend/backend/executor/manager.py` to properly update
execution stats and aggregate extra metrics

## Test Plan
- [x] Verify that nested graph executions properly propagate their stats
to parent graphs
- [x] Test that extra costs and steps are correctly tracked and
aggregated
- [x] Ensure debug logging provides useful information for monitoring
- [x] Run existing tests to ensure no regressions
- [x] Test with multi-level nested agent graphs

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-14 09:01:15 +00:00
Reinier van der Leer
36f5f24333 feat(platform/builder): Builder credentials support + UX improvements (#10323)
- Resolves #10313
- Resolves #10333

Before:


https://github.com/user-attachments/assets/a105b2b0-a90b-4bc6-89da-bef3f5a5fa1f
- No credentials input
- Stuttery experience when panning or zooming the viewport

After:


https://github.com/user-attachments/assets/f58d7864-055f-4e1c-a221-57154467c3aa
- Pretty much the same UX as in the Library, with fully-fledged
credentials input support
- Much smoother when moving around the canvas

### Changes 🏗️

Frontend:
- Add credentials input support to Run UX in Builder
  - Pass run inputs instead of storing them on the input nodes
- Re-implement `RunnerInputUI` using `AgentRunDetailsView`; rename to
`RunnerInputDialog`
    - Make `AgentRunDraftView` more flexible
    - Remove `RunnerInputList`, `RunnerInputBlock`
- Make moving around in the Builder *smooooth* by reducing unnecessary
re-renders
  - Clean up and partially re-write bead management logic
- Replace `request*` fire-and-forget methods in `useAgentGraph` with
direct action async callbacks
- Clean up run input UI components
  - Simplify `RunnerUIWrapper`
- Add `isEmpty` utility function in `@/lib/utils` (expanding on
`_.isEmpty`)
- Fix default value handling in `TypeBasedInput` (**Note:** after all
the changes I've made I'm not sure this is still necessary)
- Improve & clean up Builder test implementations

Backend + API:
- Fix front-end `Node`, `GraphMeta`, and `Block` types
- Small refactor of `Graph` to match naming of some `LibraryAgent`
attributes
- Fix typing of `list_graphs`,
`get_graph_meta_by_store_listing_version_id` endpoints
  - Add `GraphMeta` model and `GraphModel.meta()` shortcut
- Move `POST /library/agents/{library_agent_id}/setup-trigger` to `POST
/library/presets/setup-trigger`

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - Test the new functionality in the Builder:
    - [x] Running an agent with (credentials) inputs from the builder
      - [x] Beads behave correctly
    - [x] Running an agent without any inputs from the builder
    - [x] Scheduling an agent from the builder
    - [x] Adding and searching blocks in the block menu
- [x] Test that all existing `AgentRunDraftView` functionality in the
Library still works the same
    - [x] Run an agent
    - [x] Schedule an agent
    - [x] View past runs
- [x] Run an agent with inputs, then edit the agent's inputs and view
the agent in the Library (should be fine)
2025-07-11 15:46:06 +00:00
Reinier van der Leer
309114a727 Merge commit from fork 2025-07-11 16:43:03 +02:00
Zamil Majdy
4ffb99bfb0 feat(backend): Add block error rate monitoring and Discord alerts (#10332)
## Summary

This PR adds a simple block error rate monitoring system that runs every
24 hours (configurable) and sends Discord alerts when blocks exceed the
error rate threshold.

## Changes Made

**Modified Files:**
- `backend/executor/scheduler.py` - Added `report_block_error_rates`
function and scheduled job
- `backend/util/settings.py` - Added configuration options
- `backend/.env.example` - Added environment variable examples
- Refactor scheduled job logics in scheduler.py into seperate files

## Configuration

```bash
# Block Error Rate Monitoring
BLOCK_ERROR_RATE_THRESHOLD=0.5  # 50% error rate threshold
BLOCK_ERROR_RATE_CHECK_INTERVAL_SECS=86400  # 24 hours
```

## How It Works

1. **Scheduled Job**: Runs every 24 hours (configurable via
`BLOCK_ERROR_RATE_CHECK_INTERVAL_SECS`)
2. **Error Rate Calculation**: Queries last 24 hours of node executions
and calculates error rates per block
3. **Threshold Check**: Alerts on blocks with ≥50% error rate
(configurable via `BLOCK_ERROR_RATE_THRESHOLD`)
4. **Discord Alert**: Sends alert to Discord using existing
`discord_system_alert` function
5. **Manual Execution**: Available via
`execute_report_block_error_rates()` scheduler client method

## Alert Format

```
Block Error Rate Alert:
🚨 Block 'DeprecatedGPT3Block' has 75.0% error rate (75/100) in the last 24 hours
🚨 Block 'BrokenImageBlock' has 60.0% error rate (30/50) in the last 24 hours
```

## Testing

Can be tested manually via:
```python
from backend.executor.scheduler import SchedulerClient
client = SchedulerClient()
result = client.execute_report_block_error_rates()
```

## Implementation Notes

- Follows the same pattern as `report_late_executions` function
- Only checks blocks with ≥10 executions to avoid noise
- Uses existing Discord notification infrastructure
- Configurable threshold and check interval
- Proper error handling and logging

## Test plan

- [x] Verify configuration loads correctly
- [x] Test error rate calculation with existing database
- [x] Confirm Discord integration works
- [x] Test manual execution via scheduler client
- [x] Verify scheduled job runs correctly

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude AI <claude@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-10 21:56:58 +00:00
Swifty
7688a9701e perf(backend/db): Optimize StoreAgent and Creator views with database indexes and materialized views (#10084)
### Summary
Performance optimization for the platform's store and creator
functionality by adding targeted database indexes and implementing
materialized views to reduce query execution time.

### Changes 🏗️

**Database Performance Optimizations:**
- Added strategic database indexes for `StoreListing`,
`StoreListingVersion`, `StoreListingReview`, `AgentGraphExecution`, and
`Profile` tables
- Implemented materialized views (`mv_agent_run_counts`,
`mv_review_stats`) to cache expensive aggregation queries
- Optimized `StoreAgent` and `Creator` views to use materialized views
and improved query patterns
- Added automated refresh function with 15-minute scheduling for
materialized views (when pg_cron extension is available)

**Key Performance Improvements:**
- Filtered indexes on approved store listings to speed up marketplace
queries
- GIN index on categories for faster category-based searches
- Composite indexes for common query patterns (e.g., listing + version
lookups)
- Pre-computed agent run counts and review statistics to eliminate
expensive aggregations

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Verified migration runs successfully without errors
  - [x] Confirmed materialized views are created and populated correctly
- [x] Tested StoreAgent and Creator view queries return expected results
  - [x] Validated automatic refresh function works properly
  - [x] Confirmed rollback migration successfully removes all changes

#### For configuration changes:
- [x] `.env.example` is updated or already compatible with my changes
- [x] `docker-compose.yml` is updated or already compatible with my
changes
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)

**Note:** No configuration changes were required as this is purely a
database schema optimization.
2025-07-10 14:57:55 +00:00
Swifty
243400e128 feat(platform): Add Block Development SDK with auto-registration system (#10074)
## Block Development SDK - Simplifying Block Creation

### Problem
Currently, creating a new block requires manual updates to **5+ files**
scattered across the codebase:
- `backend/data/block_cost_config.py` - Manually add block costs
- `backend/integrations/credentials_store.py` - Add default credentials
- `backend/integrations/providers.py` - Register new providers
- `backend/integrations/oauth/__init__.py` - Register OAuth handlers
- `backend/integrations/webhooks/__init__.py` - Register webhook
managers

This creates significant friction for developers, increases the chance
of configuration errors, and makes the platform difficult to scale.

### Solution
This PR introduces a **Block Development SDK** that provides:
- Single import for all block development needs: `from backend.sdk
import *`
- Automatic registration of all block configurations
- Zero external file modifications required
- Provider-based configuration with inheritance

### Changes 🏗️

#### 1. **New SDK Module** (`backend/sdk/`)
- **`__init__.py`**: Unified exports of 68+ block development components
- **`registry.py`**: Central auto-registration system for all block
configurations
- **`builder.py`**: `ProviderBuilder` class for fluent provider
configuration
- **`provider.py`**: Provider configuration management
- **`cost_integration.py`**: Automatic cost application system

#### 2. **Provider Builder Pattern**
```python
# Configure once, use everywhere
my_provider = (
    ProviderBuilder("my-service")
    .with_api_key("MY_SERVICE_API_KEY", "My Service API Key")
    .with_base_cost(5, BlockCostType.RUN)
    .build()
)
```

#### 3. **Automatic Cost System**
- Provider base costs automatically applied to all blocks using that
provider
- Override with `@cost` decorator for block-specific pricing
- Tiered pricing support with cost filters

#### 4. **Dynamic Provider Support**
- Modified `ProviderName` enum to accept any string via `_missing_`
method
- No more manual enum updates for new providers

#### 5. **Application Integration**
- Added `sync_all_provider_costs()` to `initialize_blocks()` for
automatic cost registration
- Maintains full backward compatibility with existing blocks

#### 6. **Comprehensive Examples** (`backend/blocks/examples/`)
- `simple_example_block.py` - Basic block structure
- `example_sdk_block.py` - Provider with credentials
- `cost_example_block.py` - Various cost patterns
- `advanced_provider_example.py` - Custom API clients
- `example_webhook_sdk_block.py` - Webhook configuration

#### 7. **Extensive Testing**
- 6 new test modules with 30+ test cases
- Integration tests for all SDK features
- Cost calculation verification
- Provider registration tests

### Before vs After

**Before SDK:**
```python
# 1. Multiple complex imports
from backend.data.block import Block, BlockCategory, BlockOutput
from backend.data.model import SchemaField, CredentialsField
# ... many more imports

# 2. Update block_cost_config.py
BLOCK_COSTS[MyBlock] = [BlockCost(...)]

# 3. Update credentials_store.py
DEFAULT_CREDENTIALS.append(...)

# 4. Update providers.py enum
# 5. Update oauth/__init__.py
# 6. Update webhooks/__init__.py
```

**After SDK:**
```python
from backend.sdk import *

# Everything configured in one place
my_provider = (
    ProviderBuilder("my-service")
    .with_api_key("MY_API_KEY", "My API Key")
    .with_base_cost(10, BlockCostType.RUN)
    .build()
)

class MyBlock(Block):
    class Input(BlockSchema):
        credentials: CredentialsMetaInput = my_provider.credentials_field()
        data: String = SchemaField(description="Input data")
    
    class Output(BlockSchema):
        result: String = SchemaField(description="Result")
    
    # That's it\! No external files to modify
```

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Created new blocks using SDK pattern with provider configuration
  - [x] Verified automatic cost registration for provider-based blocks
  - [x] Tested cost override with @cost decorator
  - [x] Confirmed custom providers work without enum modifications
  - [x] Verified all example blocks execute correctly
  - [x] Tested backward compatibility with existing blocks
  - [x] Ran all SDK tests (30+ tests, all passing)
  - [x] Created blocks with credentials and verified authentication
  - [x] Tested webhook block configuration
  - [x] Verified application startup with auto-registration

#### For configuration changes:
- [x] `.env.example` is updated or already compatible with my changes
(no changes needed)
- [x] `docker-compose.yml` is updated or already compatible with my
changes (no changes needed)
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)

### Impact

- **Developer Experience**: Block creation time reduced from hours to
minutes
- **Maintainability**: All block configuration in one place
- **Scalability**: Support hundreds of blocks without enum updates
- **Type Safety**: Full IDE support with proper type hints
- **Testing**: Easier to test blocks in isolation

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com>
2025-07-10 16:17:55 +02:00
Reinier van der Leer
c77cb1fcfb fix(backend/library): Fix sub_graphs check in LibraryAgent.from_db(..) (#10316)
- Follow-up fix for #10301

The condition that determines whether
`LibraryAgent.credentials_input_schema` is set incorrectly handles empty
lists of sub-graphs.

### Changes 🏗️

- Check if `sub_graphs is not None` rather than using the boolean
interpretation of `sub_graphs`

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - Trivial change, no test needed.
2025-07-10 07:48:18 +00:00
dependabot[bot]
ab4eb10c3d chore(backend/deps-dev): Bump the development-dependencies group across 1 directory with 4 updates (#10173)
Bumps the development-dependencies group with 4 updates in the
/autogpt_platform/backend directory:
[poethepoet](https://github.com/nat-n/poethepoet),
[pyright](https://github.com/RobertCraigie/pyright-python),
[requests](https://github.com/psf/requests) and
[ruff](https://github.com/astral-sh/ruff).

Updates `poethepoet` from 0.34.0 to 0.35.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nat-n/poethepoet/releases">poethepoet's
releases</a>.</em></p>
<blockquote>
<h2>0.35.0</h2>
<h2>Enhancements</h2>
<ul>
<li>Support script tasks that run packages with a <code>__main__</code>
module by <a href="https://github.com/nat-n"><code>@​nat-n</code></a> in
<a
href="https://redirect.github.com/nat-n/poethepoet/pull/300">nat-n/poethepoet#300</a></li>
<li>Allow virtualenv location to reference special git related env vars
by <a href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/302">nat-n/poethepoet#302</a></li>
<li>Simplify CLI help page header by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/291">nat-n/poethepoet#291</a></li>
</ul>
<h2>Fixes</h2>
<ul>
<li>Don't register hidden tasks with poetry plugin by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/292">nat-n/poethepoet#292</a></li>
<li>Don't resolve symlinks to poetry in PoetryExecutor by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/293">nat-n/poethepoet#293</a></li>
<li>Crash with invalid help option on task by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/294">nat-n/poethepoet#294</a></li>
<li>Always validate task args when loading config by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/295">nat-n/poethepoet#295</a></li>
<li>Coerce switch case values to string to avoid errors by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/296">nat-n/poethepoet#296</a></li>
<li>Always print help when no arguments provided by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/299">nat-n/poethepoet#299</a></li>
<li>Suppress useless global options in the poetry plugin cli by <a
href="https://github.com/nat-n"><code>@​nat-n</code></a> in <a
href="https://redirect.github.com/nat-n/poethepoet/pull/301">nat-n/poethepoet#301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/nat-n/poethepoet/compare/v0.34.0...v0.35.0">https://github.com/nat-n/poethepoet/compare/v0.34.0...v0.35.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/nat-n/poethepoet/compare/v0.34.0...v0.35.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `pyright` from 1.1.401 to 1.1.402
<details>
<summary>Commits</summary>
<ul>
<li><a
href="708a9d4a96"><code>708a9d4</code></a>
Pyright NPM Package update to 1.1.402 (<a
href="https://redirect.github.com/RobertCraigie/pyright-python/issues/349">#349</a>)</li>
<li>See full diff in <a
href="https://github.com/RobertCraigie/pyright-python/compare/v1.1.401...v1.1.402">compare
view</a></li>
</ul>
</details>
<br />

Updates `requests` from 2.32.3 to 2.32.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/psf/requests/releases">requests's
releases</a>.</em></p>
<blockquote>
<h2>v2.32.4</h2>
<h2>2.32.4 (2025-06-10)</h2>
<p><strong>Security</strong></p>
<ul>
<li>CVE-2024-47081 Fixed an issue where a maliciously crafted URL and
trusted
environment will retrieve credentials for the wrong hostname/machine
from a
netrc file. (<a
href="https://redirect.github.com/psf/requests/issues/6965">#6965</a>)</li>
</ul>
<p><strong>Improvements</strong></p>
<ul>
<li>Numerous documentation improvements</li>
</ul>
<p><strong>Deprecations</strong></p>
<ul>
<li>Added support for pypy 3.11 for Linux and macOS. (<a
href="https://redirect.github.com/psf/requests/issues/6926">#6926</a>)</li>
<li>Dropped support for pypy 3.9 following its end of support. (<a
href="https://redirect.github.com/psf/requests/issues/6926">#6926</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's
changelog</a>.</em></p>
<blockquote>
<h2>2.32.4 (2025-06-10)</h2>
<p><strong>Security</strong></p>
<ul>
<li>CVE-2024-47081 Fixed an issue where a maliciously crafted URL and
trusted
environment will retrieve credentials for the wrong hostname/machine
from a
netrc file.</li>
</ul>
<p><strong>Improvements</strong></p>
<ul>
<li>Numerous documentation improvements</li>
</ul>
<p><strong>Deprecations</strong></p>
<ul>
<li>Added support for pypy 3.11 for Linux and macOS.</li>
<li>Dropped support for pypy 3.9 following its end of support.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="021dc729f0"><code>021dc72</code></a>
Polish up release tooling for last manual release</li>
<li><a
href="821770e822"><code>821770e</code></a>
Bump version and add release notes for v2.32.4</li>
<li><a
href="59f8aa2adf"><code>59f8aa2</code></a>
Add netrc file search information to authentication documentation (<a
href="https://redirect.github.com/psf/requests/issues/6876">#6876</a>)</li>
<li><a
href="5b4b64c346"><code>5b4b64c</code></a>
Add more tests to prevent regression of CVE 2024 47081</li>
<li><a
href="7bc45877a8"><code>7bc4587</code></a>
Add new test to check netrc auth leak (<a
href="https://redirect.github.com/psf/requests/issues/6962">#6962</a>)</li>
<li><a
href="96ba401c12"><code>96ba401</code></a>
Only use hostname to do netrc lookup instead of netloc</li>
<li><a
href="7341690e84"><code>7341690</code></a>
Merge pull request <a
href="https://redirect.github.com/psf/requests/issues/6951">#6951</a>
from tswast/patch-1</li>
<li><a
href="6716d7c9f2"><code>6716d7c</code></a>
remove links</li>
<li><a
href="a7e1c745dc"><code>a7e1c74</code></a>
Update docs/conf.py</li>
<li><a
href="c799b8167a"><code>c799b81</code></a>
docs: fix dead links to kenreitz.org</li>
<li>Additional commits viewable in <a
href="https://github.com/psf/requests/compare/v2.32.3...v2.32.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruff` from 0.11.12 to 0.11.13
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.11.13</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>airflow</code>] Add unsafe fix for module moved cases
(<code>AIR301</code>,<code>AIR311</code>,<code>AIR312</code>,<code>AIR302</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/18367">#18367</a>,<a
href="https://redirect.github.com/astral-sh/ruff/pull/18366">#18366</a>,<a
href="https://redirect.github.com/astral-sh/ruff/pull/18363">#18363</a>,<a
href="https://redirect.github.com/astral-sh/ruff/pull/18093">#18093</a>)</li>
<li>[<code>refurb</code>] Add coverage of <code>set</code> and
<code>frozenset</code> calls (<code>FURB171</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18035">#18035</a>)</li>
<li>[<code>refurb</code>] Mark <code>FURB180</code> fix unsafe when
class has bases (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18149">#18149</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>perflint</code>] Fix missing parentheses for lambda and
ternary conditions (<code>PERF401</code>, <code>PERF403</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18412">#18412</a>)</li>
<li>[<code>pyupgrade</code>] Apply <code>UP035</code> only on py313+ for
<code>get_type_hints()</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18476">#18476</a>)</li>
<li>[<code>pyupgrade</code>] Make fix unsafe if it deletes comments
(<code>UP004</code>,<code>UP050</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18393">#18393</a>,
<a
href="https://redirect.github.com/astral-sh/ruff/pull/18390">#18390</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>fastapi</code>] Avoid false positive for class dependencies
(<code>FAST003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18271">#18271</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update editor setup docs for Neovim and Vim (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18324">#18324</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Support Python 3.14 template strings (t-strings) in formatter and
parser (<a
href="https://redirect.github.com/astral-sh/ruff/pull/17851">#17851</a>)</li>
</ul>
<h2>Contributors</h2>
<ul>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
<li><a
href="https://github.com/BurntSushi"><code>@​BurntSushi</code></a></li>
<li><a
href="https://github.com/InSyncWithFoo"><code>@​InSyncWithFoo</code></a></li>
<li><a href="https://github.com/Lee-W"><code>@​Lee-W</code></a></li>
<li><a
href="https://github.com/MatthewMckee4"><code>@​MatthewMckee4</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a href="https://github.com/Viicos"><code>@​Viicos</code></a></li>
<li><a
href="https://github.com/abhijeetbodas2001"><code>@​abhijeetbodas2001</code></a></li>
<li><a href="https://github.com/carljm"><code>@​carljm</code></a></li>
<li><a
href="https://github.com/chirizxc"><code>@​chirizxc</code></a></li>
<li><a
href="https://github.com/dcreager"><code>@​dcreager</code></a></li>
<li><a
href="https://github.com/dhruvmanila"><code>@​dhruvmanila</code></a></li>
<li><a href="https://github.com/dylwil3"><code>@​dylwil3</code></a></li>
<li><a
href="https://github.com/github-actions"><code>@​github-actions</code></a></li>
<li><a
href="https://github.com/ibraheemdev"><code>@​ibraheemdev</code></a></li>
<li><a
href="https://github.com/lipefree"><code>@​lipefree</code></a></li>
<li><a href="https://github.com/mtshiba"><code>@​mtshiba</code></a></li>
<li><a
href="https://github.com/naslundx"><code>@​naslundx</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/otakutyrant"><code>@​otakutyrant</code></a></li>
<li><a
href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li><a
href="https://github.com/robsdedude"><code>@​robsdedude</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.11.13</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>airflow</code>] Add unsafe fix for module moved cases
(<code>AIR301</code>,<code>AIR311</code>,<code>AIR312</code>,<code>AIR302</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/18367">#18367</a>,<a
href="https://redirect.github.com/astral-sh/ruff/pull/18366">#18366</a>,<a
href="https://redirect.github.com/astral-sh/ruff/pull/18363">#18363</a>,<a
href="https://redirect.github.com/astral-sh/ruff/pull/18093">#18093</a>)</li>
<li>[<code>refurb</code>] Add coverage of <code>set</code> and
<code>frozenset</code> calls (<code>FURB171</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18035">#18035</a>)</li>
<li>[<code>refurb</code>] Mark <code>FURB180</code> fix unsafe when
class has bases (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18149">#18149</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>perflint</code>] Fix missing parentheses for lambda and
ternary conditions (<code>PERF401</code>, <code>PERF403</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18412">#18412</a>)</li>
<li>[<code>pyupgrade</code>] Apply <code>UP035</code> only on py313+ for
<code>get_type_hints()</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18476">#18476</a>)</li>
<li>[<code>pyupgrade</code>] Make fix unsafe if it deletes comments
(<code>UP004</code>,<code>UP050</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18393">#18393</a>,
<a
href="https://redirect.github.com/astral-sh/ruff/pull/18390">#18390</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>fastapi</code>] Avoid false positive for class dependencies
(<code>FAST003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18271">#18271</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update editor setup docs for Neovim and Vim (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18324">#18324</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Support Python 3.14 template strings (t-strings) in formatter and
parser (<a
href="https://redirect.github.com/astral-sh/ruff/pull/17851">#17851</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5faf72a4d9"><code>5faf72a</code></a>
Bump 0.11.13 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18484">#18484</a>)</li>
<li><a
href="28dbc5c51e"><code>28dbc5c</code></a>
[ty] Fix completion order in playground (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18480">#18480</a>)</li>
<li><a
href="ce216c79cc"><code>ce216c7</code></a>
Remove <code>Message::to_rule</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18447">#18447</a>)</li>
<li><a
href="33468cc8cc"><code>33468cc</code></a>
[<code>pyupgrade</code>] Apply <code>UP035</code> only on py313+ for
<code>get_type_hints()</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18476">#18476</a>)</li>
<li><a
href="8531f4b3ca"><code>8531f4b</code></a>
[ty] Add infrastructure for AST garbage collection (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18445">#18445</a>)</li>
<li><a
href="55100209c7"><code>5510020</code></a>
[ty] IDE: add support for <code>object.\&lt;CURSOR&gt;</code>
completions (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18468">#18468</a>)</li>
<li><a
href="c0bb83b882"><code>c0bb83b</code></a>
[<code>perflint</code>] fix missing parentheses for lambda and ternary
conditions (PERF4...</li>
<li><a
href="74a4e9af3d"><code>74a4e9a</code></a>
Combine lint and syntax error handling (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18471">#18471</a>)</li>
<li><a
href="8485dbb324"><code>8485dbb</code></a>
[ty] Fix <code>--python</code> argument for Windows, and improve error
messages for bad ...</li>
<li><a
href="0858896bc4"><code>0858896</code></a>
[ty] type narrowing by attribute/subscript assignments (<a
href="https://redirect.github.com/astral-sh/ruff/issues/18041">#18041</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.11.12...0.11.13">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-08 19:58:00 +00:00
dependabot[bot]
42e141012f chore(backend/deps): Bump the production-dependencies group across 1 directory with 20 updates (#10242)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-07-08 19:20:28 +00:00
Nicholas Tindle
b7f9dcf419 fix(backend): add back perplexity_llama (#10327)
<!-- Clearly explain the need for these changes: -->

We flew too close to the sun

### Changes 🏗️
adds back perplexity due to the need to remove it after it has already
been migrated not before or the system will automatically migrate it to
a different model so that it is one that exists

<!-- Concisely describe all of the changes made in this pull request:
-->

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] tested locally; no impact since we are simply re-enabling it
2025-07-08 16:14:56 +00:00
Toran Bruce Richards
a4ff8402f1 feat(backend): add Perplexity Sonar models (#10326)
<!-- Clearly explain the need for these changes: -->
Adds the latest Perplexity Sonar models from OpenRouter and removes the
decommissioned Sonar Large model.

### Changes 🏗️
- Added constants for `perplexity/sonar`, `perplexity/sonar-pro`, and
`perplexity/sonar-deep-research` in the `LlmModel` enum​
- Included metadata entries for the new models
- Mapped the new models in the cost configuration with their respective
pricing tiers
- Removed the outdated Sonar Large model

### Checklist 📋
#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] `poetry run format`
  - [x] `poetry run test` 

#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
2025-07-08 14:08:06 +00:00
Zamil Majdy
5ff6d2ca56 fix(backend): Fix stop graph response on already stopped graph 2025-07-08 09:49:17 +08:00
Zamil Majdy
02d3b42745 fix(backend;frontend): Add auto-type convertion support for optional types (#10325)
Auto type conversion doesn't work on optional type.

To reproduce:
<img width="981" alt="image"
src="https://github.com/user-attachments/assets/92198d32-bce9-44fd-a9b0-b7b431aec3ba"
/>

Use the AgentNumberInput block and try to pass a string value to the
sub-agent that uses it.


### Changes 🏗️

Added optional type auto conversation support.

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Try to convert string to optional[int]
2025-07-08 08:20:13 +07:00
Zamil Majdy
171deea806 feat(block): Added best-effort support of multiple/parallel tool calls for SmartDecisionMaker Block 2025-07-04 10:19:09 -07:00