mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-08 06:44:05 -05:00
master
7694 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7dc3b201b7 |
feat(platform): Explain None Message in BlockError Messages (#11490)
Sometime block errors are raised with message set as None, we now handle
this case
### Changes 🏗️
- handle case of None message
- Add tests
### 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] write unit tests
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Ensure `BlockExecutionError` and `BlockUnknownError` provide default
messages when given None/empty input, with new unit tests covering
formatting and inheritance.
>
> - **Backend**:
> - `backend/util/exceptions.py`:
> - `BlockExecutionError`: default `None` message to `"Output error was
None"`.
> - `BlockUnknownError`: default empty/`None` message to `"Unknown error
occurred"`.
> - **Tests**:
> - `backend/util/exceptions_test.py`: add tests for message formatting,
`None`/empty handling, and exception inheritance.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
|
||
|
|
7d53c0de27 |
fix(backend): Fix Youtube blocking our cloud ips (#11456)
Youtube can blocks cloud ips causing the youtube transcribe blocks to
not work. This PR adds webshare proxy to get around this issue
### Changes 🏗️
- add webshare proxy to youtube transcribe 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:
<!-- Put your test plan here: -->
- [x] I have tested this works locally using the proxy
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Routes YouTube transcript fetching through Webshare proxy using
user/password credentials, wiring in provider enum, settings, default
credentials, and updated tests.
>
> - **Blocks** (`backend/blocks/youtube.py`):
> - Use `WebshareProxyConfig` with `YouTubeTranscriptApi` to fetch
transcripts via proxy.
> - Add `credentials` input (`user_password` for `webshare_proxy`);
include test credentials and mocks.
> - Update method signatures: `get_transcript(video_id, credentials)`
and `run(..., *, credentials, ...)`.
> - Change description to indicate proxy usage; add logging.
> - **Integrations**:
> - Providers (`backend/integrations/providers.py`): add
`ProviderName.WEBSHARE_PROXY`.
> - Credentials store (`backend/integrations/credentials_store.py`): add
`webshare_proxy` `UserPasswordCredentials`; include in
`DEFAULT_CREDENTIALS` and conditionally in `get_all_creds`.
> - **Settings** (`backend/util/settings.py`): add secrets
`webshare_proxy_username` and `webshare_proxy_password`.
> - **Tests** (`test/blocks/test_youtube.py`): update to pass
credentials and assert proxy config; add custom-credentials test; adjust
fallback/priority tests.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
|
||
|
|
0728f3bd49 |
fix(backend): Remove Google Sheets API scopes from block inputs (#11484)
Eliminates explicit Google Sheets API scopes from credentials fields in all Google Sheets-related blocks. This change may be intended to centralize or dynamically manage API scopes elsewhere, simplifying block configuration. <!-- Clearly explain the need for these changes: --> ### Changes 🏗️ - removes the scopes we aren't approved to use <!-- 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] Bently tested it on his fresh account and it worked! |
||
|
|
eb7e919450 |
Revert "chore: experiment"
This reverts commit
|
||
|
|
686412e7df | chore: experiment | ||
|
|
b4e95dba14 |
feat(frontend): update empty task view designs (#11498)
## Changes 🏗️ Update the new library agent page, empty view to look like: <img width="900" height="1060" alt="Screenshot 2025-12-01 at 14 12 10" src="https://github.com/user-attachments/assets/e6a22a4f-35f4-434e-bbb1-593390034b9a" /> Now we display an **About this agent** card on the left when the agent is published on the marketplace. I expanded the: ``` /api/library/agents/{id} ``` endpoint to return as well the following: ```js { // ... created_at: "timestamp", marketplace_listing: { creator: { name: "string", "slug": string, id: "string" }, name: "string", slug: "string", id: "string" } } ``` To be able to display this extra information on the card and link to the creator and marketplace pages. Also: - design system updates regarding navbar and colors ## 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 locally and see the new page for an agent with no runs |
||
|
|
00148f4e3d |
feat(platform): add external api routes for store search and tool usage (#11463)
We want to allow external tools to explore the marketplace and use the chat agent tools ### Changes 🏗️ - add store api routes - add tool api routes ### 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 all endpoints work --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> |
||
|
|
6db18b8445 |
feat(frontend): design system tokens update (#11501)
## Changes 🏗️ Update tokens of the design system with new values 🖌️ 🎨 ## 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] Storybook build passes, no type errors |
||
|
|
627a33468b |
feat(frontend): Default node output accordion to expanded state (#11483)
This PR improves the user experience by defaulting the node output accordion to an expanded state. Previously, users had to manually expand the accordion to view execution results, which added an unnecessary click to the workflow. With this change, output data is immediately visible when available, allowing users to quickly see the results of their node executions. The ability to collapse the accordion is preserved for users who prefer a more compact interface. ### Changes 🏗️ - **Changed default state of node output accordion**: The node output section now defaults to expanded (`isExpanded = true`) instead of collapsed - **Improved user experience**: Users can now immediately see node execution results without needing to manually expand the accordion - **Maintains collapse functionality**: Users can still manually collapse the accordion if they prefer a more compact view ### 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] Execute a node and verify the output accordion is expanded by default - [x] Verify output data is immediately visible after node execution - [x] Test that the accordion can still be manually collapsed - [x] Confirm the accordion state resets to expanded when switching between nodes - [x] Test with different types of output data (simple values, objects, arrays) |
||
|
|
ea4b55f967 |
feat(frontend): Add minimum movement threshold for node position history tracking (#11481)
This PR implements a minimum movement threshold of 50 pixels for node position changes before they are logged to the history system. This prevents the undo/redo history from being cluttered with minor, unintentional movements that occur when users interact with block inputs or accidentally nudge nodes. ### Changes 🏗️ - **Added movement threshold for history tracking**: Implemented a 50px minimum movement requirement before logging node position changes to history - **Prevents history spam**: Stops small, unintentional movements (like clicking on inputs inside blocks) from cluttering the undo/redo history - **Tracks drag start positions**: Maintains initial positions when dragging begins to accurately calculate total movement distance - **Improved history management**: Only significant node movements are now recorded, matching the behavior of the old builder - **Memory efficient**: Cleans up tracked positions after drag operations complete ### 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] Drag a node less than 50px and verify no history entry is created - [x] Drag a node more than 50px and verify history entry is created - [x] Click on inputs inside blocks and verify no history entries are created - [x] Test undo/redo functionality works correctly with the threshold - [x] Verify adding/removing nodes still creates history entries - [x] Test multiple nodes being dragged simultaneously |
||
|
|
321ab8a48a |
feat(frontend): Add trigger agent banner for webhook-based flows (#11480)
This PR addresses the need for better user awareness when building trigger-based agents. When a user adds webhook/trigger nodes to their flow, a prominent banner now appears at the bottom of the builder informing them they're creating a "Trigger Agent" and providing a direct link to monitor its activity in the Agent Library. ### Changes 🏗️ - **Added TriggerAgentBanner component**: New banner that displays at the bottom of the builder when the flow contains webhook/trigger nodes - **Implemented webhook node detection**: Added `hasWebhookNodes` method to nodeStore that checks if any nodes are of type WEBHOOK or WEBHOOK_MANUAL - **Conditional banner display**: Builder now shows TriggerAgentBanner instead of BuilderActions when webhook nodes are present - **Dynamic library link**: Banner includes a link to the specific agent in the library (if found) or defaults to the general library page - **Integrated with existing flow context**: Uses the current flowID to fetch the corresponding library agent for proper linking ### 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] Add a webhook node to a flow and verify the banner appears - [x] Remove all webhook nodes and verify the banner disappears - [x] Test with both WEBHOOK and WEBHOOK_MANUAL node types - [x] Click the library link and verify it navigates to the correct agent page - [x] Test library link fallback when agent is not found in library - [x] Verify banner styling and positioning at bottom center of builder |
||
|
|
cd6a8cbd47 |
fix(frontend): Include edges when copying multiple nodes with Shift+Select (#11478)
This PR fixes issue where edges were not being copied when selecting multiple nodes with Shift+Select. ### Changes 🏗️ - **Fixed edge copying logic**: Removed the requirement for edges to be explicitly selected - now automatically includes all edges between selected nodes when copying - **Migrated to custom stores**: Refactored copy-paste functionality to use `useNodeStore` and `useEdgeStore` instead of ReactFlow's built-in state management - **Improved type safety**: Replaced generic `Node` and `Edge` types with `CustomNode` and `CustomEdge` for better type checking - **Enhanced paste behavior**: - Deselects existing nodes before pasting to ensure only pasted nodes are selected - Uses store methods for adding nodes and edges, ensuring proper state management - **Simplified node data handling**: Removed manual clearing of backend_id, status, and nodeExecutionResult - now handled by the store's addNode method - **Added debugging support**: Added console logging for copied data to aid in troubleshooting ### 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] Select multiple nodes using Shift+Select and copy with Ctrl/Cmd+C - [x] Verify edges between selected nodes are included in the copy - [x] Paste with Ctrl/Cmd+V and confirm both nodes and edges appear - [x] Verify pasted elements maintain correct connections - [x] Confirm only pasted nodes are selected after paste - [x] Test that pasted nodes have unique IDs - [x] Verify pasted nodes appear centered in the current viewport |
||
|
|
7fabbb25c4 |
fix(frontend): Preserve customized_name only when explicitly set in node metadata (#11477)
This PR fixes an issue where undefined `customized_name` values were being included in node metadata, which could cause issues with data persistence and agent exports. The fix ensures that the `customized_name` property is only included when it has been explicitly set by the user. ### Changes 🏗️ - **Fixed metadata serialization**: Modified `getNodeAsGraphNode` to only include `customized_name` in the metadata when it has been explicitly set (not undefined) - **Improved data structure**: Uses object spread syntax to conditionally include the `customized_name` property, preventing undefined values from being stored - **Cleaned up code**: Removed unnecessary TODO comment and improved code readability ### 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] Create a new agent and verify metadata doesn't include undefined customized_name - [x] Customize a block name and verify it's properly saved in metadata - [x] Export an agent and verify the JSON doesn't contain undefined customized_name fields - [x] Import an agent with customized names and verify they are preserved - [x] Save and reload an agent to ensure metadata persistence works correctly |
||
|
|
35eb563241 |
feat(platform): enhance BlockMenuSearch with agent addition (#11474)
This PR enables users to add agents directly to the builder from search results and marketplace views. Previously, users had to navigate to different sections to add agents - now they can do it with a single click from wherever they find the agent. The change includes proper loading states, error handling, and success notifications to provide a smooth user experience. ### Changes 🏗️ - **Added direct agent-to-builder functionality**: Users can now add agents directly to the builder from search results and marketplace views - **Created reusable hook `useAddAgentToBuilder`**: Centralized logic for adding both library and marketplace agents to the builder - **Enhanced search results interaction**: Added click handlers and loading states to agent cards in search results - **Improved marketplace agent addition**: Marketplace agents are now added to both library and builder with proper feedback - **Added loading states**: Visual feedback when agents are being added (loading spinners on cards) - **Improved error handling**: Added toast notifications for success and failure cases with descriptive error messages - **Added Sentry error tracking**: Captures exceptions for better debugging in production ### 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] Search for agents and add them to builder from search results - [x] Add marketplace agents which should appear in both library and builder - [x] Verify loading states appear during agent addition - [x] Test error scenarios (network failure, invalid agent) - [x] Confirm toast notifications appear for both success and error cases - [x] Verify builder viewport centers on newly added agent |
||
|
|
a37b527744 |
refactor(frontend): agent runs view folder structure (#11475)
## Changes 🏗️ Re-arrange the folder structure of the new Library page sub-components so they are grouped by location: ### Before <img width="238" height="506" alt="Screenshot 2025-11-27 at 23 45 27" src="https://github.com/user-attachments/assets/429fda6e-bf74-4d80-9306-028365789ca1" /> All components where on a single level, which works fine for simpler pages without that many sub-components, but on this one which has so much functionality it ends up messier... ### After <img width="226" height="517" alt="Screenshot 2025-11-27 at 23 45 46" src="https://github.com/user-attachments/assets/99c098ea-ff11-4779-bad8-7d524bf91605" /> ### Imports order I edited some files, and the linter/formatter automatically sorted import order as per the lint plugin. ### 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 new library agent page locally and click around |
||
|
|
3d08c22dd5 |
feat(platform): add Human In The Loop block with review workflow (#11380)
## Summary This PR implements a comprehensive Human In The Loop (HITL) block that allows agents to pause execution and wait for human approval/modification of data before continuing. https://github.com/user-attachments/assets/c027d731-17d3-494c-85ca-97c3bf33329c ## Key Features - Added WAITING_FOR_REVIEW status to AgentExecutionStatus enum - Created PendingHumanReview database table for storing review requests - Implemented HumanInTheLoopBlock that extracts input data and creates review entries - Added API endpoints at /api/executions/review for fetching and reviewing pending data - Updated execution manager to properly handle waiting status and resume after approval ## Frontend Components - PendingReviewCard for individual review handling - PendingReviewsList for multiple reviews - FloatingReviewsPanel for graph builder integration - Integrated review UI into 3 locations: legacy library, new library, and graph builder ## Technical Implementation - Added proper type safety throughout with SafeJson handling - Optimized database queries using count functions instead of full data fetching - Fixed imports to be top-level instead of local - All formatters and linters pass ## Test plan - [ ] Test Human In The Loop block creation in graph builder - [ ] Test block execution pauses and creates pending review - [ ] Test review UI appears in all 3 locations - [ ] Test data modification and approval workflow - [ ] Test rejection workflow - [ ] Test execution resumes after approval 🤖 Generated with [Claude Code](https://claude.ai/code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added Human-In-The-Loop review workflows to pause executions for human validation. * Users can approve or reject pending tasks, optionally editing submitted data and adding a message. * New "Waiting for Review" execution status with UI indicators across run lists, badges, and activity views. * Review management UI: pending review cards, list view, and a floating reviews panel for quick access. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
ff5dd7a5b4 |
fix(backend): migrate all query_raw calls to query_raw_with_schema for proper schema handling (#11462)
## Summary Complete migration of all non-test `query_raw` calls to use `query_raw_with_schema` for proper PostgreSQL schema context handling. This resolves the marketplace API failures where queries were looking for unqualified table names. ## Root Cause Prisma's `query_raw()` doesn't respect the `schema` parameter in `DATABASE_URL` (`?schema=platform`) for raw SQL queries, causing queries to fail when looking for unqualified table names in multi-schema environments. ## Changes Made ### Files Updated - ✅ **backend/server/v2/store/db.py**: Already updated in previous commit - ✅ **backend/server/v2/builder/db.py**: Updated `get_suggested_blocks` query at line 343 - ✅ **backend/check_store_data.py**: Updated all 4 `query_raw` calls to use schema-aware queries - ✅ **backend/check_db.py**: Updated all `query_raw` calls (import already existed) ### Technical Implementation - Add import: `from backend.data.db import query_raw_with_schema` - Replace `prisma.get_client().query_raw()` with `query_raw_with_schema()` - Add `{schema_prefix}` placeholder to table references in SQL queries - Fix f-string template conflicts by using double braces `{{schema_prefix}}` ### Query Examples **Before:** ```sql FROM "StoreAgent" FROM "AgentNodeExecution" execution ``` **After:** ```sql FROM {schema_prefix}"StoreAgent" FROM {schema_prefix}"AgentNodeExecution" execution ``` ## Impact - ✅ All raw SQL queries now properly respect platform schema context - ✅ Fixes "relation does not exist" errors in multi-schema environments - ✅ Maintains backward compatibility with public schema deployments - ✅ Code formatting passes with `poetry run format` ## Testing - All `query_raw` usages in non-test code successfully migrated - `query_raw_with_schema` automatically handles schema prefix injection - Existing query logic unchanged, only schema awareness added ## Before/After **Before:** GET /api/store/agents → "relation 'StoreAgent' does not exist" **After:** GET /api/store/agents → ✅ Returns store agents correctly Resolves the marketplace API failures and ensures consistent schema handling across all raw SQL operations. Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
02f8a69c6a |
feat(platform): add Google Drive Picker field type for enhanced file selection (#11311)
### 🏗️ Changes This PR adds a Google Drive Picker field type to enhance the user experience of existing Google blocks, replacing manual file ID entry with a visual file picker. #### Backend Changes - **Added and types** in : - Configurable picker field with OAuth scope management - Support for multiselect, folder selection, and MIME type filtering - Proper access token handling for file downloads - **Enhanced Gmail blocks**: Updated attachment fields to use Google Drive Picker for better UX - **Enhanced Google Sheets blocks**: Updated spreadsheet selection to use picker instead of manual ID entry - **Added utility**: Async file download with virus scanning and 100MB size limit #### Frontend Changes - **Enhanced GoogleDrivePicker component**: Improved UI with folder icon and multiselect messaging - **Integrated picker in form renderers**: Auto-renders for fields with format - **Added shared GoogleDrivePickerInput component**: Eliminates code duplication between NodeInputs and RunAgentInputs - **Added type definitions**: Complete TypeScript support for picker schemas and responses #### Key Features - 🎯 **Visual file selection**: Replace manual Google Drive file ID entry with intuitive picker - 📁 **Flexible configuration**: Support for documents, spreadsheets, folders, and custom MIME types - 🔒 **Minimal OAuth scopes**: Uses scope for security (only access to user-selected files) - ⚡ **Enhanced UX**: Seamless integration in both block configuration and agent run modals - 🛡️ **Security**: Virus scanning and file size limits for downloaded attachments #### Migration Impact - **Backward compatible**: Existing blocks continue to work with manual ID entry - **Progressive enhancement**: New picker fields provide better UX for the same functionality - **No breaking changes**: all existing blocks should be unaffected This enhancement improves the user experience of Google blocks without introducing new systems or breaking existing functionality. ### 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 multiple of the new blocks [of note is that the create spreadsheet block should be not used for now as it uses api not drive picker] - [x] chain the blocks together and pass values between them --------- Co-authored-by: Lluis Agusti <hi@llu.lu> Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
e983d5c49a |
fix(backend): Implement passed uploaded media support for AI image customizer block (#11441)
- Added `store_media_file` utility to convert local file paths to Data
URIs for image processing.
- Updated `AIImageCustomizerBlock` to utilize processed images in model
execution, improving compatibility with Replicate API.
- Added optional Aspect ratio input to AIImageCustomizerBlock
This change enhances the image handling capabilities of the AI image
customizer, ensuring that images are properly formatted for external
processing.
<!-- Clearly explain the need for these changes: -->
### Changes 🏗️
<!-- 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] Created agent using AI Image Customizer block attached to agent
file input
- [x] Run agent, confirmed block is working
- [x] Confirm block is still working in original direct file upload
setup.
### Testing Results
#### Before (dev cloud):
<img width="836" height="592" alt="image"
src="https://github.com/user-attachments/assets/88c75668-c5c9-44bb-bec5-6554088a0cb7"
/>
#### After (local):
<img width="827" height="587" alt="image"
src="https://github.com/user-attachments/assets/04fea431-70a5-4173-bc84-d354c03d7174"
/>
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Preprocesses input images to data URIs and adds an `aspect_ratio`
option, wiring both through to Replicate in `AIImageCustomizerBlock`.
>
> - **Backend**
> - **`backend/blocks/ai_image_customizer.py`**:
> - Preprocesses input images via `store_media_file(...,
return_content=True)` to Data URIs before invoking Replicate.
> - Adds `AspectRatio` enum and `aspect_ratio` input; passed through
`run_model` and included in Replicate input.
> - Updates block test input accordingly.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
|
||
|
|
bdb94a3cf9 | hotfix(frontend): clear cache account on logout | ||
|
|
8daec53230 | hotfix(frontend): add profile loading state and error boundary | ||
|
|
ec6f593edc |
fix(frontend): code scanning vulnerability (#11459)
## Changes 🏗️ Addresses this code scanning alert [security/code-scanning/156](https://github.com/Significant-Gravitas/AutoGPT/security/code-scanning/156) ## 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] No prototype pollutionautogpt-platform-beta-v0.6.38 |
||
|
|
e6ed83462d | fix(frontend): update next.config.mjs to not use standalone output | ||
|
|
1851264a6a |
[Snyk] Security upgrade @sentry/nextjs from 10.22.0 to 10.27.0 (#11451)
 ### Snyk has created this PR to fix 3 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 | :-------------------------:|:-------------------------  | Insertion of Sensitive Information Into Sent Data <br/>[SNYK-JS-SENTRYCORE-14105053](https://snyk.io/vuln/SNYK-JS-SENTRYCORE-14105053)  | Insertion of Sensitive Information Into Sent Data <br/>[SNYK-JS-SENTRYNEXTJS-14105054](https://snyk.io/vuln/SNYK-JS-SENTRYNEXTJS-14105054)  | Insertion of Sensitive Information Into Sent Data <br/>[SNYK-JS-SENTRYNODECORE-14105055](https://snyk.io/vuln/SNYK-JS-SENTRYNODECORE-14105055) --- > [!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=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIwOWQyNjk1Yy1hZDYyLTRkODItOTg1OS03Yzk4NDY0ZDc4YmQiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjA5ZDI2OTVjLWFkNjItNGQ4Mi05ODU5LTdjOTg0NjRkNzhiZCJ9fQ==" 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:** 🦉 [Learn about vulnerability in an interactive lesson of Snyk Learn.](https://learn.snyk.io/?loc=fix-pr) [//]: # 'snyk:metadata:{"breakingChangeRiskLevel":null,"FF_showPullRequestBreakingChanges":false,"FF_showPullRequestBreakingChangesWebSearch":false,"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/nextjs","from":"10.22.0","to":"10.27.0"}],"env":"prod","issuesToFix":["SNYK-JS-SENTRYCORE-14105053","SNYK-JS-SENTRYCORE-14105053","SNYK-JS-SENTRYCORE-14105053","SNYK-JS-SENTRYCORE-14105053","SNYK-JS-SENTRYCORE-14105053","SNYK-JS-SENTRYCORE-14105053","SNYK-JS-SENTRYNEXTJS-14105054","SNYK-JS-SENTRYNODECORE-14105055"],"prId":"09d2695c-ad62-4d82-9859-7c98464d78bd","prPublicId":"09d2695c-ad62-4d82-9859-7c98464d78bd","packageManager":"yarn","priorityScoreList":[null,null,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-SENTRYCORE-14105053","SNYK-JS-SENTRYNEXTJS-14105054","SNYK-JS-SENTRYNODECORE-14105055"],"vulns":["SNYK-JS-SENTRYCORE-14105053","SNYK-JS-SENTRYNEXTJS-14105054","SNYK-JS-SENTRYNODECORE-14105055"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}' --------- Co-authored-by: snyk-bot <snyk-bot@snyk.io> Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
8f25d43089 | Merge branch 'master' into dev | ||
|
|
0c435c4afa |
dx: Update Node.js versions in GitHub workflows to match frontend requirement (#11449)
This unbreaks the Claude Code and Copilot workflows in our repo. - Follow-up to #11288 ### Changes 🏗️ - Update `node-version` on `actions/setup-node@v4` from v21 to v22 |
||
|
|
18002cb8f0 |
chore(frontend/deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /autogpt_platform/frontend (#11353)
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.3 to 10.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kentcdodds/cross-env/releases">cross-env's releases</a>.</em></p> <blockquote> <h2>v10.1.0</h2> <h1><a href="https://github.com/kentcdodds/cross-env/compare/v10.0.0...v10.1.0">10.1.0</a> (2025-09-29)</h1> <h3>Features</h3> <ul> <li>add support for default value syntax (<a href=" |
||
|
|
240a65e7b3 |
fix(frontend): show spinner login/logout (#11447)
## Changes 🏗️ Show spinners on the login/logout buttons while they are being processed. ## 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] Login with password: there is a spinner on the button while logging in - [x] Logout: there is a spinner on the button while logging out |
||
|
|
07368468a4 |
fix(frontend): make agent ouput clickable (#11433)
### Changes 🏗️ <img width="1490" height="432" alt="Screenshot 2025-11-24 at 23 26 12" src="https://github.com/user-attachments/assets/e5a149f2-7751-4276-9b76-707db7afdd46" /> The agent output buttons on the new run page weren't always clickable due to a missing `z-index`. ### 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] Login - [x] Open run in new runs page - [x] Ouput buttons are clickable without issues |
||
|
|
52aac09577 |
feat(frontend): environment aware favicon (#11431)
## Changes 🏗️ Change the favicon colour in the tab depending on the environment, so when you have multiple tabs open (production, staging, local... ) it is clear which map to what. ### Local ( orange ) <img width="257" height="40" alt="Screenshot 2025-11-24 at 22 38 27" src="https://github.com/user-attachments/assets/705ddf6b-cc4a-498a-ad15-ed2c60f6b397" /> ### Dev ( green ) <img width="263" height="40" alt="Screenshot 2025-11-24 at 22 45 20" src="https://github.com/user-attachments/assets/eda3ba16-8646-4032-ad3c-7a8fc4db778c" /> ### Example <img width="513" height="41" alt="Screenshot 2025-11-24 at 22 45 09" src="https://github.com/user-attachments/assets/1a43f860-536a-465e-9c10-a68c5218a58c" /> ## 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] Load the app and the favicon colour matches the env |
||
|
|
64a775dfa7 |
feat(backend/blocks): Add GPT-5.1 and GPT-5.1-codex (#11406)
This pr adds the latest gpt-5.1 and gpt-5.1-codex llm's from openai, as well as update the price of the gpt-5-chat model https://platform.openai.com/docs/models/gpt-5.1 https://platform.openai.com/docs/models/gpt-5.1-codex I have also had to add a new codex block as it uses a different openai API and has other options the main llm's dont use <img width="231" height="755" alt="image" src="https://github.com/user-attachments/assets/a4056633-7b0f-446f-ae86-d7755c5b88ec" /> #### 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 latest gpt-5.1 llm - [x] Test the latest gpt-5.1-codex block --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
5d97706bb8 |
feat(backend/blocks): Add claude opus 4.5 (#11446)
This PR adds the latest [claude opus 4.5](https://www.anthropic.com/news/claude-opus-4-5) model to the 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 and use the llm to make sure it works |
||
|
|
244f3c7c71 |
chore(backend/deps-dev): bump faker from 37.8.0 to 38.2.0 in /autogpt_platform/backend (#11435)
Bumps [faker](https://github.com/joke2k/faker) from 37.8.0 to 38.2.0. <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 v38.2.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v38.2.0/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v38.1.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v38.1.0/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v38.0.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v38.0.0/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.12.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.12.0/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.11.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.11.0/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.10.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.10.0/CHANGELOG.md">CHANGELOG.md</a>.</p> <h2>Release v37.9.0</h2> <p>See <a href="https://github.com/joke2k/faker/blob/refs/tags/v37.9.0/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/v38.1.0...v38.2.0">v38.2.0 - 2025-11-19</a></h3> <ul> <li>Add localized UniqueProxy. Thanks <a href="https://github.com/azmeuk"><code>@azmeuk</code></a></li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v38.0.0...v38.1.0">v38.1.0 - 2025-11-19</a></h3> <ul> <li>Add <code>person</code> provider for <code>ar_DZ</code> locale. Thanks <a href="https://github.com/othmane099"><code>@othmane099</code></a>.</li> <li>Add <code>person</code>, <code>phone_number</code>, <code>date_time</code> for <code>fr_DZ</code> locale. Thanks <a href="https://github.com/othmane099"><code>@othmane099</code></a>.</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.12.0...v38.0.0">v38.0.0 - 2025-11-11</a></h3> <ul> <li>Drop support for Python 3.9</li> <li>Add support for Python 3.14</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.11.0...v37.12.0">v37.12.0 - 2025-10-07</a></h3> <ul> <li>Add french VAT number. Thanks <a href="https://github.com/fabien-michel"><code>@fabien-michel</code></a>.</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.9.0...v37.11.0">v37.11.0 - 2025-10-07</a></h3> <ul> <li>Add French company APE code. Thanks <a href="https://github.com/fabien-michel"><code>@fabien-michel</code></a>.</li> </ul> <h3><a href="https://github.com/joke2k/faker/compare/v37.8.0...v37.9.0">v37.9.0 - 2025-10-07</a></h3> <ul> <li>Add names generation to <code>en_KE</code> locale. Thanks <a href="https://github.com/titustum"><code>@titustum</code></a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
355219acbd |
feat(frontend): fix tab titles (#11432)
## Changes 🏗️ Add some missing page titles, most importantly the missing one the new runs page. ## 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 - [x] Page titles are there |
||
|
|
1ab66eaed4 |
fix(frontend): login/signup pages away redirects (#11430)
## Changes 🏗️ When the user is logged in and tries to navigate to `/login` or `/signup` manually, redirect them away to `/marketplace`. ### 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] Login - [x] Go to `/login` or `/signup` - [x] You are redirected back into `/marketplace` |
||
|
|
126d5838a0 |
feat(backend/blocks): add latest grok models (#11422)
This PR adds some of the latest grok models to the platform ``x-ai/grok-4-fast``, ``x-ai/grok-4.1-fast`` and ``ai/grok-code-fast-1`` #### 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 all of the latest grok models to make sure they work and they do! <img width="1089" height="714" alt="image" src="https://github.com/user-attachments/assets/0d1e3984-69e8-432b-982a-b04c16bc4f41" /> |
||
|
|
643aea849b |
feat(backend/blocks): Add google banana pro (#11425)
This PR adds the latest google banana pro image generator and editor to the platform and fixes up some of the prices for the image generation models I asked for ``Generate a image of a dog on a skateboard`` and this is what i got: <img width="2048" height="2048" alt="image" src="https://github.com/user-attachments/assets/9b6c16d8-df8f-4fb6-a009-d6d342f9beb7" /> ### 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 image generator and image editor block using the latest google banana pro model and it works --------- Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> |
||
|
|
3b092f34d8 |
feat(platform): Add Get Linear Issues Block (#11415)
Added the ability to get all issues for a given project. ### Changes 🏗️ - added api query - added new models - added new block that gets all issues for a given project ### 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] I have ensured the new block works in dev - [x] I have ensured the other linear blocks still work |
||
|
|
0921d23628 |
fix(block): Improve error handling of SendEmailBlock (#11420)
Currently if the smtp server is not configured currently it results in a platform error. This PR simplifies the error handling ### Changes 🏗️ - removed default value for smtp server host. - capture common errors and yield them as error ### 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] Checked all tests still pass |
||
|
|
0edc669874 | refactor(frontend): debug preview stealing dev | ||
|
|
e64d3d9b99 |
feat(frontend): implement agent outputs viewer and improve UI/UX in new builder (#11421)
This PR introduces several improvements to the new builder experience: **1. Agent Outputs Feature** ✨ - Implemented a new `AgentOutputs` component that displays execution outputs from OUTPUT blocks - Added a slide-out sheet UI to view agent outputs with proper formatting - Integrated with existing output renderers from the library view - Shows output block names, descriptions, and rendered values - Added beta badge to indicate feature is still experimental **2. UI/UX Improvements** 🎨 - Fixed graph loading spinner color from violet to neutral zinc for better consistency - Adjusted node shadow styling for better visual hierarchy (reduced shadow when not selected) - Fixed credential field button spacing to prevent layout overflow - Improved array editor widget delete button positioning - Added proper link handling for integration redirects (opens in new tab) - Fixed object editor to handle null values gracefully **3. Performance & State Management** 🚀 - Fixed race condition in run input dialog by awaiting execution before closing - Added proper history initialization after graph loads - Added `outputSchema` to graph store for tracking output blocks - Fixed search bar to maintain query state properly - Added automatic fit view on graph load for better initial viewport **4. Build Actions Bar** 🔧 - Reduced padding for more compact appearance - Enabled/disabled Agent Outputs button based on presence of output blocks - Removed loading icon from manual run button when not executing ### 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 and executed an agent with OUTPUT blocks to verify outputs display correctly - [x] Tested output viewer with different data types (text, JSON, images, etc.) - [x] Verified credential field layouts don't overflow in constrained spaces - [x] Tested array editor delete functionality and button positioning - [x] Confirmed graph loads with proper fit view and history initialization - [x] Tested run input dialog closes only after execution starts - [x] Verified integration links open in new tabs - [x] Tested object editor with null values |
||
|
|
41dc39b97d | fix(frontend): preview banner ammend | ||
|
|
80e573f33b |
feat(frontend): PR preview banner (#11412)
## Changes 🏗️ <img width="900" height="757" alt="Screenshot 2025-11-19 at 12 18 38" src="https://github.com/user-attachments/assets/e2c2a4cf-a05e-431e-853d-fb0a68729e54" /> When the dev environment is used for a PR preview, show a banner at the top of the page to indicate this. ### 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] Create a PR preview against Dev - [x] Check it shows the banner once this is merged - [x] Or try locally with the env var set ### For configuration changes: `NEXT_PUBLIC_PREVIEW_STEALING_DEV` is set programmatically via our Infra CI. |
||
|
|
06d20e7e4c |
chore(backend/deps-dev): bump the development-dependencies group across 1 directory with 3 updates (#11411)
Bumps the development-dependencies group with 3 updates in the /autogpt_platform/backend directory: [pre-commit](https://github.com/pre-commit/pre-commit), [pyright](https://github.com/RobertCraigie/pyright-python) and [ruff](https://github.com/astral-sh/ruff). Updates `pre-commit` from 4.3.0 to 4.4.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pre-commit/pre-commit/releases">pre-commit's releases</a>.</em></p> <blockquote> <h2>pre-commit v4.4.0</h2> <h3>Features</h3> <ul> <li>Add <code>--fail-fast</code> option to <code>pre-commit run</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3528">#3528</a> PR by <a href="https://github.com/JulianMaurin"><code>@JulianMaurin</code></a>.</li> </ul> </li> <li>Upgrade <code>ruby-build</code> / <code>rbenv</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3566">#3566</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3565">#3565</a> issue by <a href="https://github.com/MRigal"><code>@MRigal</code></a>.</li> </ul> </li> <li>Add <code>language: unsupported</code> / <code>language: unsupported_script</code> as aliases for <code>language: system</code> / <code>language: script</code> (which will eventually be deprecated). <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3577">#3577</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> <li>Add support docker-in-docker detection for cgroups v2. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3535">#3535</a> PR by <a href="https://github.com/br-rhrbacek"><code>@br-rhrbacek</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3360">#3360</a> issue by <a href="https://github.com/JasonAlt"><code>@JasonAlt</code></a>.</li> </ul> </li> </ul> <h3>Fixes</h3> <ul> <li>Handle when docker gives <code>SecurityOptions: null</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3537">#3537</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3514">#3514</a> issue by <a href="https://github.com/jenstroeger"><code>@jenstroeger</code></a>.</li> </ul> </li> <li>Fix error context for invalid <code>stages</code> in <code>.pre-commit-config.yaml</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3576">#3576</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md">pre-commit's changelog</a>.</em></p> <blockquote> <h1>4.4.0 - 2025-11-08</h1> <h3>Features</h3> <ul> <li>Add <code>--fail-fast</code> option to <code>pre-commit run</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3528">#3528</a> PR by <a href="https://github.com/JulianMaurin"><code>@JulianMaurin</code></a>.</li> </ul> </li> <li>Upgrade <code>ruby-build</code> / <code>rbenv</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3566">#3566</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3565">#3565</a> issue by <a href="https://github.com/MRigal"><code>@MRigal</code></a>.</li> </ul> </li> <li>Add <code>language: unsupported</code> / <code>language: unsupported_script</code> as aliases for <code>language: system</code> / <code>language: script</code> (which will eventually be deprecated). <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3577">#3577</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> <li>Add support docker-in-docker detection for cgroups v2. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3535">#3535</a> PR by <a href="https://github.com/br-rhrbacek"><code>@br-rhrbacek</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3360">#3360</a> issue by <a href="https://github.com/JasonAlt"><code>@JasonAlt</code></a>.</li> </ul> </li> </ul> <h3>Fixes</h3> <ul> <li>Handle when docker gives <code>SecurityOptions: null</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3537">#3537</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3514">#3514</a> issue by <a href="https://github.com/jenstroeger"><code>@jenstroeger</code></a>.</li> </ul> </li> <li>Fix error context for invalid <code>stages</code> in <code>.pre-commit-config.yaml</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3576">#3576</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
07b5fe859a |
feat(platform/backend): add gemini-3-pro-preview (#11413)
This adds gemini-3-pro-preview from openrouter https://openrouter.ai/google/gemini-3-pro-preview #### 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 gemini 3 model in the llm blocks and it works |
||
|
|
746dbbac84 |
refactor(frontend): improve new builder performance and UX with position handling and store optimizations (#11397)
This PR introduces several performance and user experience improvements to the new builder, focusing on node positioning, state management optimizations, and visual enhancements. The new builder had several issues that impacted developer experience and runtime performance: - Inefficient store subscriptions causing unnecessary re-renders - No intelligent node positioning when adding blocks via clicking - useEffect dependencies causing potential stale closures - Width constraints missing on form fields affecting layout consistency ### Changes 🏗️ #### Performance Optimizations - **Store subscription optimization**: Added `useShallow` from zustand to prevent unnecessary re-renders in [NodeContainer](file:///app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeContainer.tsx) and [NodeExecutionBadge](file:///app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeExecutionBadge.tsx) - **useEffect cleanup**: Split combined useEffects in [useFlow](file:///app/(platform)/build/hooks/useFlow.ts) for clearer dependencies and better performance - **Memoization**: Added `memo` to [NewControlPanel](file:///app/(platform)/build/components/NewControlPanel/NewControlPanel.tsx) to prevent unnecessary re-renders - **Callback optimization**: Wrapped `onDrop` handler in `useCallback` to prevent recreation on every render #### UX Improvements - **Smart node positioning**: Implemented `findFreePosition` algorithm in [helper.ts](file:///app/(platform)/build/components/helper.ts) that: - Automatically finds non-overlapping positions for new nodes - Tries right, left, then below existing nodes - Falls back to far-right position if no space available - **Click-to-add blocks**: Added click handlers to blocks that: - Add the block at an intelligent position - Automatically pan viewport to center the new node with smooth animation - **Visual feedback**: Added loading state with spinner icon for agent blocks during fetch - **Form field width**: Added `max-w-[340px]` constraint to prevent overflow in [FieldTemplate](file:///components/renderers/input-renderer/templates/FieldTemplate.tsx) ### 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] Create from scratch and execute an agent with at least 3 blocks - [x] Test adding blocks via drag-and-drop ensures no overlapping - [x] Test adding blocks via click positions them intelligently - [x] Test viewport animation when adding blocks via click - [x] Import an agent from file upload, and confirm it executes correctly - [x] Test loading spinner appears when adding agents from "My Agents" - [x] Verify performance improvements by checking React DevTools for reduced re-renders |
||
|
|
901bb31e14 |
feat(backend): parameterize activity status generation with customizable prompts (#11407)
## Summary
Implement comprehensive parameterization of the activity status
generation system to enable custom prompts for admin analytics
dashboard.
## Changes Made
### Core Function Enhancement (`activity_status_generator.py`)
- **Extract hardcoded prompts to constants**: `DEFAULT_SYSTEM_PROMPT`
and `DEFAULT_USER_PROMPT`
- **Add prompt parameters**: `system_prompt`, `user_prompt` with
defaults to maintain backward compatibility
- **Template substitution system**: User prompt supports
`{{GRAPH_NAME}}` and `{{EXECUTION_DATA}}` placeholders
- **Skip existing flag**: `skip_existing` parameter allows admin to
force regeneration of existing data
- **Maintain manager compatibility**: All existing calls continue to
work with default parameters
### Admin API Enhancement (`execution_analytics_routes.py`)
- **Custom prompt fields**: `system_prompt` and `user_prompt` optional
fields in `ExecutionAnalyticsRequest`
- **Skip existing control**: `skip_existing` boolean flag for admin
regeneration option
- **Template documentation**: Clear documentation of placeholder system
in field descriptions
- **Backward compatibility**: All existing API calls work unchanged
### Template System Design
- **Simple placeholder replacement**: `{{GRAPH_NAME}}` → actual graph
name, `{{EXECUTION_DATA}}` → JSON execution data
- **No dependencies**: Uses simple `string.replace()` for maximum
compatibility
- **JSON safety**: Execution data properly serialized as indented JSON
- **Validation tested**: Template substitution verified to work
correctly
## Key Features
### For Regular Users (Manager Integration)
- **No changes required**: Existing manager.py calls work unchanged
- **Default behavior preserved**: Same prompts and logic as before
- **Feature flag compatibility**: LaunchDarkly integration unchanged
### For Admin Analytics Dashboard
- **Custom system prompts**: Admins can override the AI evaluation
criteria
- **Custom user prompts**: Admins can modify the analysis instructions
with execution data templates
- **Force regeneration**: `skip_existing=False` allows reprocessing
existing executions with new prompts
- **Complete model list**: Access to all LLM models from `llm.py` (70+
models including GPT, Claude, Gemini, etc.)
## Technical Validation
- ✅ Template substitution tested and working
- ✅ Default behavior preserved for existing code
- ✅ Admin API parameter validation working
- ✅ All imports and function signatures correct
- ✅ Backward compatibility maintained
## Use Cases Enabled
- **A/B testing**: Compare different prompt strategies on same execution
data
- **Custom evaluation**: Tailor success criteria for specific graph
types
- **Prompt optimization**: Iterate on prompt design based on admin
feedback
- **Bulk reprocessing**: Regenerate activity status with improved
prompts
## Testing
- Template substitution functionality verified
- Function signatures and imports validated
- Code formatting and linting passed
- Backward compatibility confirmed
## Breaking Changes
None - all existing functionality preserved with default parameters.
## Related Issues
Resolves the requirement to expose prompt customization on the frontend
execution analytics dashboard.
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
9438817702 |
fix(platform): Capture Sentry Block Errors Correctly (#11404)
Currently we are capturing block errors via the scope only, this change captures the error directly. ### Changes 🏗️ - capture the error as well as the scope in the executor manager - Update the block error message to include additional details - remove the __str__ function from blockerror as it is no longer needed ### 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] Checked that errors are still captured in dev |
||
|
|
184a73de7d |
fix(frontend): Add custom validator to handle short-text and long-text formats in form renderer (#11395)
The rfjs library was throwing validation errors for our custom format types `short-text` and `long-text` because these are not standard JSON Schema formats. This was causing form validation to fail even though these formats are valid in our application context. <img width="792" height="85" alt="Screenshot 2025-11-18 at 9 39 08 AM" src="https://github.com/user-attachments/assets/c75c584f-b991-483c-8779-fc93877028e0" /> ### Changes 🏗️ - Created a custom validator using `@rjsf/validator-ajv8`'s `customizeValidator` function - Added support for `short-text` and `long-text` custom formats that accept any string value - Replaced the default validator with our custom validator in the FormRenderer component - Disabled strict mode and format validation in AJV options to prevent validation errors for non-standard formats ### 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] Create an agent with input blocks that use short-text format - [x] Create an agent with input blocks that use long-text format - [x] Execute the agent and verify no validation errors appear - [x] Verify that form submission works correctly with both formats - [x] Test that other standard formats (email, URL, etc.) still work as expected |
||
|
|
1154f86a5c |
feat(frontend): add inline node title editing with double-click (#11370)
- depends on https://github.com/Significant-Gravitas/AutoGPT/pull/11368 This PR adds the ability to rename nodes directly in the flow editor by double-clicking on their titles. https://github.com/user-attachments/assets/1de3fc5c-f859-425e-b4cf-dfb21c3efe3d ### Changes 🏗️ - **Added inline node title editing functionality:** - Users can now double-click on any node title to enter edit mode - Custom titles are saved on Enter key or blur, canceled on Escape key - Custom node names are persisted in the node's metadata as `customized_name` - Added tooltip to display full title when text is truncated - **Modified node data handling:** - Updated `nodeStore` to include `customized_name` in metadata when converting nodes - Modified `helper.ts` to pass metadata (including custom titles) to custom nodes - Added metadata property to `CustomNodeData` type - **UI improvements:** - Added hover cursor indication for editable titles - Implemented proper focus management during editing - Maintained consistent styling between display and edit modes ### 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] Double-click on various node types to enter edit mode - [x] Type new names and press Enter to save - [x] Press Escape to cancel editing and revert to original name - [x] Click outside the input field to save changes - [x] Verify custom names persist after page refresh - [x] Test with long node names to ensure tooltip appears - [x] Verify custom names are saved with the graph - [x] Test editing on all node types (standard, input, output, webhook, etc.) |