mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-31 01:48:23 -05:00
52ad474df3787fb94de14c29f263f092a27b9bce
7791 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
6e0af09c3d | Merge branch 'master' into dev | ||
|
|
9077323b89 | fix(backend): Filter Redis messages by user ID (#9697) | ||
|
|
33299070d3 |
feat(frontend/library): Add toast on agent execution request failure (#9689)
Currently, when an agent execution fails to be executed, the front-end does not display any feedback to the user. The scope of this change is providing that. ### Changes 🏗️ * Extracted `useToastOnFail` from `credits` page into a unified helper method. * Uses `useToastOnFail` on agent execution requests on library pages. <img width="1000" alt="image" src="https://github.com/user-attachments/assets/2daa0597-eb93-457d-8887-0f00c4db89ac" /> <img width="1000" alt="image" src="https://github.com/user-attachments/assets/1a541c98-fb95-424f-8ffe-972332b3ce01" /> ### 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 agent with invalid input <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> --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
87f87500cb |
refactor(backend): Improve error message on unmatched webhook ingress (#9694)
- Resolves #9693 ### Changes 🏗️ - Catch the DB error and log a descriptive error message - Add `NotFoundError` to `backend.util.exceptions` ### 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:~~ - Low-stakes change, high effort to test: we'll see if it works from the production logs |
||
|
|
1162ec1474 |
refactor(backend): Reorganize & clean up execution update system (#9663)
- Prep work for #8782 - Prep work for #8779 ### Changes 🏗️ - refactor(platform): Differentiate graph/node execution events - fix(platform): Subscribe to execution updates by `graph_exec_id` instead of `graph_id`+`graph_version` - refactor(backend): Move all execution related models and functions from `.data.graph` to `.data.execution` - refactor(backend): Reorganize & refactor `.data.execution` - fix(libs): Remove `load_dotenv` in `.auth.config` to fix test config issues - dx: Bump version of `black` in pre-commit config to v24.10.0 to match poetry.lock - Other minor refactoring in both frontend and backend ### 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 in the builder - [x] -> works normally, node I/O is updated in real time - Run an agent in the library - [x] -> works normally --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
37f212e950 | Stop migrating models | ||
|
|
58bb4f92b7 |
feat(platform): Onboarding updates (#9636)
This is a follow up to https://github.com/Significant-Gravitas/AutoGPT/pull/9511 fixing some issues and updating onboarding. ### Changes 🏗️ - Update `UserOnboarding` data - Update schema and add migration - Change `step` in `UserOnboarding` to `completedSteps` array with `OnboardingStep` enum - Remove `isCompleted`: this is now inferred from `completedSteps` values - Don't onboard if <2 marketplace agents; that prevents self-host onboarding - Add endpoints: - `is_onboarding_enabled`: to check if users should be onboarded (not if they finished onboarding); now check if there are at least 2 marketplace agents - `get_store_agent`: returns `StoreAgentDetails` for given `store_listing_version_id` - `get_graph_meta_by_store_listing_version_id`: returns `GraphMeta` - Add agent to Library just before running it and not when chosen and remove code that was responsible for removing agent that wasn't run - Move onboarding to `OnboardingProvider` (it'll be needed globally for Phase 2) - Multiple fixes, renames for clarity ### Checklist 📋 - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Don't onboard if less than 2 marketplace agents - [x] Avoid non-input and credentials agents - [x] Onboarding works and can be finished - [x] Onboarding resumes - [x] Onboarding agent runs correctly --------- Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> |
||
|
|
b7ca8d9c30 |
feat(backend): Migrate old models in existing agents (#9452)
Some existing nodes use models that no longer exist as values on `LlmModel` enum. ### Changes 🏗️ - Update models for all blocks with `LlmModel` fields that do not exist in `LlmModel` enum to `gpt-4o`, directly in `AgentNode->constantInput` db column, on server startup ### 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] Updates wrong models to `gpt-4o` for all affected `AgentNode`s - [x] Doesn't update correct models - [x] Doesn't insert model when unnecessary - [x] Doesn't break other values in jsonb |
||
|
|
66ebe4376e |
fix(backend): Increase block request security; Prevent DNS rebinding & open redirect attack (#9688)
The current block web requests utility has a logic to avoid the system
firing into blocklisted IPs.
However, the current logic is still prone to a few security issues:
* DNS rebinding attack: due to the lack of guarantee on the used IP not
being changed during the IP checking and firing step.
* Open redirect: due to the request sensitive request headers are still
being propagated throughout the web redirect.
### Changes 🏗️
* Uses IP pinning to request the web.
* Strip `Authorization`, `Proxy-Authorization`, `Cookie` upon web
redirects.
### 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 the web request block, add more tests with different
validation scenarios.
(cherry picked from commit
|
||
|
|
f0df4c9174 |
fix(backend): Increase block request security; Prevent DNS rebinding & open redirect attack (#9688)
The current block web requests utility has a logic to avoid the system firing into blocklisted IPs. However, the current logic is still prone to a few security issues: * DNS rebinding attack: due to the lack of guarantee on the used IP not being changed during the IP checking and firing step. * Open redirect: due to the request sensitive request headers are still being propagated throughout the web redirect. ### Changes 🏗️ * Uses IP pinning to request the web. * Strip `Authorization`, `Proxy-Authorization`, `Cookie` upon web redirects. ### 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 the web request block, add more tests with different validation scenarios. |
||
|
|
2e9ca70ce2 | Update CONTRIBUTING.md | ||
|
|
4ca1a453c9 |
refactor(backend): Defer loading of .blocks and .integrations.webhooks on module init (#9664)
Currently, an import statement like `from backend.blocks.basic import AgentInputBlock` will initialize `backend.blocks` and thereby load all other blocks. This has quite high potential to cause circular import issues, and it's bad for performance in cases where we don't want to load all blocks (yet). The same goes for `backend.integrations.webhooks`. ### Changes 🏗️ - Change `__init__.py` of `backend.blocks` and `backend.integrations.webhooks` to cached loader functions rather than init-time code - Change type of `BlockWebhookConfig.provider` to `ProviderName` <!-- test edit to check that this doesn't break anything --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Set up and use an agent with a webhook-triggered block --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
6f48515863 |
fix(blocks): Disable and provide toggle for Agent Input Block subtypes (#9677)
Agent Input Block subtypes do not have a proper input UI yet on the library & run input page. ### Changes 🏗️ Provide a toggle to enable these blocks and set it to False by default. ### 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> |
||
|
|
7ba566e768 |
feat(frontend/backend): admin agent review table (#9634)
<!-- Clearly explain the need for these changes: --> We need an admin agent approval UI for handling the submissions to the marketplace ### Changes 🏗️ - Adds routes to the admin routes list - Fixes the db query for submitting new versions of existing agents - Add models for responses that include version details - add the admin pages for agent - Adds the Admin Agent Data Table - Add all the new endpoints to the client.ts Models changes - convert the Submission status to an enum - remove is_approved from models which was left incorrectly - Add StoreListingWithVersions <!-- 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 admin dashboard for - [x] Reject - [x] Accept - [x] Updating listing - [x] More version submissions --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
26984a7338 |
feat(backend): Add capability to charge based on block execution count (#9661)
Blocks that are not defined in the block cost are pretty much free. The lack of cost control makes it hard to control its quota. The scope of this change is providing a way to charge any executions based on the number of block being executed in real-time. ### Changes 🏗️ * Add execution charge logic based on the number of blocks executed, controlled by these two configurations: * `execution_cost_count_threshold`: We will charge the execution based on the multiple of this number. * `execution_cost_per_threshold`: The amount we are charging on its threshold multiple. * Make charging logic on the graph execution logic (as opposed to node level) so it's being done serially and insufficient fund error is guaranteed to stop the graph execution. * Moved cost calculation logic into backend/executor/util.py ### 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 graph with configured threshold & cost and test the balance being deducted on that. - [x] Existing cost calculation is still being done without any issue. - [x] Low balance stop the whole graph execution. |
||
|
|
5b118fc939 | fix(blocks): Fix failing block test AgentToggleInputBlock | ||
|
|
ed48d1c04f | fix(blocks): Change title of placeholder_values on AgentDropdownInputBlock | ||
|
|
8d87c08b8c | fix(blocks): Set AgentInputBlocks default value to None and make it a non-advance field | ||
|
|
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 |