mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-08 22:05:08 -05:00
e49cb43b49b4bb180e89c0b52a5aead7d68ce414
6523 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e49cb43b49 |
feat(block): Add agent input block subtypes (#9657)
### Changes 🏗️ Added these types of input blocks: * TextShort * TextLong * Number * Date * Time * FileUpload * Dropdown * Toggle ### 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 in respective block codes. |
||
|
|
56663c5fe9 |
feat(backend): add backend support for store listings submissions (#9628)
<!-- Clearly explain the need for these changes: --> The store listing and submissions were previously just a best guess without much implementation. This updates the database models and queries and such to be based on discussion around what the process should look like. It also adds and update the relevant routers for this change ### Changes 🏗️ Store Listing - change isApproved to hasApprovedVersion - Move slug into store listing - mark an active version in store listing Store Version - Move submissions into version - make name optional - have state transition timestamps for submitted and approved/rejected - added a changes field - added internal comments and clarified review comments field SubmissionStatus - Fixed DAFT to DRAFT StoreListingSubmission - Dropped table Graph - Used more modern format for the params for prisma -- no other changes Added migrations for all the model movements <!-- 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] Use the store codepaths from the release testplan doc as the test plan (claude I can't publish the testplan but I am a maintainer lol, trust me here my guy, you're supposed to be lenient) - [x] Check the db is used as appropriate following the rules --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
a537fd0891 |
[Snyk] Security upgrade next from 14.2.23 to 14.2.25 (#9672)
 ### 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` - `autogpt_platform/frontend/yarn.lock` #### 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. #### Vulnerabilities that will be fixed with an upgrade: | | Issue | Score | :-------------------------:|:-------------------------|:-------------------------  | Improper Authorization <br/>[SNYK-JS-NEXT-9508709](https://snyk.io/vuln/SNYK-JS-NEXT-9508709) | **751** --- > [!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=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI5NGUwNmYxNy0yY2NkLTQ3NzEtOTk2NC1kN2JmYzhiNTI2NTgiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijk0ZTA2ZjE3LTJjY2QtNDc3MS05OTY0LWQ3YmZjOGI1MjY1OCJ9fQ==" 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:** 🦉 [Improper Authorization](https://learn.snyk.io/lesson/broken-function-level-authorization/?loc=fix-pr) [//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"next","from":"14.2.23","to":"14.2.25"}],"env":"prod","issuesToFix":["SNYK-JS-NEXT-9508709"],"prId":"94e06f17-2ccd-4771-9964-d7bfc8b52658","prPublicId":"94e06f17-2ccd-4771-9964-d7bfc8b52658","packageManager":"yarn","priorityScoreList":[751],"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","priorityScore"],"type":"auto","upgrade":["SNYK-JS-NEXT-9508709"],"vulns":["SNYK-JS-NEXT-9508709"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}' Co-authored-by: snyk-bot <snyk-bot@snyk.io> |
||
|
|
d694ccd50f |
fix(frontend): Fill defaults from schema to hardcodedValues at node creation (#9632)
Defaults need to be handled as special cases every time there's no `hardcodedValues` in node data. This causes multiple issues such as `useCredentials` not taking into account default model and requiring user to manually switch model back and forth. ### Changes 🏗️ - Set default values from `inputSchema` to `hardcodedValues` when new node is placed. ### 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] Newly placed node has defaults set as `hardcodedValues` - [x] AI Blocks: Model is recognised, node shows price and credentials work correctly without the need to switch --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
f01b31873f |
feat(backend): Avoid loading all node executions on large continuos agent (#9667)
A graph that processes tens of thousands of nodes will cripple the system since the API tries to load all of them and dump them into the browser. The scope of this change is to avoid such an issue by only returning the last 1000 node executions. ### Changes 🏗️ * Return only 1000 node executions from `AgentNodeExecutions` reference. * Unify the include clause for fetching `AgentNodeExecutions` in one place and its format. * Fix & optimize `cancel_execution` logic to always set both the graph & node execution status in batch. ### 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 graph in a loop that executes 10000 nodes, it should only display the last 1000 nodes when refreshed. Cancelling the graph should also not cripple the server. |
||
|
|
5411e18bd0 |
feat(backend): Mark starting nodes as QUEUED instead of INCOMPLETE during the initial execution (#9665)
Having the starting nodes of the execution marked as incomplete misled the users. ### Changes 🏗️ Mark the starting nodes during the executions as QUEUED instead of INCOMPLETE. ### 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] Executed the graph, the incomplete initial starting node is no more. |
||
|
|
b85f6196aa |
fix(frontend): Fix unreliable websocket connection for node execution update (#9666)
The current execution update is unreliable, once you lose WebSocket connection, you will receive no updates. ### Changes 🏗️ Fix web socket re-connection logic. ### 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 and execute an agent, then restart the API server, and re-execute the app without refreshing the page. |
||
|
|
a1ac7b18f9 |
feat(backend): Avoid connecting the same host and falling-back to defined api_host (#9668)
### Changes 🏗️ Avoid connecting the same host and falling-back to defined api_host. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [ ] I have tested my changes according to the test plan: - [ ] Define a custom DBMANAGER_HOST, RestService should access the `db_manager` service using localhost. |
||
|
|
42232f55e8 |
feat(platform): Use a single DB manager across the system (#9662)
DB Manager uses DB connections, and multiple instances of it hog the very limited Database connection quota. We need this service to be a unified place to control the limited db connection. ### Changes 🏗️ Connect all the database manager usage in a single place, currently running on the rest service. ### Checklist 📋 #### For code changes: - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [ ] ... <details> <summary>Example test plan</summary> - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly </details> #### For configuration changes: - [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**) <details> <summary>Examples of configuration changes</summary> - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases </details> |
||
|
|
9a661b5101 |
fix(backend/ws): Add user_id to websocket event subscription key (#9660)
- Add `user_id` to WS subscription key - Add error catching to WS message handler |
||
|
|
90b147ff51 | Merge branch 'dev' of github.com:Significant-Gravitas/AutoGPT into dev autogpt-platform-beta-v0.6.0 | ||
|
|
6e4fbb0cb5 |
fix(frontend/library): Truncate agent card title and description (#9658)
- Resolves #9631 ### Changes 🏗️ - Truncate library agent card title (2 lines) and description (3 lines) - Make "See runs" and "Open in builder" stick to bottom of card regardless of other content - Reduce number of grid columns (4 -> 3) in `lg` layout on `/library` to give items more horizontal space  ### 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] Visually test the changes made on different screen sizes |
||
|
|
df6203343d |
fix(frontend/library): Improve agent I/O rendering (#9656)
- Related to #8784 ### Changes 🏗️ - feat(frontend/library): Improve agent output styling & fix content overflow issue - fix(frontend/library): Fix overlap between content and inset button of expandable input fields (#9650) - fix(backend): Unbreak loading graph executions with missing inputs  ### 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: - Run an agent with at least one input *not* filled out; view this run in the Library - [x] -> page should load normally - [x] -> agent inputs should load and show normally - Run an agent that generates long output; view this run in the Library - [x] -> output should not overflow its container or stretch the page layout - [x] -> visually check that the output section looks slick |
||
|
|
93238dc78c |
fix(blocks): SendWebRequestBlock to properly handle HTTP error responses (#9655)
### Issue The SendWebRequestBlock currently fails to properly route HTTP error responses (4xx, 5xx) to their designated output pins (`client_error` and `server_error`). Instead, these errors are being sent to the default "Error" pin, breaking expected workflows that depend on proper error handling. ### Root Cause The underlying issue is that our custom `requests` module from `backend.util.request` appears to automatically raise exceptions for error status codes (similar to how `raise_for_status()` works in the standard requests library). When these exceptions are thrown, the block's conditional logic for handling different status codes is bypassed entirely. ### Changes This PR adds proper exception handling to catch HTTP errors raised by the requests module and routes them to the appropriate output pins: - Added a try-except block to capture `requests.exceptions.HTTPError` - Extract status code and response data from the caught exception - Yield to the proper pin based on the status code (4xx → client_error, 5xx → server_error) - Maintain consistent behavior with the original design intent ### Additional Context This change maintains backward compatibility while ensuring the block behaves according to its documented functionality. Users can now properly handle 4xx and 5xx errors in their workflows as originally intended. <!-- Clearly explain the need for these changes: --> ### 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 block with new changes and old and ensure expected behavior --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
b6260b5ce9 |
fix(backend): drastically increase batching time for the agent run (#9654)
<!-- Clearly explain the need for these changes: --> We accidently send several emails within 10 mins and we're gonna get blocked for spam if we keep it up ### Changes 🏗️ - moves 1 min to 60 min timer <!-- 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] Test via batching a series of notiications over an hour |
||
|
|
9c31c79898 |
feat(frontend/library): Make agent input fields expandable (#9650)
- Resolves #9622 ### Changes 🏗️ - Add pop-out button + modal to input fields in Agent Run Draft view on `/library/agents/[id]` - Fix `icon`-variant button styling   ### 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 an agent's page -> click "+ New run" - [x] -> pop-out button should show on all input fields - Enter a value in one of the inputs; click the pop-out button on that input - [x] -> input modal with large text field should open - [x] -> the value you just entered should be present in the modal's text field - Edit the value & click "Save" - [x] -> the modal should close - [x] -> the value in the corresponding input field should be updated |
||
|
|
f8a6c9e67f | fix(block): Revert custom get_missing_links method on AddToListBlock | ||
|
|
ff9a5cc638 |
fix(block): Avoid infinite loop execution on AddToListBlock self-loop (#9629)
### Changes 🏗️ <img width="757" alt="image" src="https://github.com/user-attachments/assets/909aab58-24c7-42ec-9580-ac3e9f32057e" /> Since a self-loop is now allowed for AddToListBlock, providing an entry pin using a static output will cause infinite execution. This PR change avoid such scenario to be allowed. ### 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] Described above |
||
|
|
4e6144803b |
fix(platform): Fix possible db-config permission denied when running two different Supabase versions (#9652)
The change in https://github.com/Significant-Gravitas/AutoGPT/pull/9620 introduces a breaking change in the database volume content; however, the database's volume location does not change, making switching between two versions clash. ### Changes 🏗️ Renamed db-config named volume to supabase-config. ### 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] CI |
||
|
|
2c92122721 |
feat(platform/library): Add icons to primary agent run action buttons (#9651)
- Resolves #9612 ### Changes 🏗️ - Add icon to "Run" button in run draft view - Add icons "Stop run" and "Run again" buttons in run 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: - Purely visual changes, no functional test needed. Technical changes are covered by the type checker. |
||
|
|
9b19d1959e |
feat(frontend): break out the sidebar into a reusable component + use it for admin page (#9618)
<!-- Clearly explain the need for these changes: --> We need a sidebar for the admin page, might as well reuse the reusable component to do so! ### Changes 🏗️ - Extracts the agptui sidebar to a more reusable component - Update the usage of that sidebar in the settings page - Use that same sidebar for the admin page <!-- 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] Test the old sidebar - [x] Test the new sidebar for admin |
||
|
|
17f3a19bc3 |
feat(backend): Support sub-agent on export/import agent feature (#9640)
Agents using Agent blocks should be seamlessly downloaded from the marketplace to a file and imported from a file. Requirements: * A recursive export process that exports all the required agents to a single file, no matter how many layers deep (taking care of potential loops). * An import process that expects and extracts several agents from a single file into your library at once. Considerations: We need to ensure the reference IDs in the Agent Blocks match/are updated to match the imported sub-agent ids to prevent broken references. ### Changes 🏗️ * Add sub_graphs field on Graph model * Improve graph creation query to support inserting graph + subgraphs in batch * Deprecate graph template & remove its column * Update on marketplace download agent (unified the used method, with more secure cleanup & proper ownership check). * Fix failing test cases ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Export graph with sub agents. - [x] Import the exported graph with sub agents. |
||
|
|
596b29f53a |
feat(platform/library): Add "Export agent to file" action (#9627)
- Resolves #9609 ### Changes 🏗️ - feat(frontend/library): Add "Export agent to file" button - fix(frontend/library): Put "Open in builder" button behind access check - feat(backend): Improve & move graph export stripping logic - Add logic to strip `SecretField` values - Move node stripping logic to `NodeModel` from `GraphModel` - Add `NodeModel.stripped_for_export()` method - Add `NodeModel.block` property ### 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: - Create and configure an agent with the Publish To Medium block and a block that uses credentials - Go to `/library/agents/[id]` for the agent you just created - [x] -> "Open in builder" button should show - [x] -> "Open in builder" button should work - [x] -> "Export agent to file" button should show - [x] -> "Export agent to file" button should work - [x] -> Exported file contains no credentials or secrets - [ ] -> ~~Exported file contains no user IDs~~ - Go to `/library/agents/[id]` for an agent from the marketplace - [x] -> "Open in builder" button should not show - [x] -> "Export agent to file" button should not show |
||
|
|
e0300f3d13 |
chore(libs/deps-dev): bump ruff from 0.9.6 to 0.9.9 in /autogpt_platform/autogpt_libs in the development-dependencies group (#9559)
Bumps the development-dependencies group in /autogpt_platform/autogpt_libs with 1 update: [ruff](https://github.com/astral-sh/ruff). Updates `ruff` from 0.9.6 to 0.9.9 <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.9.9</h2> <h2>Release Notes</h2> <h3>Preview features</h3> <ul> <li>Fix caching of unsupported-syntax errors (<a href="https://redirect.github.com/astral-sh/ruff/pull/16425">#16425</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Only show unsupported-syntax errors in editors when preview mode is enabled (<a href="https://redirect.github.com/astral-sh/ruff/pull/16429">#16429</a>)</li> </ul> <h2>Contributors</h2> <ul> <li><a href="https://github.com/InSyncWithFoo"><code>@InSyncWithFoo</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> </ul> <h2>Install ruff 0.9.9</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.9.9</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td> <td>PPC64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64le-unknown-linux-gnu.tar.gz">ruff-powerpc64le-unknown-linux-gnu.tar.gz</a></td> <td>PPC64LE Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64le-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-s390x-unknown-linux-gnu.tar.gz">ruff-s390x-unknown-linux-gnu.tar.gz</a></td> <td>S390x Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-s390x-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-unknown-linux-gnu.tar.gz">ruff-x86_64-unknown-linux-gnu.tar.gz</a></td> <td>x64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-armv7-unknown-linux-gnueabihf.tar.gz">ruff-armv7-unknown-linux-gnueabihf.tar.gz</a></td> <td>ARMv7 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-armv7-unknown-linux-gnueabihf.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-musl.tar.gz">ruff-aarch64-unknown-linux-musl.tar.gz</a></td> <td>ARM64 MUSL Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-musl.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- 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.9.9</h2> <h3>Preview features</h3> <ul> <li>Fix caching of unsupported-syntax errors (<a href="https://redirect.github.com/astral-sh/ruff/pull/16425">#16425</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Only show unsupported-syntax errors in editors when preview mode is enabled (<a href="https://redirect.github.com/astral-sh/ruff/pull/16429">#16429</a>)</li> </ul> <h2>0.9.8</h2> <h3>Preview features</h3> <ul> <li>Start detecting version-related syntax errors in the parser (<a href="https://redirect.github.com/astral-sh/ruff/pull/16090">#16090</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pylint</code>] Mark fix unsafe (<code>PLW1507</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16343">#16343</a>)</li> <li>[<code>pylint</code>] Catch <code>case np.nan</code>/<code>case math.nan</code> in <code>match</code> statements (<code>PLW0177</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16378">#16378</a>)</li> <li>[<code>ruff</code>] Add more Pydantic models variants to the list of default copy semantics (<code>RUF012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16291">#16291</a>)</li> </ul> <h3>Server</h3> <ul> <li>Avoid indexing the project if <code>configurationPreference</code> is <code>editorOnly</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/16381">#16381</a>)</li> <li>Avoid unnecessary info at non-trace server log level (<a href="https://redirect.github.com/astral-sh/ruff/pull/16389">#16389</a>)</li> <li>Expand <code>ruff.configuration</code> to allow inline config (<a href="https://redirect.github.com/astral-sh/ruff/pull/16296">#16296</a>)</li> <li>Notify users for invalid client settings (<a href="https://redirect.github.com/astral-sh/ruff/pull/16361">#16361</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>Add <code>per-file-target-version</code> option (<a href="https://redirect.github.com/astral-sh/ruff/pull/16257">#16257</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>refurb</code>] Do not consider docstring(s) (<code>FURB156</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16391">#16391</a>)</li> <li>[<code>flake8-self</code>] Ignore attribute accesses on instance-like variables (<code>SLF001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16149">#16149</a>)</li> <li>[<code>pylint</code>] Fix false positives, add missing methods, and support positional-only parameters (<code>PLE0302</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16263">#16263</a>)</li> <li>[<code>flake8-pyi</code>] Mark <code>PYI030</code> fix unsafe when comments are deleted (<a href="https://redirect.github.com/astral-sh/ruff/pull/16322">#16322</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix example for <code>S611</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/16316">#16316</a>)</li> <li>Normalize inconsistent markdown headings in docstrings (<a href="https://redirect.github.com/astral-sh/ruff/pull/16364">#16364</a>)</li> <li>Document MSRV policy (<a href="https://redirect.github.com/astral-sh/ruff/pull/16384">#16384</a>)</li> </ul> <h2>0.9.7</h2> <h3>Preview features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
780fddc2a0 |
feat(platform)!: Lock Supabase docker-compose code (#9620)
We have been submoduling Supabase for provisioning local Supabase instances using docker-compose. Aside from the huge size of unrelated code being pulled, there is also the risk of pulling unintentional breaking change from the upstream to the platform. The latest Supabase changes hide the 5432 port from the supabase-db container and shift it to the supavisor, the instance that we are currently not using. This causes an error in the existing setup. ## BREAKING CHANGES This change will introduce different volume locations for the database content, pulling this change will make the data content fresh from the start. To keep your old data with this change, execute this command: ``` cp -r supabase/docker/volumes/db/data db/docker/volumes/db/data ``` ### Changes 🏗️ The scope of this PR is snapshotting the current docker-compose code obtained from the Supabase repository and embedding it into our repository. This will eliminate the need for submodule / recursive cloning and bringing the entire Supabase repository into 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: <!-- Put your test plan here: --> - [x] Existing CI |
||
|
|
52b4351961 |
fix: backend admin page logic was broken (#9616)
<!-- Clearly explain the need for these changes: --> We're building out admin utilities so we need to bring back the `/admin` route with RBAC. This PR goes through re-enabling that to work with the latest changes ### Changes 🏗️ - Adds back removed logic - Refactors the role checks to fix minor bug for admin page and more importantly clarify - Updates routes to the latest <!-- 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] Test with admin and authenticated user roles - [x] Test with logged out user role - [x] For the above check the all the existing routes + new ones in the `middleware.ts` |
||
|
|
8757439192 | fix(platform): Fallback front-end-url to platform-url for billing page | ||
|
|
e124ee6a9e |
chore(frontend/deps): bump the production-dependencies group across 1 directory with 13 updates (#9611)
Bumps the production-dependencies group with 13 updates in the /autogpt_platform/frontend directory: | Package | From | To | | --- | --- | --- | | [@faker-js/faker](https://github.com/faker-js/faker) | `9.4.0` | `9.6.0` | | [@next/third-parties](https://github.com/vercel/next.js/tree/HEAD/packages/third-parties) | `15.1.6` | `15.2.1` | | [@supabase/supabase-js](https://github.com/supabase/supabase-js) | `2.48.1` | `2.49.1` | | [@tanstack/react-table](https://github.com/TanStack/table/tree/HEAD/packages/react-table) | `8.20.6` | `8.21.2` | | [@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react) | `12.4.2` | `12.4.4` | | [framer-motion](https://github.com/motiondivision/motion) | `12.3.1` | `12.4.11` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.474.0` | `0.479.0` | | [next-themes](https://github.com/pacocoursey/next-themes) | `0.4.4` | `0.4.5` | | [react-day-picker](https://github.com/gpbl/react-day-picker) | `9.5.1` | `9.6.1` | | [react-icons](https://github.com/react-icons/react-icons) | `5.4.0` | `5.5.0` | | [react-shepherd](https://github.com/shepherd-pro/shepherd) | `6.1.7` | `6.1.8` | | [uuid](https://github.com/uuidjs/uuid) | `11.0.5` | `11.1.0` | | [zod](https://github.com/colinhacks/zod) | `3.24.1` | `3.24.2` | Updates `@faker-js/faker` from 9.4.0 to 9.6.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/faker-js/faker/releases"><code>@faker-js/faker</code>'s releases</a>.</em></p> <blockquote> <h2>v9.6.0</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): update dependency typescript to v5.8.2 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3424">faker-js/faker#3424</a></li> <li>chore(deps): update dependency ts-morph to v25.0.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3418">faker-js/faker#3418</a></li> <li>chore(deps): update devdependencies by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3419">faker-js/faker#3419</a></li> <li>chore(deps): update eslint by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3420">faker-js/faker#3420</a></li> <li>chore(deps): update vitest by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3421">faker-js/faker#3421</a></li> <li>chore(deps): update all non-major dependencies by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3422">faker-js/faker#3422</a></li> <li>chore(deps): remove obsolete dependency <code>@types/eslint</code>__js by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3425">faker-js/faker#3425</a></li> <li>chore(deps): update dependency prettier to v3.5.2 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3423">faker-js/faker#3423</a></li> <li>chore(deps): update pnpm to v10 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3427">faker-js/faker#3427</a></li> <li>chore(deps): update eslint (major) by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3426">faker-js/faker#3426</a></li> <li>chore(deps): update devdependencies by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3428">faker-js/faker#3428</a></li> <li>chore(deps): lock file maintenance by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3431">faker-js/faker#3431</a></li> <li>docs: revert npm download badge by <a href="https://github.com/LitoMore"><code>@LitoMore</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3433">faker-js/faker#3433</a></li> <li>feat(finance): add ISO 4217 numerical codes to Currency object by <a href="https://github.com/Nfloc"><code>@Nfloc</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3404">faker-js/faker#3404</a></li> <li>feat(number): bigint multipleOf by <a href="https://github.com/soc221b"><code>@soc221b</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3402">faker-js/faker#3402</a></li> <li>refactor(internet): deprecate color method for removal by <a href="https://github.com/ST-DDT"><code>@ST-DDT</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3401">faker-js/faker#3401</a></li> <li>test: add snapshot test for all locales' character sets by <a href="https://github.com/ST-DDT"><code>@ST-DDT</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3276">faker-js/faker#3276</a></li> <li>chore(release): 9.6.0 by <a href="https://github.com/fakerjs-bot"><code>@fakerjs-bot</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3435">faker-js/faker#3435</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/LitoMore"><code>@LitoMore</code></a> made their first contribution in <a href="https://redirect.github.com/faker-js/faker/pull/3433">faker-js/faker#3433</a></li> <li><a href="https://github.com/Nfloc"><code>@Nfloc</code></a> made their first contribution in <a href="https://redirect.github.com/faker-js/faker/pull/3404">faker-js/faker#3404</a></li> <li><a href="https://github.com/soc221b"><code>@soc221b</code></a> made their first contribution in <a href="https://redirect.github.com/faker-js/faker/pull/3402">faker-js/faker#3402</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/faker-js/faker/compare/v9.5.1...v9.6.0">https://github.com/faker-js/faker/compare/v9.5.1...v9.6.0</a></p> <h2>v9.5.1</h2> <h2>What's Changed</h2> <ul> <li>test: retry verify tag 3 times by <a href="https://github.com/Shinigami92"><code>@Shinigami92</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3395">faker-js/faker#3395</a></li> <li>test: disable summary for local by <a href="https://github.com/Shinigami92"><code>@Shinigami92</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3394">faker-js/faker#3394</a></li> <li>chore: add usage trend by <a href="https://github.com/cwtuan"><code>@cwtuan</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3374">faker-js/faker#3374</a></li> <li>chore(deps): lock file maintenance by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3403">faker-js/faker#3403</a></li> <li>fix: test before using Buffers by <a href="https://github.com/ST-DDT"><code>@ST-DDT</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3400">faker-js/faker#3400</a></li> <li>revert(chore): update LICENSE file (<a href="https://redirect.github.com/faker-js/faker/issues/3350">#3350</a>) by <a href="https://github.com/Shinigami92"><code>@Shinigami92</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3410">faker-js/faker#3410</a></li> <li>chore(deps): lock file maintenance by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3411">faker-js/faker#3411</a></li> <li>docs: change ejcheng by <a href="https://github.com/Shinigami92"><code>@Shinigami92</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3408">faker-js/faker#3408</a></li> <li>docs: improve missing data error by <a href="https://github.com/ST-DDT"><code>@ST-DDT</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3406">faker-js/faker#3406</a></li> <li>chore(release): 9.5.1 by <a href="https://github.com/fakerjs-bot"><code>@fakerjs-bot</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3415">faker-js/faker#3415</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/cwtuan"><code>@cwtuan</code></a> made their first contribution in <a href="https://redirect.github.com/faker-js/faker/pull/3374">faker-js/faker#3374</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/faker-js/faker/compare/v9.5.0...v9.5.1">https://github.com/faker-js/faker/compare/v9.5.0...v9.5.1</a></p> <h2>v9.5.0</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): lock file maintenance by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3377">faker-js/faker#3377</a></li> <li>docs: faker.seed examples are not consistent after refresh by <a href="https://github.com/matthewmayer"><code>@matthewmayer</code></a> in <a href="https://redirect.github.com/faker-js/faker/pull/3378">faker-js/faker#3378</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/faker-js/faker/blob/next/CHANGELOG.md"><code>@faker-js/faker</code>'s changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/faker-js/faker/compare/v9.5.1...v9.6.0">9.6.0</a> (2025-03-06)</h2> <h3>Features</h3> <ul> <li><strong>finance:</strong> add ISO 4217 numerical codes to Currency (<a href="https://redirect.github.com/faker-js/faker/issues/3404">#3404</a>) (<a href=" |
||
|
|
7854b999f3 |
fix(frontend/library): Truncate agent card title and description (#9658)
- Resolves #9631 ### Changes 🏗️ - Truncate library agent card title (2 lines) and description (3 lines) - Make "See runs" and "Open in builder" stick to bottom of card regardless of other content - Reduce number of grid columns (4 -> 3) in `lg` layout on `/library` to give items more horizontal space  ### 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] Visually test the changes made on different screen sizes |
||
|
|
ca5fb1618e |
fix(frontend/library): Improve agent I/O rendering (#9656)
- Related to #8784 ### Changes 🏗️ - feat(frontend/library): Improve agent output styling & fix content overflow issue - fix(frontend/library): Fix overlap between content and inset button of expandable input fields (#9650) - fix(backend): Unbreak loading graph executions with missing inputs  ### 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: - Run an agent with at least one input *not* filled out; view this run in the Library - [x] -> page should load normally - [x] -> agent inputs should load and show normally - Run an agent that generates long output; view this run in the Library - [x] -> output should not overflow its container or stretch the page layout - [x] -> visually check that the output section looks slick |
||
|
|
6d36be6f86 |
fix(blocks): SendWebRequestBlock to properly handle HTTP error responses (#9655)
### Issue The SendWebRequestBlock currently fails to properly route HTTP error responses (4xx, 5xx) to their designated output pins (`client_error` and `server_error`). Instead, these errors are being sent to the default "Error" pin, breaking expected workflows that depend on proper error handling. ### Root Cause The underlying issue is that our custom `requests` module from `backend.util.request` appears to automatically raise exceptions for error status codes (similar to how `raise_for_status()` works in the standard requests library). When these exceptions are thrown, the block's conditional logic for handling different status codes is bypassed entirely. ### Changes This PR adds proper exception handling to catch HTTP errors raised by the requests module and routes them to the appropriate output pins: - Added a try-except block to capture `requests.exceptions.HTTPError` - Extract status code and response data from the caught exception - Yield to the proper pin based on the status code (4xx → client_error, 5xx → server_error) - Maintain consistent behavior with the original design intent ### Additional Context This change maintains backward compatibility while ensuring the block behaves according to its documented functionality. Users can now properly handle 4xx and 5xx errors in their workflows as originally intended. <!-- Clearly explain the need for these changes: --> ### 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 block with new changes and old and ensure expected behavior --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
dc1d5faa5d |
fix(backend): drastically increase batching time for the agent run (#9654)
<!-- Clearly explain the need for these changes: --> We accidently send several emails within 10 mins and we're gonna get blocked for spam if we keep it up ### Changes 🏗️ - moves 1 min to 60 min timer <!-- 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] Test via batching a series of notiications over an hour |
||
|
|
a187e87741 |
feat(frontend/library): Make agent input fields expandable (#9650)
- Resolves #9622 ### Changes 🏗️ - Add pop-out button + modal to input fields in Agent Run Draft view on `/library/agents/[id]` - Fix `icon`-variant button styling   ### 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 an agent's page -> click "+ New run" - [x] -> pop-out button should show on all input fields - Enter a value in one of the inputs; click the pop-out button on that input - [x] -> input modal with large text field should open - [x] -> the value you just entered should be present in the modal's text field - Edit the value & click "Save" - [x] -> the modal should close - [x] -> the value in the corresponding input field should be updated |
||
|
|
067983eb80 | fix(block): Revert custom get_missing_links method on AddToListBlock | ||
|
|
e6de8b98f7 |
fix(block): Avoid infinite loop execution on AddToListBlock self-loop (#9629)
### Changes 🏗️ <img width="757" alt="image" src="https://github.com/user-attachments/assets/909aab58-24c7-42ec-9580-ac3e9f32057e" /> Since a self-loop is now allowed for AddToListBlock, providing an entry pin using a static output will cause infinite execution. This PR change avoid such scenario to be allowed. ### 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] Described above |
||
|
|
607641c574 |
fix(platform): Fix possible db-config permission denied when running two different Supabase versions (#9652)
The change in https://github.com/Significant-Gravitas/AutoGPT/pull/9620 introduces a breaking change in the database volume content; however, the database's volume location does not change, making switching between two versions clash. ### Changes 🏗️ Renamed db-config named volume to supabase-config. ### 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] CI |
||
|
|
18dfbf191c |
feat(platform/library): Add icons to primary agent run action buttons (#9651)
- Resolves #9612 ### Changes 🏗️ - Add icon to "Run" button in run draft view - Add icons "Stop run" and "Run again" buttons in run 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: - Purely visual changes, no functional test needed. Technical changes are covered by the type checker. |
||
|
|
841679216c |
feat(frontend): break out the sidebar into a reusable component + use it for admin page (#9618)
<!-- Clearly explain the need for these changes: --> We need a sidebar for the admin page, might as well reuse the reusable component to do so! ### Changes 🏗️ - Extracts the agptui sidebar to a more reusable component - Update the usage of that sidebar in the settings page - Use that same sidebar for the admin page <!-- 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] Test the old sidebar - [x] Test the new sidebar for admin |
||
|
|
50eac43e1a |
feat(backend): Support sub-agent on export/import agent feature (#9640)
Agents using Agent blocks should be seamlessly downloaded from the marketplace to a file and imported from a file. Requirements: * A recursive export process that exports all the required agents to a single file, no matter how many layers deep (taking care of potential loops). * An import process that expects and extracts several agents from a single file into your library at once. Considerations: We need to ensure the reference IDs in the Agent Blocks match/are updated to match the imported sub-agent ids to prevent broken references. ### Changes 🏗️ * Add sub_graphs field on Graph model * Improve graph creation query to support inserting graph + subgraphs in batch * Deprecate graph template & remove its column * Update on marketplace download agent (unified the used method, with more secure cleanup & proper ownership check). * Fix failing test cases ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Export graph with sub agents. - [x] Import the exported graph with sub agents. |
||
|
|
91445e4760 |
feat(platform/library): Add "Export agent to file" action (#9627)
- Resolves #9609 ### Changes 🏗️ - feat(frontend/library): Add "Export agent to file" button - fix(frontend/library): Put "Open in builder" button behind access check - feat(backend): Improve & move graph export stripping logic - Add logic to strip `SecretField` values - Move node stripping logic to `NodeModel` from `GraphModel` - Add `NodeModel.stripped_for_export()` method - Add `NodeModel.block` property ### 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: - Create and configure an agent with the Publish To Medium block and a block that uses credentials - Go to `/library/agents/[id]` for the agent you just created - [x] -> "Open in builder" button should show - [x] -> "Open in builder" button should work - [x] -> "Export agent to file" button should show - [x] -> "Export agent to file" button should work - [x] -> Exported file contains no credentials or secrets - [ ] -> ~~Exported file contains no user IDs~~ - Go to `/library/agents/[id]` for an agent from the marketplace - [x] -> "Open in builder" button should not show - [x] -> "Export agent to file" button should not show |
||
|
|
6127727aeb |
chore(libs/deps-dev): bump ruff from 0.9.6 to 0.9.9 in /autogpt_platform/autogpt_libs in the development-dependencies group (#9559)
Bumps the development-dependencies group in /autogpt_platform/autogpt_libs with 1 update: [ruff](https://github.com/astral-sh/ruff). Updates `ruff` from 0.9.6 to 0.9.9 <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.9.9</h2> <h2>Release Notes</h2> <h3>Preview features</h3> <ul> <li>Fix caching of unsupported-syntax errors (<a href="https://redirect.github.com/astral-sh/ruff/pull/16425">#16425</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Only show unsupported-syntax errors in editors when preview mode is enabled (<a href="https://redirect.github.com/astral-sh/ruff/pull/16429">#16429</a>)</li> </ul> <h2>Contributors</h2> <ul> <li><a href="https://github.com/InSyncWithFoo"><code>@InSyncWithFoo</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> </ul> <h2>Install ruff 0.9.9</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.9.9</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td> <td>PPC64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64le-unknown-linux-gnu.tar.gz">ruff-powerpc64le-unknown-linux-gnu.tar.gz</a></td> <td>PPC64LE Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64le-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-s390x-unknown-linux-gnu.tar.gz">ruff-s390x-unknown-linux-gnu.tar.gz</a></td> <td>S390x Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-s390x-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-unknown-linux-gnu.tar.gz">ruff-x86_64-unknown-linux-gnu.tar.gz</a></td> <td>x64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-armv7-unknown-linux-gnueabihf.tar.gz">ruff-armv7-unknown-linux-gnueabihf.tar.gz</a></td> <td>ARMv7 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-armv7-unknown-linux-gnueabihf.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-musl.tar.gz">ruff-aarch64-unknown-linux-musl.tar.gz</a></td> <td>ARM64 MUSL Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-musl.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- 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.9.9</h2> <h3>Preview features</h3> <ul> <li>Fix caching of unsupported-syntax errors (<a href="https://redirect.github.com/astral-sh/ruff/pull/16425">#16425</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Only show unsupported-syntax errors in editors when preview mode is enabled (<a href="https://redirect.github.com/astral-sh/ruff/pull/16429">#16429</a>)</li> </ul> <h2>0.9.8</h2> <h3>Preview features</h3> <ul> <li>Start detecting version-related syntax errors in the parser (<a href="https://redirect.github.com/astral-sh/ruff/pull/16090">#16090</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pylint</code>] Mark fix unsafe (<code>PLW1507</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16343">#16343</a>)</li> <li>[<code>pylint</code>] Catch <code>case np.nan</code>/<code>case math.nan</code> in <code>match</code> statements (<code>PLW0177</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16378">#16378</a>)</li> <li>[<code>ruff</code>] Add more Pydantic models variants to the list of default copy semantics (<code>RUF012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16291">#16291</a>)</li> </ul> <h3>Server</h3> <ul> <li>Avoid indexing the project if <code>configurationPreference</code> is <code>editorOnly</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/16381">#16381</a>)</li> <li>Avoid unnecessary info at non-trace server log level (<a href="https://redirect.github.com/astral-sh/ruff/pull/16389">#16389</a>)</li> <li>Expand <code>ruff.configuration</code> to allow inline config (<a href="https://redirect.github.com/astral-sh/ruff/pull/16296">#16296</a>)</li> <li>Notify users for invalid client settings (<a href="https://redirect.github.com/astral-sh/ruff/pull/16361">#16361</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>Add <code>per-file-target-version</code> option (<a href="https://redirect.github.com/astral-sh/ruff/pull/16257">#16257</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>refurb</code>] Do not consider docstring(s) (<code>FURB156</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16391">#16391</a>)</li> <li>[<code>flake8-self</code>] Ignore attribute accesses on instance-like variables (<code>SLF001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16149">#16149</a>)</li> <li>[<code>pylint</code>] Fix false positives, add missing methods, and support positional-only parameters (<code>PLE0302</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/16263">#16263</a>)</li> <li>[<code>flake8-pyi</code>] Mark <code>PYI030</code> fix unsafe when comments are deleted (<a href="https://redirect.github.com/astral-sh/ruff/pull/16322">#16322</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix example for <code>S611</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/16316">#16316</a>)</li> <li>Normalize inconsistent markdown headings in docstrings (<a href="https://redirect.github.com/astral-sh/ruff/pull/16364">#16364</a>)</li> <li>Document MSRV policy (<a href="https://redirect.github.com/astral-sh/ruff/pull/16384">#16384</a>)</li> </ul> <h2>0.9.7</h2> <h3>Preview features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
1bc3041615 |
feat(platform)!: Lock Supabase docker-compose code (#9620)
We have been submoduling Supabase for provisioning local Supabase instances using docker-compose. Aside from the huge size of unrelated code being pulled, there is also the risk of pulling unintentional breaking change from the upstream to the platform. The latest Supabase changes hide the 5432 port from the supabase-db container and shift it to the supavisor, the instance that we are currently not using. This causes an error in the existing setup. ## BREAKING CHANGES This change will introduce different volume locations for the database content, pulling this change will make the data content fresh from the start. To keep your old data with this change, execute this command: ``` cp -r supabase/docker/volumes/db/data db/docker/volumes/db/data ``` ### Changes 🏗️ The scope of this PR is snapshotting the current docker-compose code obtained from the Supabase repository and embedding it into our repository. This will eliminate the need for submodule / recursive cloning and bringing the entire Supabase repository into 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: <!-- Put your test plan here: --> - [x] Existing CI |
||
|
|
9c84dbddca |
fix: backend admin page logic was broken (#9616)
<!-- Clearly explain the need for these changes: --> We're building out admin utilities so we need to bring back the `/admin` route with RBAC. This PR goes through re-enabling that to work with the latest changes ### Changes 🏗️ - Adds back removed logic - Refactors the role checks to fix minor bug for admin page and more importantly clarify - Updates routes to the latest <!-- 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] Test with admin and authenticated user roles - [x] Test with logged out user role - [x] For the above check the all the existing routes + new ones in the `middleware.ts` |
||
|
|
b67c2e166b | fix(platform): Fallback front-end-url to platform-url for billing page | ||
|
|
aa17872667 |
feat(backend): Fix failed RPC on Notification Service
(cherry picked from commit
|
||
|
|
801f3a3a24 | feat(backend): Fix failed RPC on Notification Service | ||
|
|
b0fed43971 |
feat(backend): Fix failed RPC on Notification Service (#9630)
Although returning a Prisma object on an RPC is a bad practice, we have
instances where we do so and the type contains a `prisma.Json` field.
This Json field can't be seamlessly serialized and then converted back
into the Prisma object.
### Changes 🏗️
Replacing prisma object as return type on notification service with a
plain pydantic object as DTO.
### 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] Calling notification APIs through the RPC client.
(cherry picked from commit
|
||
|
|
b9f31a9c44 |
feat(backend): Fix failed RPC on Notification Service (#9630)
Although returning a Prisma object on an RPC is a bad practice, we have instances where we do so and the type contains a `prisma.Json` field. This Json field can't be seamlessly serialized and then converted back into the Prisma object. ### Changes 🏗️ Replacing prisma object as return type on notification service with a plain pydantic object as DTO. ### 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] Calling notification APIs through the RPC client. |
||
|
|
90f9e4e94a |
fix(backend): Move Notification service to DB manager (#9626)
DatabaseManager is already provisioned in RestApiService, and
NotificationService lives within the same instance as the Rest Server.
### Changes 🏗️
Moving the DB calls of NotificationService to DatabaseManager.
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
(cherry picked from commit
|
||
|
|
f4d4bb83b0 |
fix(backend): Move Notification service to DB manager (#9626)
DatabaseManager is already provisioned in RestApiService, and NotificationService lives within the same instance as the Rest Server. ### Changes 🏗️ Moving the DB calls of NotificationService to DatabaseManager. ### Checklist 📋 #### For code changes: - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [ ] ... <details> <summary>Example test plan</summary> - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly </details> #### For configuration changes: - [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**) <details> <summary>Examples of configuration changes</summary> - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases </details> |