mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-14 09:38:00 -05:00
toggle-cors
7247 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
50f39e55f7 | added ability to disable cors at the backend | ||
|
|
e70c970ab6 |
feat(frontend): new <Avatar /> component using next/image (#10897)
## Changes 🏗️ <img width="800" height="648" alt="Screenshot 2025-09-10 at 22 00 01" src="https://github.com/user-attachments/assets/eb396d62-01f2-45e5-9150-4e01dfcb71d0" /><br /> Adds a new `<Avatar />` component and uses that across the app. Is a copy of [shadcn/avatar](https://duckduckgo.com/?q=shadcn+avatar&t=brave&ia=web) with the following modifications: - renders images with [`next/image`](https://duckduckgo.com/?q=next+image&t=brave&ia=web) by default - this ensures avatars rendered on the app are optimised and resized ✔️ - it will work as long as all the domains are white-listed in `nextjs.config.mjs` - allows to bypass and use a normal `<img />` tag via an `as` prop if needed - sometimes we might need to render images from a dynamic cdn 🤷🏽♂️ ## 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] ... ### For configuration changes: None |
||
|
|
3bbce71678 |
feat(builder): Block menu redesign - part 3 (#10864)
### Changes 🏗️ #### Block Menu Redesign - Part 3 This PR continues the block menu redesign effort, implementing the new content sections and improving the overall user experience. The changes focus on better organization, pagination, error handling, and visual consistency. #### Key Features Implemented: **1. New Content Organization** - **All Blocks Content**: Complete listing of all available blocks with category-based organization and infinite scroll support (`AllBlocksContent/`) - **My Agents Content**: Display and manage user's own agents with pagination (`MyAgentsContent/`) - **Marketplace Agents Content**: Browse and add marketplace agents with improved loading states (`MarketplaceAgentsContent/`) - **Integration Blocks**: Dedicated view for integration-specific blocks with better filtering (`IntegrationBlocks/`) - **Suggestion Content**: Smart suggestions based on user context and search history (`SuggestionContent/`) - **Integrations Content**: Browse available integrations in a dedicated view (`IntegrationsContent/`) **2. Enhanced UI Components** - **Paginated Lists**: New pagination components for blocks and integrations (`PaginatedBlocksContent/`, `PaginatedIntegrationList/`) - **Block List**: Reusable block list component with consistent styling (`BlockList/`) - **Improved Error Handling**: Comprehensive error states with retry functionality across all content types - **Loading States**: Skeleton loaders for better perceived performance **3. Infrastructure Improvements** - **Centralized Styles**: New `style.ts` file for consistent styling across components - **Better State Management**: Enhanced context provider with improved menu state handling - **Mock Flag Support**: Added feature flags for testing new block features - **Default State Enum**: Refactored to use enums for menu default states **4. Visual Assets** - Added 50+ new integration icons/logos for better visual representation - Updated existing integration images for consistency **5. Code Quality** - Improved error handling with proper error cards and retry mechanisms - Consistent formatting and import organization - Enhanced TypeScript types and interfaces - Better separation of concerns with dedicated hooks for each content type #### Technical Details: - **Files Changed**: 96 files - **Additions**: 1,380 lines - **Deletions**: 162 lines - **New Components**: 10+ new React components with dedicated hooks - **Integration Icons**: 50+ new PNG images for various integrations #### Breaking Changes: None - All changes are backwards compatible --- ### Test Plan 📋 - [x] Create a new agent and verify all blocks are accessible - [x] Test infinite scroll in "All Blocks" view - [x] Verify pagination works correctly in marketplace agents view - [x] Test error states by simulating network failures - [x] Check that all new integration icons display correctly - [x] Test adding agents from marketplace view - [x] Ensure skeleton loaders appear during data fetching > Generated by claude |
||
|
|
34fbf4377f |
fix(frontend): allow lazy loading of images (#10895)
The `next/image` component has inbuilt lazy loading enabled, but in some
components, we are bypassing it using a priority flag. So, I have
reverted this in this PR.
### Checklist 📋
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] Lazy loading is working perfectly locally.
|
||
|
|
f682ef885a |
chore(frontend/deps-dev): Bump 16 dev dependencies to newer minor versions (#10837)
Bumps the development-dependencies group with 16 updates in the /autogpt_platform/frontend directory: | Package | From | To | | --- | --- | --- | | [@chromatic-com/storybook](https://github.com/chromaui/addon-visual-tests) | `4.1.0` | `4.1.1` | | [@playwright/test](https://github.com/microsoft/playwright) | `1.54.2` | `1.55.0` | | [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `9.1.2` | `9.1.4` | | [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `9.1.2` | `9.1.4` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `9.1.2` | `9.1.4` | | [@storybook/addon-onboarding](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/onboarding) | `9.1.2` | `9.1.4` | | [@storybook/nextjs](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/nextjs) | `9.1.2` | `9.1.4` | | [@tanstack/eslint-plugin-query](https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query) | `5.83.1` | `5.86.0` | | [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) | `5.84.2` | `5.86.0` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.2.1` | `24.3.0` | | [chromatic](https://github.com/chromaui/chromatic-cli) | `13.1.3` | `13.1.4` | | [concurrently](https://github.com/open-cli-tools/concurrently) | `9.2.0` | `9.2.1` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.4.6` | `15.5.2` | | [eslint-plugin-storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin) | `9.1.2` | `9.1.4` | | [msw](https://github.com/mswjs/msw) | `2.10.4` | `2.11.1` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `9.1.2` | `9.1.4` | Updates `@chromatic-com/storybook` from 4.1.0 to 4.1.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chromaui/addon-visual-tests/releases"><code>@chromatic-com/storybook</code>'s releases</a>.</em></p> <blockquote> <h2>v4.1.1</h2> <h4>🐛 Bug Fix</h4> <ul> <li>Broaden version-range for storybook peerDependency <a href="https://redirect.github.com/chromaui/addon-visual-tests/pull/389">#389</a> (<a href="https://github.com/ndelangen"><code>@ndelangen</code></a>)</li> </ul> <h4>Authors: 1</h4> <ul> <li>Norbert de Langen (<a href="https://github.com/ndelangen"><code>@ndelangen</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/chromaui/addon-visual-tests/blob/v4.1.1/CHANGELOG.md"><code>@chromatic-com/storybook</code>'s changelog</a>.</em></p> <blockquote> <h1>v4.1.1 (Wed Aug 20 2025)</h1> <h4>🐛 Bug Fix</h4> <ul> <li>Broaden version-range for storybook peerDependency <a href="https://redirect.github.com/chromaui/addon-visual-tests/pull/389">#389</a> (<a href="https://github.com/ndelangen"><code>@ndelangen</code></a>)</li> </ul> <h4>Authors: 1</h4> <ul> <li>Norbert de Langen (<a href="https://github.com/ndelangen"><code>@ndelangen</code></a>)</li> </ul> <hr /> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2ffd249aac |
fix(backend/external-api): Improve security & reliability of API key storage (#10796)
Our API key generation, storage, and verification system has a couple of issues that need to be ironed out before full-scale deployment. ### Changes 🏗️ - Move from unsalted SHA256 to salted Scrypt hashing for API keys - Avoid false-negative API key validation due to prefix collision - Refactor API key management code for clarity - [refactor(backend): Clean up API key DB & API code (#10797)](https://github.com/Significant-Gravitas/AutoGPT/pull/10797) - Rename models and properties in `backend.data.api_key` for clarity - Eliminate redundant/custom/boilerplate error handling/wrapping in API key endpoint call stack - Remove redundant/inaccurate `response_model` declarations from API key endpoints Dependencies for `autogpt_libs`: - Add `cryptography` as a dependency - Add `pyright` as a dev dependency ### 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: - Performing these actions through the UI (still) works: - [x] Creating an API key - [x] Listing owned API keys - [x] Deleting an owned API key - [x] Newly created API key can be used in Swagger UI - [x] Existing API key can be used in Swagger UI - [x] Existing API key is re-encrypted with salt on use |
||
|
|
986245ec43 |
feat(frontend): run agent page improvements (#10879)
## Changes 🏗️ - Add all the cron scheduling options ( _yearly, monthly, weekly, custom, etc..._ ) using the new Design System components - Add missing agent/run actions: export agent + delete agent ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run the app locally with `new-agent-runs` enabled - [x] Test the above ### For configuration changes: Noneautogpt-platform-beta-v0.6.26 |
||
|
|
f89717153f | Merge branch 'master' into dev | ||
|
|
5da41e0753 |
fix(backend): Add Airtable record normalization + find/create base (#10891)
## Summary Fixes critical issue with Airtable API where empty/false fields are completely omitted from responses, causing inconsistent data structures. Also improves the create base block to prevent duplicate bases. <!-- Clearly explain the need for these changes: --> The Airtable API has a problematic behavior where it omits fields with "empty" values from responses: - Unchecked checkboxes are missing entirely instead of returning `false` - Empty number fields are missing instead of returning `0` - This makes it impossible to distinguish between "field doesn't exist" and "field is false/empty" - Users were getting inconsistent record structures that broke their workflows ### Changes 🏗️ <!-- Concisely describe all of the changes made in this pull request: --> #### 1. **Added Record Normalization** (`backend/blocks/airtable/_api.py`) - New `get_table_schema()` function to fetch table field definitions - New `get_empty_value_for_field()` to determine appropriate empty values per field type - New `normalize_records()` to fill in missing fields with proper defaults: - Checkbox → `false` - Number/Currency/Percent/Duration/Rating → `0` - Text fields → `""` - Multiple selects/attachments/collaborators → `[]` - Dates/Single selects → `null` - New `get_base_tables()` to fetch tables for a base #### 2. **Enhanced List and Get Record Blocks** (`backend/blocks/airtable/records.py`) - Added `normalize_output` parameter (defaults to `true`) - ensures all fields are present - Added `include_field_metadata` parameter to optionally include field type information - When normalization is enabled, fetches schema once and normalizes all records - Can be disabled by setting `normalize_output=false` for raw Airtable response #### 3. **Simplified Create Records Block** - Added `skip_normalization` parameter (default `false`) - normalized output by default - Records now always include all fields with proper empty values #### 4. **Enhanced Create Base Block** (`backend/blocks/airtable/bases.py`) - Added `find_existing` parameter (defaults to `true`) to prevent duplicate bases - When finding an existing base, now fetches and returns table information - Added `was_created` output field to indicate whether base was created or found ### Testing 📋 - ✅ All Airtable block tests pass - ✅ Tested normalization with records containing missing checkbox fields - ✅ Verified all field types get appropriate empty values - ✅ Tested create base find-or-create functionality - ✅ Ran `poetry run format` and `poetry run lint` ### Migration Guide This update makes the blocks behave more predictably: - **List/Get Records**: All fields are now included by default. Set `normalize_output: false` if you need the raw Airtable response - **Create Records**: Simply creates records, no more upsert confusion - **Create Base**: Prevents duplicate bases by default. Set `find_existing: false` to force creation ### 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 #### For configuration changes: - [x] `.env.default` 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**) No configuration changes were required - all changes are code-only. |
||
|
|
cddeb185a8 |
feat(blocks): Add Gmail Draft Reply Block (#10882)
### Changes 🏗️ This PR adds a new `GmailDraftReplyBlock` that enables creating draft replies to existing Gmail email threads. This block complements the existing Gmail blocks by providing specialized functionality for replying within email conversations. **New Block: GmailDraftReplyBlock** - **Purpose**: Creates draft replies to Gmail threads with intelligent content type detection - **Key Features**: - ✅ Automatic HTML detection: Draft replies containing HTML tags are formatted as text/html - ✅ No hard-wrap for plain text: Plain text draft replies preserve natural line flow (prevents 78-character hard-wrap issue) - ✅ Manual content type override: Use content_type parameter to force specific format ("auto", "plain", or "html") - ✅ Reply-all functionality: Option to reply to all original recipients - ✅ Thread preservation: Maintains proper email threading with In-Reply-To and References headers - ✅ Full Unicode/emoji support with UTF-8 encoding - ✅ File attachment support **Implementation Details**: - Retrieves parent message metadata to build proper reply context - Automatically determines recipients based on reply mode (reply vs reply-all) - Adds "Re:" prefix to subject if not already present - Maintains email thread continuity with proper headers - Supports OAuth scopes: `gmail.modify` and `gmail.readonly` **Inputs**: - `threadId`: Thread ID to reply in - `parentMessageId`: ID of the message being replied to - `to`, `cc`, `bcc`: Optional recipient lists - `replyAll`: Boolean to reply to all original recipients - `subject`: Optional custom subject - `body`: Email body (plain text or HTML) - `content_type`: Optional content type override - `attachments`: Optional file attachments **Outputs**: - `draftId`: Created draft ID - `messageId`: Draft message ID - `threadId`: Thread ID - `status`: Draft creation status - `error`: Error message if any Closes #10846 ### 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:** - [x] Block includes test input/output configuration - [x] Mock test handler implemented for unit testing - [x] Proper error handling included - [x] OAuth authentication properly configured - [x] Content type detection logic tested (auto-detects HTML vs plain text) - [x] Threading headers properly maintained for email conversations <details> <summary>Additional Testing Notes</summary> - The block uses the existing Gmail authentication infrastructure - Test credentials and mock outputs are configured for CI/CD - The `_make_mime_text` helper function ensures proper content formatting - Reply-all logic properly deduplicates recipients </details> #### For configuration changes: - [x] `.env.default` 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**) **Note**: No configuration changes required - uses existing Google OAuth configuration. <details> <summary>Configuration Compatibility</summary> - Uses existing `GOOGLE_OAUTH_IS_CONFIGURED` flag - Leverages existing Google OAuth credentials system - No new environment variables or services required </details> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle <ntindle@users.noreply.github.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> |
||
|
|
08a3fd6d26 |
Revert "fix(backend): Improve GitHub PR URL validation and API URL generation" (#10890)
Reverts Significant-Gravitas/AutoGPT#10317 The changes omit the hostname from the "prepared" URL, breaking some GitHub blocks. |
||
|
|
39b30bc82c | ci: Add 'Bash(gh pr edit:*)' to allowed tools for claude (#10885) | ||
|
|
2df0e2b750 |
fix(backend/api): Fix & add tests for APIKeyAuthenticator (#10881)
- Resolves #10875 ### Changes 🏗️ - Fix use of `super().__call__` in `APIKeyAuthenticator.__call__` - Fix non-ASCII API key validation - Add tests for `APIKeyAuthenticator` ### 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 implementations have been verified manually - [x] All the new tests pass |
||
|
|
925f249ce1 |
feat(frontend): use new output renderers on new run page (#10876)
## Changes 🏗️ Integrating the great work @ntindle did on the rich agent output renderers into the new Agent run page in the library 💜 - Implemented enhanced output rendering in `<RunDetails />` using the shared output-renderers - Added `<RunOutputs />` sub-component at `RunDetails/components/RunOutputs.tsx` that: - [x] builds items from `run.outputs`, extracts metadata, picks a renderer via `globalRegistry`, and falls back to `TextRenderer` - [x] renders `<OutputActions />` for copy/download and a list of `<OutputItems />`. ## 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 an agent on the view which outputs rich content - [x] See the output use the new renderers, for example code is higlighted ### For configuration changes: None |
||
|
|
e8cf3edbf4 |
feat(frontend): add timezone to new library agent page (#10874)
## Changes 🏗️ <img width="800" height="756" alt="Screenshot 2025-09-09 at 14 03 24" src="https://github.com/user-attachments/assets/65f3e3a8-1ce0-491c-824a-601a494d3a36" /> <img width="600" height="493" alt="Screenshot 2025-09-09 at 14 03 28" src="https://github.com/user-attachments/assets/457b37a3-6b3b-49b8-912c-c72cf06e8e58" /> Following the nice changes @ntindle did regarding timezones, bring them into the new page: - display the timezone when scheduling an agent on the new modal - display the timezone for a schedule on the new schedule details view ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run the app locally with `agent-new-runs` flag ON - [x] Open an agent on the new page - [x] On the new modal, create a schedule, it display the timezone alert - [x] Once created, on the schedule view, it displays the timezone ### For configuration changes: None |
||
|
|
dc03ea718c |
fix(backend): Report process errors to Sentry before cleanup (#10873)
Adds error reporting to Sentry for exceptions (excluding KeyboardInterrupt and SystemExit) before executing process cleanup. Silently ignores failures if Sentry is unavailable. <!-- Clearly explain the need for these changes: --> ### Changes 🏗️ Adds cleanup for sentry Adds disabling for sentry <!-- 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 all services with manual exception raising - [x] Remove those excptions - [x] Make sure they show up in sentry |
||
|
|
dbee580d80 |
build(frontend): Increase build process memory limit to 4 GiB (#10861)
Increase memory limit of frontend build process to 4GiB to fix out-of-memory build failures |
||
|
|
0325ec0a2c |
fix(frontend): Fix environment variable handling in Docker builds for dev/prod deployments (#10859)
<!-- Clearly explain the need for these changes: --> Sentry was not being enabled in dev/prod deployments because environment variables were being incorrectly overwritten during the Docker build process. ### Changes 🏗️ - Fixed Dockerfile environment variable merging logic to prevent `.env.default` from overwriting `.env.production` values - Added `NODE_ENV=production` to build stage to ensure Next.js looks for production env files - Updated env file merging to only run when not in CI/CD (when `.env.production` doesn't exist) - When `.env.production` exists (CI/CD), now merges defaults with production values properly ### 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: <!-- Put your test plan here: --> - [ ] Verify local Docker builds still work with `docker compose up` - [ ] Verify dev deployment has `NEXT_PUBLIC_APP_ENV=dev` in built JavaScript - [ ] Verify prod deployment has `NEXT_PUBLIC_APP_ENV=prod` in built JavaScript - [ ] Verify Sentry is enabled in dev/prod deployments (`isProdOrDev=true`) #### For configuration changes: - [x] `.env.default` 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**) ### Technical Details **Root Cause:** 1. CI/CD workflow creates `.env.production` with correct values (e.g., `NEXT_PUBLIC_APP_ENV=dev`) 2. Dockerfile's env merging logic always created `.env` from `.env.default` 3. Next.js loads `.env.production` first, then `.env` second 4. Since `.env` is loaded after `.env.production`, it overwrites the values 5. `.env.default` has `NEXT_PUBLIC_APP_ENV=local`, causing `getAppEnv()` to return "local" instead of "dev"/"prod" 6. This made `isProdOrDev` evaluate to `false`, disabling Sentry **Solution:** The Dockerfile now checks if `.env.production` exists: - If yes (CI/CD): Merges `.env.default` + `.env.production` → `.env.production` (production values take precedence) - If no (local): Merges `.env.default` + `.env` → `.env` (user values take precedence) This ensures production deployments get the correct environment variables while preserving local development workflow. 🤖 Description generated + Investigation assisted with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
3952a1a226 |
feat(frontend): smol improvements on new run view (#10854)
## Changes 🏗️ <img width="800" height="790" alt="Screenshot 2025-09-05 at 17 22 36" src="https://github.com/user-attachments/assets/8b22424c-1968-4c4f-9eed-3d5d5185751d" /> - Make a nicer empty state and display it when there are no runs/schedules - Rename search param to `executionId` to mirror what was on the old page - Reduce polling when execution is happening to 1.5s ( 3.s is too slow maybe... ) - Make sure the run details page also updates when a run is happening ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run the app - [x] Tested the above ### For configuration changes: None <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> |
||
|
|
cfc975d39b |
feat(backend): Type for API block data response (#10763)
Moving to auto-generated frontend types caused returned blocks data to no longer have proper typing. ### Changes 🏗️ - Add `BlockInfo` model and `get_info` function that returns it to the `Block` class, including costs - Move `BlockCost` and `BlockCostType` to `block.py` to prevent circular imports ### 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] Endpoints using the new type work correctly Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> |
||
|
|
46e0f6cc45 |
feat(platform): Add recommended run schedule for agent execution (#10827)
## Summary <img width="1000" alt="Screenshot 2025-09-02 at 9 46 49 PM" src="https://github.com/user-attachments/assets/d78100c7-7974-4d37-a788-757764d8b6b7" /> <img width="1000" alt="Screenshot 2025-09-02 at 9 20 24 PM" src="https://github.com/user-attachments/assets/cd092963-8e26-4198-b65a-4416b2307a50" /> <img width="1000" alt="Screenshot 2025-09-02 at 9 22 30 PM" src="https://github.com/user-attachments/assets/e16b3bdb-c48c-4dec-9281-b2a35b3e21d0" /> <img width="1000" alt="Screenshot 2025-09-02 at 9 20 38 PM" src="https://github.com/user-attachments/assets/11d74a39-f4b4-4fce-8d30-0e6a925f3a9b" /> • Added recommended schedule cron expression as an optional input throughout the platform • Implemented complete data flow from builder → store submission → agent library → run page • Fixed UI layout issues including button text overflow and ensured proper component reusability ## Changes ### Backend - Added `recommended_schedule_cron` field to `AgentGraph` schema and database migration - Updated API models (`LibraryAgent`, `MyAgent`, `StoreSubmissionRequest`) to include the new field - Enhanced store submission approval flow to persist recommended schedule to database ### Frontend - Added recommended schedule input to builder page (SaveControl component) with overflow-safe styling - Updated store submission modal (PublishAgentModal) with schedule configuration - Enhanced agent run page with schedule tip display and pre-filled schedule dialog - Refactored `CronSchedulerDialog` with discriminated union types for better reusability - Fixed layout issues including button text truncation and popover width constraints - Implemented robust cron expression parsing with 100% reversibility between UI and cron format 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
c03af5c196 |
feat(frontend): allow sentry disable in dev (#10858)
<!-- Clearly explain the need for these changes: --> ### Changes 🏗️ <!-- Concisely describe all of the changes made in this pull request: --> Vercel is logging things it shouldnt ### 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] Manually verified in vercel |
||
|
|
00cbfb8f80 |
feat(frontend): re-enable sentry in dev (#10857)
<!-- Clearly explain the need for these changes: --> ### Changes 🏗️ - We want sentry to actually work so we can do testing <!-- 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] we're just re-enabling. it wroks in prod |
||
|
|
3beafae955 |
feat(frontend): new agent library run page (#10835)
## Changes 🏗️ This is the new **Agent Library Run** page. Sorry in advance for the massive PR 🙏🏽 . I got carried away and it has been tricky to split it ( _maybe I abused the agent too much_ 🤔 ) <img width="800" height="1085" alt="Screenshot 2025-09-04 at 13 58 33" src="https://github.com/user-attachments/assets/b709edb9-d2b5-48ad-a04d-dddf10c89af3" /> <img width="800" height="338" alt="Screenshot 2025-09-04 at 13 54 51" src="https://github.com/user-attachments/assets/efa28be2-d2dd-477f-af13-33ddd1d639dd" /> <img width="800" height="598" alt="Screenshot 2025-09-04 at 13 54 18" src="https://github.com/user-attachments/assets/806ab620-3492-4c5b-b4e2-f17b89756dd8" /> - Schedules are now on the sidebar tabbed along with runs - The whole UI has been updated to match the new designs and design system - There is no more "run draft" view as the modal is in charge of new runs now 💪🏽 - The page is responsive and mobile friendly 📱 Uploading mobile.mov… https://github.com/user-attachments/assets/0e483062-0e50-4fa6-aaad-a1f6766df931 ### Safety I understand this is a lot of changes. However is all behind a feature flag, `new-agent-runs`, when OFF it will display the old library agent view. The old library agent view can still be accessed under: `/library/legacy/{id}` for reference 👍🏽 ### Testing I haven't any tests for now... 💆🏽 I want to get this enabled on dev so we can start running our agents there through the new page and modal and start catching edge-cases. Tests will come later in the form of E2E for the happy paths, and probably I will introduce [Vitest](https://vitest.dev/) + [Testing Library](https://testing-library.com/) for the finer details... ## 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 above ### For configuration changes: None, the feature flag is already configured 🙏🏽 --------- Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> |
||
|
|
9cd186a2f3 |
fix(backend): Improve GitHub PR URL validation and API URL generation (#10317)
### Changes 🏗️ Fixes [AUTOGPT-SERVER-4EN](https://sentry.io/organizations/significant-gravitas/issues/6731949478/). The issue was that: Issue URL passed to PR file reader, regex failed, leading to issue API call, returning object iterated as keys, causing AttributeError. - Refactor `prepare_pr_api_url` to improve validation of GitHub PR URLs. - Update regex to specifically target github.com URLs. - Raise ValueError with a descriptive message for invalid URLs. - Correctly construct the API URL using the extracted repository path. This fix was generated by Seer in Sentry, triggered automatically. 👁️ Run ID: 265077 Not quite right? [Click here to continue debugging with Seer.](https://sentry.io/organizations/significant-gravitas/issues/6731949478/?seerDrawer=true) ### 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 plan: - [x] Provide an invalid GitHub PR URL and verify that a ValueError is raised with a descriptive message. - [x] Provide a valid GitHub PR URL and verify that the API URL is correctly constructed. --------- Co-authored-by: seer-by-sentry[bot] <157164994+seer-by-sentry[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: Bently <Github@bentlybro.com> |
||
|
|
dcf26bd3d4 |
ci: update Claude code action (#10851)
<!-- Clearly explain the need for these changes: --> Claude code now uses prompt not system prompt ### Changes 🏗️ <!-- Concisely describe all of the changes made in this pull request: --> Swaps to peomot from custom system prompt ### Checklist 📋 #### For code changes: N/A |
||
|
|
b97f097c9d |
feat(blocks): add AI Image Customizer block using Googles Nano Banana (#10845)
Add new AutoGPT Platform Block that uses google/gemini-2.5-flash-image model via Replicate API. Features: - Text prompt input for image generation - Optional list of image URLs as input - Configurable output format (jpg/png, defaults to png) - Single model option: google/gemini-2.5-flash-image - Returns image_url output for generated images Fixes #10815 🤖 Generated with [Claude Code](https://claude.ai/code) ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] use the AI image customizer block and upload 2 images to see if it uses them in the image generation/edits <img width="1536" height="672" alt="tmprhzqasxz" src="https://github.com/user-attachments/assets/39d7adbd-2847-4988-aeab-1c5453290174" /> --------- Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Bently <Bentlybro@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> |
||
|
|
ce24975a9d |
fix(backend): Unbreak get_webhook query (#10850)
- Resolves #10849 ### Changes 🏗️ - Use `AGENT_PRESET_INCLUDE` in `INTEGRATION_WEBHOOK_INCLUDE` so the `AgentPreset.from_db(..)` doesn't break ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Webhook ingress works |
||
|
|
75c90e49ce |
feat(blocks): add AI Image Customizer block using Googles Nano Banana (#10845)
Add new AutoGPT Platform Block that uses google/gemini-2.5-flash-image model via Replicate API. Features: - Text prompt input for image generation - Optional list of image URLs as input - Configurable output format (jpg/png, defaults to png) - Single model option: google/gemini-2.5-flash-image - Returns image_url output for generated images Fixes #10815 🤖 Generated with [Claude Code](https://claude.ai/code) ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] use the AI image customizer block and upload 2 images to see if it uses them in the image generation/edits <img width="1536" height="672" alt="tmprhzqasxz" src="https://github.com/user-attachments/assets/39d7adbd-2847-4988-aeab-1c5453290174" /> --------- Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Bently <Bentlybro@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> |
||
|
|
2e38f132e7 |
feat(backend/store): implement sub-agent approval support (#10842)
## Summary Implement comprehensive sub-agent approval flow following the business requirements from the flow diagram. <img width="1956" height="1448" alt="image" src="https://github.com/user-attachments/assets/8de35e5b-9d3e-4dc2-bff0-47b49dbebc83" /> ### Key Features - ✅ **Auto-approve sub-agents** when main agent is approved - ✅ **Handle all scenarios**: new listings, existing versions, missing versions - ✅ **Transaction safety** with atomic operations via database transactions - ✅ **Parallel processing** using asyncio.gather for performance optimization - ✅ **Hidden from store** with isAvailable=false for all sub-agents ### Implementation Details - **Replaced** `_get_missing_sub_store_listing` with comprehensive `_handle_sub_agent_approvals` - **Added** `_approve_sub_agent` function with early returns for clean, readable code flow - **Used** `transaction()` context manager to ensure data consistency across operations - **Process sub-agents in parallel** while maintaining transaction integrity ### Business Logic Flow 1. **Check if sub-agent is already listed** in store 2. **If not listed**: create new store listing with `isAvailable=false` 3. **If listed but not approved**: approve the correct version 4. **If correct version not listed**: create store listing version and approve it 5. **If already approved**: no action needed (early return) All sub-agents remain **hidden from public store** while being internally approved for system use. ## Files Changed - `backend/server/v2/store/db.py` - Core implementation of sub-agent approval logic ## Test Plan - [ ] Verify main agent approval triggers sub-agent approvals - [ ] Test all sub-agent scenarios: new, existing unapproved, existing approved - [ ] Confirm sub-agents remain hidden (`isAvailable=false`) - [ ] Validate transaction rollback on failures - [ ] Check parallel processing works correctly 🤖 Generated with [Claude Code](https://claude.ai/code) |
||
|
|
5be6987d58 | ci: Add model argument to Claude workflow (#10843) | ||
|
|
b59592be9b |
feat(ci): Claude workflow for Dependabot PR analysis (#10841)
Created workflow to analyze Dependabot PRs with Claude, including detailed dependency analysis and changelog review. <!-- Clearly explain the need for these changes: --> ### Changes 🏗️ Adds workflow for claude to do dependabot <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist 📋 #### For code changes: N/A #### For configuration changes: N/A --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Swifty <craigswift13@gmail.com> |
||
|
|
7ea17df9ed |
chore(frontend/deps): Bump recharts from 2.15.3 to 3.1.2 in /autogpt_platform/frontend (#10807)
Bumps [recharts](https://github.com/recharts/recharts) from 2.15.3 to 3.1.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.1.2</h2> <h2>What's Changed</h2> <h3>Fix</h3> <ul> <li><code>Label/Polar Charts</code>: <code>Label</code> viewbox should now be present in polar charts and address <a href="https://redirect.github.com/recharts/recharts/issues/6030">recharts/recharts#6030</a> by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6180">recharts/recharts#6180</a></li> <li>Add LRU cache for string size measurements (<a href="https://redirect.github.com/recharts/recharts/issues/3955">#3955</a>) by <a href="https://github.com/shreedharbhat98"><code>@shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6176">recharts/recharts#6176</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.1.1...v3.1.2">https://github.com/recharts/recharts/compare/v3.1.1...v3.1.2</a></p> <h2>v3.1.1</h2> <h2>What's Changed</h2> <h3>Fix</h3> <ul> <li><code>General</code>: Don't apply duplicate IDs in the DOM by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6111">recharts/recharts#6111</a></li> <li><code>Stacked Area/Bar</code>: give all graphical items their own unique identifier and use that to select stacked data. Fixes issue where stacked charts could not be created from the graphical item <code>data</code> prop <a href="https://redirect.github.com/recharts/recharts/issues/6073">recharts/recharts#6073</a> by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a></li> <li><code>Stacked Area/Bar</code>: exclude stacked axis domain when not relevant for axis by <a href="https://github.com/rinkstiekema"><code>@rinkstiekema</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6162">recharts/recharts#6162</a> fixes issue where numeric stacked charts would not render correctly</li> <li><code>Area Chart</code>: ranged area chart - show active dot on both points instead of just the top one by <a href="https://github.com/sroy8091"><code>@sroy8091</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6116">recharts/recharts#6116</a> fixes <a href="https://redirect.github.com/recharts/recharts/issues/6080">#6080</a></li> <li><code>Polar Charts/Label</code>: fix <code>Label</code> in polar charts by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6126">recharts/recharts#6126</a></li> <li><code>Scatter/ErrorBar</code>: choose implicit Scatter ErrorBar direction based on chart layout (to be the same as 2.x) by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6159">recharts/recharts#6159</a></li> <li><code>X/YAxis/Reference Components</code>: allow axis values and reference items to render when there is no data but there is a domain/explicit ticks set by <a href="https://github.com/ethphan"><code>@ethphan</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6161">recharts/recharts#6161</a></li> <li><code>X/YAxis</code>: pass axis padding info to custom tick components by <a href="https://github.com/shreedharbhat98"><code>@shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6163">recharts/recharts#6163</a></li> </ul> <h3>Chore / Testing</h3> <ul> <li>good progress on our journey to enable <code>strictNullChecks</code></li> <li>addition of playwright visual regression tests to CI</li> <li>split <code>Animate</code> into <code>JavascriptAnimate</code> and <code>CSSTransitionAnimate</code> by <a href="https://github.com/PavelVanecek"><code>@PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/6175">recharts/recharts#6175</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/sroy8091"><code>@sroy8091</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/6116">recharts/recharts#6116</a></li> <li><a href="https://github.com/ethphan"><code>@ethphan</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/6161">recharts/recharts#6161</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.1.0...v3.1.1">https://github.com/recharts/recharts/compare/v3.1.0...v3.1.1</a></p> <h2>v3.1.0</h2> <h2>What's Changed</h2> <p>Bug fixes (old and new) and a few new hooks post 3.0 launch!</p> <h3>Feat</h3> <p>More hooks!</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
22e692bdda |
fix(frontend): Update in-view run with real-time updates (#10839)
- Resolves #10838 ### Changes 🏗️ - Update `selectedRun` with received graph execution update if applicable ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Agent outputs appear in real-time |
||
|
|
901e9eba5d |
feat(frontend): Enhanced output rendering system for agent runs (#10819)
## Summary Introduces a modular, extensible output renderer system supporting multiple content types (text, code, images, videos, JSON, markdown) for agent run outputs. The system includes smart clipboard operations, concatenated downloads, and rich markdown rendering with LaTeX math and video embedding support. ## Changes 🏗️ ### Core Output Rendering System - **Added extensible renderer architecture** (`output-renderers/types.ts`) - Plugin-based system with priority ordering - Registry pattern for automatic renderer selection - Support for custom metadata and MIME types ### Output Renderers - **TextRenderer**: Plain text with proper formatting and line breaks - **CodeRenderer**: Syntax-highlighted code blocks with language detection - **JSONRenderer**: Collapsible, formatted JSON with syntax highlighting - **ImageRenderer**: Image display with support for URLs, data URIs, and file uploads - **VideoRenderer**: Embedded video player for YouTube, Vimeo, and direct video files - **MarkdownRenderer**: Rich markdown with: - GitHub Flavored Markdown (tables, task lists, strikethrough) - LaTeX math rendering via KaTeX (inline `$...$` and display `$$...$$`) - Syntax highlighting via highlight.js - Video embedding (YouTube/Vimeo URLs auto-convert to embeds) - Clickable heading anchors - Dark mode support ### User Interface Components - **OutputItem**: Individual output display with renderer selection - **OutputActions**: Hover-based action buttons for: - Copy to clipboard with smart MIME type detection - Download with intelligent concatenation (text files merge, binaries separate) - Share functionality (placeholder for future implementation) - **AgentRunOutputView**: Main output view component with feature flag integration ### Clipboard & Download Features - Smart clipboard operations using native ClipboardItem API - MIME type detection and browser capability checking - Fallback strategies for unsupported content types - Concatenated downloads for text-based outputs - Individual downloads for binary content ### Feature Flag Integration - Added `ENABLE_ENHANCED_OUTPUT_HANDLING` flag to LaunchDarkly - Backwards compatible with existing output display - Graceful fallback for disabled feature flag ### Styling & UX - Max width constraints (950px card, 660px content) - Hover-based action buttons for clean interface - Dark mode support across all renderers - Responsive design for various content types - Loading states and error handling ## Test Plan 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: ### Test Scenarios: - [x] **Basic Output Rendering** - [x] Execute agent with text output - verify proper formatting - [x] Execute agent with JSON output - verify collapsible tree view - [x] Execute agent with code output - verify syntax highlighting - [x] **Rich Content** - [x] Test markdown rendering with headers, lists, tables - [x] Test LaTeX math expressions (inline and display) - [x] Test code blocks within markdown - [x] Test task lists and strikethrough - [x] **Media Handling** - [x] Upload and display PNG/JPEG images - [x] Test video URL embedding (YouTube/Vimeo) - [x] Test direct video file playback - [x] **Clipboard Operations** - [x] Copy plain text output - [x] Copy formatted code - [x] Copy JSON data - [x] Copy markdown content - [x] Verify fallback for unsupported MIME types - [x] **Download Functionality** - [x] Download single text output - [x] Download multiple text outputs (verify concatenation) - [x] Download mixed content (verify separate files) - [x] Download images and binary content - [x] **Feature Flag** - [x] Enable flag - verify enhanced rendering - [x] Disable flag - verify fallback to original view - [x] Check backwards compatibility - [x] **Edge Cases** - [x] Large JSON objects (performance) - [x] Very long text outputs - [x] Mixed content types in single run - [x] Malformed markdown - [x] Invalid video URLs ## Dependencies Added - `react-markdown` (9.0.3) - Already present - `remark-gfm` (4.0.1) - GitHub Flavored Markdown - `remark-math` (6.0.0) - LaTeX math support - `rehype-katex` (7.0.1) - Math rendering - `katex` (0.16.22) - Math typesetting - `rehype-highlight` (7.0.2) - Syntax highlighting - `highlight.js` (11.11.1) - Highlighting library - `rehype-slug` (6.0.0) - Heading anchors - `rehype-autolink-headings` (7.1.0) - Clickable headings ## Notes - Mermaid diagram support was attempted but removed due to compatibility issues - Share functionality is stubbed out for future implementation - PNG file upload rendering issue has logging in place for debugging - All components follow existing UI patterns and use Tailwind CSS ## Screenshots <img width="1656" height="1250" alt="image" src="https://github.com/user-attachments/assets/af7542fe-db89-4521-aaf5-19e33d48a409" /> ## Related Issues - Implements SECRT-1209 --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle <ntindle@users.noreply.github.com> |
||
|
|
bbd6709bd6 |
chore(backend/deps): Bump cryptography from 43.0.3 to 45.0.7 in /autogpt_platform/backend (#10810)
Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.3 to 45.0.7. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's changelog</a>.</em></p> <blockquote> <p>45.0.7 - 2025-09-01</p> <pre><code> * Added a function to support an upcoming ``pyOpenSSL`` release. <p>.. _v45-0-6:</p> <p>45.0.6 - 2025-08-05<br /> </code></pre></p> <ul> <li>Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.</li> </ul> <p>.. _v45-0-5:</p> <p>45.0.5 - 2025-07-02</p> <pre><code> * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1. <p>.. _v45-0-4:</p> <p>45.0.4 - 2025-06-09<br /> </code></pre></p> <ul> <li>Fixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not considered secure, and is supported only for backwards compatibility.)</li> </ul> <p>.. _v45-0-3:</p> <p>45.0.3 - 2025-05-25</p> <pre><code> * Fixed decrypting PKCS#8 files encrypted with long salts (this impacts keys encrypted by Bouncy Castle). * Fixed decrypting PKCS#8 files encrypted with DES-CBC-MD5. While wildly insecure, this remains prevalent. <p>.. _v45-0-2:</p> <p>45.0.2 - 2025-05-17<br /> </code></pre></p> <ul> <li>Fixed using <code>mypy</code> with <code>cryptography</code> on older versions of Python.</li> </ul> <p>.. _v45-0-1:</p> <p>45.0.1 - 2025-05-17</p> <pre><code> * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.0. </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3ec1721d6d |
chore(libs/deps-dev): Bump ruff from 0.12.9 to 0.12.11 in /autogpt_platform/autogpt_libs in the development-dependencies group (#10804)
Bumps the development-dependencies group in /autogpt_platform/autogpt_libs with 1 update: [ruff](https://github.com/astral-sh/ruff). Updates `ruff` from 0.12.9 to 0.12.11 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.12.11</h2> <h2>Release Notes</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Extend <code>AIR311</code> and <code>AIR312</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/20082">#20082</a>)</li> <li>[<code>airflow</code>] Replace wrong path <code>airflow.io.storage</code> with <code>airflow.io.store</code> (<code>AIR311</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20081">#20081</a>)</li> <li>[<code>flake8-async</code>] Implement <code>blocking-http-call-httpx-in-async-function</code> (<code>ASYNC212</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20091">#20091</a>)</li> <li>[<code>flake8-logging-format</code>] Add auto-fix for f-string logging calls (<code>G004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19303">#19303</a>)</li> <li>[<code>flake8-use-pathlib</code>] Add autofix for <code>PTH211</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20009">#20009</a>)</li> <li>[<code>flake8-use-pathlib</code>] Make <code>PTH100</code> fix unsafe because it can change behavior (<a href="https://redirect.github.com/astral-sh/ruff/pull/20100">#20100</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>pyflakes</code>, <code>pylint</code>] Fix false positives caused by <code>__class__</code> cell handling (<code>F841</code>, <code>PLE0117</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20048">#20048</a>)</li> <li>[<code>pyflakes</code>] Fix <code>allowed-unused-imports</code> matching for top-level modules (<code>F401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20115">#20115</a>)</li> <li>[<code>ruff</code>] Fix false positive for t-strings in <code>default-factory-kwarg</code> (<code>RUF026</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20032">#20032</a>)</li> <li>[<code>ruff</code>] Preserve relative whitespace in multi-line expressions (<code>RUF033</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19647">#19647</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>ruff</code>] Handle empty t-strings in <code>unnecessary-empty-iterable-within-deque-call</code> (<code>RUF037</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20045">#20045</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix incorrect <code>D413</code> links in docstrings convention FAQ (<a href="https://redirect.github.com/astral-sh/ruff/pull/20089">#20089</a>)</li> <li>[<code>flake8-use-pathlib</code>] Update links to the table showing the correspondence between <code>os</code> and <code>pathlib</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20103">#20103</a>)</li> </ul> <h2>Contributors</h2> <ul> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/Avasam"><code>@Avasam</code></a></li> <li><a href="https://github.com/BurntSushi"><code>@BurntSushi</code></a></li> <li><a href="https://github.com/Gankra"><code>@Gankra</code></a></li> <li><a href="https://github.com/Glyphack"><code>@Glyphack</code></a></li> <li><a href="https://github.com/JelleZijlstra"><code>@JelleZijlstra</code></a></li> <li><a href="https://github.com/Lee-W"><code>@Lee-W</code></a></li> <li><a href="https://github.com/MatthewMckee4"><code>@MatthewMckee4</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/PrettyWood"><code>@PrettyWood</code></a></li> <li><a href="https://github.com/Renkai"><code>@Renkai</code></a></li> <li><a href="https://github.com/TaKO8Ki"><code>@TaKO8Ki</code></a></li> <li><a href="https://github.com/amyreese"><code>@amyreese</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> <li><a href="https://github.com/danparizher"><code>@danparizher</code></a></li> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/github-actions"><code>@github-actions</code></a></li> <li><a href="https://github.com/hamirmahal"><code>@hamirmahal</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.12.11</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Extend <code>AIR311</code> and <code>AIR312</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/20082">#20082</a>)</li> <li>[<code>airflow</code>] Replace wrong path <code>airflow.io.storage</code> with <code>airflow.io.store</code> (<code>AIR311</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20081">#20081</a>)</li> <li>[<code>flake8-async</code>] Implement <code>blocking-http-call-httpx-in-async-function</code> (<code>ASYNC212</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20091">#20091</a>)</li> <li>[<code>flake8-logging-format</code>] Add auto-fix for f-string logging calls (<code>G004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19303">#19303</a>)</li> <li>[<code>flake8-use-pathlib</code>] Add autofix for <code>PTH211</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20009">#20009</a>)</li> <li>[<code>flake8-use-pathlib</code>] Make <code>PTH100</code> fix unsafe because it can change behavior (<a href="https://redirect.github.com/astral-sh/ruff/pull/20100">#20100</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>pyflakes</code>, <code>pylint</code>] Fix false positives caused by <code>__class__</code> cell handling (<code>F841</code>, <code>PLE0117</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20048">#20048</a>)</li> <li>[<code>pyflakes</code>] Fix <code>allowed-unused-imports</code> matching for top-level modules (<code>F401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20115">#20115</a>)</li> <li>[<code>ruff</code>] Fix false positive for t-strings in <code>default-factory-kwarg</code> (<code>RUF026</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20032">#20032</a>)</li> <li>[<code>ruff</code>] Preserve relative whitespace in multi-line expressions (<code>RUF033</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19647">#19647</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>ruff</code>] Handle empty t-strings in <code>unnecessary-empty-iterable-within-deque-call</code> (<code>RUF037</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20045">#20045</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix incorrect <code>D413</code> links in docstrings convention FAQ (<a href="https://redirect.github.com/astral-sh/ruff/pull/20089">#20089</a>)</li> <li>[<code>flake8-use-pathlib</code>] Update links to the table showing the correspondence between <code>os</code> and <code>pathlib</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/20103">#20103</a>)</li> </ul> <h2>0.12.10</h2> <h3>Preview features</h3> <ul> <li>[<code>flake8-simplify</code>] Implement fix for <code>maxsplit</code> without separator (<code>SIM905</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19851">#19851</a>)</li> <li>[<code>flake8-use-pathlib</code>] Add fixes for <code>PTH102</code> and <code>PTH103</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/19514">#19514</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>isort</code>] Handle multiple continuation lines after module docstring (<code>I002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19818">#19818</a>)</li> <li>[<code>pyupgrade</code>] Avoid reporting <code>__future__</code> features as unnecessary when they are used (<code>UP010</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19769">#19769</a>)</li> <li>[<code>pyupgrade</code>] Handle nested <code>Optional</code>s (<code>UP045</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19770">#19770</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pycodestyle</code>] Make <code>E731</code> fix unsafe instead of display-only for class assignments (<a href="https://redirect.github.com/astral-sh/ruff/pull/19700">#19700</a>)</li> <li>[<code>pyflakes</code>] Add secondary annotation showing previous definition (<code>F811</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19900">#19900</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix description of global config file discovery strategy (<a href="https://redirect.github.com/astral-sh/ruff/pull/19188">#19188</a>)</li> <li>Update outdated links to <a href="https://typing.python.org/en/latest/source/stubs.html">https://typing.python.org/en/latest/source/stubs.html</a> (<a href="https://redirect.github.com/astral-sh/ruff/pull/19992">#19992</a>)</li> <li>[<code>flake8-annotations</code>] Remove unused import in example (<code>ANN401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20000">#20000</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8c8a2ab0c2 |
feat(blocks): Add Bannerbear API block for text overlay on images (#10768)
## Summary - Implemented a new Bannerbear API block that enables adding text overlays to images using template designs - Block supports customizable text styling (color, font, size, weight, alignment) - Always uses synchronous API mode for immediate image generation results [agent_ead942d9-58a2-4be6-bdb3-99010c489466.json](https://github.com/user-attachments/files/22027352/agent_ead942d9-58a2-4be6-bdb3-99010c489466.json) <img width="140" height="572" alt="Screenshot 2025-08-28 at 16 28 35" src="https://github.com/user-attachments/assets/096b532b-31dc-4ca6-bd68-c00b7594426c" /> ## Features - **Text overlay capabilities**: Add multiple text layers to images using Bannerbear templates - **Customizable styling**: Support for color, font family, font size, font weight, and text alignment - **Image support**: Optional ability to add images to templates - **Smart field handling**: Only sends non-empty optional parameters to the API - **Webhook & metadata**: Advanced options for webhook notifications and custom metadata ## Implementation Details - Created provider configuration with API key authentication - Implemented `BannerbearTextOverlayBlock` with proper input/output schemas - Extracted API calls to private method `_make_api_request()` for test mocking support - Follows SDK guide patterns and integrates with AutoGPT platform ## Use Case This block will be used in the Ad generator agent for creating dynamic marketing materials and social media graphics with text overlays. ## Test plan - [x] Block imports successfully - [x] Block instantiates with unique ID - [x] Code passes linting and formatting checks - [x] Manual testing with actual Bannerbear API key - [x] Integration testing with Ad generator agent |
||
|
|
4041e1f39c |
feat(backend/infra): Cleanup platform and db docker compose files (#10830)
Supabase `db/docker/docker-compose.yml` overrides env vars set in `autogpt_platform/.env` file. This PR fixes that and simplifies the compose files further. ### Changes 🏗️ `autogpt_platform/docker-compose.platform.yml`: - Move hardcoded `DATABASE_URL` and `DIRECT_URL` to `x-backend-env` on top as it repeats for most services. - Remove `RABBITMQ_DEFAULT_USER` and `RABBITMQ_DEFAULT_PASS` from `rabbitmq` service and use env files instead `autogpt_platform/db/docker/docker-compose.yml`: - Remove hardcoded env vars from `x-supabase-env` - these are already defined in `.env` - Remove env vars from services that are already defined in `.env` files *Changes to db compose file only affect self-hosted Supabase* ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Platform, db works when self-hosting |
||
|
|
7cbdc1ad1a |
security(frontend): Upgrade next from 15.4.6 to 15.4.7 (#10820)
 ### Snyk has created this PR to fix 1 vulnerabilities in the yarn dependencies of this project. #### Snyk changed the following file(s): - `autogpt_platform/frontend/package.json` #### Note for [zero-installs](https://yarnpkg.com/features/zero-installs) users If you are using the Yarn feature [zero-installs](https://yarnpkg.com/features/zero-installs) that was introduced in Yarn V2, note that this PR does not update the `.yarn/cache/` directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to run `yarn` to update the contents of the `./yarn/cache` directory. If you are not using zero-install you can ignore this as your flow should likely be unchanged. <details> <summary>⚠️ <b>Warning</b></summary> ``` Failed to update the yarn.lock, please update manually before merging. ``` </details> #### Vulnerabilities that will be fixed with an upgrade: | | Issue | :-------------------------:|:-------------------------  | Server-side Request Forgery (SSRF) <br/>[SNYK-JS-NEXT-12299318](https://snyk.io/vuln/SNYK-JS-NEXT-12299318) --- > [!IMPORTANT] > > - Check the changes in this PR to ensure they won't cause issues with your project. > - Max score is 1000. Note that the real score may have changed since the PR was raised. > - This PR was automatically created by Snyk using the credentials of a real user. --- **Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._ For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjM2E3MTAxZi1mNTI2LTQxMGUtYjVkOS0wMDhmYzMxNjk0MmQiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImMzYTcxMDFmLWY1MjYtNDEwZS1iNWQ5LTAwOGZjMzE2OTQyZCJ9fQ==" width="0" height="0"/> 🧐 [View latest project report](https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr) 📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=github&utm_content=fix-pr-template) 🛠 [Adjust project settings](https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr/settings) 📚 [Read about Snyk's upgrade logic](https://docs.snyk.io/scan-with-snyk/snyk-open-source/manage-vulnerabilities/upgrade-package-versions-to-fix-vulnerabilities?utm_source=github&utm_content=fix-pr-template) --- **Learn how to fix vulnerabilities with free interactive lessons:** 🦉 [Server-side Request Forgery (SSRF)](https://learn.snyk.io/lesson/ssrf-server-side-request-forgery/?loc=fix-pr) [//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"next","from":"15.4.6","to":"15.4.7"}],"env":"prod","issuesToFix":["SNYK-JS-NEXT-12299318"],"prId":"c3a7101f-f526-410e-b5d9-008fc316942d","prPublicId":"c3a7101f-f526-410e-b5d9-008fc316942d","packageManager":"yarn","priorityScoreList":[null],"projectPublicId":"3d924968-0cf3-4767-9609-501fa4962856","projectUrl":"https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr","prType":"fix","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":["updated-fix-title","pr-warning-shown"],"type":"auto","upgrade":["SNYK-JS-NEXT-12299318"],"vulns":["SNYK-JS-NEXT-12299318"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}' --------- Co-authored-by: snyk-bot <snyk-bot@snyk.io> Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
2a19aa0ed3 |
fix(frontend/library): Show total runs count above runs list (#10832)
- Resolves #10831 ### Changes 🏗️ - Show number of total runs instead of currently loaded runs - Show loading spinner instead of zero while loading ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Counter shows number of total runs, even if it exceeds number of currently loaded items |
||
|
|
6d39dfe382 |
feat(frontend): Add admin button to user profile dropdown (#10774)
<!-- Clearly explain the need for these changes: --> ### Need 💡 This PR addresses Linear issue [OPEN-2232](https://linear.app/autogpt/issue/OPEN-2232/add-admin-pages-in-dropdown) by adding an "Admin" button to the user account dropdown menu. This button is only visible to users with an "admin" role and provides direct navigation to the admin marketplace management page, making existing admin functionalities accessible from the new UI. ### Changes 🏗️ <!-- Concisely describe all of the changes made in this pull request: --> - **Added Admin Icon**: Integrated `IconSliders` into the `IconType` enum and `getAccountMenuOptionIcon` function. - **Dynamic Menu Generation**: Introduced `getAccountMenuItems(userRole?: string)` to dynamically construct the account menu. This function conditionally adds an "Admin" menu item (linking to `/admin/marketplace`) if the `userRole` is "admin". - **Navbar Integration**: Updated `NavbarView.tsx` to utilize the `useSupabase` hook to retrieve the current user's role and then render the account menu using the new dynamic `getAccountMenuItems` function for both desktop and mobile views. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Log in as an admin user and verify the "Admin" button appears in the account dropdown. - [x] Click the "Admin" button and confirm navigation to `/admin/marketplace`. - [x] Log in as a non-admin user and verify the "Admin" button does not appear in the account dropdown. - [x] Verify all other existing menu items (e.g., "Edit profile", "Log out") function correctly for both admin and non-admin users. - [x] Test the above scenarios on both desktop and mobile views. --- Linear Issue: [OPEN-2232](https://linear.app/autogpt/issue/OPEN-2232/add-admin-pages-in-dropdown) <a href="https://cursor.com/background-agent?bcId=bc-2dceda38-31b4-4e8e-8277-fb87c8858abf"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-cursor-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-cursor-light.svg"> <img alt="Open in Cursor" src="https://cursor.com/open-in-cursor.svg"> </picture> </a> <a href="https://cursor.com/agents?id=bc-2dceda38-31b4-4e8e-8277-fb87c8858abf"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-web-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-web-light.svg"> <img alt="Open in Web" src="https://cursor.com/open-in-web.svg"> </picture> </a> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> |
||
|
|
57ecc10535 |
fix(frontend): typed inputs in new run modal (#10799)
## Changes 🏗️ ### Make the **Credentials Inputs** show up on the new Run Agent Modal <img width="450" height="784" alt="Screenshot 2025-09-02 at 00 54 19" src="https://github.com/user-attachments/assets/26ad8242-a1bc-45f6-9149-a3d207683679" /> ### Fixes on other modals... <img width="450" height="579" alt="Screenshot 2025-09-02 at 00 04 40" src="https://github.com/user-attachments/assets/fa2f9ed9-207b-4599-9e60-3e37c4be6ea9" /> <img width="450" height="579" alt="Screenshot 2025-09-02 at 00 04 44" src="https://github.com/user-attachments/assets/92e062a7-f161-423e-b6c9-f998fbdef102" /> <img width="450" height="634" alt="Screenshot 2025-09-02 at 00 47 06" src="https://github.com/user-attachments/assets/93009809-0df0-44c5-b2d2-a9aa0f501312" /> - always use buttons/inputs in small size ( _due to the tight space_ ) - use from the design system - always use pretty scrollbars - Configure [`tailwind-scrollbars`](https://github.com/adoxography/tailwind-scrollbar) for pretty scrollbars - prevent content in dialog to overflow when scrollable ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run the app locally with the new agent run modal flag enabled - [x] Check the above #### For configuration changes: None |
||
|
|
4928ce3f90 |
feat(library): Create presets from runs (#10823)
- Resolves #9307 ### Changes 🏗️ - feat(library): Create presets from runs - Prevent creating preset from run with unknown credentials - Fix running presets with credentials - Add `credential_inputs` parameter to `execute_preset` endpoint API: - Return `GraphExecutionMeta` from `*/execute` endpoints ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Go to `/library/agents/[id]` for an agent that *does not* require credentials - Click the menu on any run and select "Pin as a preset"; fill out the dialog and submit - [x] -> UI works - [x] -> Operation succeeds and dialog closes - [x] -> New preset is shown at the top of the runs list - Go to `/library/agents/[id]` for an agent that *does* require credentials - Click the menu on any run and select "Pin as a preset"; fill out the dialog and submit - [x] -> UI works - [x] -> Error toast appears with descriptive message - Initiate a new run; once finished, click "Create preset from run"; fill out the dialog and submit - [x] -> UI works - [x] -> Operation succeeds and dialog closes - [x] -> New preset is shown at the top of the runs list |
||
|
|
e16e69ca55 |
feat(library, executor): Make "Run Again" work with credentials (#10821)
- Resolves [OPEN-2549: Make "Run again" work with credentials in `AgentRunDetailsView`](https://linear.app/autogpt/issue/OPEN-2549/make-run-again-work-with-credentials-in-agentrundetailsview) - Resolves #10237 ### Changes 🏗️ - feat(frontend/library): Make "Run Again" button work for runs with credentials - feat(backend/executor): Store passed-in credentials on `GraphExecution` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Go to `/library/agents/[id]` for an agent with credentials inputs - Run the agent manually - [x] -> runs successfully - [x] -> "Run again" shows among the action buttons on the newly created run - Click "Run again" - [x] -> runs successfully |
||
|
|
4bcc73f784 | ci: Update GitHub Actions workflow for Claude integration (#10822) | ||
|
|
c8240a4d6b | ci: Modify Claude workflow permissions and action version (#10818) | ||
|
|
f669db4a10 |
fix(frontend): prevent using mock feature flags (#10792)
## Changes 🏗️ Make sure `NEXT_PUBLIC_PW_TEST` is set only when running Playwright. This forces the app to use "mock" feature flags, so the tests run stable and predictable despite changes on LaunchDarkly. ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] should not have `PW_TEST=true` ... ### For configuration changes: None |
||
|
|
0e755a5c85 |
feat(platform/library): Support UX for manual-setup triggers (#10309)
- Resolves #10234 ### Preview #### Manual setup triggers   #### Auto-setup triggers  ### Changes 🏗️ - Add "Trigger status" section to `AgentRunDraftView` - Add `AgentPreset.webhook`, so we can show webhook URL in library - Add `AGENT_PRESET_INCLUDE` to `backend.data.includes` - Add `BaseGraph.trigger_setup_info` (computed field) - Rename `LibraryAgentTriggerInfo` to `GraphTriggerInfo`; move to `backend.data.graph` Refactor: - Move contents of `@/components/agents/` to `@/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/` - Fix small type difference between legacy & generated `LibraryAgent.image_url` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Setting up GitHub trigger works - [x] Setting up manual trigger works - [x] Enabling/disabling manual trigger through Library works |
||
|
|
dfdc71f97f |
feat(backend/external-api): Make API key auth work in Swagger UI (#10783)
 - Resolves #10782 ### Changes 🏗️ - Use `Security(..)` for security dependencies - Minor tweaks to auth mechanism (similar to #10720) ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] API key auth feature appears in Swagger UI - [ ] API key auth *works* in Swagger UI (@ntindle wanna test this?) |