1728 Commits

Author SHA1 Message Date
Ubbe
e1e0fb7b25 fix(frontend): post login/signup/onboarding redirect clash (#11382)
## Changes 🏗️

### Issue 1: login/signup redirect conflict

There are 2 hooks, both on the login and signup pages, that attempt to
call `router.push` once a user logs in or is created.

The main offender seems to be this hook:
```tsx
  useEffect(() => {
    if (user) router.push("/");
  }, [user]);
```
Which is in place on both pages to prevent logged-in users from
accessing `/login` or `/signup`. What happens is when a user signs up or
logs in, if they need onboarding, there is a `router.push` down the line
to redirect them there, which conflicts with the one done in this hook.
 
**Solution**

I moved the logic from that hook to the `middleware.ts`, which is a
better place for it... It won't conflict anymore with onboarding
redirects done in those pages

### Issue 2: onboarding server redirects

Potential race condition: both the server component and the client
`<OnboardingProvider />` perform redirects. The server component
redirects happen first, but if onboarding state changes after mount, the
provider can redirect again, causing rapid mount/unmount cycles.

**Solution**

Make all onboarding redirects central in `/onboarding` which is now a
client component do in client redirects only and displaying a spinner
while it does so.

## 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] Tested locally login/logout/signup and trying to access `/login`
and `/signup` being logged in
2025-11-14 15:30:58 +01:00
Reinier van der Leer
a054740aac dx(frontend): Fix source map upload configuration (#11378)
Source maps aren't being uploaded to Sentry, so debugging errors in
production is really hard.

### Changes 🏗️

- Fix config so source maps are found and uploaded to Sentry
- Disable deleting source maps after upload (so they are available in
the browser)

### 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] Tested locally
2025-11-13 17:23:37 +01:00
Abhimanyu Yadav
f78a6df96c feat(frontend): add static style and beads in custom edge (#11364)
<!-- Clearly explain the need for these changes: -->
This PR enhances the visual feedback in the flow editor by adding
animated "beads" that travel along edges during execution. This provides
users with clear, real-time visualization of data flow and execution
progress through the graph, making it easier to understand which
connections are active and track execution state.


https://github.com/user-attachments/assets/df4a4650-8192-403f-a200-15f6af95e384

### Changes 🏗️

<!-- Concisely describe all of the changes made in this pull request:
-->
- **Added new edge data types and structure:**
- Added `CustomEdgeData` type with `isStatic`, `beadUp`, `beadDown`, and
`beadData` properties
  - Created `CustomEdge` type extending XYEdge with custom data
  
- **Implemented bead animation components:**
- Added `JSBeads.tsx` - JavaScript-based animation component with
real-time updates
- Added `SVGBeads.tsx` - SVG-based animation component (for future
consideration)
  - Added helper functions for path calculations and bead positioning
  
- **Updated edge rendering:**
  - Modified `CustomEdge` component to display beads during execution
  - Added static edge styling with dashed lines (`stroke-dasharray: 6`)
- Improved visual hierarchy with different stroke styles for
selected/unselected states
  
- **Refactored edge management:**
- Converted `edgeStore` from using `Connection` type to `CustomEdge`
type
- Added `updateEdgeBeads` and `resetEdgeBeads` methods for bead state
management
  - Updated `copyPasteStore` to work with new edge structure
  
- **Added support for static outputs:**
  - Added `staticOutput` property to `CustomNodeData`
- Static edges show continuous bead animation while regular edges show
one-time animation

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] Create a flow with multiple blocks and verify beads animate along
edges during execution
- [x] Test that beads increment when execution starts (`beadUp`) and
decrement when completed (`beadDown`)
- [x] Verify static edges display with dashed lines and continuous
animation
  - [x] Confirm copy/paste operations preserve edge data and bead states
  - [x] Test edge animations performance with complex graphs (10+ nodes)
  - [x] Verify bead animations complete properly before disappearing
- [x] Test that multiple beads can animate on the same edge for
concurrent executions
- [x] Verify edge selection/deletion still works with new visualization
- [x] Test that bead state resets properly when starting new executions
2025-11-13 15:36:40 +00:00
Bently
d3d78660da fix(frontend/builder): Generate unique IDs for copied blocks (#11344)
## Changes 🏗️

- Clear backend_id when pasting blocks to prevent duplicate ID errors
- Add copy/paste functionality to new FlowEditor
- Ensure pasted blocks use newly generated UUIDs when saving

Fixes issue where copying and pasting blocks would fail with 'Unique
constraint failed' error because the old backend_id was being reused
instead of the new node 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:
- [x] Add any block to the builder, save and run the graph and wait for
it to finish, then copy and paste the first block and paste it, try to
use it and it should now work and not have any issues/errors



https://github.com/user-attachments/assets/c24f9a9a-8e4f-4988-8731-cddc34a0da13

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-11-13 09:48:49 +00:00
Reinier van der Leer
749be06599 fix(blocks/ai): Make AI List Generator block more reliable (#11317)
- Resolves #11305

### Changes 🏗️

Make `AIListGeneratorBlock` more reliable:
- Leverage `AIStructuredResponseGenerator`'s robust
prompt/retry/validate logic
  - Use JSON format instead of Python list format
  - Add `force_json_output` toggle
- Fix output instructions in prompt (only string values allowed)

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Works without `force_json_output`
  - [x] Works with `force_json_output`
  - [x] Retry mechanism works as intended
2025-11-13 09:46:23 +00:00
Krzysztof Czerwinski
27d886f05c feat(platform): WebSocket Onboarding notifications (#11335)
Use WebSocket notifications from the backend to display confetti.

### Changes 🏗️

- Send WebSocket notifications to the browser when new onboarding steps
are completed
- Handle WebSocket notifications events in the Wallet and use them
instead of frontend-based logic to play confetti (fixes confetti
appearing on every refresh)
- Scroll to newly completed tasks when wallet opens just before confetti
plays
- Fix: make `Run again` button complete `RE_RUN_AGENT` task

### 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] Confetti are displayed when previously uncompleted tasks are
completed
  - [x] Confetti do not appear on page refresh
  - [x] Wallet scrolls on open before confetti is displayed
  - [x] `Run again` button completes `RE_RUN_AGENT` task
2025-11-13 09:45:13 +00:00
Abhimanyu Yadav
be01a1316a fix(tests/frontend): resolve flaky test due to duplicate heading elements on marketplace page (#11369)
This PR fixes a flaky test issue in the signup flow where Playwright's
strict mode was failing due to duplicate heading elements on the
marketplace page.

### Problem
The test was failing intermittently with the following error:

```
Error: strict mode violation: getByText('Bringing you AI agents designed by thinkers from around the world') resolved to 2 elements
```

This occurred because the marketplace page contains two identical `<h3>`
elements with the same text, causing Playwright's strict mode to throw
an error when trying to select a single element.


### 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 E2E tests locally multiple times to ensure no flakiness
  - [x] Check CI pipeline runs successfully
2025-11-13 09:11:55 +00:00
Bently
32bb6705d1 fix(frontend/library): fix schedule display issues for recurring schedules (#11362)
Fixes two related bugs in the agent scheduling UI that caused confusion
for users setting up recurring schedules:

1. **"on day nan of every month" display bug**: When scheduling an agent
to repeat every N days (e.g., "every 2 days"), the schedule info panel
incorrectly displayed "on day nan of every month" instead of the correct
"Every N days at HH:MM" format.

2. **Confusing time picker for hourly intervals**: When setting up a
schedule with "every N hours", the UI displayed a time picker labeled
"at 9 o'clock" which was confusing because the time setting is ignored
for hourly intervals. Users were unclear about what this setting meant
or if it had any effect.

### Changes 🏗️

**Fixed `humanizeCronExpression` function**
(`autogpt_platform/frontend/src/lib/cron-expression-utils.ts`):
- Reordered cron expression parsing logic to handle day intervals
(`*/N`) before monthly checks
- Added `!dayOfMonth.startsWith("*/")` guard to monthly and yearly
checks to prevent misinterpreting day intervals as monthly day lists
- This ensures expressions like `0 9 */2 * *` (every 2 days at 9:00) are
correctly displayed as "Every 2 days at 09:00" instead of "on day nan of
every month"

**Updated `CronScheduler` component**
(`autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/AgentRunsView/components/ScheduleAgentModal/components/CronScheduler/CronScheduler.tsx`):
- Hide `TimeAt` component for custom intervals with unit "hours" (time
is ignored for hourly intervals)
- Pass context-aware label to `TimeAt`: "Starting at" for custom day
intervals, "At" for other frequencies
- This clarifies that the time setting is the starting time for day
intervals and removes confusion for hourly intervals

**Enhanced `TimeAt` component**
(`autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/AgentRunsView/components/ScheduleAgentModal/components/CronScheduler/TimeAt.tsx`):
- Added optional `label` prop (defaults to "At") to allow context-aware
labeling
- Component now displays "Starting at" when used with custom day
intervals for better clarity

### 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] Schedule an agent with "Custom" frequency, "Every 2 days" interval
- verify it displays as "Every 2 days at HH:MM" in the schedule info
panel (not "on day nan of every month")
- [x] Schedule an agent with "Monthly" frequency - verify it displays
correctly (e.g., "On day 1, 15 of every month at HH:MM")


<img width="845" height="388" alt="image"
src="https://github.com/user-attachments/assets/02ed0b73-bf5e-48fd-a7b0-6f4d4687eb13"
/>
<img width="839" height="374" alt="image"
src="https://github.com/user-attachments/assets/be62eee2-3fdd-4b20-aecf-669c3c6c6fb2"
/>
2025-11-13 08:13:21 +00:00
Reinier van der Leer
536e2a5ec8 fix(blocks): Make Smart Decision Maker tool pin handling consistent and reliable (#11363)
- Resolves #11345

### Changes 🏗️

- Move tool use routing logic from frontend to backend: routing info was
being baked into graph links by the frontend, inconsistently, causing
issues
- Rework tool use routing to use target node ID instead of target block
name
- Add a bit of magic to `NodeOutputs` component to show tool node title
instead of ID

DX:
- Removed `build` from `.prettierignore` -> re-enable formatting for
builder components

### 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] Use SDM block in a graph; verify it works
  - [x] Use SDM block with agent executor block as tool; verify it works
  - Tests for `parse_execution_output` pass (checked by CI)
2025-11-12 18:55:38 +01:00
Abhimanyu Yadav
a3e5f7fce2 fix(frontend): consolidate graph save logic to prevent duplicate event listeners (#11367)
## Summary

This PR fixes an issue where multiple keyboard save event listeners were
being registered when the same save hook was used in multiple
components, causing the graph to be saved multiple times (3x) when using
Ctrl/Cmd+S.

## Changes

- **Created a centralized `useSaveGraph` hook** in
`/hooks/useSaveGraph.ts` that encapsulates all graph saving logic
- **Refactored `useNewSaveControl`** to use the new centralized hook
instead of duplicating save logic
- **Updated `useRunGraph` and `useScheduleGraph`** to use the
centralized `useSaveGraph` hook directly
- **Simplified the save control component** by removing redundant logic
and using cleaner naming conventions

## Problem

The previous implementation had the save logic duplicated in
`useNewSaveControl`, and when this hook was used in multiple places
(NewSaveControl component, RunGraph, ScheduleGraph), each instance would
register its own keyboard event listener for Ctrl/Cmd+S. This caused:
- Multiple save requests being sent simultaneously
- "Unique constraint failed on the fields: ('id', 'version')" errors
from the backend
- Poor performance due to unnecessary re-renders

## Solution

By centralizing the save logic in a dedicated `useSaveGraph` hook:
- Save logic is now in one place, making it easier to maintain
- Components can use the save functionality without registering
duplicate event listeners
- The keyboard shortcut listener is only registered once in the
`useNewSaveControl` hook
- Other components (RunGraph, ScheduleGraph) can call `saveGraph`
directly without side effects

## Testing
- [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] Verified Ctrl/Cmd+S saves the graph only once
  - [x] Tested save functionality from Save Control popup
- [x] Confirmed Run Graph and Schedule Graph still save before execution
  - [x] Verified no duplicate save requests in network tab
  - [x] Checked that save toast notifications appear correctly
2025-11-12 14:16:30 +00:00
Swifty
d674cb80e2 refactor(backend): Improve Block Error Handling (#11366)
We need a way to differentiate between serious errors that cause on call
alerts and block errors.
This PR address this need by ensuring all errors that occur during
execution of a block are of Subtype BlockError

### Changes 🏗️

- Introduced BlockErrors and its subtypes
- Updated current errors that are emitted by blocks to use BlockError
- Update executor manager, to errors emitted when running a block that
are not of type BlockError to BlockUnknownError

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] checked tests still work
  - [x] Ensured block error message is readable and useful
2025-11-12 13:58:42 +00:00
Abhimanyu Yadav
c3a6235cee feat(frontend): integrate drag-and-drop functionality in new builder (#11341)
In this PR, I’ve added drag-and-drop functionality to the new builder
using built-in HTML drag-and-drop.



https://github.com/user-attachments/assets/b27c281e-6216-4131-9a89-e10b0dd56a8f

### Changes

- Added ReactFlowProvider to manage flow state in BuilderPage and Flow
components.
- Implemented drag-and-drop support for blocks in the NewControlPanel,
allowing users to drag blocks from the menu and drop them onto the
canvas.
- Enhanced the Block component to handle drag events and provide visual
feedback during dragging.
- Updated useFlow hook to include onDragOver and onDrop handlers for
managing block placement.
- Adjusted nodeStore to accept position parameters for added blocks,
improving placement accuracy.

### 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] I’ve tried dragging and dropping multiple blocks, and it works
perfectly as shown in the video.
2025-11-11 06:05:06 +00:00
Abhimanyu Yadav
43638defa2 feat(frontend): add context menu in custom node (#11342)
- depends one https://github.com/Significant-Gravitas/AutoGPT/pull/11339

In this PR, I’ve added a dropdown menu to the custom node. This allows
you to delete a node, copy a node, and if the node is an agent node, you
can also navigate to that specific agent.

<img width="633" height="403" alt="Screenshot 2025-11-08 at 7 24 38 PM"
src="https://github.com/user-attachments/assets/89dd2906-95f5-40a5-82d1-de05075e4f30"
/>

###Changes
- Added context menu to custom nodes with copy, delete, and open agent
options
- Added performance optimization with memo for custom edge

### 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] All three buttons are working perfectly.
  - [x] The “Go to graph” option is only visible in the sub-graph node.
2025-11-11 06:04:56 +00:00
Abhimanyu Yadav
9371528aab feat(frontend): add copy paste functionality in new builder (#11339)
In the new builder, I’ve added a copy-paste functionality using the
keyboard.


https://github.com/user-attachments/assets/3106ae86-3f47-4807-a598-9c0b166eaae9

### Changes 🏗️

- Added useCopyPasteKeyboard hook for handling keyboard shortcuts
- Created new copyPasteStore for state management
- Implemented performance optimizations (memo on CustomEdge)
- Updated nodeStore and edgeStore to support the functionality

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] The copy-paste functionality is working correctly as you can see
in the video.
2025-11-10 15:39:53 +00:00
Zamil Majdy
711c439642 fix(frontend): enable admin impersonation for server-side rendered requests (#11343)
## Summary
Fix admin impersonation not working for graph execution requests that
are server-side rendered.

## Problem
- Build page uses SSR, so API calls go through _makeServerRequest
instead of _makeClientRequest
- Server-side requests cannot access sessionStorage where impersonation
ID is stored
- Graph execution requests were missing X-Act-As-User-Id header

## Simple Solution
1. **Store impersonation in cookie** (useAdminImpersonation.ts): 
   - Set/clear cookie alongside sessionStorage for server access
2. **Read cookie on server** (_makeServerRequest in client.ts):
   - Check for impersonation cookie using Next.js cookies() API  
   - Create fake Request with X-Act-As-User-Id header
   - Pass to existing makeAuthenticatedRequest flow

## Changes Made
- useAdminImpersonation.ts: 2 lines to set/clear cookie
- client.ts: 1 method to read cookie and create header  
- No changes to existing proxy/header/helpers logic

## Result
-  Graph execution requests now include impersonation header
-  Works for both client-side and server-side rendered requests  
-  Minimal changes, leverages existing header forwarding logic
-  Backward compatible with all existing functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-10 21:23:23 +07:00
Ubbe
33989f09d0 feat(frontend): supabase + zustand for speed (#11333)
### Changes 🏗️

This change uses [Zustand](https://github.com/pmndrs/zustand) (a
lightweight state management library) to centralize authentication state
across the app. Previously, each component mounting `useSupabase()`
would create its own local state, causing duplicate API calls and
inconsistent user data. Now, user state is cached globally with Zustand
- when multiple components need auth data, they share the same cached
state instead of each fetching separately. This reduces server load and
improves app responsiveness.

**File structure:**
```
src/lib/supabase/hooks/
├── useSupabase.ts           # React hook interface (modified)
├── useSupabaseStore.ts      # Zustand state management (new)
└── helpers.ts               # Pure business logic (new)
```

**What was extracted to helpers:**
- `ensureSupabaseClient()` - Singleton client initialization
- `fetchUser()` - User fetching with error handling  
- `validateSession()` - Session validation logic
- `refreshSession()` - Session refresh logic
- `handleStorageEvent()` - Cross-tab logout handling

### 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] Verified no TypeScript errors in modified files
  - [x] Tested login flow works correctly
  - [x] Tested logout flow works correctly
  - [x] Verified session validation on tab focus/visibility
  - [x] Tested cross-tab logout synchronization
  - [x] Confirmed WebSocket disconnection on logout
2025-11-10 12:08:37 +00:00
Zamil Majdy
d6ee402483 feat(platform): Add execution analytics admin endpoint with feature flag bypass (#11327)
This PR adds a comprehensive execution analytics admin endpoint that
generates AI-powered activity summaries and correctness scores for graph
executions, with proper feature flag bypass for admin use.

### Changes 🏗️

**Backend Changes:**
- Added admin endpoint: `/api/executions/admin/execution_analytics`
- Implemented feature flag bypass with `skip_feature_flag=True`
parameter for admin operations
- Fixed async database client usage (`get_db_async_client`) to resolve
async/await errors
- Added batch processing with configurable size limits to handle large
datasets
- Comprehensive error handling and logging for troubleshooting
- Renamed entire feature from "Activity Backfill" to "Execution
Analytics" for clarity

**Frontend Changes:**
- Created clean admin UI for execution analytics generation at
`/admin/execution-analytics`
- Built form with graph ID input, model selection dropdown, and optional
filters
- Implemented results table with status badges and detailed execution
information
- Added CSV export functionality for analytics results
- Integrated with generated TypeScript API client for proper
authentication
- Added proper error handling with toast notifications and loading
states

**Database & API:**
- Fixed critical async/await issue by switching from sync to async
database client
- Updated router configuration and endpoint naming for consistency
- Generated proper TypeScript types and API client integration
- Applied feature flag filtering at API level while bypassing for admin
operations

### 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] Admin can access execution analytics page at
`/admin/execution-analytics`
- [x] Form validation works correctly (requires graph ID, validates
inputs)
- [x] API endpoint `/api/executions/admin/execution_analytics` responds
correctly
- [x] Authentication works properly through generated API client
- [x] Analytics generation works with different LLM models (gpt-4o-mini,
gpt-4o, etc.)
- [x] Results display correctly with appropriate status badges
(success/failed/skipped)
- [x] CSV export functionality downloads correct data
- [x] Error handling displays appropriate toast messages
- [x] Feature flag bypass works for admin users (generates analytics
regardless of user flags)
- [x] Batch processing handles multiple executions correctly
- [x] Loading states show proper feedback during processing

#### 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] No configuration changes required for this feature

**Related to:** PR #11325 (base correctness score functionality)

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Zamil Majdy <majdyz@users.noreply.github.com>
2025-11-10 10:27:44 +00:00
Lluis Agusti
58928b516b fix(frontend): onboarding provider calls only when user is logged in 2025-11-10 16:52:39 +07:00
Krzysztof Czerwinski
18bb78d93e feat(platform): WebSocket-based notifications (#11297)
This enables real time notifications from backend to browser via
WebSocket using Redis bus for moving notifications from REST process to
WebSocket process.
This is needed for (follow-up) backend-completion of onboarding tasks
with instant notifications.

### Changes 🏗️

- Add new `AsyncRedisNotificationEventBus` to enable publishing
notifications to the Redis event bus
- Consume notifications in `ws_api.py` similarly to execution events and
send them via WebSocket
- Store WebSocket user connections in `ConnectionManager`
- Add relevant tests and types

### 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] Notifications are sent to the frontend
2025-11-09 01:42:20 +00:00
Swifty
8058b9487b feat(platform): Chat UI refinements with simplified tool status indicators (#11337) 2025-11-07 22:49:03 +01:00
Ubbe
e68896a25a feat(backend): allow regex on CORS allowed origins (#11336)
## Changes 🏗️

Allow dynamic URLs in the CORS config, to match them via regex. This
helps because currently we have Front-end preview deployments which are
isolated ( _nice they don't pollute or overrride other domains_ ) like:
```
https://autogpt-git-{branch_name}-{commit}-significant-gravitas.vercel.app
```
The Front-end builds and works there, but as soon as you login, any API
requests to endpoints that need auth will fail due to CORS, given our
current CORS config does not support dynamically generated domains.

### Changes

After these changes we can specify dynamic domains to be allowed under
CORS. I also made `localhost` disabled if the API is in production for
safety...

### Before

```yml
cors:
  allowOrigin: "https://dev-builder.agpt.co" # could only specify full URL strings, not dyamic ones
```

### After

```yml
cors:
  allowOrigins:
    - "https://dev-builder.agpt.co"
    - "regex:https://autogpt-git-[a-z0-9-]+\\.vercel\\.app" # dynamic domains supported via regex
```

### Files

- add `build_cors_params` utility to parse literal/regex origins and
block localhost in production (`backend/server/utils/cors.py`)
- apply the helper in both `AgentServer` and `WebsocketServer` so CORS
logic and validations remain consistent
- add reusable `override_config` testing helper and update existing
WebSocket tests to cover the shared CORS behavior
- introduce targeted unit tests for the new CORS helper
(`backend/server/utils/cors_test.py`)

## Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] We will know once we made the origin config changes on infra and
test with this...
2025-11-07 23:28:14 +07:00
Ubbe
dfed092869 dx(frontend): make preview deploys work + minor improvements (#11329)
## Changes 🏗️

Make sure we can login on preview deployments generated by Vercel to
test Front-end changes. As of now, the Cloudflare CAPTCHA verification
fails, we don't need to have it active there.

### Minor improvements

<img width="1599" height="755" alt="Screenshot 2025-11-06 at 16 18 10"
src="https://github.com/user-attachments/assets/0a3fb1f3-2d4d-49fe-885f-10f141dc0ce4"
/>

Prevent the following build error:
```
15:58:01.507
     at j (.next/server/app/(no-navbar)/onboarding/reset/page.js:1:5125)
15:58:01.507
     at <unknown> (.next/server/chunks/5826.js:2:14221)
15:58:01.507
     at b.handleCallbackErrors (.next/server/chunks/5826.js:43:43068)
15:58:01.507
     at <unknown> (.next/server/chunks/5826.js:2:14194) {
15:58:01.507
   description: "Route /onboarding/reset couldn't be rendered statically because it used `cookies`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error",
15:58:01.507
   digest: 'DYNAMIC_SERVER_USAGE'
15:58:01.507
 }
 ```
by making the reset onboarding route a client one. I made a new component, `<LoadingSpinner />`, and that page will show it while onboarding it's being reset.

## 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] You can login/signup on the app and use it in the preview URL generated by Vercel
2025-11-07 21:03:57 +07:00
Swifty
5559d978d7 fix(platform): chat duplicate messages (#11332) 2025-11-06 17:20:46 +01:00
Bently
dcecb17bd1 feat(backend): Remove deprecated LLM models and add migration script (#11331)
These models have become deprecated
- deepseek-r1-distill-llama-70b
- gemma2-9b-it
- llama3-70b-8192
- llama3-8b-8192
- google/gemini-flash-1.5

I have removed them and setup a migration, the migration is to convert
all the old versions of the model to new versions, the model changes
will happen like so

- llama3-70b-8192 → llama-3.3-70b-versatile
- llama3-8b-8192 → llama-3.1-8b-instant
- google/gemini-flash-1.5 → google/gemini-2.5-flash
- deepseek-r1-distill-llama-70b → gpt-5-chat-latest
- gemma2-9b-it → gpt-5-chat-latest 

### Changes 🏗️

<!-- Concisely describe all of the changes made in this pull request:
-->

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Check to see if old models where removed
- [x] Check to see if migration worked and converted old models to new
one in graph
2025-11-06 12:36:42 +00:00
Swifty
a056d9e71a feature(backend): Limit Chat to Auth Users, Limit Agent Runs Per Chat (#11330) 2025-11-06 13:11:15 +01:00
Swifty
42b643579f feat(frontend): Chat UI Frontend (#11290) 2025-11-06 11:37:36 +01:00
seer-by-sentry[bot]
5b52ca9227 fix(platform): Implement backwards-compatible Set operations for input validation (#11197)
### Changes 🏗️

- Replaces `isSupersetOf` and `difference` Set operations with
backwards-compatible implementations using `Array.from` and
`every`/`filter` methods.
- This ensures compatibility with older JavaScript environments that may
not fully support modern Set operations.

Fixes
[BUILDER-451](https://sentry.io/organizations/significant-gravitas/issues/6952591149/).
The issue was that: ES2024 Set methods `isSupersetOf` and `difference`
are unsupported in iOS Safari 16.7, causing a TypeError during component
render.

This fix was generated by Seer in Sentry, triggered automatically. 👁️
Run ID: 2032240

Not quite right? [Click here to continue debugging with
Seer.](https://sentry.io/organizations/significant-gravitas/issues/6952591149/?seerDrawer=true)

### 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: -->
- [ ] Test on iOS Safari 16.7 to ensure no TypeError occurs during
component render.
- [ ] Verify that the replaced `isSupersetOf` and `difference`
implementations function correctly in other supported browsers.

<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.default` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)

<details>
  <summary>Examples of configuration changes</summary>

  - Changing ports
  - Adding new services that need to communicate with each other
  - Secrets or environment variable changes
  - New or infrastructure changes such as databases
</details>

Co-authored-by: seer-by-sentry[bot] <157164994+seer-by-sentry[bot]@users.noreply.github.com>
2025-11-06 16:55:47 +07:00
Bently
8e83586d13 feat(frontend): Cookie consent banner and settings (#11306)
Implements a cookie consent banner and settings modal for GDPR
compliance, allowing users to manage preferences for analytics and
monitoring cookies. Integrates consent checks with Sentry, Vercel
Analytics, and Google Analytics, ensuring tracking is only enabled with
user permission. Refactors dialog components for improved layout and
adds consent management utilities and hooks.

#### For code changes:
- [x] Banner appears at bottom of page on first visit with rounded
corners and proper spacing (40px margins)
- [x] Banner shows three buttons: "Reject All", "Settings", and "Accept
All"
- [x] Clicking "Accept All" hides banner and enables
analytics/monitoring
- [x] Clicking "Reject All" hides banner and keeps analytics/monitoring
disabled
- [x] Banner does not reappear after consent is given (check
localStorage: `autogpt_cookie_consent`)

**Cookie Settings Modal:**
- [x] Clicking "Settings" button opens the Cookie Settings modal
- [x] Modal displays three categories: Essential Cookies (always
active), Analytics & Performance (toggle), Error Monitoring & Session
Replay (toggle)
- [x] Clicking "Save Preferences" saves custom settings and closes modal
- [x] Clicking "Accept All" enables all cookies and closes modal
- [x] Clicking "Reject All" disables optional cookies and closes modal
- [x] Modal can be closed with X button or clicking outside

**Consent Persistence:**
- [x] Refresh page after giving consent - banner should not reappear
- [x] Clear localStorage and refresh - banner should reappear
- [x] Consent choices persist across browser sessions

<img width="1123" height="126" alt="image"
src="https://github.com/user-attachments/assets/7425efab-b5cc-4449-802d-0e12bd65053b"
/>

<img width="1124" height="372" alt="image"
src="https://github.com/user-attachments/assets/2f28919a-97e8-44f5-9021-70d3836bb996"
/>
2025-11-06 09:25:43 +00:00
seer-by-sentry[bot]
df9850a141 fix(frontend): prevent state updates on unmounted OnboardingProvider (#11211)
<!-- Clearly explain the need for these changes: -->
Fixes
[BUILDER-48G](https://sentry.io/organizations/significant-gravitas/issues/6960009111/).
The issue was that: Asynchronous API update scheduled via
`setTimeout(0)` in `OnboardingProvider` creates a race condition,
causing React-DOM's portal cleanup (`removeChild`) to fail during
concurrent component unmounting.

### Changes 🏗️

<!-- Concisely describe all of the changes made in this pull request:
-->
- Prevents state updates and API calls after the `OnboardingProvider`
component has been unmounted.
- Introduces a `isMounted` ref to track the component's mount status.
- Uses a `pendingUpdatesRef` to manage and cancel pending API update
promises on unmount, preventing memory leaks and errors.
- Ensures that API update errors are only logged if the component is
still mounted.


This fix was generated by Seer in Sentry, triggered by Craig Swift. 👁️
Run ID: 2058387

Not quite right? [Click here to continue debugging with
Seer.](https://sentry.io/organizations/significant-gravitas/issues/6960009111/?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:
  - [x] Onboarding works and does not throw errors when unmounted

---------

Co-authored-by: seer-by-sentry[bot] <157164994+seer-by-sentry[bot]@users.noreply.github.com>
Co-authored-by: Lluis Agusti <hi@llu.lu>
Co-authored-by: Ubbe <hi@ubbe.dev>
2025-11-06 16:20:23 +07:00
Reinier van der Leer
cbe4086e79 feat(frontend/marketplace): Update agent download UI (#11322)
- Resolves #11314

### Changes 🏗️

- Change "Download agent" CTA button to action link at bottom of summary
agent info
- Move agent ratings above CTA buttons to prevent it from jumping on
page load
- Update vertical spacings to more closely match designs

![example of new
look](https://github.com/user-attachments/assets/2db4d21e-b4f0-4930-9648-d4d4b20ef6fe)

### 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] Designer approves of new look
  - [x] Tests pass
2025-11-06 10:18:29 +01:00
seer-by-sentry[bot]
fbd5f34a61 fix(frontend): Ensure agent version is fetched when active_version_id exists (#11291)
### Changes 🏗️

Fixes
[BUILDER-4HJ](https://sentry.io/organizations/significant-gravitas/issues/6979388537/).
The issue was that: Server-side rendering failed to retrieve the
Supabase access token, causing authenticated API calls to omit the
Authorization header.

- Ensures that the agent version is fetched only when
`creator_agent.active_version_id` exists and the status code is 200.
- Enables the `prefetchGetV2GetAgentByStoreIdQuery` query when
`creator_agent.active_version_id` exists.

This fix was generated by Seer in Sentry, triggered by Craig Swift. 👁️
Run ID: 2234004

Not quite right? [Click here to continue debugging with
Seer.](https://sentry.io/organizations/significant-gravitas/issues/6979388537/?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:
  - [x] Loading marketplace works...

Co-authored-by: seer-by-sentry[bot] <157164994+seer-by-sentry[bot]@users.noreply.github.com>
Co-authored-by: Ubbe <hi@ubbe.dev>
2025-11-06 08:29:43 +00:00
Ubbe
0b680d4990 feat(frontend): <Button variant="link" /> (#11320)
## Changes 🏗️

<img width="800" height="800" alt="Screenshot 2025-11-04 at 23 05 22"
src="https://github.com/user-attachments/assets/ecb3f442-8f1b-4a80-a6c9-0c4b6d5e0427"
/>

New `<Button variant="link" />` for when you need to render an HTML
`<button>` but with our link styles.

## 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 Storybook locally
  - [x] Looks good
2025-11-06 15:06:56 +07:00
Zamil Majdy
6037f80502 feat(backend): Add correctness score to execution activity generation (#11325)
## Summary
Add AI-generated correctness score field to execution activity status
generation to provide quantitative assessment of how well executions
achieved their intended purpose.

New page:
<img width="1000" height="229" alt="image"
src="https://github.com/user-attachments/assets/5cb907cf-5bc7-4b96-8128-8eecccde9960"
/>

Old page:
<img width="1000" alt="image"
src="https://github.com/user-attachments/assets/ece0dfab-1e50-4121-9985-d585f7fcd4d2"
/>


## What Changed
- Added `correctness_score` field (float 0.0-1.0) to
`GraphExecutionStats` model
- **REFACTORED**: Removed duplicate `llm_utils.py` and reused existing
`AIStructuredResponseGeneratorBlock` logic
- Updated activity status generator to use structured responses instead
of plain text
- Modified prompts to include correctness assessment with 5-tier scoring
system:
  - 0.0-0.2: Failure
  - 0.2-0.4: Poor 
  - 0.4-0.6: Partial Success
  - 0.6-0.8: Mostly Successful
  - 0.8-1.0: Success
- Updated manager.py to extract and set both activity_status and
correctness_score
- Fixed tests to work with existing structured response interface

## Technical Details
- **Code Reuse**: Eliminated duplication by using existing
`AIStructuredResponseGeneratorBlock` instead of creating new LLM
utilities
- Added JSON validation with retry logic for malformed responses
- Maintained backward compatibility for existing activity status
functionality
- Score is clamped to valid 0.0-1.0 range and validated
- All type errors resolved and linting passes

## Test Plan
- [x] All existing tests pass with refactored structure
- [x] Structured LLM call functionality tested with success and error
cases
- [x] Activity status generation tested with various execution scenarios
- [x] Integration tests verify both fields are properly set in execution
stats
- [x] No code duplication - reuses existing block logic

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Zamil Majdy <majdyz@users.noreply.github.com>
2025-11-06 04:42:13 +00:00
Nicholas Tindle
37b3e4e82e feat(blocks)!: Update Exa search block to match latest API specification (#11185)
BREAKING CHANGE: Removed deprecated use_auto_prompt field from Input
schema. Existing workflows using this field will need to be updated to
use the type field set to "auto" instead.

## Summary of Changes 📝

This PR comprehensively updates all Exa search blocks to match the
latest Exa API specification and adds significant new functionality
through the Websets API integration.

### Core API Updates 🔄

- **Migration to Exa SDK**: Replaced manual API calls with the official
`exa_py` AsyncExa SDK across all blocks for better reliability and
maintainability
- **Removed deprecated fields**: Eliminated
`use_auto_prompt`/`useAutoprompt` field (breaking change)
- **Fixed incomplete field definitions**: Corrected `user_location`
field definition
- **Added new input fields**: Added `moderation` and `context` fields
for enhanced content filtering

### Enhanced Content Settings 🛠️

- **Text field improvements**: Support both boolean and advanced object
configurations
- **New content options**: 
  - Added `livecrawl` settings (never, fallback, always, preferred)
  - Added `subpages` support for deeper content retrieval
  - Added `extras` settings for links and images
  - Added `context` settings for additional contextual information
- **Updated settings**: Enhanced `highlight` and `summary`
configurations with new query and schema options

### Comprehensive Cost Tracking 💰

- Added detailed cost tracking models:
  - `CostDollars` for monetary costs
  - `CostCredits` for API credit tracking
  - `CostDuration` for time-based costs
- New output fields: `request_id`, `resolved_search_type`,
`cost_dollars`
- Improved response handling to conditionally yield fields based on
availability

### New Websets API Integration 🚀

Added eight new specialized blocks for Exa's Websets API:
- **`websets.py`**: Core webset management (create, get, list, delete)
- **`websets_search.py`**: Search operations within websets
- **`websets_items.py`**: Individual item management (add, get, update,
delete)
- **`websets_enrichment.py`**: Data enrichment operations
- **`websets_import_export.py`**: Bulk import/export functionality
- **`websets_monitor.py`**: Monitor and track webset changes
- **`websets_polling.py`**: Poll for updates and changes

### New Special-Purpose Blocks 🎯

- **`code_context.py`**: Code search capabilities for finding relevant
code snippets from open source repositories, documentation, and Stack
Overflow
- **`research.py`**: Asynchronous research capabilities that explore the
web, gather sources, synthesize findings, and return structured results
with citations

### Code Organization Improvements 📁

- **Removed legacy code**: Deleted `model.py` file containing deprecated
API models
- **Centralized helpers**: Consolidated shared models and utilities in
`helpers.py`
- **Improved modularity**: Each webset operation is now in its own
dedicated file

### Other Changes 🔧

- Updated `.gitignore` for better development workflow
- Updated `CLAUDE.md` with project-specific instructions
- Updated documentation in `docs/content/platform/new_blocks.md` with
error handling, data models, and file input guidelines
- Improved webhook block implementations with SDK integration

### Files Changed 📂

- **Modified (11 files)**:
  - `.gitignore`
  - `autogpt_platform/CLAUDE.md`
  - `autogpt_platform/backend/backend/blocks/exa/answers.py`
  - `autogpt_platform/backend/backend/blocks/exa/contents.py`
  - `autogpt_platform/backend/backend/blocks/exa/helpers.py`
  - `autogpt_platform/backend/backend/blocks/exa/search.py`
  - `autogpt_platform/backend/backend/blocks/exa/similar.py`
  - `autogpt_platform/backend/backend/blocks/exa/webhook_blocks.py`
  - `autogpt_platform/backend/backend/blocks/exa/websets.py`
  - `docs/content/platform/new_blocks.md`

- **Added (8 files)**:
  - `autogpt_platform/backend/backend/blocks/exa/code_context.py`
  - `autogpt_platform/backend/backend/blocks/exa/research.py`
  - `autogpt_platform/backend/backend/blocks/exa/websets_enrichment.py`
- `autogpt_platform/backend/backend/blocks/exa/websets_import_export.py`
  - `autogpt_platform/backend/backend/blocks/exa/websets_items.py`
  - `autogpt_platform/backend/backend/blocks/exa/websets_monitor.py`
  - `autogpt_platform/backend/backend/blocks/exa/websets_polling.py`
  - `autogpt_platform/backend/backend/blocks/exa/websets_search.py`

- **Deleted (1 file)**:
  - `autogpt_platform/backend/backend/blocks/exa/model.py`

### Migration Guide 🚦

For users with existing workflows using the deprecated `use_auto_prompt`
field:
1. Remove the `use_auto_prompt` field from your input configuration
2. Set the `type` field to `ExaSearchTypes.AUTO` (or "auto" in JSON) to
achieve the same behavior
3. Review any custom content settings as the structure has been enhanced

### Testing Recommendations 

- Test existing workflows to ensure they handle the breaking change
- Verify cost tracking fields are properly returned
- Test new content settings options (livecrawl, subpages, extras,
context)
- Validate websets functionality if using the new Websets API blocks

🤖 Generated with [Claude Code](https://claude.com/claude-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:
  - [x] made + ran a test agent for the blocks and flows between them
[Exa
Tests_v44.json](https://github.com/user-attachments/files/23226143/Exa.Tests_v44.json)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Migrates Exa blocks to AsyncExa SDK, adds comprehensive
Websets/research/code-context blocks, updates existing
search/content/answers/similar, deletes legacy models, adjusts
tests/docs; breaking: remove `use_auto_prompt` in favor of
`type="auto"`.
> 
> - **Backend — Exa integration (SDK migration & BREAKING)**:
> - Replace manual HTTP calls with `exa_py.AsyncExa` across `search`,
`similar`, `contents`, `answers`, and webhooks; richer outputs
(citations, context, costs, resolved search type).
>   - BREAKING: remove `Input.use_auto_prompt`; use `type = "auto"`.
> - Centralize models/utilities in `exa/helpers.py` (content settings,
cost models, result mappers).
> - **New Blocks**:
> - **Websets**: management (`websets.py`), searches, items,
enrichments, imports/exports, monitors, polling (new files under
`exa/websets_*`).
> - **Research**: async research task create/get/wait/list
(`exa/research.py`).
> - **Code Context**: code snippet/context retrieval
(`exa/code_context.py`).
> - **Removals**:
>   - Delete deprecated `exa/model.py`.
> - **Docs & DX**:
> - Update `docs/new_blocks.md` (error handling, models, file input) and
`CLAUDE.md`; ignore backend logs in `.gitignore`.
> - **Frontend Tests**:
> - Split/extend “e” block tests and improve block add robustness in
Playwright (`build.spec.ts`, `build.page.ts`).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
6e5e572322. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added multiple Exa research and webset management blocks for task
creation, monitoring, and completion tracking.
* Introduced new search capabilities including code context retrieval,
content search, and enhanced filtering options.
* Added webset enrichment, import/export, and item management
functionality.
  * Expanded search with location-based and category filters.

* **Documentation**
* Updated guidance on error handling, data models, and file input
handling.

* **Refactor**
* Modernized backend API integration with improved response structure
and error reporting.
  * Simplified configuration options for search operations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-05 19:52:48 +00:00
Reinier van der Leer
de7c5b5c31 Merge branch 'master' into dev 2025-11-05 20:17:27 +01:00
Reinier van der Leer
d68dceb9c1 fix(backend/executor): Improve graph execution permission check (#11323)
- Resolves #11316
- Durable fix to replace #11318

### Changes 🏗️

- Expand graph execution permissions check
  - Don't require library membership for execution as sub-graph

### 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 run sub-agent with non-latest graph version
- [x] Can run sub-agent that is available in Marketplace but not added
to Library
2025-11-05 17:13:41 +00:00
Zamil Majdy
193866232c hotfix(backend): fix rate-limited messages blocking queue by republishing to back (#11326)
## Summary
Fix critical queue blocking issue where rate-limited user messages
prevent other users' executions from being processed, causing the 135
late executions reported in production.

## Root Cause Analysis
When a user exceeds `max_concurrent_graph_executions_per_user` (25), the
executor uses `basic_nack(requeue=True)` which sends the message to the
**FRONT** of the RabbitMQ queue. This creates an infinite blocking loop
where:
1. Rate-limited message goes to front of queue
2. Gets processed, hits rate limit again  
3. Goes back to front of queue
4. Blocks all other users' messages indefinitely

## Solution Implementation

### 🔧 Core Changes
- **New setting**: `requeue_by_republishing` (default: `True`) in
`backend/util/settings.py`
- **Smart `_ack_message`**: Automatically uses republishing when
`requeue=True` and setting enabled
- **Efficient implementation**: Uses existing `self.run_client`
connection instead of creating new ones
- **Integration test**: Real RabbitMQ test validates queue ordering
behavior

### 🔄 Technical Implementation
**Before (blocking):**
```python
basic_nack(delivery_tag, requeue=True)  # Goes to FRONT of queue 
```

**After (non-blocking):**
```python
if requeue and self.config.requeue_by_republishing:
    # First: Republish to BACK of queue
    self.run_client.publish_message(...)
    # Then: Reject without requeue
    basic_nack(delivery_tag, requeue=False)
```

### 📊 Impact
-  **Other users' executions no longer blocked** by rate-limited users
-  **Fair queue processing** - FIFO behavior maintained for all users
-  **Rate limiting still works** - just doesn't block others
-  **Configurable** - can revert to old behavior with
`requeue_by_republishing=False`
-  **Zero performance impact** - uses existing connections

## Test Plan
- **Integration test**: `test_requeue_integration.py` validates real
RabbitMQ queue ordering
- **Scenario testing**: Confirms rate-limited messages go to back of
queue
- **Cross-user validation**: Verifies other users' messages process
correctly
- **Setting test**: Confirms configuration loads with correct defaults

## Deployment Strategy
This is a **hotfix** that can be deployed immediately:
- **Backward compatible**: Old behavior available via config
- **Safe default**: New behavior is safer than current state
- **No breaking changes**: All existing functionality preserved
- **Immediate relief**: Resolves production queue blocking

## Files Modified
- `backend/executor/manager.py`: Enhanced `_ack_message` logic and
`_requeue_message_to_back` method
- `backend/util/settings.py`: Added `requeue_by_republishing`
configuration field
- `test_requeue_integration.py`: Integration test for queue ordering
validation

## Related Issues
Fixes the 135 late executions issue where messages were stuck in QUEUED
state despite available executor capacity (583m/600m utilization).

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-05 16:24:07 +00:00
Krzysztof Czerwinski
979826f559 fix(platform): Wallet fixes (#11304)
### Changes 🏗️

- Unmask for Sentry:
  - Agent name&creator on onboarding cards
  - Edge paths
  - Block I/O names
- Prevent firing `onClick` when onboarding agents are loading
- Prevent confetti on null elements and top-left corner
- Fix tooltip on Wallet hover
- Fix `0` appearing in place of notification dot on the Wallet button

### 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] Onboarding works and can be completed
  - [x] Wallet confetti works properly
  - [x] Tooltip works
2025-11-05 14:17:43 +00:00
Swifty
2f87e13d17 feat(platform): Chat system backend (#11230)
Implements foundational backend infrastructure for chat-based agent
interaction system. Users will be able to discover, configure, and run
marketplace agents through conversational AI.

**Note:** Chat routes are behind a feature flag 

### Changes 🏗️

**Core Chat System:**
- Chat service with LLM orchestration (Claude 3.5 Sonnet, Haiku, GPT-4)
- REST API routes for sessions and messages
- Database layer for chat persistence
- System prompts and configuration

**5 Conversational Tools:**
1. `find_agent` - Search marketplace by keywords
2. `get_agent_details` - Fetch agent info, inputs, credentials
3. `get_required_setup_info` - Check user readiness, missing credentials
4. `run_agent` - Execute agents immediately
5. `setup_agent` - Configure scheduled execution with cron

**Testing:**
- 28 tests across chat tools (23 passing, 5 skipped for scheduler)
- Test fixtures for simple, LLM, and Firecrawl agents
- Service and data layer tests

**Bug Fixes:**
- Fixed `setup_agent.py` to create schedules instead of immediate
execution
- Fixed graph lookup to use UUID instead of username/slug
- Fixed credential matching by provider/type instead of ID
- Fixed internal tool calls to use `._execute()` instead of `.execute()`

### 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] All 28 chat tool tests pass (23 pass, 5 skip - require scheduler)
  - [x] Code formatting and linting pass
  - [x] Tool execution flow validated through unit tests
  - [x] Agent discovery, details, and execution tested
  - [x] Credential parsing and matching tested

#### 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 required - all existing settings compatible.
2025-11-05 13:49:01 +00:00
Zamil Majdy
2ad5a88a5c feat(frontend): Change copywriting for execution task summary (#11324)
### Changes 🏗️

Change copywriting for execution task summary

### 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] Manual review
2025-11-05 12:59:21 +00:00
Abhimanyu Yadav
e9cd40c0d4 fix(frontend): Correctly rendering all types of outputs in the custom node in the new builder (#11258)
Currently, we are rendering text for all types of outputs, even if it’s
a video, image, or other type. So, In current we fixed it by rendering
them correctly. Also, some output actions weren’t working, so fixed them
also.

<img width="1486" height="1080" alt="Screenshot 2025-10-27 at 4 36
33 PM"
src="https://github.com/user-attachments/assets/4e4ee43f-5400-477e-8fa9-2914acf11466"
/>

<img width="463" height="683" alt="Screenshot 2025-10-27 at 4 39 00 PM"
src="https://github.com/user-attachments/assets/bfc09c00-58dd-4a0d-96a2-aa51cc282797"
/>

<img width="1455" height="753" alt="Screenshot 2025-10-27 at 4 36 56 PM"
src="https://github.com/user-attachments/assets/52870ffe-3e47-4b0f-bfa3-8d8bbe38cbbd"
/>

<img width="1131" height="1062" alt="Screenshot 2025-10-27 at 4 37
17 PM"
src="https://github.com/user-attachments/assets/e55040e9-33e6-45a8-8397-bf912e93840f"
/>

### Changes 🏗️

- Add a new design for the node output.
- Render the correct HTML tag for each type.
- Make all the output actions below the data section workable, such as
viewing the complete data or copying it.
- Add a “View more” button. We’re only seeing two pins of output. If we
have more pins, we can view all the output in a dialogue box.

### 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] able to render different types of output data correctly.
   - [x] All output actions are working perfectly.

---------

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
Co-authored-by: Ubbe <hi@ubbe.dev>
2025-11-05 07:01:49 +00:00
dependabot[bot]
4744675ef9 chore(frontend/deps-dev): bump the development-dependencies group across 1 directory with 13 updates (#11288)
Bumps the development-dependencies group with 13 updates in the
/autogpt_platform/frontend directory:

| Package | From | To |
| --- | --- | --- |
|
[@chromatic-com/storybook](https://github.com/chromaui/addon-visual-tests)
| `4.1.1` | `4.1.2` |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.55.0`
| `1.56.1` |
|
[@tanstack/eslint-plugin-query](https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query)
| `5.86.0` | `5.91.2` |
|
[@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools)
| `5.87.3` | `5.90.2` |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `24.3.1` | `24.9.2` |
| [axe-playwright](https://github.com/abhinaba-ghosh/axe-playwright) |
`2.1.0` | `2.2.2` |
| [chromatic](https://github.com/chromaui/chromatic-cli) | `13.1.4` |
`13.3.2` |
| [msw](https://github.com/mswjs/msw) | `2.11.1` | `2.11.6` |
|
[msw-storybook-addon](https://github.com/mswjs/msw-storybook-addon/tree/HEAD/packages/msw-addon)
| `2.0.5` | `2.0.6` |
| [orval](https://github.com/orval-labs/orval) | `7.11.2` | `7.15.0` |
| [pbkdf2](https://github.com/browserify/pbkdf2) | `3.1.3` | `3.1.5` |
|
[prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss)
| `0.6.14` | `0.7.1` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` |
`5.9.3` |


Updates `@chromatic-com/storybook` from 4.1.1 to 4.1.2
<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.2</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Broaden version-range for storybook peerDependency to include
10.1.0-0 <a
href="https://redirect.github.com/chromaui/addon-visual-tests/pull/392">#392</a>
(<a
href="https://github.com/ndelangen"><code>@​ndelangen</code></a>)</li>
</ul>
<h4>Authors: 2</h4>
<ul>
<li><a
href="https://github.com/chromatic-support"><code>@​chromatic-support</code></a></li>
<li>Norbert de Langen (<a
href="https://github.com/ndelangen"><code>@​ndelangen</code></a>)</li>
</ul>
<h2>v4.1.2-next.4</h2>
<h4>⚠️ Pushed to <code>next</code></h4>
<ul>
<li>Broaden version-range for storybook peerDependency to include
10.2.0-0 and 10.3.0-0 (<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>
<h2>v4.1.2-next.3</h2>
<h4>⚠️ Pushed to <code>next</code></h4>
<ul>
<li>Update GitHub Actions workflow to fetch full git history and tags
with optimized settings (<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>
<h2>v4.1.2-next.2</h2>
<h4>⚠️ Pushed to <code>next</code></h4>
<ul>
<li>bump yarn version (<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>
<h2>v4.1.2-next.1</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Broaden version-range for storybook peerDependency to include
10.1.0-0 <a
href="https://redirect.github.com/chromaui/addon-visual-tests/pull/392">#392</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>
<h2>v4.1.2-next.0</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Main <a
href="https://redirect.github.com/chromaui/addon-visual-tests/pull/391">#391</a>
(<a href="https://github.com/ndelangen"><code>@​ndelangen</code></a> <a
href="https://github.com/chromatic-support"><code>@​chromatic-support</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/chromaui/addon-visual-tests/blob/v4.1.2/CHANGELOG.md"><code>@​chromatic-com/storybook</code>'s
changelog</a>.</em></p>
<blockquote>
<h1>v4.1.2 (Wed Oct 29 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Broaden version-range for storybook peerDependency to include
10.1.0-0 <a
href="https://redirect.github.com/chromaui/addon-visual-tests/pull/392">#392</a>
(<a
href="https://github.com/ndelangen"><code>@​ndelangen</code></a>)</li>
<li>Main <a
href="https://redirect.github.com/chromaui/addon-visual-tests/pull/391">#391</a>
(<a href="https://github.com/ndelangen"><code>@​ndelangen</code></a> <a
href="https://github.com/chromatic-support"><code>@​chromatic-support</code></a>)</li>
</ul>
<h4>Authors: 2</h4>
<ul>
<li><a
href="https://github.com/chromatic-support"><code>@​chromatic-support</code></a></li>
<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="a3af186430"><code>a3af186</code></a>
Bump version to: 4.1.2 [skip ci]</li>
<li><a
href="5c28b499ed"><code>5c28b49</code></a>
Update CHANGELOG.md [skip ci]</li>
<li><a
href="b5fef8d290"><code>b5fef8d</code></a>
Merge pull request <a
href="https://redirect.github.com/chromaui/addon-visual-tests/issues/393">#393</a>
from chromaui/next</li>
<li><a
href="dbc88e7877"><code>dbc88e7</code></a>
Broaden version-range for storybook peerDependency to include 10.2.0-0
and 10...</li>
<li><a
href="2b73fc62cc"><code>2b73fc6</code></a>
Broaden version-range for storybook peerDependency to include 10.2.0-0
and 10...</li>
<li><a
href="70f0e52433"><code>70f0e52</code></a>
Update GitHub Actions workflow to fetch full git history and tags with
optimi...</li>
<li><a
href="5cf104a81e"><code>5cf104a</code></a>
bump yarn version</li>
<li><a
href="0cb03a5386"><code>0cb03a5</code></a>
Merge pull request <a
href="https://redirect.github.com/chromaui/addon-visual-tests/issues/392">#392</a>
from chromaui/norbert/broaden-version-range</li>
<li><a
href="aee436179e"><code>aee4361</code></a>
fix linting</li>
<li><a
href="86004684e8"><code>8600468</code></a>
regen lockfile for updates</li>
<li>Additional commits viewable in <a
href="https://github.com/chromaui/addon-visual-tests/compare/v4.1.1...v4.1.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.55.0 to 1.56.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases"><code>@​playwright/test</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v1.56.1</h2>
<h2>Highlights</h2>
<p><a
href="https://redirect.github.com/microsoft/playwright/issues/37871">#37871</a>
chore: allow local-network-access permission in chromium
<a
href="https://redirect.github.com/microsoft/playwright/issues/37891">#37891</a>
fix(agents): remove workspaceFolder ref from vscode mcp
<a
href="https://redirect.github.com/microsoft/playwright/issues/37759">#37759</a>
chore: rename agents to test agents
<a
href="https://redirect.github.com/microsoft/playwright/issues/37757">#37757</a>
chore(mcp): fallback to cwd when resolving test config</p>
<h2>Browser Versions</h2>
<ul>
<li>Chromium 141.0.7390.37</li>
<li>Mozilla Firefox 142.0.1</li>
<li>WebKit 26.0</li>
</ul>
<h2>v1.56.0</h2>
<h2>Playwright Agents</h2>
<p>Introducing Playwright Agents, three custom agent definitions
designed to guide LLMs through the core process of building a Playwright
test:</p>
<ul>
<li><strong>🎭 planner</strong> explores the app and produces a Markdown
test plan</li>
<li><strong>🎭 generator</strong> transforms the Markdown plan into the
Playwright Test files</li>
<li><strong>🎭 healer</strong> executes the test suite and automatically
repairs failing tests</li>
</ul>
<p>Run <code>npx playwright init-agents</code> with your client of
choice to generate the latest agent definitions:</p>
<pre lang="bash"><code># Generate agent files for each agentic loop
# Visual Studio Code
npx playwright init-agents --loop=vscode
# Claude Code
npx playwright init-agents --loop=claude
# opencode
npx playwright init-agents --loop=opencode
</code></pre>
<blockquote>
<p>[!NOTE]
VS Code v1.105 (currently on the VS Code Insiders channel) is needed for
the agentic experience in VS Code. It will become stable shortly, we are
a bit ahead of times with this functionality!</p>
</blockquote>
<p><a href="https://playwright.dev/docs/test-agents">Learn more about
Playwright Agents</a></p>
<h2>New APIs</h2>
<ul>
<li>New methods <a
href="https://playwright.dev/docs/api/class-page#page-console-messages">page.consoleMessages()</a>
and <a
href="https://playwright.dev/docs/api/class-page#page-page-errors">page.pageErrors()</a>
for retrieving the most recent console messages from the page</li>
<li>New method <a
href="https://playwright.dev/docs/api/class-page#page-requests">page.requests()</a>
for retrieving the most recent network requests from the page</li>
<li>Added <a
href="https://playwright.dev/docs/test-cli#test-list"><code>--test-list</code>
and <code>--test-list-invert</code></a> to allow manual specification of
specific tests from a file</li>
</ul>
<h2>UI Mode and HTML Reporter</h2>
<ul>
<li>Added option to <code>'html'</code> reporter to disable the
&quot;Copy prompt&quot; button</li>
<li>Added option to <code>'html'</code> reporter and UI Mode to merge
files, collapsing test and describe blocks into a single unified
list</li>
<li>Added option to UI Mode mirroring the
<code>--update-snapshots</code> options</li>
<li>Added option to UI Mode to run only a single worker at a time</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="54c711571a"><code>54c7115</code></a>
chore: revert &quot;minimal vscode version notice&quot; (<a
href="https://redirect.github.com/microsoft/playwright/issues/37892">#37892</a>)</li>
<li><a
href="7d45eb331a"><code>7d45eb3</code></a>
chore: mark v1.56.1 (<a
href="https://redirect.github.com/microsoft/playwright/issues/37784">#37784</a>)</li>
<li><a
href="e6ef6974be"><code>e6ef697</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37871">#37871</a>):
chore: allow local-network-access permission in chromium</li>
<li><a
href="932542c3c1"><code>932542c</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37891">#37891</a>):
fix(agents): remove workspaceFolder ref from vscode mcp</li>
<li><a
href="0662dd29ee"><code>0662dd2</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37759">#37759</a>):
chore: rename agents to test agents</li>
<li><a
href="919549ec2c"><code>919549e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37758">#37758</a>):
docs: mention VS Code insiders in the agents docs</li>
<li><a
href="e593c64187"><code>e593c64</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37757">#37757</a>):
chore(mcp): fallback to cwd when resolving test config</li>
<li><a
href="a8a6e1049b"><code>a8a6e10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37755">#37755</a>):
chore(mcp): minimal vscode version notice</li>
<li><a
href="f36b2eec65"><code>f36b2ee</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37731">#37731</a>):
docs: add agents video to agents page (<a
href="https://redirect.github.com/microsoft/playwright/issues/37733">#37733</a>)</li>
<li><a
href="b6af258d07"><code>b6af258</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37727">#37727</a>):
devops: fix NPM release step (<a
href="https://redirect.github.com/microsoft/playwright/issues/37728">#37728</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.55.0...v1.56.1">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for <code>@​playwright/test</code> since your
current version.</p>
</details>
<br />

Updates `@tanstack/eslint-plugin-query` from 5.86.0 to 5.91.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/releases"><code>@​tanstack/eslint-plugin-query</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​tanstack/eslint-plugin-query</code><a
href="https://github.com/5"><code>@​5</code></a>.91.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: allow useQueries with combine property in no-unstable-deps rule
(<a
href="https://redirect.github.com/TanStack/query/pull/9720">#9720</a>)</li>
</ul>
<h2><code>@​tanstack/eslint-plugin-query</code><a
href="https://github.com/5"><code>@​5</code></a>.91.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>avoid typescript import in no-void-query-fn rule (<a
href="https://redirect.github.com/TanStack/query/pull/9759">#9759</a>)</li>
</ul>
<h2><code>@​tanstack/eslint-plugin-query</code><a
href="https://github.com/5"><code>@​5</code></a>.91.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: improve type of exported plugin (<a
href="https://redirect.github.com/TanStack/query/pull/9700">#9700</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/blob/main/packages/eslint-plugin-query/CHANGELOG.md"><code>@​tanstack/eslint-plugin-query</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>5.91.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: allow useQueries with combine property in no-unstable-deps rule
(<a
href="https://redirect.github.com/TanStack/query/pull/9720">#9720</a>)</li>
</ul>
<h2>5.91.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>avoid typescript import in no-void-query-fn rule (<a
href="https://redirect.github.com/TanStack/query/pull/9759">#9759</a>)</li>
</ul>
<h2>5.91.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: improve type of exported plugin (<a
href="https://redirect.github.com/TanStack/query/pull/9700">#9700</a>)</li>
</ul>
<h2>5.90.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: exhaustive-deps with variables and type assertions (<a
href="https://redirect.github.com/TanStack/query/pull/9687">#9687</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9df1308181"><code>9df1308</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9765">#9765</a>)</li>
<li><a
href="9595254b2f"><code>9595254</code></a>
fix: allow useQueries with combine property in no-unstable-deps rule (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9720">#9720</a>)</li>
<li><a
href="b59925ebcc"><code>b59925e</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9760">#9760</a>)</li>
<li><a
href="b9a478dc79"><code>b9a478d</code></a>
fix(eslint-plugin): avoid imports from typescript (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9759">#9759</a>)</li>
<li><a
href="a242f98b82"><code>a242f98</code></a>
Revert &quot;chore(deps): update all non-major dependencies&quot; (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9715">#9715</a>)</li>
<li><a
href="571bc184fd"><code>571bc18</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9712">#9712</a>)</li>
<li><a
href="dcc7bd9616"><code>dcc7bd9</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9709">#9709</a>)</li>
<li><a
href="832fac36ab"><code>832fac3</code></a>
feat(eslint-plugin): improve type of exported plugin (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9700">#9700</a>)</li>
<li><a
href="5e8fd61126"><code>5e8fd61</code></a>
chore: update <code>@​eslint-react/eslint-plugin</code> (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/9702">#9702</a>)</li>
<li><a
href="51ca638fac"><code>51ca638</code></a>
ci: Version Packages</li>
<li>Additional commits viewable in <a
href="https://github.com/TanStack/query/commits/@tanstack/eslint-plugin-query@5.91.2/packages/eslint-plugin-query">compare
view</a></li>
</ul>
</details>
<br />

Updates `@tanstack/react-query-devtools` from 5.87.3 to 5.90.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/releases"><code>@​tanstack/react-query-devtools</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v5.90.2</h2>
<p>Version 5.90.2 - 9/23/25, 7:37 AM</p>
<h2>Changes</h2>
<h3>Fix</h3>
<ul>
<li>types: onMutateResult is always defined in onSuccess callback (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools/issues/9677">#9677</a>)
(2cf3ec9) by Dominik Dorfmeister</li>
</ul>
<h2>Packages</h2>
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/angular-query-experimental</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/query-async-storage-persister</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/query-broadcast-client-experimental</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/query-persist-client-core</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/query-sync-storage-persister</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/react-query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/react-query-persist-client</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/react-query-next-experimental</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/solid-query</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/solid-query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/solid-query-persist-client</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/svelte-query</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/svelte-query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/svelte-query-persist-client</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/vue-query</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
<li><code>@​tanstack/vue-query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.90.2</li>
</ul>
<h2>v5.90.1</h2>
<p>Version 5.90.1 - 9/22/25, 6:41 AM</p>
<h2>Changes</h2>
<h3>Fix</h3>
<ul>
<li>vue-query: Support infiniteQueryOptions for MaybeRef argument (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools/issues/9634">#9634</a>)
(49243c8) by hriday330</li>
</ul>
<h3>Chore</h3>
<ul>
<li>deps: update marocchino/sticky-pull-request-comment digest to
fd19551 (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools/issues/9674">#9674</a>)
(cd4ef5c) by renovate[bot]</li>
</ul>
<h3>Ci</h3>
<ul>
<li>update checkout action (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools/issues/9673">#9673</a>)
(cbf0896) by Lachlan Collins</li>
<li>update workspace config (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools/issues/9671">#9671</a>)
(fb48985) by Lachlan Collins</li>
</ul>
<h3>Docs</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0eaafe0821"><code>0eaafe0</code></a>
release: v5.90.2</li>
<li><a
href="fcd23c9b1a"><code>fcd23c9</code></a>
release: v5.90.1</li>
<li><a
href="fb48985f63"><code>fb48985</code></a>
ci: update workspace config (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools/issues/9671">#9671</a>)</li>
<li><a
href="2a00fb6504"><code>2a00fb6</code></a>
release: v5.89.0</li>
<li><a
href="230435d112"><code>230435d</code></a>
release: v5.87.4</li>
<li>See full diff in <a
href="https://github.com/TanStack/query/commits/v5.90.2/packages/react-query-devtools">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 24.3.1 to 24.9.2
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `axe-playwright` from 2.1.0 to 2.2.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/abhinaba-ghosh/axe-playwright/releases">axe-playwright's
releases</a>.</em></p>
<blockquote>
<h2>Release v2.2.2</h2>
<p>See <a
href="https://github.com/abhinaba-ghosh/axe-playwright/blob/v2.2.2/CHANGELOG.md">CHANGELOG.md</a>
for detailed changes.</p>
<h2>What's Changed</h2>
<ul>
<li>docs(types): add full type definitions and JSDoc for axe-playwright
m… by <a
href="https://github.com/abhinaba-ghosh"><code>@​abhinaba-ghosh</code></a>
in <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/pull/246">abhinaba-ghosh/axe-playwright#246</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.2.1...v2.2.2">https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.2.1...v2.2.2</a></p>
<h2>Release v2.2.1</h2>
<p>See <a
href="https://github.com/abhinaba-ghosh/axe-playwright/blob/v2.2.1/CHANGELOG.md">CHANGELOG.md</a>
for detailed changes.</p>
<h2>What's Changed</h2>
<ul>
<li>fixed: cci junit report format by <a
href="https://github.com/abhinaba-ghosh"><code>@​abhinaba-ghosh</code></a>
in <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/pull/245">abhinaba-ghosh/axe-playwright#245</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.2.0...v2.2.1">https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.2.0...v2.2.1</a></p>
<h2>Release v2.2.0</h2>
<p>See <a
href="https://github.com/abhinaba-ghosh/axe-playwright/blob/v2.2.0/CHANGELOG.md">CHANGELOG.md</a>
for detailed changes.</p>
<h2>What's Changed</h2>
<ul>
<li>checkA11y - <code>skipFailure</code> options not working when
reporter is 'junit' by <a
href="https://github.com/iamhoonse"><code>@​iamhoonse</code></a> in <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/pull/241">abhinaba-ghosh/axe-playwright#241</a></li>
<li>Feat/add change log generation by <a
href="https://github.com/abhinaba-ghosh"><code>@​abhinaba-ghosh</code></a>
in <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/pull/242">abhinaba-ghosh/axe-playwright#242</a></li>
<li>set skipFailure to true by <a
href="https://github.com/abhinaba-ghosh"><code>@​abhinaba-ghosh</code></a>
in <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/pull/243">abhinaba-ghosh/axe-playwright#243</a></li>
<li>Fix/test in ci by <a
href="https://github.com/abhinaba-ghosh"><code>@​abhinaba-ghosh</code></a>
in <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/pull/244">abhinaba-ghosh/axe-playwright#244</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/iamhoonse"><code>@​iamhoonse</code></a>
made their first contribution in <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/pull/241">abhinaba-ghosh/axe-playwright#241</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.1.0...v2.2.0">https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.1.0...v2.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/abhinaba-ghosh/axe-playwright/blob/master/CHANGELOG.md">axe-playwright's
changelog</a>.</em></p>
<blockquote>
<h3><a
href="https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.2.1...v2.2.2">2.2.2</a>
(2025-09-12)</h3>
<h3>Bug Fixes</h3>
<ul>
<li><strong>types:</strong> ensure custom axe-playwright types are
resolved via typeRoots (<a
href="4ce358c7ec">4ce358c</a>)</li>
</ul>
<h3><a
href="https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.2.0...v2.2.1">2.2.1</a>
(2025-09-10)</h3>
<h2><a
href="https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.1.0...v2.2.0">2.2.0</a>
(2025-09-09)</h2>
<h3>Features</h3>
<ul>
<li>added changelog (<a
href="2f2001164b">2f20011</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>change reporter conditionals in <code>checkA11y()</code> to fix
<code>skipFailure</code> options not working when reporter is 'junit'
(<a
href="b4514d043e">b4514d0</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7b5f359bfc"><code>7b5f359</code></a>
chore(release): 2.2.2</li>
<li><a
href="5f02048e03"><code>5f02048</code></a>
Merge pull request <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/issues/246">#246</a>
from abhinaba-ghosh/docs/axe-playwright-types</li>
<li><a
href="07a09be7e4"><code>07a09be</code></a>
chore(types): remove obsolete axe-playwright.d.ts file</li>
<li><a
href="4ce358c7ec"><code>4ce358c</code></a>
fix(types): ensure custom axe-playwright types are resolved via
typeRoots</li>
<li><a
href="7cdc2dc50c"><code>7cdc2dc</code></a>
docs(types): add full type definitions and JSDoc for axe-playwright
methods</li>
<li><a
href="0be5f49d11"><code>0be5f49</code></a>
chore(release): 2.2.1</li>
<li><a
href="6be4157af8"><code>6be4157</code></a>
Merge pull request <a
href="https://redirect.github.com/abhinaba-ghosh/axe-playwright/issues/245">#245</a>
from abhinaba-ghosh/fix/cci</li>
<li><a
href="7ea08dc53b"><code>7ea08dc</code></a>
fixed: cci junit report format</li>
<li><a
href="8bd78dc4a2"><code>8bd78dc</code></a>
Update CHANGELOG.md</li>
<li><a
href="0bca3b0b4b"><code>0bca3b0</code></a>
Update CHANGELOG.md</li>
<li>Additional commits viewable in <a
href="https://github.com/abhinaba-ghosh/axe-playwright/compare/v2.1.0...v2.2.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `chromatic` from 13.1.4 to 13.3.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/chromaui/chromatic-cli/releases">chromatic's
releases</a>.</em></p>
<blockquote>
<h2>v13.3.2</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Fix Node 24 security warning <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1215">#1215</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
<li>Remove <code>corepack enable</code> from GitHub Actions <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1218">#1218</a>
(<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
<li>Setup permissions for NPM trusted publishing <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1216">#1216</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h4>Authors: 2</h4>
<ul>
<li>Cody Kaup (<a
href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
<li>Justin Thurman (<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
</ul>
<h2>v13.3.1</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Prevent log file from writes during metadata upload <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1214">#1214</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Cody Kaup (<a
href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h2>v13.3.0</h2>
<h4>🚀 Enhancement</h4>
<ul>
<li>Use <code>--stats-json</code> with storybook version guard. <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1210">#1210</a>
(<a href="https://github.com/jmhobbs"><code>@​jmhobbs</code></a>)</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Trim down some Sentry error reporting <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1209">#1209</a>
(<a href="https://github.com/jmhobbs"><code>@​jmhobbs</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>John Hobbs (<a
href="https://github.com/jmhobbs"><code>@​jmhobbs</code></a>)</li>
</ul>
<h2>v13.2.1</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Remove unused references to view layer <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1207">#1207</a>
(<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Justin Thurman (<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
</ul>
<h2>v13.2.0</h2>
<h4>🚀 Enhancement</h4>
<ul>
<li>Updated the mapping for the storybook entry with a recent change in
storybook-rsbuild <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1206">#1206</a>
(<a
href="https://github.com/ethriel3695"><code>@​ethriel3695</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/chromaui/chromatic-cli/blob/main/CHANGELOG.md">chromatic's
changelog</a>.</em></p>
<blockquote>
<h1>v13.3.2 (Fri Oct 24 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Fix Node 24 security warning <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1215">#1215</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
<li>Remove <code>corepack enable</code> from GitHub Actions <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1218">#1218</a>
(<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
<li>Setup permissions for NPM trusted publishing <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1216">#1216</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h4>Authors: 2</h4>
<ul>
<li>Cody Kaup (<a
href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
<li>Justin Thurman (<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
</ul>
<hr />
<h1>v13.3.1 (Tue Oct 21 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Prevent log file from writes during metadata upload <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1214">#1214</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Cody Kaup (<a
href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<hr />
<h1>v13.3.0 (Mon Sep 29 2025)</h1>
<h4>🚀 Enhancement</h4>
<ul>
<li>Use <code>--stats-json</code> with storybook version guard. <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1210">#1210</a>
(<a href="https://github.com/jmhobbs"><code>@​jmhobbs</code></a>)</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Trim down some Sentry error reporting <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1209">#1209</a>
(<a href="https://github.com/jmhobbs"><code>@​jmhobbs</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>John Hobbs (<a
href="https://github.com/jmhobbs"><code>@​jmhobbs</code></a>)</li>
</ul>
<hr />
<h1>v13.2.1 (Fri Sep 26 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Remove unused references to view layer <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1207">#1207</a>
(<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1548300b71"><code>1548300</code></a>
Bump version to: 13.3.2 [skip ci]</li>
<li><a
href="39e30af667"><code>39e30af</code></a>
Update CHANGELOG.md [skip ci]</li>
<li><a
href="4e3f944c05"><code>4e3f944</code></a>
Merge pull request <a
href="https://redirect.github.com/chromaui/chromatic-cli/issues/1215">#1215</a>
from chromaui/cody/cap-3598-shell-true-causes-securi...</li>
<li><a
href="f73c621eb8"><code>f73c621</code></a>
Merge pull request <a
href="https://redirect.github.com/chromaui/chromatic-cli/issues/1218">#1218</a>
from chromaui/CAP-3707</li>
<li><a
href="b9d0d3b3c7"><code>b9d0d3b</code></a>
Remove corepack enable from actions</li>
<li><a
href="5b685c3f48"><code>5b685c3</code></a>
Clean up some unnecessary test helpers</li>
<li><a
href="12c5291b67"><code>12c5291</code></a>
execaCommand -&gt; execa</li>
<li><a
href="2141d58aa6"><code>2141d58</code></a>
Upgrade execa</li>
<li><a
href="7c3f508721"><code>7c3f508</code></a>
Merge pull request <a
href="https://redirect.github.com/chromaui/chromatic-cli/issues/1216">#1216</a>
from chromaui/cody/cap-3623-look-into-using-trusted-...</li>
<li><a
href="77dcf1f024"><code>77dcf1f</code></a>
Use trusted publishing instead of NPM_TOKEN</li>
<li>Additional commits viewable in <a
href="https://github.com/chromaui/chromatic-cli/compare/v13.1.4...v13.3.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for chromatic since your current version.</p>
</details>
<br />

Updates `msw` from 2.11.1 to 2.11.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mswjs/msw/releases">msw's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.6 (2025-10-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>update <code>@mswjs/interceptors</code> to 0.40.0 (<a
href="https://redirect.github.com/mswjs/msw/issues/2613">#2613</a>)
(50028b7f61b2f6ba9998ed111d9e517ef08bf538) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.11.5 (2025-10-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>export <code>onUnhandledRequest</code> for use in
<code>@​msw/playwright</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2562">#2562</a>)
(54ce91965796ebbdf04426c3f84e23e627d273bc) <a
href="https://github.com/zachatrocity"><code>@​zachatrocity</code></a>
<a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.11.4 (2025-10-08)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add missing parameter documentation for <code>getResponse</code>
function (<a
href="https://redirect.github.com/mswjs/msw/issues/2580">#2580</a>)
(f33fb47c098be4f46d57fad16ea1c6b1d06ef471) <a
href="https://github.com/djpremier"><code>@​djpremier</code></a> <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
<li><strong>HttpResponse:</strong> preserve request body type after
cloning the request (<a
href="https://redirect.github.com/mswjs/msw/issues/2600">#2600</a>)
(f40515bf18486b4b3570b309159a10d609779f08) <a
href="https://github.com/Slessi"><code>@​Slessi</code></a> <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
<li>use <code>statuses</code> as a shim (<a
href="https://redirect.github.com/mswjs/msw/issues/2607">#2607</a>)
(fee715c503d1cd00ca70f0688dd28b6c297aa158) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
<li>use <code>cookie</code> directly via a shim (<a
href="https://redirect.github.com/mswjs/msw/issues/2606">#2606</a>)
(29d0b53b8088e773ed9e7acb3abd7457b8a29965) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
<li><strong>setupWorker:</strong> prevent <code>WorkerChannel</code>
access in fallback mode (<a
href="https://redirect.github.com/mswjs/msw/issues/2594">#2594</a>)
(1e653c9b06e9bc3e59f71d3500f31ced73f538cb) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
<li><strong>setupWorker:</strong> remove unused
<code>deferNetworkRequestsUntil</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2595">#2595</a>)
(44d13d23ef1c9a75820c89961585cd01049a323c) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.11.3 (2025-09-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>migrate to <code>until-async</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2590">#2590</a>)
(7087b1e29eb7ca0a414eff36ed3c98d03147044b) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.11.2 (2025-09-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>setupWorker:</strong> handle in-flight requests after
calling <code>worker.stop()</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2578">#2578</a>)
(97cf4c744d9b1a17f42ca65ac8ef93b2632b935b) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d4c287c127"><code>d4c287c</code></a>
chore(release): v2.11.6</li>
<li><a
href="24cfde8997"><code>24cfde8</code></a>
chore: add missing <code>@types/serviceworker</code> for development (<a
href="https://redirect.github.com/mswjs/msw/issues/2614">#2614</a>)</li>
<li><a
href="50028b7f61"><code>50028b7</code></a>
fix: update <code>@mswjs/interceptors</code> to 0.40.0 (<a
href="https://redirect.github.com/mswjs/msw/issues/2613">#2613</a>)</li>
<li><a
href="7a49fdadfc"><code>7a49fda</code></a>
chore(release): v2.11.5</li>
<li><a
href="54ce919657"><code>54ce919</code></a>
fix: export <code>onUnhandledRequest</code> for use in
<code>@​msw/playwright</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2562">#2562</a>)</li>
<li><a
href="326e2b574e"><code>326e2b5</code></a>
chore(release): v2.11.4</li>
<li><a
href="f33fb47c09"><code>f33fb47</code></a>
fix: add missing parameter documentation for <code>getResponse</code>
function (<a
href="https://redirect.github.com/mswjs/msw/issues/2580">#2580</a>)</li>
<li><a
href="f40515bf18"><code>f40515b</code></a>
fix(HttpResponse): preserve request body type after cloning the request
(<a
href="https://redirect.github.com/mswjs/msw/issues/2600">#2600</a>)</li>
<li><a
href="fee715c503"><code>fee715c</code></a>
fix: use <code>statuses</code> as a shim (<a
href="https://redirect.github.com/mswjs/msw/issues/2607">#2607</a>)</li>
<li><a
href="29d0b53b80"><code>29d0b53</code></a>
fix: use <code>cookie</code> directly via a shim (<a
href="https://redirect.github.com/mswjs/msw/issues/2606">#2606</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mswjs/msw/compare/v2.11.1...v2.11.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `msw-storybook-addon` from 2.0.5 to 2.0.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mswjs/msw-storybook-addon/releases">msw-storybook-addon's
releases</a>.</em></p>
<blockquote>
<h2>v2.0.6</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>fix: add a <code>@deprecated</code> tag to the
<code>mswDecorator</code> <a
href="https://redirect.github.com/mswjs/msw-storybook-addon/pull/178">#178</a>
(<a
href="https://github.com/connorshea"><code>@​connorshea</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Connor Shea (<a
href="https://github.com/connorshea"><code>@​connorshea</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mswjs/msw-storybook-addon/blob/main/packages/msw-addon/CHANGELOG.md">msw-storybook-addon's
changelog</a>.</em></p>
<blockquote>
<h1>v2.0.6 (Fri Oct 10 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>fix: add a <code>@deprecated</code> tag to the
<code>mswDecorator</code> <a
href="https://redirect.github.com/mswjs/msw-storybook-addon/pull/178">#178</a>
(<a
href="https://github.com/connorshea"><code>@​connorshea</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Connor Shea (<a
href="https://github.com/connorshea"><code>@​connorshea</code></a>)</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ae7ce4de01"><code>ae7ce4d</code></a>
Update CHANGELOG.md [skip ci]</li>
<li><a
href="0b9594003c"><code>0b95940</code></a>
fix: add a <code>@deprecated</code> tag to the <code>mswDecorator</code>
(<a
href="https://github.com/mswjs/msw-storybook-addon/tree/HEAD/packages/msw-addon/issues/178">#178</a>)</li>
<li>See full diff in <a
href="https://github.com/mswjs/msw-storybook-addon/commits/v2.0.6/packages/msw-addon">compare
view</a></li>
</ul>
</details>
<br />

Updates `orval` from 7.11.2 to 7.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/orval-labs/orval/releases">orval's
releases</a>.</em></p>
<blockquote>
<h2>Release v7.15.0</h2>
<h2>What's Changed</h2>
<blockquote>
<p>[!IMPORTANT]<br />
<strong>Breaking change</strong>: Node <strong>22.18.0</strong> or
higher is required</p>
</blockquote>
<ul>
<li>chore(deps): bump actions/setup-node from 4 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/orval-labs/orval/pull/2453">orval-labs/orval#2453</a></li>
<li>fix: generate prefetch hook for hook based mutator by <a
href="https://github.com/aizerin"><code>@​aizerin</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2456">orval-labs/orval#2456</a></li>
<li>feat: option to generate query invalidations by <a
href="https://github.com/aizerin"><code>@​aizerin</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2457">orval-labs/orval#2457</a></li>
<li>chore(deps): bump hono from 4.9.7 to 4.10.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/orval-labs/orval/pull/2462">orval-labs/orval#2462</a></li>
<li>fix(hono): zValidator wrapper doesn't typecheck with 0.7.4 by <a
href="https://github.com/xandris"><code>@​xandris</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2468">orval-labs/orval#2468</a></li>
<li>fix(zod): add line breaks to export constants by <a
href="https://github.com/melloware"><code>@​melloware</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2469">orval-labs/orval#2469</a></li>
<li>fix(query): deduplicate error response types by <a
href="https://github.com/melloware"><code>@​melloware</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2471">orval-labs/orval#2471</a></li>
<li>fix(zod): fixed bug where zod did not correctly use namespace import
by <a
href="https://github.com/chcederquist"><code>@​chcederquist</code></a>
in <a
href="https://redirect.github.com/orval-labs/orval/pull/2472">orval-labs/orval#2472</a></li>
<li>fix(axios): &quot;responseType: text&quot; incorrectly being added
by <a href="https://github.com/snebjorn"><code>@​snebjorn</code></a> in
<a
href="https://redirect.github.com/orval-labs/orval/pull/2473">orval-labs/orval#2473</a></li>
<li>Release v7.15.0 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/orval-labs/orval/pull/2474">orval-labs/orval#2474</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/aizerin"><code>@​aizerin</code></a> made
their first contribution in <a
href="https://redirect.github.com/orval-labs/orval/pull/2456">orval-labs/orval#2456</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/orval-labs/orval/compare/v7.14.0...v7.15.0">https://github.com/orval-labs/orval/compare/v7.14.0...v7.15.0</a></p>
<h2>Release v7.14.0</h2>
<blockquote>
<p>[!IMPORTANT]<br />
<strong>Breaking change</strong>: Node <strong>22.18.0</strong> or
higher is required</p>
</blockquote>
<h2>What's Changed</h2>
<ul>
<li>Breaking change: Node 22.18.0 or higher is required</li>
<li>Skip version check when using a Bun/Pnpm workspace catalog by <a
href="https://github.com/xorob0"><code>@​xorob0</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2434">orval-labs/orval#2434</a></li>
<li>chore: removes the last require() usages by <a
href="https://github.com/snebjorn"><code>@​snebjorn</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2435">orval-labs/orval#2435</a></li>
<li>Fix typo for infinite by <a
href="https://github.com/JurianArie"><code>@​JurianArie</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2437">orval-labs/orval#2437</a></li>
<li>Docs: Update output.md by <a
href="https://github.com/gialmisi"><code>@​gialmisi</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2438">orval-labs/orval#2438</a></li>
<li>fix: don't mangle external URL $ref by <a
href="https://github.com/xandris"><code>@​xandris</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2439">orval-labs/orval#2439</a></li>
<li>fix(zod): consider path-level parameters when generating zod schemas
by <a href="https://github.com/xandris"><code>@​xandris</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2440">orval-labs/orval#2440</a></li>
<li>fix(useOperationIdAsQueryKey): make sure operationName is returned
as string by <a
href="https://github.com/mortik"><code>@​mortik</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2443">orval-labs/orval#2443</a></li>
<li>fix(hono): zValidator not imported consistently by <a
href="https://github.com/xandris"><code>@​xandris</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2444">orval-labs/orval#2444</a></li>
<li>fix(zod): update type handling from 'any' to 'unknown' in schema
definitions by <a
href="https://github.com/alexmarqs"><code>@​alexmarqs</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2445">orval-labs/orval#2445</a></li>
<li>fix(hono): some configs generate wrong imports by <a
href="https://github.com/xandris"><code>@​xandris</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2448">orval-labs/orval#2448</a></li>
<li>Fix: Support OpenAPI 3.1 Multi-Type Arrays in Zod Generator by <a
href="https://github.com/rang-ali"><code>@​rang-ali</code></a> in <a
href="https://redirect.github.com/orval-labs/orval/pull/2447">orval-labs/orval#2447</a></li>
<li>Release v7.14.0 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/orval-labs/orval/pull/2449">orval-labs/orval#2449</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/JurianArie"><code>@​JurianArie</code></a> made
their first contribution in <a
href="https://redirect.github.com/orval-labs/orval/pull/2437">orval-labs/orval#2437</a></li>
<li><a href="https://github.com/gialmisi"><code>@​gialmisi</code></a>
made their first contribution in <a
href="https://redirect.github.com/orval-labs/orval/pull/2438">orval-labs/orval#2438</a></li>
<li><a href="https://github.com/xandris"><code>@​xandris</code></a> made
their first contribution in <a
href="https://redirect.github.com/orval-labs/orval/pull/2439">orval-labs/orval#2439</a></li>
<li><a href="https://github.com/alexmarqs"><code>@​alexmarqs</code></a>
made their first contribution in <a
href="https://redirect.github.com/orval-labs/orval/pull/2445">orval-labs/orval#2445</a></li>
<li><a href="https://github.com/rang-ali"><code>@​rang-ali</code></a>
made their first contribution in <a
href="https://redirect.github.com/orval-labs/orval/pull/2447">orval-labs/orval#2447</a></li>
<li><a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
made their first contribution in <a
href="https://redirect.github.com/orval-labs/orval/pull/2449">orval-labs/orval#2449</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/orval-labs/orval/compare/v7.13.2...v7.14.0">https://github.com/orval-labs/orval/compare/v7.13.2...v7.14.0</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bdacff4b5d"><code>bdacff4</code></a>
chore(release): bump version to v7.15.0 (<a
href="https://redirect.github.com/orval-labs/orval/issues/2474">#2474</a>)</li>
<li><a
href="0dfe795fad"><code>0dfe795</code></a>
fix(axios): &quot;responseType: text&quot; incorrectly being added (<a
href="https://redirect.github.com/orval-labs/orval/issues/2473">#2473</a>)</li>
<li><a
href="b119209125"><code>b119209</code></a>
fix(zod): fixed bug where zod did not correctly use namespace import (<a
href="https://redirect.github.com/orval-labs/orval/issues/2472">#2472</a>)</li>
<li><a
href="8d0812b8cf"><code>8d0812b</code></a>
fix(query): deduplicate error response types (<a
href="https://redirect.github.com/orval-labs/orval/issues/2471">#2471</a>)</li>
<li><a
href="3592baec13"><code>3592bae</code></a>
Disable samples update step in tests workflow</li>
<li><a
href="86b6d4b093"><code>86b6d4b</code></a>
fix(zod): add line breaks to export constants (<a
href="https://redirect.github.com/orval-labs/orval/issues/2469">#2469</a>)</li>
<li><a
href="13e868b9b4"><code>13e868b</code></a>
fix(hono): zValidator wrapper doesn't typecheck with 0.7.4 (<a
href="https://redirect.github.com/orval-labs/orval/issues/2468">#2468</a>)</li>
<li><a
href="37a1f88109"><code>37a1f88</code></a>
chore(deps): bump hono from 4.9.7 to 4.10.2 (<a
href="https://redirect.github.com/orval-labs/orval/issues/2462">#2462</a>)</li>
<li><a
href="fa69296064"><code>fa69296</code></a>
chore(format): format code</li>
<li><a
href="d58241fba0"><code>d58241f</code></a>
Fix <a
href="https://redirect.github.com/orval-labs/orval/issues/2431">#2431</a>:
Input docs for secure URL</li>
<li>Additional commits viewable in <a
href="https://github.com/orval-labs/orval/compare/v7.11.2...v7.15.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~melloware">melloware</a>, a new releaser
for orval since your current version.</p>
</details>
<br />

Updates `pbkdf2` from 3.1.3 to 3.1.5
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/browserify/pbkdf2/blob/master/CHANGELOG.md">pbkdf2's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/browserify/pbkdf2/compare/v3.1.4...v3.1.5">v3.1.5</a>
- 2025-09-23</h2>
<h3>Commits</h3>
<ul>
<li>[Fix] only allow finite iterations <a
href="67bd94dbbf"><code>67bd94d</code></a></li>
<li>[Fix] restore node 0.10 support <a
href="8f59d962f7"><code>8f59d96</code></a></li>
<li>[Fix] check parameters before the &quot;no Promise&quot; bailout <a
href="d2dc5f052c"><code>d2dc5f0</code></a></li>
</ul>
<h2><a
href="https://github.com/browserify/pbkdf2/compare/v3.1.3...v3.1.4">v3.1.4</a>
- 2025-09-22</h2>
<h3>Commits</h3>
<ul>
<li>[Deps] update <code>create-hash</code>, <code>ripemd160</code>,
<code>sha.js</code>, <code>to-buffer</code> <a
href="8dbf49b382"><code>8dbf49b</code></a></li>
<li>[meta] update repo URLs <a
href="d15bc351de"><code>d15bc35</code></a></li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code> <a
href="aaf870b1d1"><code>aaf870b</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3687905291"><code>3687905</code></a>
v3.1.5</li>
<li><a
href="67bd94dbbf"><code>67bd94d</code></a>
[Fix] only allow finite iterations</li>
<li><a
href="8f59d962f7"><code>8f59d96</code></a>
[Fix] restore node 0.10 support</li>
<li><a
href="d2dc5f052c"><code>d2dc5f0</code></a>
[Fix] check parameters before the &quot;no Promise&quot; bailout</li>
<li><a
href="b2ad6154b9"><code>b2ad615</code></a>
v3.1.4</li>
<li><a
href="8dbf49b382"><code>8dbf49b</code></a>
[Deps] update <code>create-hash</code>, <code>ripemd160</code>,
<code>sha.js</code>, <code>to-buffer</code></li>
<li><a
href="aaf870b1d1"><code>aaf870b</code></a>
[Dev Deps] update <code>@ljharb/eslint-config</code></li>
<li><a
href="d15bc351de"><code>d15bc35</code></a>
[meta] update repo URLs</li>
<li>See full diff in <a
href="https://github.com/browserify/pbkdf2/compare/v3.1.3...v3.1.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `prettier-plugin-tailwindcss` from 0.6.14 to 0.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases">prettier-plugin-tailwindcss's
releases</a>.</em></p>
<blockquote>
<h2>v0.7.1</h2>
<h3>Fixed</h3>
<ul>
<li>Match against correct name of dynamic attributes when using regexes
(<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/410">#410</a>)</li>
</ul>
<h2>v0.7.0</h2>
<h3>Added</h3>
<ul>
<li>Format quotes in <code>@source</code>, <code>@plugin</code>, and
<code>@config</code> (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/387">#387</a>)</li>
<li>Sort in function calls in Twig (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/358">#358</a>)</li>
<li>Sort in callable template literals (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/367">#367</a>)</li>
<li>Sort in function calls mixed with property accesses (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/367">#367</a>)</li>
<li>Support regular expression patterns for attributes (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/405">#405</a>)</li>
<li>Support regular expression patterns for function names (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/405">#405</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Improved monorepo support by loading Tailwind CSS relative to the
input file instead of prettier config file (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/386">#386</a>)</li>
<li>Improved monorepo support by loading v3 configs relative to the
input file instead of prettier config file (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/386">#386</a>)</li>
<li>Fallback to Tailwind CSS v4 instead of v3 by default (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/390">#390</a>)</li>
<li>Don't augment global Prettier <code>ParserOptions</code> and
<code>RequiredOptions</code> types (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/354">#354</a>)</li>
<li>Drop support for <code>prettier-plugin-import-sort</code> (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/385">#385</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Handle quote escapes in LESS when sorting <code>@apply</code> (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/392">#392</a>)</li>
<li>Fix whitespace removal inside nested concat and template expressions
(<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/396">#396</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md">prettier-plugin-tailwindcss's
changelog</a>.</em></p>
<blockquote>
<h2>[0.7.1] - 2025-10-17</h2>
<h3>Fixed</h3>
<ul>
<li>Match against correct name of dynamic attributes when using regexes
(<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/410">#410</a>)</li>
</ul>
<h2>[0.7.0] - 2025-10-14</h2>
<h3>Added</h3>
<ul>
<li>Format quotes in <code>@source</code>, <code>@plugin</code>, and
<code>@config</code> (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/387">#387</a>)</li>
<li>Sort in function calls in Twig (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/358">#358</a>)</li>
<li>Sort in callable template literals (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/367">#367</a>)</li>
<li>Sort in function calls mixed with property accesses (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/367">#367</a>)</li>
<li>Support regular expression patterns for attributes (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/405">#405</a>)</li>
<li>Support regular expression patterns for function names (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/405">#405</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Improved monorepo support by loading Tailwind CSS relative to the
input file instead of prettier config file (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/386">#386</a>)</li>
<li>Improved monorepo support by loading v3 configs relative to the
input file instead of prettier config file (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/386">#386</a>)</li>
<li>Fallback to Tailwind CSS v4 instead of v3 by default (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/390">#390</a>)</li>
<li>Don't augment global Prettier <code>ParserOptions</code> and
<code>RequiredOptions</code> types (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/354">#354</a>)</li>
<li>Drop support for <code>prettier-plugin-import-sort</code> (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/385">#385</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Handle quote escapes in LESS when sorting <code>@apply</code> (<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/392">#392</a>)</li>
<li>Fix whitespace removal inside nested concat and template expressions
(<a
href="https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/396">#396</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a0fea3f3c2"><code>a0fea3f</code></a>
0.7.1</li>
<li><a href="https://github.com/tailwindlabs/pre...

_Description has been truncated_

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lluis Agusti <hi@llu.lu>
2025-11-04 22:48:21 +07:00
Zamil Majdy
910fd2640d hotfix(backend): Temporarily disable library existence check for graph execution (#11318)
### Changes 🏗️

add_store_agent_to_library does not add subagents to the user library,
this check can cause issues.

### 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.default` 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>
2025-11-04 13:54:48 +00:00
Ubbe
eae2616fb5 fix(frontend): marketplace breadcrumbs typo (#11315)
## Changes 🏗️

Fixing a ✍🏽  typo found by @Pwuts 

## 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] No typos on the breadcrumbs
2025-11-04 13:28:29 +00:00
Abhimanyu Yadav
ad3ea59d90 feat(frontend): Add cron-based scheduling functionality to new builder with input/credential support (#11312)
This PR introduces scheduling functionality to the new builder, allowing
users to create cron-based schedules for automated graph execution with
configurable inputs and credentials.


https://github.com/user-attachments/assets/20c1359f-a3d6-47bf-a881-4f22c657906c

## What's New

### 🚀 Features

#### Scheduling Infrastructure
- **CronSchedulerDialog Component**: Interactive dialog for creating
scheduled runs with:
  - Schedule name configuration
  - Cron expression builder with visual UI
  - Timezone support (displays user timezone or defaults to UTC)
  - Integration with backend scheduling API

- **ScheduleGraph Component**: New action button in builder actions
toolbar
  - Clock icon button to initiate scheduling workflow
  - Handles conditional flow based on input/credential requirements

#### Enhanced Input Management
- **Unified RunInputDialog**: Refactored to support both manual runs and
scheduled runs
- Dynamic "purpose" prop (`"run"` | `"schedule"`) for contextual
behavior
  - Seamless credential and input collection flow
  - Transitions to cron scheduler when scheduling

#### Builder Actions Improvements
- **New Action Buttons Layout**: Three primary actions in the builder
toolbar:
  1. Agent Outputs (placeholder for future implementation)
  2. Run Graph (play/stop button with gradient styling)
  3. Schedule Graph (clock icon for scheduling)

## Technical Details

### New Components
- `CronSchedulerDialog` - Main scheduling dialog component
- `useCronSchedulerDialog` - Hook managing scheduling logic and API
calls
- `ScheduleGraph` - Schedule button component
- `useScheduleGraph` - Hook for scheduling flow control
- `AgentOutputs` - Placeholder component for future outputs feature

### Modified Components
- `BuilderActions` - Added new action buttons
- `RunGraph` - Enhanced with tooltip support
- `RunInputDialog` - Made multi-purpose for run/schedule
- `useRunInputDialog` - Added scheduling dialog state management

### API Integration
- Uses `usePostV1CreateExecutionSchedule` for schedule creation
- Fetches user timezone with `useGetV1GetUserTimezone`
- Validates and passes graph ID, version, inputs, and credentials

## User Experience

1. **Without Inputs/Credentials**: 
   - Click schedule button → Opens cron scheduler directly

2. **With Inputs/Credentials**:
   - Click schedule button → Opens input dialog
   - Fill required fields → Click "Schedule Run"
   - Configure cron expression → Create schedule

3. **Timezone Awareness**:
   - Shows user's configured timezone
   - Warns if no timezone is set (defaults to UTC)
   - Provides link to timezone settings

## Testing Checklist

- [x] Create a schedule without inputs/credentials
- [x] Create a schedule with required inputs
- [x] Create a schedule with credentials
- [x] Verify timezone display (with and without user timezone)
2025-11-04 11:37:10 +00:00
Reinier van der Leer
69b6b732a2 feat(frontend/ui): Increase contrast of Switch component (#11309)
- Resolves #11308

### Changes 🏗️

- Change background color of `Switch` in unchecked state from
`neutral-200` to `zinc-300`

Before / after:
<center>
<img width="48%" alt="before"
src="https://github.com/user-attachments/assets/d23c9531-2f7e-49d3-8a92-f4ad40e9fa14"
/>

<img width="48%" alt="after"
src="https://github.com/user-attachments/assets/9f27fbee-081e-4b26-8b24-74d5d5cdcef8"
/>
</center>

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Visually verified new look
2025-11-04 08:10:24 +00:00
Abhimanyu Yadav
b1a2d21892 feat(frontend): add undo/redo functionality with keyboard shortcuts to flow builder (#11307)
This PR introduces comprehensive undo/redo functionality to the flow
builder, allowing users to revert and restore changes to their
workflows. The implementation includes keyboard shortcuts (Ctrl/Cmd+Z
for undo, Ctrl/Cmd+Y for redo) and visual controls in the UI.



https://github.com/user-attachments/assets/514253a6-4e86-4ac5-96b4-992180fb3b00



### What's New 🚀
- **Undo/Redo State Management**: Implemented a dedicated Zustand store
(`historyStore`) that tracks up to 50 historical states of nodes and
connections
- **Keyboard Shortcuts**: Added cross-platform keyboard shortcuts:
  - `Ctrl/Cmd + Z` for undo
  - `Ctrl/Cmd + Y` for redo
- **UI Controls**: Added dedicated undo/redo buttons to the control
panel with:
  - Visual feedback when actions are available/disabled
  - Tooltips for better user guidance
  - Proper accessibility attributes
- **Automatic History Tracking**: Integrated history tracking into node
operations (add, remove, position changes, data updates)

### Technical Details 🔧

#### Architecture
- **History Store** (`historyStore.ts`): Manages past and future states
using a stack-based approach
  - Stores snapshots of nodes and connections
  - Implements state deduplication to prevent duplicate history entries
  - Limits history to 50 states to manage memory usage

- **Integration Points**:
- `nodeStore.ts`: Modified to push state changes to history on relevant
operations
- `Flow.tsx`: Added the new `useFlowRealtime` hook for real-time updates
- `NewControlPanel.tsx`: Integrated the new `UndoRedoButtons` component

#### UI Improvements
- **Enhanced Control Panel Button**: Updated to support different HTML
elements (button/div) with proper role attributes for accessibility
- **Block Menu Tooltips**: Added tooltips to improve user guidance
- **Responsive UI**: Adjusted tooltip delays for better responsiveness
(100ms delay)

### Testing Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description 
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] Create a new flow with multiple nodes and verify undo/redo works
for node additions
  - [x] Move nodes and verify position changes can be undone/redone
  - [x] Delete nodes and verify deletions can be undone
- [x] Test keyboard shortcuts (Ctrl/Cmd+Z and Ctrl/Cmd+Y) on different
platforms
- [x] Verify undo/redo buttons are disabled when no history is available
- [x] Test with complex flows (10+ nodes) to ensure performance remains
good
2025-11-04 05:17:29 +00:00
Zamil Majdy
a78b08f5e7 feat(platform): implement admin user impersonation with header-based authentication (#11298)
## Summary

Implement comprehensive admin user impersonation functionality to enable
admins to act on behalf of any user for debugging and support purposes.

## 🔐 Security Features

- **Admin Role Validation**: Only users with 'admin' role can
impersonate others
- **Header-Based Authentication**: Uses `X-Act-As-User-Id` header for
impersonation requests
- **Comprehensive Audit Logging**: All impersonation attempts logged
with admin details
- **Secure Error Handling**: Proper HTTP 403/401 responses for
unauthorized access
- **SSR Safety**: Client-side environment checks prevent server-side
rendering issues

## 🏗️ Architecture

### Backend Implementation (`autogpt_libs/auth/dependencies.py`)
- Enhanced `get_user_id` FastAPI dependency to process impersonation
headers
- Admin role verification using existing `verify_user()` function
- Audit trail logging with admin email, user ID, and target user
- Seamless integration with all existing routes using `get_user_id`
dependency

### Frontend Implementation
- **React Hook**: `useAdminImpersonation` for state management and API
calls
- **Security Banner**: Prominent warning when impersonation is active
- **Admin Panel**: Control interface for starting/stopping impersonation
- **Session Persistence**: Maintains impersonation state across page
refreshes
- **Full Page Refresh**: Ensures all data updates correctly on state
changes

### API Integration
- **Header Forwarding**: All API requests include impersonation header
when active
- **Proxy Support**: Next.js API proxy forwards headers to backend
- **Generated Hooks**: Compatible with existing React Query API hooks
- **Error Handling**: Graceful fallback for storage/authentication
failures

## 🎯 User Experience

### For Admins
1. Navigate to `/admin/impersonation` 
2. Enter target user ID (UUID format with validation)
3. System displays security banner during active impersonation
4. All API calls automatically use impersonated user context
5. Click "Stop Impersonation" to return to admin context

### Security Notice
- **Audit Trail**: All impersonation logged with `logger.info()`
including admin email
- **Session Isolation**: Impersonation state stored in sessionStorage
(not persistent)
- **No Token Manipulation**: Uses header-based approach, preserving
admin's JWT
- **Role Enforcement**: Backend validates admin role on every
impersonated request

## 🔧 Technical Details

### Constants & Configuration
- `IMPERSONATION_HEADER_NAME = "X-Act-As-User-Id"`
- `IMPERSONATION_STORAGE_KEY = "admin-impersonate-user-id"`
- Centralized in `frontend/src/lib/constants.ts` and
`autogpt_libs/auth/dependencies.py`

### Code Quality Improvements
- **DRY Principle**: Eliminated duplicate header forwarding logic
- **Icon Compliance**: Uses Phosphor Icons per coding guidelines  
- **Type Safety**: Proper TypeScript interfaces and error handling
- **SSR Compatibility**: Environment checks for client-side only
operations
- **Error Consistency**: Uniform silent failure with logging approach

### Testing
- Updated backend auth dependency tests for new function signatures
- Added Mock Request objects for comprehensive test coverage
- Maintained existing test functionality while extending capabilities

## 🚀 CodeRabbit Review Responses

All CodeRabbit feedback has been addressed:

1.  **DRY Principle**: Refactored duplicate header forwarding logic
2.  **Icon Library**: Replaced lucide-react with Phosphor Icons  
3.  **SSR Safety**: Added environment checks for sessionStorage
4.  **UI Improvements**: Synchronous initialization prevents flicker
5.  **Error Handling**: Consistent silent failure with logging
6.  **Backend Validation**: Confirmed comprehensive security
implementation
7.  **Type Safety**: Addressed TypeScript concerns
8.  **Code Standards**: Followed all coding guidelines and best
practices

## 🧪 Testing Instructions

1. **Login as Admin**: Ensure user has admin role
2. **Navigate to Panel**: Go to `/admin/impersonation`
3. **Test Impersonation**: Enter valid user UUID and start impersonation
4. **Verify Banner**: Security banner should appear at top of all pages
5. **Test API Calls**: Verify credits/graphs/etc show impersonated
user's data
6. **Check Logging**: Backend logs should show impersonation audit trail
7. **Stop Impersonation**: Verify return to admin context works
correctly

## 📝 Files Modified

### Backend
- `autogpt_libs/auth/dependencies.py` - Core impersonation logic
- `autogpt_libs/auth/dependencies_test.py` - Updated test signatures

### Frontend
- `src/hooks/useAdminImpersonation.ts` - State management hook
- `src/components/admin/AdminImpersonationBanner.tsx` - Security warning
banner
- `src/components/admin/AdminImpersonationPanel.tsx` - Admin control
interface
- `src/app/(platform)/admin/impersonation/page.tsx` - Admin page
- `src/app/(platform)/admin/layout.tsx` - Navigation integration
- `src/app/(platform)/layout.tsx` - Banner integration
- `src/lib/autogpt-server-api/client.ts` - Header injection for API
calls
- `src/lib/autogpt-server-api/helpers.ts` - Header forwarding logic
- `src/app/api/proxy/[...path]/route.ts` - Proxy header forwarding
- `src/app/api/mutators/custom-mutator.ts` - Enhanced error handling
- `src/lib/constants.ts` - Shared constants

## 🔒 Security Compliance

- **Authorization**: Admin role required for impersonation access
- **Authentication**: Uses existing JWT validation with additional role
checks
- **Audit Logging**: Comprehensive logging of all impersonation
activities
- **Error Handling**: Secure error responses without information leakage
- **Session Management**: Temporary sessionStorage without persistent
data
- **Header Validation**: Proper sanitization and validation of
impersonation headers

This implementation provides a secure, auditable, and user-friendly
admin impersonation system that integrates seamlessly with the existing
AutoGPT Platform architecture.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
  * Admin user impersonation to view the app as another user.
* New "User Impersonation" admin page for entering target user IDs and
managing sessions.
  * Sidebar link for quick access to the impersonation page.
* Persistent impersonation state that updates app data (e.g., credits)
and survives page reloads.
* Top warning banner when impersonation is active with a Stop
Impersonation control.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-04 03:51:28 +00:00
Ubbe
5359f20070 feat(frontend): Google Drive Picker component (#11286)
## Changes 🏗️

<img width="800" height="876" alt="Screenshot_2025-10-29_at_22 56 43"
src="https://github.com/user-attachments/assets/e1d9cf62-0a81-4658-82c2-6e673d636479"
/>

New `<GoogleDrivePicker />` component that, when rendered:
- re-uses existing Google credentials OR asks the user to SSO
- uses the Google Drive Picker script to launch a modal for the user to
select files

We will need this 3 new environment variables on the Front-end for it to
work:
```
# Google Drive Picker
NEXT_PUBLIC_GOOGLE_CLIENT_ID=
NEXT_PUBLIC_GOOGLE_API_KEY=
NEXT_PUBLIC_GOOGLE_APP_ID=
```
Updated `.env.default` with them.

### Next

We need to figure out how to map this to an agent input type and update
the Back-end to accept the files as input.

## 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] I tried the whole flow

### For configuration changes:

- [x] `.env.default` is updated or already compatible with my changes
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)
2025-11-03 13:48:28 +00:00
Abhimanyu Yadav
427c7eb1d4 feat(frontend): Add dynamic input dialog for agent execution with credential support (#11301)
### Changes 🏗️

This PR enhances the agent execution functionality by introducing a
dynamic input dialog that collects both regular inputs and credentials
before running agents.

<img width="1309" height="826" alt="Screenshot 2025-11-03 at 10 16
38 AM"
src="https://github.com/user-attachments/assets/2015da5d-055d-49c5-8e7e-31bd0fe369f4"
/>

####  New Features
- **Dynamic Input Dialog**: Added a new `RunInputDialog` component that
automatically detects when agents require inputs or credentials and
prompts users before execution
- **Credential Management**: Integrated credential input handling
directly into the execution flow, supporting various credential types
(API keys, OAuth, passwords)
- **Enhanced Run Controls**: Improved the `RunGraph` component with
better state management and visual feedback for running/stopping agents
- **Form Renderer**: Created a new unified `FormRenderer` component for
consistent input rendering across the application

#### 🔧 Refactoring
- **Input Renderer Migration**: Moved input renderer components from
FlowEditor-specific location to a shared components directory for better
reusability:
  - Migrated fields (AnyOfField, CredentialField, ObjectField)
- Migrated widgets (ArrayEditor, DateInput, SelectWidget, TextInput,
etc.)
  - Migrated templates (FieldTemplate, ArrayFieldTemplate)
- **State Management**: Enhanced `graphStore` with schemas for inputs
and credentials, including helper methods to check for their presence
- **Component Organization**: Restructured BuilderActions components for
better modularity

#### 🗑️ Cleanup
- Removed outdated FlowEditor documentation files (FORM_CREATOR.md,
README.md)
- Removed deprecated `RunGraph` and `useRunGraph` implementations from
FlowEditor
- Consolidated duplicate functionality into new shared components

#### 🎨 UI/UX Improvements
- Added gradient styling to Run/Stop button for better visual appeal
- Improved dialog layout with clear sections for Credentials and Inputs
- Enhanced form fields with size variants (small, medium, large) for
better responsiveness
- Added loading states and proper error handling during execution

### Technical Details
- The new system automatically detects input requirements from the graph
schema
- Credentials are handled separately with special UI treatment based on
credential type
- The dialog only appears when inputs or credentials are actually
required
- Execution flow: Save graph → Check for inputs/credentials → Show
dialog if needed → Execute with provided values

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] Create an agent without inputs and verify it runs directly without
dialog
- [x] Create an agent with input blocks and verify the dialog appears
with correct fields
- [x] Create an agent requiring credentials and verify credential
selection/creation works
  - [x] Test agent execution with both inputs and credentials
  - [x] Verify Stop Agent functionality during execution
  - [x] Test error handling for invalid inputs or missing credentials
  - [x] Verify that the dialog closes properly after submission
  - [x] Test that execution state is properly reflected in the UI
2025-11-03 12:05:45 +00:00