-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update before install #1
base: master
Are you sure you want to change the base?
update before install #1
Conversation
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
28 similar comments
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
Prevent exception when `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY` is missing and update state management in `useCredits`.
When block is pasted the original block's inputs behave as disconnected: the input is shown despite there being connection. This PR fixes this issue.
Array output, e.g. `Item` in Step Through Items block doesn't output correct number of beads, this PR fixes this issue.
<!-- Clearly explain the need for these changes: --> We want to use RabbitMQ for email (and executor in the future) to ensure message delivery -- something we currently lack with Redis. This PR is adding RabbitMQ to the docker-compose and setup details with defaults so that when we start bringing services up, they have the backing to do so. ### Changes ποΈ <!-- Concisely describe all of the changes made in this pull request: --> - Adds rabbitmq container (with exposed API and mgmt ports) - Adds .env.example config for the backend - Adds dockercompose config for the backend, and passes the variables around as needed ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Start the container using docker compose deps subset #### For configuration changes: - [x] `.env.example` is updated or already compatible with my changes - [x] `docker-compose.yml` is updated or already compatible with my changes - [x] I have included a list of my configuration changes in the PR description (under **Changes**)
### Changes ποΈ For Emailing, we need to make a new App Service (NotificationManager) that will require us to have rabbitmq as a dependency. This is the backing data library to make that happen + registering it with the app service base class and connecting when we spawn up a service <!-- Concisely describe all of the changes made in this pull request: --> - Adds a rabbitmq library following the existing standard for redis - Adds rabbitmq to the service - Adds rabbitmq mgmt library (pika) so that we can connect to rabbitmq ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] I tested by adding the following to the executor `@expose add_execution` and verifying via the UI that the messages show up in the queue as expected + the agent executes and behaves as normal!  ```diff diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index 1d965e012..4cd5b403c 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -18,7 +18,7 @@ if TYPE_CHECKING: from autogpt_libs.utils.cache import thread_cached from backend.blocks.agent import AgentExecutorBlock -from backend.data import redis +from backend.data import rabbitmq, redis from backend.data.block import ( Block, BlockData, @@ -750,6 +750,19 @@ class ExecutionManager(AppService): def __init__(self): super().__init__() self.use_redis = True + self.use_rabbitmq = rabbitmq.RabbitMQConfig( + exchanges=[ + rabbitmq.Exchange(name="execution", type=rabbitmq.ExchangeType.FANOUT), + ], + queues=[ + rabbitmq.Queue( + name="execution", + exchange=rabbitmq.Exchange( + name="execution", type=rabbitmq.ExchangeType.FANOUT + ), + ), + ], + ) self.use_supabase = True self.pool_size = settings.config.num_graph_workers self.queue = ExecutionQueue[GraphExecutionEntry]() @@ -876,6 +889,12 @@ class ExecutionManager(AppService): ) self.queue.add(graph_exec) + # test rabbitmq + self.rabbit.publish_message( + exchange=self.rabbit_config.exchanges[0], + routing_key=self.rabbit_config.exchanges[0].name, + message=graph_exec_id, + ) return graph_exec @expose ```
Scheduling always takes the newest version of an agent. ### Changes ποΈ This PR allows to schedule any graph version by adding number input to schedule popup. Number is automatically set to the newest version when agent is chosen. <img width="533" alt="Screenshot 2025-02-07 at 5 05 56β―PM" src="https://github.com/user-attachments/assets/357b8810-6f02-4066-b7a3-824d9bfd62af" /> - Update API, so it accepts graph version - Update schedule pop up, so it lets user input version number - Open and schedule correct agent - Add `Version` column to the schedules table ### 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] Can schedule version between 1 and max version - [x] Reject incorrect version - [x] Table shows proper version - [x] Removing schedule works
-Updated pyproject.toml for new dependency gravitasml -Updated poetry.lock <!-- Clearly explain the need for these changes: --> - Issue no #9317 stated that, the addition of an XMLParserBlock is required. - It was suggested that the use of gravitasml as external package to be used for parsing. - Changes incorporated and tested as per requirements. ### Changes ποΈ - Added xml_parser.py - updated pyproject.toml - updated poetry.lock for dependency changes <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [ ] ... <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 - [x] 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: Nicholas Tindle <[email protected]>
### Background Resolves: #9313 The marketplace featured agent's section has a bug where if you hover over a featured agent's card we are getting an incorrect background color applied to the description. ### Changes ποΈ 1. Refactored `FeaturedStoreCard` to `FeaturedAgentCard`: - Condensed props and leverage StoreAgent type from api - Removed onClick handler from props as this is not json serializable and is not inline with NextJS best practices - Used built in Card Components from ShadCN to minimize custom styling. - Optimize images with implementation of the Image component from NextJS 2. Enhanced `FeaturedCardSection` components: - Removing extensive prop passing and leverage the agent itself with the StoreAgent type. - Implemented Link from NextJS to better handler routing and remove the `useRouter` implementation - Removed unnecessary handleCardClick method. ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: Test Plan <details> <summary></summary> - [ ] Goto the landing page of the application or /marketplace - [ ] Scroll to the featured agents section - [ ] Move mouse over each of the cards and observe the image disappearing and text being shown - [ ] Observe the background color of the text that replaced the image matches that of the card </details>
β¦ofile route (#9465) ### Background Resolves: #9313 The application is incorrectly nesting the user's profile settings within the route of `/marketplace` instead of the appropriate route of `/profile` This pr will modify the existing code to handle the relocation of the (user) directory from the /marketplace to /profile. ### Changes ποΈ 1. Refactored directory of `(user)`: - Moved the directory of (user) from `/marketplace/(user)` to `profile/(user)` 2. Update Sidebar and Navbar components: - Updating the existing code from the routing of market to profile by modifying the existing routes. ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <details> <summary>Test Plan</summary> - [ ] Navigate to the route of `profile/` and observe the moved page. - [ ] Navigate to the route of `profile/integrations` and observe the moved page. - [ ] Navigate to the route of `profile/api_keys` and observe the moved page. - [ ] Navigate to the route of `profile/profile` and observe the moved page. - [ ] Navigate to the route of `profile/settings` and observe the moved page. - [ ] Navigate to the route of `profile/credits` and observe the moved page. </details>
- Resolves #9467 ### Changes ποΈ - Loosen Python version requirement to include v3.10 Also, fixed a few issues in pyproject.toml: - Re-sort dependency list - Update `autogpt-platform-backend` package version to match latest release
<!-- Clearly explain the need for these changes: --> ### Changes ποΈ Added `--progress` to the submodule update, so that cloning progress can be tracked and does not appear to hang. <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist π #### For code changes: - [x] No code change, just docs. <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: - [x] No configuration change, just docs. <details> <summary> Provide feedback when cloning submodules </summary> - now updating submodules shows the cloning repo's progress </details> Co-authored-by: Your Name <[email protected]>
β¦ormationBlock (#9470) ### Changes ποΈ Introduced `matched_result` & `matched_count` as a batch matched result list and its count for the block execution of ExtractTextInformationBlock. ### 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>
Updates the PublishAgentAwaitingReview router.push path, it was going to ``/marketplace/dashboard`` it should be ``/profile/dashboard`` ### Changes ποΈ https://github.com/Significant-Gravitas/AutoGPT/blob/8181ee8cd1f71bd351a3e0ad66356a0313877db2/autogpt_platform/frontend/src/components/agptui/composite/PublishAgentPopout.tsx#L265-L267 to be ```tsx onViewProgress={() => { router.push("/profile/dashboard"); handleClose(); }} ```
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
β¦ion Service (#9445) <!-- Clearly explain the need for these changes: --> The email service has requirements to - Email users when some activity has happened on their account on some scheduled basis -> We need a way to get active users and the executions that happened while they were active - Allow users to configure what emails they get -> Need a user preference - Get User email by Id so that we can email them -> Pretty self-explanatory We need to add a few new backend queries + db models for the notification to start handling these details. This is the first set of those changes based on experience building the app service ### Changes ποΈ <!-- Concisely describe all of the changes made in this pull request: --> - Adds a new DB Model, `UserNotificationPreferences,` with related migration - Adds a new DB Model `NotificationEvent` with related migration to track what notifications we've sent and how many and such (how much we add here is open to change depending on what limits on data we want) - Adds a new DB Model `UserNotificationBatch` with related migration to handle batching of like models - Adds queries to get users and executions by `datetime` ranges as `ISO` strings - Adds new queries to the `DatabaseManager` and exposes them to the other `AppService`s - Exposes all new queries plus an existing one `get_user_by_id` ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] I extracted these changes from a working implementation of the service, and tested they don't bring down the service by being uncalled by running the standard agent tests we do on release --------- Co-authored-by: Reinier van der Leer <[email protected]>
β¦ column (#9475) ### Changes ποΈ Due to the legacy of SQLite usage, some of the JSON columns are actually a string column string a stringified JSON column. The scope of this PR is migrating those columns into an actual JSON column. ### 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>
- Blocked by #9267 This re-introduces changes from the following PRs with fixes: - #9218 - #9211 ### Changes ποΈ - See #9218 - See #9211 Fixes: - Fix Prisma query statements in `v2.library.db` - Fix creation of (library) agents - Fix test cleanup of (library) agents - Fix handling and passing of `node_input` parameters ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Create & run a new agent - [x] Update & run an existing agent
We want to send emails on a schedule, in response to events, and be expandable without being overbearing on the amount of effort to implement. We also want this to use rabbitmq and be easy for other services to send messages into. This PR adds the first use of the service to simply show a log message ### Changes ποΈ <!-- Concisely describe all of the changes made in this pull request: --> - Adds a new backend service for notifications - Adds first notification into the service -> Agent Execution - Adds spawning the notification service Also - Adds RabbitMQ to CI so we can test stuff - Adds a minor fix for one of the migrations that I thought was causing failures, but isn't but the change is still useful ### 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] Built and ran an agent and ensured the following log line appeared which shows the event would have sent an email ``` 2025-02-10 15:52:02,232 INFO Processing notification: user_id='96b8d2f5-a036-437f-bd8e-ba8856028553' type=<NotificationType.AGENT_RUN: 'AGENT_RUN'> data=AgentRunData(agent_name='CalculatorBlock', credits_used=0.0, execution_time=0.0, graph_id='30e5f332-a092-4795-892a-b063a8c7bdd9', node_count=1) created_at=datetime.datetime(2025, 2, 10, 15, 52, 2, 162865) ``` #### 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**) None of the other ports are configurable via .env.example listing so left as is <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 <[email protected]>
) <!-- Clearly explain the need for these changes: --> We need a way to send emails for the email service to function. We will depend on Postmark to do that. This PR adds a simple email-sending service with the required settings to make it work. It also builds on the previous agent run by sending the emails that are in the immediate queue. Keep in mind that the email template leaves a bit to be desired. ### Changes ποΈ <!-- Concisely describe all of the changes made in this pull request: --> - Add `email.py` with the minimum required to send an email (plus type handling) - Add settings configs for the token and the send address to the `settings.py` and `.env.example` - Add a db call to get user email by ID since the `metadata` field of `prisma.models.User` isn't serializable over our message bus tool `Pyro` that the `DatabaseManager` uses - Add a horrible `AgentRun` email template using `jinja2` - Add `postmarker` to `pyproject.toml` ### 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] Build and run an agent and make sure it emails me (must be signed into same domain as receiving address for now) #### For configuration changes: - [x] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [x] I have added a check that disables email if config is not set correctly - [x] I have included a list of my configuration changes in the PR description (under **Changes**) --------- Co-authored-by: Reinier van der Leer <[email protected]>
### Changes ποΈ Poetry.lock is using the old version that the CI is not using. Set the Poetry version to ^2.1.1. ### 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>
### Changes ποΈ Added the dispute & refund handling on the system. https://github.com/user-attachments/assets/2d9c7b48-2ee1-401d-be65-5e9787c8130e ### 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>
<!-- Clearly explain the need for these changes: --> I made a mistake in how we check if postmark exists ### Changes ποΈ - adds a more explicit setting of postmark to none and extra checking to prevent its use if it isnβt set <!-- 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] I have no plan, itβs a simple logic bug so if it passes CI itβs good
β¦#9498) - Follow-up to #9258 The front end is fetching `/library/agents` -> `LibraryAgent[]` but using the result as `GraphMeta[]`. This breaks a bunch of things. ### Changes ποΈ Frontend: - Add `LibraryAgent` type for `api.listLibraryAgents()` - Amend all broken usages of `LibraryAgent` objects - Introduce branded typing for `LibraryAgent.id` and `GraphMeta.id` to disallow mixing them. This prevents incorrect use in the future, and reduces the chance of this frontend issue accumulating interest on existing open PRs. Backend: - Add a migration to create `LibraryAgent` objects for all existing `AgentGraphs` ### 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] Check that all existing agents are listed in the agents list on `/monitoring` (check against DB or `GET /api/graphs`) - [x] Check that all views of `/monitoring` work - [x] Try to run an agent and check its status
#9476) Implemented a fully functional user settings page allowing changes to account details and notification preferences. This change uses a server first approach and adds much needed form validation to this page. This PR has added loading skeletons for better UX during data fetching. Refactored related components to support these changes and finally implemented server actions to streamline data ingestion. ## Note to developers: At the moment the notification switches set back to default upon save. We will want to pass in this information after the api is implemented. ## Changes ποΈ Rebuilt / Refactored `SettingsFormInput` to `SettingsForm`: - Implemented Form Validation - Implemented a form schema with Zod to validate user input - Added toast messaging to properly inform the user if the form has been successfully completed or if there is an error in thrown from the server action. Added `loading.tsx` - Using `Skeletons` we can deliver a better loading UI for our users causing less screen shifting. Added `actions.ts` - Added a server action for the settings page. This server action will handle the updating of user's settings for this page. It handles the interaction between the application and supabase. After this server action is ran we revalidate the path for our settings page ensuring proper data passed to our components. There is an additional TODO for @ntindle for the api endpoint getting created. This endpoint will cover the newly added notification switches and it's toggles. ## Screenshots π· ### Before Changes: <img width="1083" alt="image" src="https://github.com/user-attachments/assets/f5283fd5-705b-47cf-a7fa-4ca4d7f03444" /> ### After Changes: <img width="762" alt="image" src="https://github.com/user-attachments/assets/20f96f01-b138-4eb7-8867-ce62a2d603d4" /> <img width="1083" alt="image" src="https://github.com/user-attachments/assets/0ae363f5-068f-48e5-8b0f-c079a08f9242" /> <img width="1083" alt="image" src="https://github.com/user-attachments/assets/8cb045ef-f322-4992-881e-fb92281c55cb" /> #### Form Validation <img width="1083" alt="image" src="https://github.com/user-attachments/assets/b78cfef6-94da-49f1-9c93-56cdb9ea4c96" /> <img width="1083" alt="image" src="https://github.com/user-attachments/assets/ade5dce9-8c4b-40eb-aa0f-ff6d31bc3c3c" /> <img width="245" alt="image" src="https://github.com/user-attachments/assets/88866bbf-4e33-43d9-b04a-b53ac848852d" /> ### Checklist π #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <details> <summary>Test Plan</summary> - [ ] Goto the route of `profile/settings` - [ ] Add an invalid email and notice the new validation messaging - [ ] Add invalid passwords that do not match and or is under 8 characters notice the new validation messaging - [ ] Select the cancel button and notice that the form has been set back to the default values - [ ] With the form untouched notice the `Save changes` button is disabled. Toggle a switch and notice the `Save changes` button is now enabled. - [ ] Enter in a valid pair of new passwords in the `New Password` and `Confirm New Password` input fields and select `Save changes` - [ ] Enter in the same passwords again and notice that we will now be shown an Error. This error is bubbling up from supabase in our backend and is stating `New password should be different from the old password` </details> --------- Co-authored-by: Nicholas Tindle <[email protected]> Co-authored-by: Nicholas Tindle <[email protected]> Co-authored-by: Reinier van der Leer <[email protected]>
β¦9387) <!-- Clearly explain the need for these changes: --> We want to support some more advanced search specific actions. These are the base API layers and sample blocks for some of the services we need. ### Changes ποΈ <!-- Concisely describe all of the changes made in this pull request: --> - support pydantic models as an output format - add apollo - add smartlead - add zerobounce ### 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] Built agents to test --------- Co-authored-by: Krzysztof Czerwinski <[email protected]> Co-authored-by: Bently <[email protected]>
- Resolves #8780 - Part of #8774 ### Changes ποΈ - Add new UI components - Add `/agents/[id]` page, with sub-components: - `AgentRunsSelectorList` - `AgentRunSummaryCard` - `AgentRunStatusChip` - `AgentRunDetailsView` - `AgentRunDraftView` - `AgentScheduleDetailsView` Backend improvements: - Improve output of execution-related API endpoints: return `GraphExecution` instead of `NodeExecutionResult[]` - Reduce log spam from Prisma in tests General frontend improvements: - Hide nav link names on smaller screens to prevent navbar overflow - Clean up styling and fix sizing of `agptui/Button` Technical frontend improvements: - Fix tailwind config size increments - Rename `font-poppin` -> `font-poppins` - Clean up component implementations and usages - Yeet all occurrences of `variant="default"` - Remove `default` button variant as duplicate of `outline`; make `outline` the default - Fix minor typing issues DX: - Add front end type-check step to `pre-commit` config - Fix logging setup in conftest.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: - `/agents/[id]` (new) - Go to page -> list of runs loads - Create new run -> runs; all I/O is visible - Click "Run again" -> runs again with same input - `/monitoring` (existing) - Go to page -> everything loads - Selecting agents and agent runs works --------- Co-authored-by: Nicholas Tindle <[email protected]> Co-authored-by: Nicholas Tindle <[email protected]> Co-authored-by: Swifty <[email protected]> Co-authored-by: Zamil Majdy <[email protected]>
There are many occurrences in the UI code that we are defining the font through class but it refers to the invalid font-family names. This causes the component to end up rendering the text using Times New Roman. ### Changes ποΈ Remove manual font definition through string font-family name. ### 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>
<!-- Clearly explain the need for these changes: --> When we fail to process something, we don't want to keep retrying forever. We should store those and process them later ### Changes ποΈ <!-- Concisely describe all of the changes made in this pull request: --> - Fix the type of the failed exchange from Direct to Topic to allow filtering based on name (allows us later to do more advanced handling of queue types) - abstract processing the messages in a queue a bit to reduce repeated code - abstract how we check if a user wants a notification so that its a bit easier to process - Handle errors better - Abstract model parsing ### 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> --------- Co-authored-by: Bently <[email protected]>
<!-- Clearly explain the need for these changes: --> ### Changes ποΈ Add email notifications on refund events. ### 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>
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
Background
Changes ποΈ
PR Quality Scorecard β¨
+2 pts
+5 pts
+5 pts
+5 pts
-4 pts
+4 pts
+5 pts
-5 pts
agbenchmark
to verify that these changes do not regress performance? β+10 pts