mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-15 01:58:23 -05:00
ntindle-patch-2-1
7209 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
4f904c296b | ci: Modify Claude's system prompt in dependabot workflow | ||
|
|
ce24975a9d |
fix(backend): Unbreak get_webhook query (#10850)
- Resolves #10849 ### Changes 🏗️ - Use `AGENT_PRESET_INCLUDE` in `INTEGRATION_WEBHOOK_INCLUDE` so the `AgentPreset.from_db(..)` doesn't break ### 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] Webhook ingress works |
||
|
|
75c90e49ce |
feat(blocks): add AI Image Customizer block using Googles Nano Banana (#10845)
Add new AutoGPT Platform Block that uses google/gemini-2.5-flash-image model via Replicate API. Features: - Text prompt input for image generation - Optional list of image URLs as input - Configurable output format (jpg/png, defaults to png) - Single model option: google/gemini-2.5-flash-image - Returns image_url output for generated images Fixes #10815 🤖 Generated with [Claude Code](https://claude.ai/code) ### 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 the AI image customizer block and upload 2 images to see if it uses them in the image generation/edits <img width="1536" height="672" alt="tmprhzqasxz" src="https://github.com/user-attachments/assets/39d7adbd-2847-4988-aeab-1c5453290174" /> --------- Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Bently <Bentlybro@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> |
||
|
|
2e38f132e7 |
feat(backend/store): implement sub-agent approval support (#10842)
## Summary Implement comprehensive sub-agent approval flow following the business requirements from the flow diagram. <img width="1956" height="1448" alt="image" src="https://github.com/user-attachments/assets/8de35e5b-9d3e-4dc2-bff0-47b49dbebc83" /> ### Key Features - ✅ **Auto-approve sub-agents** when main agent is approved - ✅ **Handle all scenarios**: new listings, existing versions, missing versions - ✅ **Transaction safety** with atomic operations via database transactions - ✅ **Parallel processing** using asyncio.gather for performance optimization - ✅ **Hidden from store** with isAvailable=false for all sub-agents ### Implementation Details - **Replaced** `_get_missing_sub_store_listing` with comprehensive `_handle_sub_agent_approvals` - **Added** `_approve_sub_agent` function with early returns for clean, readable code flow - **Used** `transaction()` context manager to ensure data consistency across operations - **Process sub-agents in parallel** while maintaining transaction integrity ### Business Logic Flow 1. **Check if sub-agent is already listed** in store 2. **If not listed**: create new store listing with `isAvailable=false` 3. **If listed but not approved**: approve the correct version 4. **If correct version not listed**: create store listing version and approve it 5. **If already approved**: no action needed (early return) All sub-agents remain **hidden from public store** while being internally approved for system use. ## Files Changed - `backend/server/v2/store/db.py` - Core implementation of sub-agent approval logic ## Test Plan - [ ] Verify main agent approval triggers sub-agent approvals - [ ] Test all sub-agent scenarios: new, existing unapproved, existing approved - [ ] Confirm sub-agents remain hidden (`isAvailable=false`) - [ ] Validate transaction rollback on failures - [ ] Check parallel processing works correctly 🤖 Generated with [Claude Code](https://claude.ai/code) |
||
|
|
b59592be9b |
feat(ci): Claude workflow for Dependabot PR analysis (#10841)
Created workflow to analyze Dependabot PRs with Claude, including detailed dependency analysis and changelog review. <!-- Clearly explain the need for these changes: --> ### Changes 🏗️ Adds workflow for claude to do dependabot <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist 📋 #### For code changes: N/A #### For configuration changes: N/A --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Swifty <craigswift13@gmail.com> |
||
|
|
7ea17df9ed |
chore(frontend/deps): Bump recharts from 2.15.3 to 3.1.2 in /autogpt_platform/frontend (#10807)
Bumps [recharts](https://github.com/recharts/recharts) from 2.15.3 to 3.1.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.1.2</h2> <h2>What's Changed</h2> <h3>Fix</h3> <ul> <li><code>Label/Polar Charts</code>: <code>Label</code> viewbox should now be present in polar charts and address <a href="https://redirect.github.com/recharts/recharts/issues/6030">recharts/recharts#6030</a> by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6180">recharts/recharts#6180</a></li> <li>Add LRU cache for string size measurements (<a href="https://redirect.github.com/recharts/recharts/issues/3955">#3955</a>) by <a href="https://github.com/shreedharbhat98"><code>@shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6176">recharts/recharts#6176</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.1.1...v3.1.2">https://github.com/recharts/recharts/compare/v3.1.1...v3.1.2</a></p> <h2>v3.1.1</h2> <h2>What's Changed</h2> <h3>Fix</h3> <ul> <li><code>General</code>: Don't apply duplicate IDs in the DOM by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6111">recharts/recharts#6111</a></li> <li><code>Stacked Area/Bar</code>: give all graphical items their own unique identifier and use that to select stacked data. Fixes issue where stacked charts could not be created from the graphical item <code>data</code> prop <a href="https://redirect.github.com/recharts/recharts/issues/6073">recharts/recharts#6073</a> by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a></li> <li><code>Stacked Area/Bar</code>: exclude stacked axis domain when not relevant for axis by <a href="https://github.com/rinkstiekema"><code>@rinkstiekema</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6162">recharts/recharts#6162</a> fixes issue where numeric stacked charts would not render correctly</li> <li><code>Area Chart</code>: ranged area chart - show active dot on both points instead of just the top one by <a href="https://github.com/sroy8091"><code>@sroy8091</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6116">recharts/recharts#6116</a> fixes <a href="https://redirect.github.com/recharts/recharts/issues/6080">#6080</a></li> <li><code>Polar Charts/Label</code>: fix <code>Label</code> in polar charts by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6126">recharts/recharts#6126</a></li> <li><code>Scatter/ErrorBar</code>: choose implicit Scatter ErrorBar direction based on chart layout (to be the same as 2.x) by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6159">recharts/recharts#6159</a></li> <li><code>X/YAxis/Reference Components</code>: allow axis values and reference items to render when there is no data but there is a domain/explicit ticks set by <a href="https://github.com/ethphan"><code>@ethphan</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6161">recharts/recharts#6161</a></li> <li><code>X/YAxis</code>: pass axis padding info to custom tick components by <a href="https://github.com/shreedharbhat98"><code>@shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6163">recharts/recharts#6163</a></li> </ul> <h3>Chore / Testing</h3> <ul> <li>good progress on our journey to enable <code>strictNullChecks</code></li> <li>addition of playwright visual regression tests to CI</li> <li>split <code>Animate</code> into <code>JavascriptAnimate</code> and <code>CSSTransitionAnimate</code> by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6175">recharts/recharts#6175</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/sroy8091"><code>@sroy8091</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/6116">recharts/recharts#6116</a></li> <li><a href="https://github.com/ethphan"><code>@ethphan</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/6161">recharts/recharts#6161</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.1.0...v3.1.1">https://github.com/recharts/recharts/compare/v3.1.0...v3.1.1</a></p> <h2>v3.1.0</h2> <h2>What's Changed</h2> <p>Bug fixes (old and new) and a few new hooks post 3.0 launch!</p> <h3>Feat</h3> <p>More hooks!</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
22e692bdda |
fix(frontend): Update in-view run with real-time updates (#10839)
- Resolves #10838 ### Changes 🏗️ - Update `selectedRun` with received graph execution update if applicable ### 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] Agent outputs appear in real-time |
||
|
|
901e9eba5d |
feat(frontend): Enhanced output rendering system for agent runs (#10819)
## Summary Introduces a modular, extensible output renderer system supporting multiple content types (text, code, images, videos, JSON, markdown) for agent run outputs. The system includes smart clipboard operations, concatenated downloads, and rich markdown rendering with LaTeX math and video embedding support. ## Changes 🏗️ ### Core Output Rendering System - **Added extensible renderer architecture** (`output-renderers/types.ts`) - Plugin-based system with priority ordering - Registry pattern for automatic renderer selection - Support for custom metadata and MIME types ### Output Renderers - **TextRenderer**: Plain text with proper formatting and line breaks - **CodeRenderer**: Syntax-highlighted code blocks with language detection - **JSONRenderer**: Collapsible, formatted JSON with syntax highlighting - **ImageRenderer**: Image display with support for URLs, data URIs, and file uploads - **VideoRenderer**: Embedded video player for YouTube, Vimeo, and direct video files - **MarkdownRenderer**: Rich markdown with: - GitHub Flavored Markdown (tables, task lists, strikethrough) - LaTeX math rendering via KaTeX (inline `$...$` and display `$$...$$`) - Syntax highlighting via highlight.js - Video embedding (YouTube/Vimeo URLs auto-convert to embeds) - Clickable heading anchors - Dark mode support ### User Interface Components - **OutputItem**: Individual output display with renderer selection - **OutputActions**: Hover-based action buttons for: - Copy to clipboard with smart MIME type detection - Download with intelligent concatenation (text files merge, binaries separate) - Share functionality (placeholder for future implementation) - **AgentRunOutputView**: Main output view component with feature flag integration ### Clipboard & Download Features - Smart clipboard operations using native ClipboardItem API - MIME type detection and browser capability checking - Fallback strategies for unsupported content types - Concatenated downloads for text-based outputs - Individual downloads for binary content ### Feature Flag Integration - Added `ENABLE_ENHANCED_OUTPUT_HANDLING` flag to LaunchDarkly - Backwards compatible with existing output display - Graceful fallback for disabled feature flag ### Styling & UX - Max width constraints (950px card, 660px content) - Hover-based action buttons for clean interface - Dark mode support across all renderers - Responsive design for various content types - Loading states and error handling ## Test Plan 📋 ### 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 Scenarios: - [x] **Basic Output Rendering** - [x] Execute agent with text output - verify proper formatting - [x] Execute agent with JSON output - verify collapsible tree view - [x] Execute agent with code output - verify syntax highlighting - [x] **Rich Content** - [x] Test markdown rendering with headers, lists, tables - [x] Test LaTeX math expressions (inline and display) - [x] Test code blocks within markdown - [x] Test task lists and strikethrough - [x] **Media Handling** - [x] Upload and display PNG/JPEG images - [x] Test video URL embedding (YouTube/Vimeo) - [x] Test direct video file playback - [x] **Clipboard Operations** - [x] Copy plain text output - [x] Copy formatted code - [x] Copy JSON data - [x] Copy markdown content - [x] Verify fallback for unsupported MIME types - [x] **Download Functionality** - [x] Download single text output - [x] Download multiple text outputs (verify concatenation) - [x] Download mixed content (verify separate files) - [x] Download images and binary content - [x] **Feature Flag** - [x] Enable flag - verify enhanced rendering - [x] Disable flag - verify fallback to original view - [x] Check backwards compatibility - [x] **Edge Cases** - [x] Large JSON objects (performance) - [x] Very long text outputs - [x] Mixed content types in single run - [x] Malformed markdown - [x] Invalid video URLs ## Dependencies Added - `react-markdown` (9.0.3) - Already present - `remark-gfm` (4.0.1) - GitHub Flavored Markdown - `remark-math` (6.0.0) - LaTeX math support - `rehype-katex` (7.0.1) - Math rendering - `katex` (0.16.22) - Math typesetting - `rehype-highlight` (7.0.2) - Syntax highlighting - `highlight.js` (11.11.1) - Highlighting library - `rehype-slug` (6.0.0) - Heading anchors - `rehype-autolink-headings` (7.1.0) - Clickable headings ## Notes - Mermaid diagram support was attempted but removed due to compatibility issues - Share functionality is stubbed out for future implementation - PNG file upload rendering issue has logging in place for debugging - All components follow existing UI patterns and use Tailwind CSS ## Screenshots <img width="1656" height="1250" alt="image" src="https://github.com/user-attachments/assets/af7542fe-db89-4521-aaf5-19e33d48a409" /> ## Related Issues - Implements SECRT-1209 --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle <ntindle@users.noreply.github.com> |
||
|
|
bbd6709bd6 |
chore(backend/deps): Bump cryptography from 43.0.3 to 45.0.7 in /autogpt_platform/backend (#10810)
Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.3 to 45.0.7. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's changelog</a>.</em></p> <blockquote> <p>45.0.7 - 2025-09-01</p> <pre><code> * Added a function to support an upcoming ``pyOpenSSL`` release. <p>.. _v45-0-6:</p> <p>45.0.6 - 2025-08-05<br /> </code></pre></p> <ul> <li>Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.</li> </ul> <p>.. _v45-0-5:</p> <p>45.0.5 - 2025-07-02</p> <pre><code> * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1. <p>.. _v45-0-4:</p> <p>45.0.4 - 2025-06-09<br /> </code></pre></p> <ul> <li>Fixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not considered secure, and is supported only for backwards compatibility.)</li> </ul> <p>.. _v45-0-3:</p> <p>45.0.3 - 2025-05-25</p> <pre><code> * Fixed decrypting PKCS#8 files encrypted with long salts (this impacts keys encrypted by Bouncy Castle). * Fixed decrypting PKCS#8 files encrypted with DES-CBC-MD5. While wildly insecure, this remains prevalent. <p>.. _v45-0-2:</p> <p>45.0.2 - 2025-05-17<br /> </code></pre></p> <ul> <li>Fixed using <code>mypy</code> with <code>cryptography</code> on older versions of Python.</li> </ul> <p>.. _v45-0-1:</p> <p>45.0.1 - 2025-05-17</p> <pre><code> * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.0. </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3ec1721d6d |
chore(libs/deps-dev): Bump ruff from 0.12.9 to 0.12.11 in /autogpt_platform/autogpt_libs in the development-dependencies group (#10804)
Bumps the development-dependencies group in /autogpt_platform/autogpt_libs with 1 update: [ruff](https://github.com/astral-sh/ruff). Updates `ruff` from 0.12.9 to 0.12.11 <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.12.11</h2> <h2>Release Notes</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Extend <code>AIR311</code> and <code>AIR312</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/20082">#20082</a>)</li> <li>[<code>airflow</code>] Replace wrong path <code>airflow.io.storage</code> with <code>airflow.io.store</code> (<code>AIR311</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20081">#20081</a>)</li> <li>[<code>flake8-async</code>] Implement <code>blocking-http-call-httpx-in-async-function</code> (<code>ASYNC212</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20091">#20091</a>)</li> <li>[<code>flake8-logging-format</code>] Add auto-fix for f-string logging calls (<code>G004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19303">#19303</a>)</li> <li>[<code>flake8-use-pathlib</code>] Add autofix for <code>PTH211</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20009">#20009</a>)</li> <li>[<code>flake8-use-pathlib</code>] Make <code>PTH100</code> fix unsafe because it can change behavior (<a href="https://redirect.github.com/astral-sh/ruff/pull/20100">#20100</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>pyflakes</code>, <code>pylint</code>] Fix false positives caused by <code>__class__</code> cell handling (<code>F841</code>, <code>PLE0117</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20048">#20048</a>)</li> <li>[<code>pyflakes</code>] Fix <code>allowed-unused-imports</code> matching for top-level modules (<code>F401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20115">#20115</a>)</li> <li>[<code>ruff</code>] Fix false positive for t-strings in <code>default-factory-kwarg</code> (<code>RUF026</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20032">#20032</a>)</li> <li>[<code>ruff</code>] Preserve relative whitespace in multi-line expressions (<code>RUF033</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19647">#19647</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>ruff</code>] Handle empty t-strings in <code>unnecessary-empty-iterable-within-deque-call</code> (<code>RUF037</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20045">#20045</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix incorrect <code>D413</code> links in docstrings convention FAQ (<a href="https://redirect.github.com/astral-sh/ruff/pull/20089">#20089</a>)</li> <li>[<code>flake8-use-pathlib</code>] Update links to the table showing the correspondence between <code>os</code> and <code>pathlib</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20103">#20103</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/Avasam"><code>@Avasam</code></a></li> <li><a href="https://github.com/BurntSushi"><code>@BurntSushi</code></a></li> <li><a href="https://github.com/Gankra"><code>@Gankra</code></a></li> <li><a href="https://github.com/Glyphack"><code>@Glyphack</code></a></li> <li><a href="https://github.com/JelleZijlstra"><code>@JelleZijlstra</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/PrettyWood"><code>@PrettyWood</code></a></li> <li><a href="https://github.com/Renkai"><code>@Renkai</code></a></li> <li><a href="https://github.com/TaKO8Ki"><code>@TaKO8Ki</code></a></li> <li><a href="https://github.com/amyreese"><code>@amyreese</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/danparizher"><code>@danparizher</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/hamirmahal"><code>@hamirmahal</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.12.11</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Extend <code>AIR311</code> and <code>AIR312</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/20082">#20082</a>)</li> <li>[<code>airflow</code>] Replace wrong path <code>airflow.io.storage</code> with <code>airflow.io.store</code> (<code>AIR311</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20081">#20081</a>)</li> <li>[<code>flake8-async</code>] Implement <code>blocking-http-call-httpx-in-async-function</code> (<code>ASYNC212</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20091">#20091</a>)</li> <li>[<code>flake8-logging-format</code>] Add auto-fix for f-string logging calls (<code>G004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19303">#19303</a>)</li> <li>[<code>flake8-use-pathlib</code>] Add autofix for <code>PTH211</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20009">#20009</a>)</li> <li>[<code>flake8-use-pathlib</code>] Make <code>PTH100</code> fix unsafe because it can change behavior (<a href="https://redirect.github.com/astral-sh/ruff/pull/20100">#20100</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>pyflakes</code>, <code>pylint</code>] Fix false positives caused by <code>__class__</code> cell handling (<code>F841</code>, <code>PLE0117</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20048">#20048</a>)</li> <li>[<code>pyflakes</code>] Fix <code>allowed-unused-imports</code> matching for top-level modules (<code>F401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20115">#20115</a>)</li> <li>[<code>ruff</code>] Fix false positive for t-strings in <code>default-factory-kwarg</code> (<code>RUF026</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20032">#20032</a>)</li> <li>[<code>ruff</code>] Preserve relative whitespace in multi-line expressions (<code>RUF033</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19647">#19647</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>ruff</code>] Handle empty t-strings in <code>unnecessary-empty-iterable-within-deque-call</code> (<code>RUF037</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20045">#20045</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix incorrect <code>D413</code> links in docstrings convention FAQ (<a href="https://redirect.github.com/astral-sh/ruff/pull/20089">#20089</a>)</li> <li>[<code>flake8-use-pathlib</code>] Update links to the table showing the correspondence between <code>os</code> and <code>pathlib</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20103">#20103</a>)</li> </ul> <h2>0.12.10</h2> <h3>Preview features</h3> <ul> <li>[<code>flake8-simplify</code>] Implement fix for <code>maxsplit</code> without separator (<code>SIM905</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19851">#19851</a>)</li> <li>[<code>flake8-use-pathlib</code>] Add fixes for <code>PTH102</code> and <code>PTH103</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/19514">#19514</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>isort</code>] Handle multiple continuation lines after module docstring (<code>I002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19818">#19818</a>)</li> <li>[<code>pyupgrade</code>] Avoid reporting <code>__future__</code> features as unnecessary when they are used (<code>UP010</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19769">#19769</a>)</li> <li>[<code>pyupgrade</code>] Handle nested <code>Optional</code>s (<code>UP045</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19770">#19770</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pycodestyle</code>] Make <code>E731</code> fix unsafe instead of display-only for class assignments (<a href="https://redirect.github.com/astral-sh/ruff/pull/19700">#19700</a>)</li> <li>[<code>pyflakes</code>] Add secondary annotation showing previous definition (<code>F811</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19900">#19900</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix description of global config file discovery strategy (<a href="https://redirect.github.com/astral-sh/ruff/pull/19188">#19188</a>)</li> <li>Update outdated links to <a href="https://typing.python.org/en/latest/source/stubs.html">https://typing.python.org/en/latest/source/stubs.html</a> (<a href="https://redirect.github.com/astral-sh/ruff/pull/19992">#19992</a>)</li> <li>[<code>flake8-annotations</code>] Remove unused import in example (<code>ANN401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20000">#20000</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8c8a2ab0c2 |
feat(blocks): Add Bannerbear API block for text overlay on images (#10768)
## Summary - Implemented a new Bannerbear API block that enables adding text overlays to images using template designs - Block supports customizable text styling (color, font, size, weight, alignment) - Always uses synchronous API mode for immediate image generation results [agent_ead942d9-58a2-4be6-bdb3-99010c489466.json](https://github.com/user-attachments/files/22027352/agent_ead942d9-58a2-4be6-bdb3-99010c489466.json) <img width="140" height="572" alt="Screenshot 2025-08-28 at 16 28 35" src="https://github.com/user-attachments/assets/096b532b-31dc-4ca6-bd68-c00b7594426c" /> ## Features - **Text overlay capabilities**: Add multiple text layers to images using Bannerbear templates - **Customizable styling**: Support for color, font family, font size, font weight, and text alignment - **Image support**: Optional ability to add images to templates - **Smart field handling**: Only sends non-empty optional parameters to the API - **Webhook & metadata**: Advanced options for webhook notifications and custom metadata ## Implementation Details - Created provider configuration with API key authentication - Implemented `BannerbearTextOverlayBlock` with proper input/output schemas - Extracted API calls to private method `_make_api_request()` for test mocking support - Follows SDK guide patterns and integrates with AutoGPT platform ## Use Case This block will be used in the Ad generator agent for creating dynamic marketing materials and social media graphics with text overlays. ## Test plan - [x] Block imports successfully - [x] Block instantiates with unique ID - [x] Code passes linting and formatting checks - [x] Manual testing with actual Bannerbear API key - [x] Integration testing with Ad generator agent |
||
|
|
4041e1f39c |
feat(backend/infra): Cleanup platform and db docker compose files (#10830)
Supabase `db/docker/docker-compose.yml` overrides env vars set in `autogpt_platform/.env` file. This PR fixes that and simplifies the compose files further. ### Changes 🏗️ `autogpt_platform/docker-compose.platform.yml`: - Move hardcoded `DATABASE_URL` and `DIRECT_URL` to `x-backend-env` on top as it repeats for most services. - Remove `RABBITMQ_DEFAULT_USER` and `RABBITMQ_DEFAULT_PASS` from `rabbitmq` service and use env files instead `autogpt_platform/db/docker/docker-compose.yml`: - Remove hardcoded env vars from `x-supabase-env` - these are already defined in `.env` - Remove env vars from services that are already defined in `.env` files *Changes to db compose file only affect self-hosted Supabase* ### 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] Platform, db works when self-hosting |
||
|
|
7cbdc1ad1a |
security(frontend): Upgrade next from 15.4.6 to 15.4.7 (#10820)
 ### Snyk has created this PR to fix 1 vulnerabilities in the yarn dependencies of this project. #### Snyk changed the following file(s): - `autogpt_platform/frontend/package.json` #### Note for [zero-installs](https://yarnpkg.com/features/zero-installs) users If you are using the Yarn feature [zero-installs](https://yarnpkg.com/features/zero-installs) that was introduced in Yarn V2, note that this PR does not update the `.yarn/cache/` directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to run `yarn` to update the contents of the `./yarn/cache` directory. If you are not using zero-install you can ignore this as your flow should likely be unchanged. <details> <summary>⚠️ <b>Warning</b></summary> ``` Failed to update the yarn.lock, please update manually before merging. ``` </details> #### Vulnerabilities that will be fixed with an upgrade: | | Issue | :-------------------------:|:-------------------------  | Server-side Request Forgery (SSRF) <br/>[SNYK-JS-NEXT-12299318](https://snyk.io/vuln/SNYK-JS-NEXT-12299318) --- > [!IMPORTANT] > > - Check the changes in this PR to ensure they won't cause issues with your project. > - Max score is 1000. Note that the real score may have changed since the PR was raised. > - This PR was automatically created by Snyk using the credentials of a real user. --- **Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._ For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjM2E3MTAxZi1mNTI2LTQxMGUtYjVkOS0wMDhmYzMxNjk0MmQiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImMzYTcxMDFmLWY1MjYtNDEwZS1iNWQ5LTAwOGZjMzE2OTQyZCJ9fQ==" width="0" height="0"/> 🧐 [View latest project report](https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr) 📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=github&utm_content=fix-pr-template) 🛠 [Adjust project settings](https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr/settings) 📚 [Read about Snyk's upgrade logic](https://docs.snyk.io/scan-with-snyk/snyk-open-source/manage-vulnerabilities/upgrade-package-versions-to-fix-vulnerabilities?utm_source=github&utm_content=fix-pr-template) --- **Learn how to fix vulnerabilities with free interactive lessons:** 🦉 [Server-side Request Forgery (SSRF)](https://learn.snyk.io/lesson/ssrf-server-side-request-forgery/?loc=fix-pr) [//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"next","from":"15.4.6","to":"15.4.7"}],"env":"prod","issuesToFix":["SNYK-JS-NEXT-12299318"],"prId":"c3a7101f-f526-410e-b5d9-008fc316942d","prPublicId":"c3a7101f-f526-410e-b5d9-008fc316942d","packageManager":"yarn","priorityScoreList":[null],"projectPublicId":"3d924968-0cf3-4767-9609-501fa4962856","projectUrl":"https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr","prType":"fix","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":["updated-fix-title","pr-warning-shown"],"type":"auto","upgrade":["SNYK-JS-NEXT-12299318"],"vulns":["SNYK-JS-NEXT-12299318"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}' --------- Co-authored-by: snyk-bot <snyk-bot@snyk.io> Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
2a19aa0ed3 |
fix(frontend/library): Show total runs count above runs list (#10832)
- Resolves #10831 ### Changes 🏗️ - Show number of total runs instead of currently loaded runs - Show loading spinner instead of zero while loading ### 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] Counter shows number of total runs, even if it exceeds number of currently loaded items |
||
|
|
6d39dfe382 |
feat(frontend): Add admin button to user profile dropdown (#10774)
<!-- Clearly explain the need for these changes: --> ### Need 💡 This PR addresses Linear issue [OPEN-2232](https://linear.app/autogpt/issue/OPEN-2232/add-admin-pages-in-dropdown) by adding an "Admin" button to the user account dropdown menu. This button is only visible to users with an "admin" role and provides direct navigation to the admin marketplace management page, making existing admin functionalities accessible from the new UI. ### Changes 🏗️ <!-- Concisely describe all of the changes made in this pull request: --> - **Added Admin Icon**: Integrated `IconSliders` into the `IconType` enum and `getAccountMenuOptionIcon` function. - **Dynamic Menu Generation**: Introduced `getAccountMenuItems(userRole?: string)` to dynamically construct the account menu. This function conditionally adds an "Admin" menu item (linking to `/admin/marketplace`) if the `userRole` is "admin". - **Navbar Integration**: Updated `NavbarView.tsx` to utilize the `useSupabase` hook to retrieve the current user's role and then render the account menu using the new dynamic `getAccountMenuItems` function for both desktop and mobile views. ### 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] Log in as an admin user and verify the "Admin" button appears in the account dropdown. - [x] Click the "Admin" button and confirm navigation to `/admin/marketplace`. - [x] Log in as a non-admin user and verify the "Admin" button does not appear in the account dropdown. - [x] Verify all other existing menu items (e.g., "Edit profile", "Log out") function correctly for both admin and non-admin users. - [x] Test the above scenarios on both desktop and mobile views. --- Linear Issue: [OPEN-2232](https://linear.app/autogpt/issue/OPEN-2232/add-admin-pages-in-dropdown) <a href="https://cursor.com/background-agent?bcId=bc-2dceda38-31b4-4e8e-8277-fb87c8858abf"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-cursor-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-cursor-light.svg"> <img alt="Open in Cursor" src="https://cursor.com/open-in-cursor.svg"> </picture> </a> <a href="https://cursor.com/agents?id=bc-2dceda38-31b4-4e8e-8277-fb87c8858abf"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-web-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-web-light.svg"> <img alt="Open in Web" src="https://cursor.com/open-in-web.svg"> </picture> </a> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> |
||
|
|
57ecc10535 |
fix(frontend): typed inputs in new run modal (#10799)
## Changes 🏗️ ### Make the **Credentials Inputs** show up on the new Run Agent Modal <img width="450" height="784" alt="Screenshot 2025-09-02 at 00 54 19" src="https://github.com/user-attachments/assets/26ad8242-a1bc-45f6-9149-a3d207683679" /> ### Fixes on other modals... <img width="450" height="579" alt="Screenshot 2025-09-02 at 00 04 40" src="https://github.com/user-attachments/assets/fa2f9ed9-207b-4599-9e60-3e37c4be6ea9" /> <img width="450" height="579" alt="Screenshot 2025-09-02 at 00 04 44" src="https://github.com/user-attachments/assets/92e062a7-f161-423e-b6c9-f998fbdef102" /> <img width="450" height="634" alt="Screenshot 2025-09-02 at 00 47 06" src="https://github.com/user-attachments/assets/93009809-0df0-44c5-b2d2-a9aa0f501312" /> - always use buttons/inputs in small size ( _due to the tight space_ ) - use from the design system - always use pretty scrollbars - Configure [`tailwind-scrollbars`](https://github.com/adoxography/tailwind-scrollbar) for pretty scrollbars - prevent content in dialog to overflow when scrollable ### 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] Run the app locally with the new agent run modal flag enabled - [x] Check the above #### For configuration changes: None |
||
|
|
4928ce3f90 |
feat(library): Create presets from runs (#10823)
- Resolves #9307 ### Changes 🏗️ - feat(library): Create presets from runs - Prevent creating preset from run with unknown credentials - Fix running presets with credentials - Add `credential_inputs` parameter to `execute_preset` endpoint API: - Return `GraphExecutionMeta` from `*/execute` endpoints ### 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: - Go to `/library/agents/[id]` for an agent that *does not* require credentials - Click the menu on any run and select "Pin as a preset"; fill out the dialog and submit - [x] -> UI works - [x] -> Operation succeeds and dialog closes - [x] -> New preset is shown at the top of the runs list - Go to `/library/agents/[id]` for an agent that *does* require credentials - Click the menu on any run and select "Pin as a preset"; fill out the dialog and submit - [x] -> UI works - [x] -> Error toast appears with descriptive message - Initiate a new run; once finished, click "Create preset from run"; fill out the dialog and submit - [x] -> UI works - [x] -> Operation succeeds and dialog closes - [x] -> New preset is shown at the top of the runs list |
||
|
|
e16e69ca55 |
feat(library, executor): Make "Run Again" work with credentials (#10821)
- Resolves [OPEN-2549: Make "Run again" work with credentials in `AgentRunDetailsView`](https://linear.app/autogpt/issue/OPEN-2549/make-run-again-work-with-credentials-in-agentrundetailsview) - Resolves #10237 ### Changes 🏗️ - feat(frontend/library): Make "Run Again" button work for runs with credentials - feat(backend/executor): Store passed-in credentials on `GraphExecution` ### 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: - Go to `/library/agents/[id]` for an agent with credentials inputs - Run the agent manually - [x] -> runs successfully - [x] -> "Run again" shows among the action buttons on the newly created run - Click "Run again" - [x] -> runs successfully |
||
|
|
f669db4a10 |
fix(frontend): prevent using mock feature flags (#10792)
## Changes 🏗️ Make sure `NEXT_PUBLIC_PW_TEST` is set only when running Playwright. This forces the app to use "mock" feature flags, so the tests run stable and predictable despite changes on LaunchDarkly. ## 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] should not have `PW_TEST=true` ... ### For configuration changes: None |
||
|
|
0e755a5c85 |
feat(platform/library): Support UX for manual-setup triggers (#10309)
- Resolves #10234 ### Preview #### Manual setup triggers   #### Auto-setup triggers  ### Changes 🏗️ - Add "Trigger status" section to `AgentRunDraftView` - Add `AgentPreset.webhook`, so we can show webhook URL in library - Add `AGENT_PRESET_INCLUDE` to `backend.data.includes` - Add `BaseGraph.trigger_setup_info` (computed field) - Rename `LibraryAgentTriggerInfo` to `GraphTriggerInfo`; move to `backend.data.graph` Refactor: - Move contents of `@/components/agents/` to `@/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/` - Fix small type difference between legacy & generated `LibraryAgent.image_url` ### 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] Setting up GitHub trigger works - [x] Setting up manual trigger works - [x] Enabling/disabling manual trigger through Library works |
||
|
|
dfdc71f97f |
feat(backend/external-api): Make API key auth work in Swagger UI (#10783)
 - Resolves #10782 ### Changes 🏗️ - Use `Security(..)` for security dependencies - Minor tweaks to auth mechanism (similar to #10720) ### 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] API key auth feature appears in Swagger UI - [ ] API key auth *works* in Swagger UI (@ntindle wanna test this?) |
||
|
|
def008408c |
feat(frontend): Preserve openapi.json spec file on generation failure (#10791)
`openapi.json` file is cleared when script fails to retrieve api spec from the server. This shouldn't happen and it breaks building docker containers. ### Changes 🏗️ Use temp file during generation to prevent actual file clearing on failure. ### 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] Spec file doesn't get cleared on failure - [x] Spec file is correctly generated - [x] Works when frontend is run in docker container |
||
|
|
916d0adabb |
feat(frontend): Add graph search functionality to builder (#10776)
## Summary - Added search functionality to find nodes in the graph by block type, node ID, and input/output names - Search icon added to both new and old control panels - Implemented node highlighting on hover and navigation on click https://github.com/user-attachments/assets/8cc69186-5582-446d-b2cd-601de992144f ## Changes - Created `GraphSearchMenu` component for the new control panel - Created `GraphSearchControl` component for the old control panel - Added `GraphSearchContent` component with search UI similar to BlockMenu - Implemented `useGraphSearch` hook with fuzzy search logic - Added node highlighting without viewport movement on hover - Added node navigation with centering and highlighting on selection ## Features - Search by block type name, node ID, or input/output field names - Real-time filtering with keyboard navigation support - Visual feedback with node highlighting on hover - Click to navigate and center on selected node - Consistent styling with BlockMenu including category colors - Works in both old and new control panels ## Test plan - [x] Test search functionality in both old and new control panels - [x] Verify search by block type name works - [x] Verify search by node ID works - [x] Verify search by input/output names works - [x] Test keyboard navigation (arrow keys and enter) - [x] Verify node highlighting on hover - [x] Verify node navigation on click - [x] Check popover alignment with control panel top |
||
|
|
417ee7f0e1 |
feat(frontend): redesign-block-menu-part-2 (#10793)
In this PR, I have added: - a search input - conditional rendering of the search page and the default page - a sidebar for the default page (with the correct data) ### Screenshot <img width="1512" height="982" alt="Screenshot 2025-09-01 at 12 28 34 PM" src="https://github.com/user-attachments/assets/891ab99f-dde5-47b8-a980-a700845f10c2" /> #### Checklist: - [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] Everything works perfectly locally. |
||
|
|
ae4c9897b4 |
refactor(frontend): Revamp marketplace agent page data fetching and structure (#10756)
- Updated the agent page to utilize React Query for data fetching,
improving performance and reliability.
- Removed legacy API calls and integrated prefetching for creator
details and agents.
- Introduced a new MainAgentPage component for better separation of
concerns.
- Added a hydration boundary for managing server state.
> It’s important to note that I haven’t changed any UI in this, as it’s
out of scope for this PR.
### Checklist 📋
- [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] I have manually tested both `Add to Library` and `Download`
functions, and they are working correctly.
- [x] All fetching functions are working perfectly.
- [x] All end-to-end tests are also working correctly.
|
||
|
|
7544028b94 |
fix(frontend): use new dialog in schedule agent (#10786)
## Changes 🏗️ Should fix the issue where sometimes the schedule modal wouldn't appear when clicking on the CTA. ## 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] Set up schedules multiple times, look good on the modal gent from monitor, and confirm it executes correctly #### For configuration changes: None |
||
|
|
ad49946890 |
feat(frontend): New Run Agent Modal (2/2) (#10769)
## Changes 🏗️ <img width="400" height="821" alt="Screenshot 2025-08-28 at 23 57 41" src="https://github.com/user-attachments/assets/f5f7c0a6-0b87-4c1f-b644-3ee2ddd1db95" /> <img width="400" height="822" alt="Screenshot 2025-08-28 at 23 57 47" src="https://github.com/user-attachments/assets/120dbb60-d9e1-4a4a-a593-971badb4a97a" /> This is the final piece of work on the new **Run Agent Modal**... It is all behind a feature flag so I'm relatively comfortable is safe. The idea is to test with the team once it lands into dev to try different combinations of agent inputs / credentials and schedules... I have moved and tied a lot of the original logic around running agents. Mostly importantly, I have made all the dynamic inputs adhere to the design system. ### AI changes summary - Allow to run schedules in the main modal body - Integrate and tidy old logic around dynamic run agent inputs - Integrate and tidy old logic around credentials inputs - Refactor: `<TypeBasedInputs />` to use Design System components (`atoms/Input`, `atoms/Select`, `molecules/MultiToggle`, and native date/time picker via `<Input />` using the browser's date picker ) - Added support for `type="date"` and `type="datetime-local"` to `<Input />` ( _for the above_ ) - On the `<Select />` component: - added `size` prop (`small` | `medium`). - added rich items: `icon`, `disabled`, `separator`, `onSelect`, and `renderItem` prop. - stories updated/added for size variants, icons/separators, and custom rendering. - Added and documented to the design system: - `molecules/TimePicker` + story. - `atoms/FileInput`: added `accept` and `maxFileSize` props; story documents constraints. - `atoms/Progress` stories (Basic, CustomMax, Sizes, Live) with fixed-width container. - `atoms/Switch` stories (Basic, Disabled, WithLabel). - `molecules/Dialog` story: Modal-over-Modal example. ## 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] Open Storybook and verify new/updated stories render correctly. - [x] In app, validate modals open/close correctly using DS `Dialog`. - [x] Validate DS Select rich items (icon, separator, disabled, action) behave as expected. - [x] Run lints and ensure no errors. - [x] Manually test File upload constraints (type/size) and progress. ### For configuration changes: None |
||
|
|
b333d56492 |
fix(frontend): Fix checking of Date and NaN input values (#10781)
Date values were being rejected as "empty" by the run input form.  ### Changes 🏗️ - Specifically handle `Date` type values in `isEmpty` - Specifically handle `NaN` values in `isEmpty` ### 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] Date values are no longer rejected as "empty" |
||
|
|
b23cb14e49 |
test(frontend): fix library flaky e2e test (#10764)
A test in one of my pr is failing something like… <img width="1044" height="452" alt="Screenshot 2025-08-28 at 9 39 07 AM" src="https://github.com/user-attachments/assets/9c8b8996-50a2-44c6-8a2c-c3904f07ced5" /> That’s why I fixed it. ### 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 E2E tests are now working correctly. |
||
|
|
e71a44521a |
feat(frontend): Add editable node titles with hover pencil icon (#10779)
## Summary - Adds ability to edit custom node titles by clicking a pencil icon that appears on hover - Custom titles are saved in node metadata and persist across saves - Original node type is shown in tooltip when hovering over custom titles https://github.com/user-attachments/assets/a0a41ac9-1ffb-44c8-9e1c-f4c42e032b49 ## Changes - **CustomNode.tsx**: - Added inline title editing with pencil icon on hover - Implemented state management for title editing mode - Added tooltip to show original node type for custom titles - Prevents custom names from being copied when duplicating nodes - **useAgentGraph.tsx**: - Updated graph save/load logic to preserve metadata including custom titles - Ensures metadata persistence through all node operations ## Technical Details - Uses existing `metadata` JSON field in AgentNode model (no database changes needed) - Stores custom title in `metadata.customized_name` - Backward compatible - nodes without custom titles display normally ## Test Plan - [x] Hover over node title shows pencil icon - [x] Click pencil icon to edit title - [x] Press Enter or blur to save, Escape to cancel - [x] Custom title persists after saving graph - [x] Tooltip shows original node type when hovering over custom title - [x] Copying node doesn't copy custom name - [x] Backward compatible with existing graphs |
||
|
|
15aa091f65 |
feat(frontend): add drag and drop functionality from blocks menu to flow canvas (#10777)
Closes #1055 |
||
|
|
3e4ca19036 |
docs: Add comprehensive Block SDK guide (#10767)
## Summary - Added comprehensive Block SDK guide documenting the new SDK pattern for creating blocks - Integrated the guide into the documentation structure - Updated existing documentation to reference the new guide ## Changes - Created `docs/content/platform/block-sdk-guide.md` with detailed instructions for: - Provider configuration using `ProviderBuilder` - Block schema definition and implementation - Authentication methods (API keys, OAuth, webhooks) - Testing and validation - File organization and best practices - Updated documentation structure: - Added guide to `mkdocs.yml` navigation - Added cross-references in `new_blocks.md` - Added links in `blocks/blocks.md` overview - Updated `CLAUDE.md` with reference to the new guide ## Test plan - [ ] Documentation builds correctly with mkdocs - [ ] All internal links resolve properly - [ ] Guide examples are syntactically correct - [ ] Navigation structure is logical and accessible |
||
|
|
a595da02f7 |
chore(backend/deps-dev): bump the development-dependencies group across 1 directory with 6 updates (#10710)
Bumps the development-dependencies group with 6 updates in the /autogpt_platform/backend directory: | Package | From | To | | --- | --- | --- | | [faker](https://github.com/joke2k/faker) | `37.4.2` | `37.5.3` | | [poethepoet](https://github.com/nat-n/poethepoet) | `0.36.0` | `0.37.0` | | [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` | | [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.403` | `1.1.404` | | [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` | | [ruff](https://github.com/astral-sh/ruff) | `0.12.4` | `0.12.9` | Updates `faker` from 37.4.2 to 37.5.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/joke2k/faker/releases">faker's releases</a>.</em></p> <blockquote> <h2>Release v37.5.3</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.5.3/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.5.2</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.5.2/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.5.1</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.5.1/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.5.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.5.0/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.4.3</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.4.3/CHANGELOG.md">CHANGELOG.md</a>.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/joke2k/faker/blob/master/CHANGELOG.md">faker's changelog</a>.</em></p> <blockquote> <h3><a href="https://github.com/joke2k/faker/compare/v37.5.2...v37.5.3">v37.5.3 - 2025-07-30</a></h3> <ul> <li>Allow <code>Decimal</code> type for <code>min_value</code> and <code>max_value</code> in <code>pydecimal</code>. Thanks <a href="https://github.com/sshishov"><code>@sshishov</code></a>.</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.5.1...v37.5.2">v37.5.2 - 2025-07-30</a></h3> <ul> <li>Fix Turkish Republic National Number (TCKN) provider. Thanks <a href="https://github.com/fleizean"><code>@fleizean</code></a>.</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.5.0...v37.5.1">v37.5.1 - 2025-07-30</a></h3> <ul> <li>Fix unnatural Korean company names in <code>ko_KR</code> locale. Thanks <a href="https://github.com/r-4bb1t"><code>@r-4bb1t</code></a>.</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.4.3...v37.5.0">v37.5.0 - 2025-07-30</a></h3> <ul> <li>Add Spanish lorem provider for <code>es_ES</code>, <code>es_AR</code> and <code>es_MX</code>. Thanks <a href="https://github.com/Pandede"><code>@Pandede</code></a>.</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.4.2...v37.4.3">v37.4.3 - 2025-07-30</a></h3> <ul> <li>Fix male names in <code>sv_SE</code> locale. Thanks <a href="https://github.com/peterk"><code>@peterk</code></a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
12cdd45551 |
refactor(backend): Improve auth setup & OpenAPI generation (#10720)
Our current auth setup (`autogpt_libs.auth` + its usage) is quite inconsistent and doesn't do all of its jobs properly. The 401 responses you get when unauthenticated are not included in the OpenAPI spec, causing these to be unaccounted for in the generated frontend API client. Usage of the FastAPI dependencies supplied by `autogpt_libs.auth.depends` aren't consistently used the same way, making maintenance on these hard to oversee. API tests use many different ways to get around the auth requirement, making this also hard to maintain and oversee. This pull request aims to fix all of this and give us a consistent, clean, and self-documenting API auth implementation. - Resolves #10715 ### Changes 🏗️ - Homogenize use of `autogpt_libs.auth` security dependencies throughout the backend - Fix OpenAPI schema generation for 401 responses - Handle possible 401 responses in frontend - Tighten validation and add warnings for weak settings in `autogpt_libs.auth.config` - Increase test coverage for `autogpt_libs.auth` to 100% - Standardize auth setup for API tests - Rename `APIKeyValidator` to `APIKeyAuthenticator` and move to its own module in `backend.server` ### 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 tests for `autogpt_libs.auth` pass - [x] All tests for `backend.server` pass - [x] @ntindle does a security audit for these changes - [x] OpenAPI spec for authenticated routes is generated with the appropriate `401` response --------- Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> |
||
|
|
df3c81a7a6 |
fix(backend): Fix 4 (deprecation) warnings on startup (#10759)
Fixes these warnings on startup: ``` /home/reinier/code/agpt/AutoGPT/autogpt_platform/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_config.py:373: UserWarning: Valid config keys have changed in V2: * 'schema_extra' has been renamed to 'json_schema_extra' warnings.warn(message, UserWarning) /home/reinier/code/agpt/AutoGPT/autogpt_platform/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_config.py:323: PydanticDeprecatedSince20: Support for class-based `config` is deprecated, use ConfigDict instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.11/migration/ warnings.warn(DEPRECATION_MESSAGE, DeprecationWarning) /home/reinier/code/agpt/AutoGPT/autogpt_platform/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py:298: PydanticDeprecatedSince20: `json_encoders` is deprecated. See https://docs.pydantic.dev/2.11/concepts/serialization/#custom-serializers for alternatives. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.11/migration/ warnings.warn( /home/reinier/code/agpt/AutoGPT/autogpt_platform/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_fields.py:294: UserWarning: `alias` specification on field "created_at" must be set on outermost annotation to take effect. warnings.warn( /home/reinier/code/agpt/AutoGPT/autogpt_platform/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_fields.py:294: UserWarning: `alias` specification on field "updated_at" must be set on outermost annotation to take effect. warnings.warn( ``` - Resolves #10758 ### Changes 🏗️ - Fix field annotations in `backend/blocks/exa/websets.py` - Replace deprecated JSON encoder specification in `backend/blocks/wordpress/_api.py` by field serializer - Move deprecated `schema_extra` example specification in `backend/server/integrations/models.py` to `Field(examples=...)` The two remaining warnings that appear on start-up aren't trivial to fix. ### 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] Changes are trivial and do not require further testing |
||
|
|
0f477e2392 |
feat(frontend): new run agent modal (1/2) (#10696)
## Changes 🏗️ <img width="600" height="624" alt="Screenshot 2025-08-25 at 23 22 24" src="https://github.com/user-attachments/assets/a66b0a02-cb7a-47f3-8759-e955fb76f865" /> <img width="600" height="748" alt="Screenshot 2025-08-25 at 23 22 40" src="https://github.com/user-attachments/assets/0357bd0b-9875-41a4-8752-d7dbc7a82ff6" /> The new **Agent Run Modal**, to be used when running agents. This is PR 1/2 ( _as I learned there is so much into running agents_ 🔮 ). The first part sets up "the easy things": - the run view - the schedule run view - the switch between them - the agent details On the next PR, I will add support for the current agent run inputs ( [and all their types...](https://github.com/Significant-Gravitas/AutoGPT/blob/dev/autogpt_platform/frontend/src/components/type-based-input.tsx) 😆 ) + webhook triggers... ## 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] with the flag ON ( is now OFF in dev but ON local ) - [x] clicking `New Run` on the new library page shows the new modal - [x] Details are shown on the modal header - [x] Agent details are shown - [x] You can schedule runs ### For configuration changes: None --------- Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> |
||
|
|
b713093276 | Merge master into dev to tidy up merge history (#10753) | ||
|
|
3718b948ea |
feat(blocks): Add Ideogram V3 model (#10752)
Adds support for Ideogram V3 model while maintaining backward compatibility with existing models (V1, V1_TURBO, V2, V2_TURBO). Updates default model to V3 and implements smart API routing to handle Ideogram's new V3 endpoint requirements. Changes Made - Added V3 model support: Added V_3 to IdeogramModelName enum and set as default - Dual API endpoint handling: - V3 models route to new /v1/ideogram-v3/generate endpoint with updated payload format - Legacy models (V1, V2, Turbo variants) continue using /generate endpoint - Model-specific feature filtering: - V1 models: Basic parameters only (no style_type or color_palette support) - V2/V2_TURBO: Full legacy feature support including style_type and color_palette - V3: New endpoint with aspect ratio mapping and updated parameter structure - Aspect ratio compatibility: Added mapping between internal enum values and V3's expected format (ASPECT_1_1 → 1x1) - Updated pricing: V3 model costs 18 credits (vs 16 for other models) - Updated default usage: Store image generation now uses V3 by default Technical Details Ideogram updated their API with a separate V3 endpoint that has different requirements: - Different URL path (/v1/ideogram-v3/generate) - Different aspect ratio format (e.g., 1x1 instead of ASPECT_1_1) - Model-specific feature support (V1 models don't support style_type, etc.) The implementation intelligently routes requests to the appropriate endpoint based on the selected model while maintaining a single unified interface. I tested all the models and they are working here <img width="1804" height="887" alt="image" src="https://github.com/user-attachments/assets/9f2e44ca-50a4-487f-987c-3230dd72fb5e" /> ### 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] Test the Ideogram model block and watch as they all work! |
||
|
|
44d739386b |
feat(platform/blocks): Added stagehand integration (#10751)
Added basic stagehand integration: <img width="667" height="609" alt="Screenshot 2025-08-27 at 09 20 18" src="https://github.com/user-attachments/assets/11ab2941-0913-4346-a1d4-45980711e0f9" /> [stagehand_v35.json](https://github.com/user-attachments/files/22002924/stagehand_v35.json) ### Changes 🏗️ - Act Block - Extract Block - Observe Block ### 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] I have added a sample agent - [x] I have created an agent that uses these blocks and ensured it runs |
||
|
|
533d2d0277 |
refactor(frontend): Revamp creator page data fetching and structure (#10737)
### Changes 🏗️ - Updated the creator page to utilize React Query for data fetching, improving performance and reliability. - Removed legacy API calls and integrated prefetching for creator details and agents. - Introduced a new MainCreatorPage component for better separation of concerns. - Added a hydration boundary for managing server state. ### Checklist 📋 ### Checklist 📋 - [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 marketplace E2E tests are working. - [x] I’ve tested all the links and checked if everything renders perfectly on the marketplace page. |
||
|
|
c6821484c7 |
fix(frontend): add min-width to agent run draft view component (#10731)
- resolves - https://github.com/Significant-Gravitas/AutoGPT/issues/10618 When we have a dropdown with a large description, the actions button is moved out of the dialog box. To fix this, I’ve added a temporary solution, but in the future, we need to change the entire layout. ### Checklist 📋 - [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] Everything works perfectly locally. |
||
|
|
fecbd3042d |
fix(frontend/library): Fix new runs not appearing in list (#10750)
- Fixes #10749 ### Changes 🏗️ - Fix implementation of `useAgentRunsInfinite.upsertAgentRun(..)` ### 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] New runs appear in runs list |
||
|
|
c0172c93aa |
fix(backend/executor): prevent infinite requeueing of malformed messages (#10746)
### Changes 🏗️ This PR fixes an infinite loop issue in the execution manager where malformed or unparseable messages would be continuously requeued, causing high CPU usage and preventing the system from processing legitimate messages. **Key changes:** - Modified `_ack_message()` function to accept explicit `requeue` parameter - Set `requeue=False` for malformed/unparseable messages that cannot be fixed by retrying - Set `requeue=False` for duplicate execution attempts (graph already running) - Kept `requeue=True` for legitimate failures that may succeed on retry (e.g., temporary resource constraints, network issues) **Technical details:** The previous implementation always set `requeue=True` when rejecting messages with `basic_nack()`. This caused problematic messages to be immediately re-delivered to the consumer, creating an infinite loop for: 1. Messages with invalid JSON that cannot be parsed 2. Messages for executions that are already running (duplicates) These scenarios will never succeed regardless of how many times they're retried, so they should be rejected without requeueing to prevent resource exhaustion. ### 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 malformed messages are rejected without requeue - [x] Confirmed duplicate execution messages are rejected without requeue - [x] Ensured legitimate failures (shutdown, pool full) still requeue properly - [x] Tested that normal message processing continues to work correctly |
||
|
|
8a68e03eb1 |
feat(backend): Blocks Menu redesign backend (#10128)
Backend for the Blocks Menu Redesign. ### Changes 🏗️ - Add optional `agent_name` to the `AgentExecutorBlock` - displayed as the block name in the Builder - Include `output_schema` in the `LibraryAgent` model - Make `v2.store.db.py:get_store_agents` accept multiple creators filter - Add `api/builder` router with endpoints (and accompanying logic in `v2/builder/db` and models in `v2/builder/models`) - `/suggestions`: elements for the suggestions tab - `/categories`: categories with a number of blocks per each - `/blocks`: blocks based on category, type or provider - `/providers`: integration providers with their block counts - `/serach`: search blocks (including integrations), marketplace agents and user library agents - `/counts`: element counts for each category in the Blocks Menu. ### 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] Modified function `get_store_agents` works in existing code paths - [x] Agent executor block works - [x] New endpoints work - [x] Existing Builder menu is unaffected --------- Co-authored-by: Abhimanyu Yadav <abhimanyu1992002@gmail.com> Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> |
||
|
|
da585a34e1 |
fix(frontend): Propagate API auth errors to original requestor (#10716)
- Resolves #10713 ### Changes 🏗️ - Remove early exit in API proxy that suppresses auth errors - Remove unused `proxy-action.ts` ### 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] Publish Agent dialog works when logged out - [x] Publish Agent dialog works when logged in --------- Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> |
||
|
|
bc43d05cac |
feat(backend): Ensure database manager clients only include methods needed for their contexts (#10717)
The database manager had both sync and async clients that contained overlapping methods, including some that weren't actually used in their respective contexts. This violated the principle that each client should only expose the methods it needs. ## Problem The `DatabaseManagerClient` (sync) included `get_user_execution_summary_data`, but this method was only ever used in async contexts like the notifications system. This created unnecessary coupling and violated the design goal of having focused, context-specific clients. ## Solution After comprehensive analysis of actual method usage across the codebase: - **Removed** `get_user_execution_summary_data` from `DatabaseManagerClient` since it's only used in async contexts (notifications) - **Verified** all remaining methods on both clients are actively used in their respective contexts: - Sync client (11 methods): Used in monitoring and main execution thread - Async client (26 methods): Used in node execution, blocks, and notifications - **Maintained** the base `DatabaseManager` class with the union of all methods needed by either client ## Impact Each client now contains exactly the methods it needs for its specific usage patterns: - `DatabaseManagerClient` handles synchronous operations like monitoring and credit management - `DatabaseManagerAsyncClient` handles asynchronous operations like node execution, persistence, and notifications The change is minimal and surgical - only removing one unused method while preserving all actually-used functionality. Fixes #10658. <!-- START COPILOT CODING AGENT TIPS --> --- ✨ Let Copilot coding agent [set things up for you](https://github.com/Significant-Gravitas/AutoGPT/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: ntindle <8845353+ntindle@users.noreply.github.com> Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Reinier van der Leer <pwuts@agpt.co> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Nicholas Tindle <nicktindle@outlook.com> Co-authored-by: Bently <Github@bentlybro.com> |
||
|
|
469b1fccbb |
fix(blocks): handle invalid or empty response from MusicGen model (#10533)
Handle invalid or empty response from MusicGen model Fixes: #9145 > ⚠️ Note: This PR does not directly fix issue #9145 (failed run marked as success), but improves the validation of the URL to reduce the chances of invalid states entering the system. This is a related improvement, but not the root cause fix. ### Description During execution of the meta/musicgen model via Replicate API, the application failed with an error indicating the model returned an empty or invalid response. Although some API calls succeeded, this error showed the logic was not checking the structure and content of the result properly before processing it. PROBLEM: CONTEXT: API: Replicate MODEL: meta/musicgen:671ac645 STATUS: Failed after 3 attempts ERROR_MESSAGE: "Unexpected error: Model returned empty or invalid response" CAUSE: - The original logic did not validate result structure. - It assumed any non-null output was valid, including strings like "No output received". - This led to invalid/malformed results being passed to the frontend. ### Changes 🏗️ - Added `AIMusicGeneratorBlock` to support music generation using Meta’s MusicGen models via Replicate API. - Supports configurable inputs like prompt, model version, duration, temperature, top_k/p, and normalization. - Uses robust retry logic for reliability. - Output returns audio URL; errors return user-friendly message. BEFORE_CODE: | ``` if result and result != "No output received": yield "result", result return ``` AFTER_CODE: | ``` if result and isinstance(result, str) and result.startswith("http"): yield "result", result return ``` ### Checklist 📋 #### For code changes: - [x] Clearly listed changes in the PR description - [x] Added test plan and mock outputs - [x] Tested with various prompts and confirmed working output ### Test Plan - [x] Ran locally with valid Replicate API key - [x] Generated audio with different prompts - [x] Simulated failure to verify retry and error message --------- Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> |
||
|
|
1aa7e10cbd |
feat(AM): fix moderation id message (#10733)
this fixes and makes the moderation message properly show the moderation
ID
### 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 trigger moderation and have it shows the moderation id in the
error message
|
||
|
|
890bb3b8b4 |
feat(backend): implement low balance and insufficient funds notifications (#10656)
Co-authored-by: SwiftyOS <craigswift13@gmail.com> Co-authored-by: Claude <claude@users.noreply.github.com> Co-authored-by: majdyz <zamil@agpt.co> |
||
|
|
2bb8e91040 |
feat(backend): Add user timezone support to backend (#10707)
Co-authored-by: Swifty <craigswift13@gmail.com> resolve issue #10692 where scheduled time and actual run |