Commit Graph

368 Commits

Author SHA1 Message Date
Ubbe
722c6bcc18 fix(storybook): make font load in Stories (#10081)
### Changes 🏗️

#### Before

<img width="800" alt="Screenshot 2025-06-03 at 16 54 36"
src="https://github.com/user-attachments/assets/2a69b69d-2b01-436e-aab3-8206485a001c"
/>

#### After

<img width="800" alt="Screenshot 2025-06-03 at 16 58 38"
src="https://github.com/user-attachments/assets/4daf41d4-42ce-4119-8e9f-b2b10b524cba"
/>



### 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:
- [ ] checkout this branch ( _we should have PR previews for the app and
Storybook_ )
  - [ ] `cd autogpt_platform/frontend`
  - [ ] `yarn storybook`
- [ ] the stories road with the right font ( Poppins ) not a serif one 😄

#### For configuration changes:
- [ ] ~~`.env.example` is updated or already compatible with my
changes~~
- [ ] ~~`docker-compose.yml` is updated or already compatible with my
changes~~
- [ ] ~~I have included a list of my configuration changes in the PR
description (under **Changes**)~~
2025-06-04 15:26:09 +00:00
Ubbe
73a3d980ca chore(frontend): move from yarn1 to pnpm (#10072)
## 🧢 Overview
This PR migrates the AutoGPT Platform frontend from [yarn
1](https://classic.yarnpkg.com/lang/en/) to [pnpm](https://pnpm.io/)
using **corepack** for automatic package manager management.

**yarn1** is not longer maintained and a bit old, moving to **pnpm** we
get:
-  Significantly faster install times,
- 💾 Better disk space efficiency,
- 🛠️ Better community support and maintenance,
- 💆🏽‍♂️  Config swap very easy

##  🏗️ Changes

### Package Management Migration

- updated [corepack](https://github.com/nodejs/corepack) to use
[pnpm](https://pnpm.io/)
- Deleted `yarn.lock` and generated new `pnpm-lock.yaml`
- Updated `.gitignore`

### Documentation Updates

- `frontend/README.md`: 
  - added comprehensive tech stack overview with links
  - updated all commands to use pnpm
  - added corepack setup instructions
  - and included migration disclaimer for yarn users
- `backend/README.md`: 
  - Updated installation instructions to use pnpm with corepack
- `AGENTS.md`: 
  - Updated testing commands from yarn to pnpm

### CI/CD & Infrastructure

- **GitHub Workflows** : 
  - updated all jobs to use pnpm with corepack enable
  - cleaned FE Playwright test workflow to avoid Sentry noise
- **Dockerfile**:
- updated to use pnpm with corepack, changed lock file reference, and
updated cache mount path

###  📋 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:**
  > assuming you are on the `frontend` folder 
- [x] Clean installation works: `rm -rf node_modules && corepack enable
&& pnpm install`
  - [x] Development server starts correctly: `pnpm dev`
  - [x] Build process works: `pnpm build`
  - [x] Linting and formatting work: `pnpm lint` and `pnpm format`
  - [x] Type checking works: `pnpm type-check`
  - [x] Tests run successfully: `pnpm test`
  - [x] Storybook starts correctly: `pnpm storybook`
  - [x] Docker build succeeds with new pnpm configuration
  - [x] GitHub Actions workflow passes with pnpm commands

#### For configuration changes:
- [x] `.env.example` is updated or already compatible with my changes
- [x] `docker-compose.yml` is updated or already compatible with my
changes
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)
2025-06-04 17:07:29 +04:00
Zamil Majdy
0f558876e2 feat(blocks;frontend): Add file multipart upload support for SendWebRequestBlock & Improve key-value input UI rendering (#10058)
Now, SendWebRequestBlock can upload files. To make this work, we also
need to improve the UI rendering on the key-value pair input so that it
can also render media/file upload.

### Changes 🏗️

* Add file multipart upload support for SendWebRequestBlock 
* Improve key-value input UI rendering to allow rendering any types as a
normal input block (it was only string & number).

<img width="381" alt="image"
src="https://github.com/user-attachments/assets/b41d778d-8f9d-4aec-95b6-0b32bef50e89"
/>


### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Test running http request block, othe key-value pair input block
2025-06-03 07:55:12 +00:00
Nicholas Tindle
85e108a37a feat(frontend): require passwrods to be min length 12 (#10061)
<!-- Clearly explain the need for these changes: -->
We're doing CASA and this is a requirement

### Changes 🏗️
- Requires new passwords to be min length 12
<!-- Concisely describe all of the changes made in this pull request:
-->

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] test
2025-05-30 15:23:32 +00:00
Bently
692f32a350 fix(platform): Turnstile CAPTCHA reset after failed login attempts (#10056)
Users were unable to retry login attempts after a failed authentication
because the Turnstile CAPTCHA widget was not properly resetting. This
forced users to refresh the entire page to attempt login again, creating
a terrible user experience.

Root Cause: The useTurnstile hook had several critical issues:

- The reset() function only cleared state when shouldRender was true and
widget existed
- Widget ID tracking was unreliable due to intercepting
window.turnstile.render
- Token wasn't being cleared on verification failures
- State wasn't being reset consistently across error scenarios

Changes 🏗️

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

- Fixed useTurnstile hook reset logic: Modified the reset() function to
always clear all state (token, verified, verifying, error) regardless of
shouldRender condition
- Improved widget ID synchronization: Added setWidgetId prop to the
Turnstile component interface and hook for reliable widget tracking
between component and hook
- Enhanced error handling: Updated handleVerify, handleExpire, and
handleError to properly reset tokens on failures
- Updated all auth components: Added setWidgetId prop to all Turnstile
component usages in login, signup, and password reset pages
- Removed unreliable widget tracking: Eliminated the
window.turnstile.render interception approach in favor of explicit
prop-based communication

Checklist 📋
For code changes:

- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- <!-- Put your test plan here: -->
- [x] Test failed login attempt - CAPTCHA resets properly without page
refresh
- [x] Test failed signup attempt - CAPTCHA resets properly without page
refresh
	- [x] Test successful login flow - CAPTCHA works normally
	- [x] Test CAPTCHA expiration - State resets correctly
	- [x] Test CAPTCHA error scenarios - Error handling works properly
2025-05-28 15:21:27 +00:00
Krzysztof Czerwinski
9f2b9d08c9 feat(platform): Add Run 10 agents wallet task (#9937)
### Changes 🏗️

This PR adds `Run 10 agents` step to wallet tasks that can be done by
running any agents 10 times either from Library or Builder (onboarding
agent run also counts).

- Merge `Finish onboarding` and `See results` steps into one in the
wallet
- User is redirected directly to onboarding agent runs in Library after
congrats screen
- Add `RUN_AGENTS` step and `agentRuns` integer to schema and related
migration
- Running agent from Library and Builder increments `agentRuns`
- Open NPS survey popup when 10 agents are run
- Fix resuming onboarding on login when unfinished
- Remove no longer needed `get-results.mp4` tutorial video

### 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 can be completed and proper reward is awarded
  - [x] `Run 10 agents` can be completed and reward is awarded
    - [x] When unning different agents and the same agent
    - [x] Running from library and builder counts
  - [x] Onboarding is resumed to last finished step on login
2025-05-28 07:40:52 +00:00
itsababseh
3471781b98 fix(frontend/marketplace): require category selection (#10031)
## Summary
- require categories to be selected in PublishAgent popout

### Changes 🏗️
Makes it require the categories to be set before allowing an agent to be
uploaded
added popup notification to say its missing categories 

### 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] Try to upload a agent with out setting categories and it will
error and show message saying "Missing Required Fields, Please fill in:
Categories"
- [x] Now try to upload a agent with the categories set and it will work

Co-authored-by: Bently <Github@bentlybro.com>
2025-05-27 14:57:56 +00:00
Reinier van der Leer
45578136e3 feat(frontend): Page-specific titles (#9995)
- Resolves #8656

Instead of "NextGen AutoGPT", make page titles like "My Test Agent -
Library - AutoGPT Platform", "Settings - AutoGPT Platform", "Builder -
AutoGPT Platform".

### Changes 🏗️

- Add specific page titles to `/library`, `/library/agents/[id]`,
`/build`, `/profile`, `/profile/api_keys`
- Fix page titles on `/marketplace`, `/profile/settings`

### 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] Go to `/marketplace` and check the page title
  - [x] Go to `/library` and check the page title
  - [x] Go to `/library/agents/[id]` and check the page title
  - [x] Go to `/build` and check the page title
  - [x] Go to `/profile` and check the page title
  - [x] Go to `/profile/settings` and check the page title
  - [x] Go to `/profile/api_keys` and check the page title
  - [ ] ~~Go to `/profile/dashboard` and check the page title~~
  - [ ] ~~Go to `/profile/integrations` and check the page title~~
  - [ ] ~~Go to `/profile/credits` and check the page title~~
2025-05-25 05:52:51 +00:00
Reinier van der Leer
5518c2e9a2 fix(frontend): Fix global <body> styling and base fonts (#9574)
Base styling currently being fragmented between `layout.tsx` and
`globals.css` is causing some styling (e.g. application background
color) to be incorrectly overridden.

### Changes 🏗️

- Remove background color override from `<body>`
- Move `<body>` classes from `layout.tsx` to `globals.css`
- Remove background color from elements that shouldn't have their own
background color
- Remove `font-neue`, `font-inter`; replace by Geist (`font-sans`) where
necessary

### 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] Effective background color of application is `#FAFAFA` like before
  - [x] Default font is Geist
  - [x] Everything looks okay
2025-05-24 15:25:26 +00:00
ograce1421
61643e6a47 fix(frontend): Top Agents header spacing (#10002)
Changed the section header for "Top Agents" to include a 24px margin. 
I have not tested this, an eng needs to test / look at this

## Summary
- set `margin` default to 24px in `AgentsSection`
- apply the bottom margin via an inline style

## Testing
- `npm test` *(fails: playwright not found)*
- `npm run lint` *(fails: next not found)*


### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Test via deployment to the dev branch and verify by designer

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-05-22 16:12:08 +00:00
Reinier van der Leer
21b4d272ce feat(frontend/library): Replace "Loading..." by loading spinners (#9993)
- Resolves #9992

### Changes 🏗️

- Use `<LoadingBox>` instead of "Loading..." on `/library/agents/[id]`

![2025-05-20 23 26
vivaldi](https://github.com/user-attachments/assets/6fe8ce60-c249-4e4c-b3f1-eea925b003d3)


### 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] Designer approves based on screencapture
2025-05-22 15:58:32 +00:00
Nicholas Tindle
f8965e530f ref(frontend/admin): fix location of spending page (#9991)
### Changes 🏗️
Moves the route path for spending
drops min

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

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] test locally

---------

Co-authored-by: Bently <Github@bentlybro.com>
2025-05-20 21:43:38 +00:00
Reinier van der Leer
cf9cf4e7dd refactor(frontend): Move OttoChatWidget out of root layout (#9951)
- Resolves #9950

### Changes 🏗️

- Move `<OttoChatWidget>` from root layout into `FlowEditor`
- Pass graph info directly into `OttoChatWidget` instead of using
`useAgentGraph`
- Rearrange z-indices of elements in the builder

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - Go to `/build`
  - [x] -> chat widget should show up in the bottom right corner
  - Open the widget and ask Otto something
  - [x] -> should work normally
  - Add a few blocks and save the graph
  - [x] -> "Include graph data" should show up
  - Click "Include graph data" and ask Otto something about your graph
  - [x] -> Otto should be aware of the graph structure and metadata
2025-05-20 13:38:09 +00:00
Reinier van der Leer
0a79e1c5fd feat(frontend/library): Show toast on WebSocket (dis|re)connect (#9949)
- Resolves #9941
- Follow-up to #9935

### Changes 🏗️

- Show toast when WS connection (dis|re)connects (on `/library/agents/[id]`)
  - Implement `BackendAPI.onWebSocketDisconnect`

Related improvements:
- Clean up WebSocket state management & logging in `BackendAPI`
- Clean up & split loading spinner implementation: `Spinner` -> `LoadingBox` + `LoadingSpinner`

Also, unrelated:
- fix(frontend/library): Add 2 second debounce to page refresh logic
  This eliminates 3 triple API calls (so 9 -> 3 total) on page load: `GET /library/agents/{agent_id}`, `GET /graphs/{graph_id}/executions`, and `GET /graphs/{graph_id}/executions/{exec_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:
  - Start the frontend and backend applications (locally)
  - Navigate to `/library/agents/[id]`
  - Kill the backend
  - [x] -> a toast should appear "Connection to server was lost"
  - [x] -> this toast should be shown as long as the server is down
  - Re-start the backend
  - [x] -> toast should change to show "Connection re-established"
  - [x] -> toast should now disappear after 2 seconds

---

Co-authored-by: Krzysztof Czerwinski <kpczerwinski@gmail.com>
2025-05-19 23:17:06 +02:00
Reinier van der Leer
ac532ca4b9 fix(backend): Graph execution update on terminate (#9952)
Resolves #9947

### Changes 🏗️

Backend:
- Send a graph execution update after terminating a run
- Don't wipe the graph execution stats when not passed in to `update_graph_execution_stats`

Frontend:
- Don't hide the output of stopped runs

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - Go to `/library/agents/[id]`
  - Run an agent that takes a while (long enough to click stop and see the effect)
  - Hit stop after it has executed a few nodes
  - [x] -> run status should change to "Stopped"
  - [x] -> run stats (steps, duration, cost) should stay the same or increase only one last time
  - [x] -> output so far should be visible
  - [x] -> shown information should stay the same after refreshing the page

---

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
2025-05-19 23:15:39 +02:00
dependabot[bot]
bd425331f1 chore(frontend/deps): Update 35 dependencies to latest minor versions (#9953)
Bumps the production-dependencies group with 35 updates in the
/autogpt_platform/frontend directory:

| Package | From | To |
| --- | --- | --- |
| [@faker-js/faker](https://github.com/faker-js/faker) | `9.6.0` |
`9.8.0` |
|
[@next/third-parties](https://github.com/vercel/next.js/tree/HEAD/packages/third-parties)
| `15.2.1` | `15.3.2` |
| [@radix-ui/react-alert-dialog](https://github.com/radix-ui/primitives)
| `1.1.6` | `1.1.13` |
| [@radix-ui/react-avatar](https://github.com/radix-ui/primitives) |
`1.1.3` | `1.1.9` |
| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives) |
`1.1.4` | `1.3.1` |
| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives)
| `1.1.3` | `1.1.10` |
| [@radix-ui/react-context-menu](https://github.com/radix-ui/primitives)
| `2.2.6` | `2.2.14` |
|
[@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives)
| `2.1.6` | `2.1.14` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives) |
`2.1.2` | `2.1.6` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives) |
`1.1.6` | `1.1.13` |
| [@radix-ui/react-radio-group](https://github.com/radix-ui/primitives)
| `1.2.3` | `1.3.6` |
| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives)
| `1.2.3` | `1.2.8` |
| [@radix-ui/react-select](https://github.com/radix-ui/primitives) |
`2.1.6` | `2.2.4` |
| [@radix-ui/react-separator](https://github.com/radix-ui/primitives) |
`1.1.2` | `1.1.6` |
| [@radix-ui/react-switch](https://github.com/radix-ui/primitives) |
`1.1.3` | `1.2.4` |
| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives) |
`1.1.4` | `1.1.11` |
| [@radix-ui/react-toast](https://github.com/radix-ui/primitives) |
`1.2.6` | `1.2.13` |
| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives) |
`1.1.8` | `1.2.6` |
| [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) |
`9.10.1` | `9.19.0` |
| [@supabase/ssr](https://github.com/supabase/ssr) | `0.5.2` | `0.6.1` |
| [@supabase/supabase-js](https://github.com/supabase/supabase-js) |
`2.49.1` | `2.49.4` |
|
[@tanstack/react-table](https://github.com/TanStack/table/tree/HEAD/packages/react-table)
| `8.21.2` | `8.21.3` |
|
[@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react)
| `12.4.2` | `12.6.4` |
| [cmdk](https://github.com/pacocoursey/cmdk/tree/HEAD/cmdk) | `1.0.4` |
`1.1.1` |
| [dotenv](https://github.com/motdotla/dotenv) | `16.4.7` | `16.5.0` |
| [embla-carousel-react](https://github.com/davidjerleke/embla-carousel)
| `8.5.2` | `8.6.0` |
| [framer-motion](https://github.com/motiondivision/motion) | `12.4.11`
| `12.12.1` |
| [geist](https://github.com/vercel/geist-font/tree/HEAD/packages/next)
| `1.3.1` | `1.4.2` |
|
[launchdarkly-react-client-sdk](https://github.com/launchdarkly/react-client-sdk)
| `3.6.1` | `3.7.0` |
|
[lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)
| `0.479.0` | `0.510.0` |
| [next-themes](https://github.com/pacocoursey/next-themes) | `0.4.5` |
`0.4.6` |
| [react-day-picker](https://github.com/gpbl/react-day-picker) | `9.6.1`
| `9.7.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form)
| `7.54.2` | `7.56.3` |
| [recharts](https://github.com/recharts/recharts) | `2.15.1` | `2.15.3`
|
| [zod](https://github.com/colinhacks/zod) | `3.24.2` | `3.24.4` |


Updates `@faker-js/faker` from 9.6.0 to 9.8.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/faker-js/faker/releases"><code>@​faker-js/faker</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v9.8.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(locale): add country code for en_CA &amp; fr_CA by <a
href="https://github.com/alixlahuec"><code>@​alixlahuec</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3476">faker-js/faker#3476</a></li>
<li>test: use validator@13.15.0 with isULID, isISO31661Numeric,
isISO15924 by <a
href="https://github.com/matthewmayer"><code>@​matthewmayer</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3482">faker-js/faker#3482</a></li>
<li>feat(locale): add zh_CN food by <a
href="https://github.com/yyz945947732"><code>@​yyz945947732</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3479">faker-js/faker#3479</a></li>
<li>docs: more than 70 locales by <a
href="https://github.com/matthewmayer"><code>@​matthewmayer</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3483">faker-js/faker#3483</a></li>
<li>feat(locale): update zh_CN location by <a
href="https://github.com/yyz945947732"><code>@​yyz945947732</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3481">faker-js/faker#3481</a></li>
<li>feat(locale): update zh_CN animal by <a
href="https://github.com/yyz945947732"><code>@​yyz945947732</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3480">faker-js/faker#3480</a></li>
<li>refactor(locale): ko state data update by <a
href="https://github.com/seoahan"><code>@​seoahan</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3487">faker-js/faker#3487</a></li>
<li>feat(locale): add zh_CN book by <a
href="https://github.com/yyz945947732"><code>@​yyz945947732</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3477">faker-js/faker#3477</a></li>
<li>feat(locale): add Japanese date and month definitions by <a
href="https://github.com/matsueushi"><code>@​matsueushi</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3492">faker-js/faker#3492</a></li>
<li>feat(locale): add vehicle locale data for Japanese by <a
href="https://github.com/noritaka1166"><code>@​noritaka1166</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3490">faker-js/faker#3490</a></li>
<li>feat(locale): update Japanese company categories by <a
href="https://github.com/noritaka1166"><code>@​noritaka1166</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3489">faker-js/faker#3489</a></li>
<li>feat(locale): add Japanese science locale data including elements
and units by <a
href="https://github.com/noritaka1166"><code>@​noritaka1166</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3491">faker-js/faker#3491</a></li>
<li>feat(locale): add Japanese sex definitions for person locale by <a
href="https://github.com/noritaka1166"><code>@​noritaka1166</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3495">faker-js/faker#3495</a></li>
<li>refactor(locale): rename pt-BR streetSuffix to streetPrefix by <a
href="https://github.com/glmchalita"><code>@​glmchalita</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3493">faker-js/faker#3493</a></li>
<li>feat(locale): update zh_CN word by <a
href="https://github.com/yyz945947732"><code>@​yyz945947732</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3478">faker-js/faker#3478</a></li>
<li>refactor(locale): normalize internet data by <a
href="https://github.com/xDivisionByZerox"><code>@​xDivisionByZerox</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3502">faker-js/faker#3502</a></li>
<li>chore(deps): update eslint by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3500">faker-js/faker#3500</a></li>
<li>chore(deps): update dependency eslint-plugin-unicorn to v59 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3501">faker-js/faker#3501</a></li>
<li>chore(deps): update vitest by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3497">faker-js/faker#3497</a></li>
<li>chore(deps): update cypress/browsers docker tag to v24 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3507">faker-js/faker#3507</a></li>
<li>chore(deps): update all non-major dependencies by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3498">faker-js/faker#3498</a></li>
<li>chore(deps): update
mcr.microsoft.com/devcontainers/typescript-node:22 docker digest to
fb211a0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3508">faker-js/faker#3508</a></li>
<li>feat(locale): Add additional Japanese last names to the locale data
by <a
href="https://github.com/noritaka1166"><code>@​noritaka1166</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3484">faker-js/faker#3484</a></li>
<li>chore(deps): update eslint by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3511">faker-js/faker#3511</a></li>
<li>chore(deps): lock file maintenance by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3486">faker-js/faker#3486</a></li>
<li>fix(locale): ko modified street_name to street_name_part by <a
href="https://github.com/seoahan"><code>@​seoahan</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3485">faker-js/faker#3485</a></li>
<li>fix(locale): correct Japanese country names by <a
href="https://github.com/matsueushi"><code>@​matsueushi</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3510">faker-js/faker#3510</a></li>
<li>chore(release): 9.8.0 by <a
href="https://github.com/fakerjs-bot"><code>@​fakerjs-bot</code></a> in
<a
href="https://redirect.github.com/faker-js/faker/pull/3515">faker-js/faker#3515</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/alixlahuec"><code>@​alixlahuec</code></a> made
their first contribution in <a
href="https://redirect.github.com/faker-js/faker/pull/3476">faker-js/faker#3476</a></li>
<li><a
href="https://github.com/yyz945947732"><code>@​yyz945947732</code></a>
made their first contribution in <a
href="https://redirect.github.com/faker-js/faker/pull/3479">faker-js/faker#3479</a></li>
<li><a href="https://github.com/seoahan"><code>@​seoahan</code></a> made
their first contribution in <a
href="https://redirect.github.com/faker-js/faker/pull/3487">faker-js/faker#3487</a></li>
<li><a
href="https://github.com/noritaka1166"><code>@​noritaka1166</code></a>
made their first contribution in <a
href="https://redirect.github.com/faker-js/faker/pull/3490">faker-js/faker#3490</a></li>
<li><a
href="https://github.com/glmchalita"><code>@​glmchalita</code></a> made
their first contribution in <a
href="https://redirect.github.com/faker-js/faker/pull/3493">faker-js/faker#3493</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/faker-js/faker/compare/v9.7.0...v9.8.0">https://github.com/faker-js/faker/compare/v9.7.0...v9.8.0</a></p>
<h2>v9.7.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(locale): Add bn_BD locale by <a
href="https://github.com/AbrarShahriar"><code>@​AbrarShahriar</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3439">faker-js/faker#3439</a></li>
<li>fix(airline): Air France and KLM Royal Dutch Airlines by <a
href="https://github.com/chimurai"><code>@​chimurai</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3440">faker-js/faker#3440</a></li>
<li>infra(comment-issue): fix display of thumbs up emoji by <a
href="https://github.com/xDivisionByZerox"><code>@​xDivisionByZerox</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3444">faker-js/faker#3444</a></li>
<li>feat(locale): add localize sex support for zh_CN &amp; zh_TW by <a
href="https://github.com/sd44"><code>@​sd44</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3450">faker-js/faker#3450</a></li>
<li>fix(iban): more strict pattern for IE and PS by <a
href="https://github.com/xDivisionByZerox"><code>@​xDivisionByZerox</code></a>
in <a
href="https://redirect.github.com/faker-js/faker/pull/3464">faker-js/faker#3464</a></li>
<li>chore(deps): update devdependencies by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3456">faker-js/faker#3456</a></li>
<li>chore(deps): update all non-major dependencies by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3457">faker-js/faker#3457</a></li>
<li>chore(deps): update dependency prettier to v3.5.3 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/faker-js/faker/pull/3455">faker-js/faker#3455</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/faker-js/faker/blob/next/CHANGELOG.md"><code>@​faker-js/faker</code>'s
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/faker-js/faker/compare/v9.7.0...v9.8.0">9.8.0</a>
(2025-05-13)</h2>
<h3>New Locales</h3>
<ul>
<li><strong>locale:</strong> Add additional Japanese last names to the
locale data (<a
href="https://redirect.github.com/faker-js/faker/issues/3484">#3484</a>)
(<a
href="72e66c3a3a">72e66c3</a>)</li>
<li><strong>locale:</strong> add Japanese date and month definitions (<a
href="https://redirect.github.com/faker-js/faker/issues/3492">#3492</a>)
(<a
href="b70e7934b7">b70e793</a>)</li>
<li><strong>locale:</strong> add Japanese science locale data including
elements and units (<a
href="https://redirect.github.com/faker-js/faker/issues/3491">#3491</a>)
(<a
href="54fd5519e9">54fd551</a>)</li>
<li><strong>locale:</strong> add Japanese sex definitions for person
locale (<a
href="https://redirect.github.com/faker-js/faker/issues/3495">#3495</a>)
(<a
href="1dbd8fa511">1dbd8fa</a>)</li>
<li><strong>locale:</strong> add vehicle locale data for Japanese (<a
href="https://redirect.github.com/faker-js/faker/issues/3490">#3490</a>)
(<a
href="dfadb1da74">dfadb1d</a>)</li>
<li><strong>locale:</strong> add zh_CN book (<a
href="https://redirect.github.com/faker-js/faker/issues/3477">#3477</a>)
(<a
href="786a3d0bd8">786a3d0</a>)</li>
<li><strong>locale:</strong> add zh_CN food (<a
href="https://redirect.github.com/faker-js/faker/issues/3479">#3479</a>)
(<a
href="6c883e74b8">6c883e7</a>)</li>
<li><strong>locale:</strong> update Japanese company categories (<a
href="https://redirect.github.com/faker-js/faker/issues/3489">#3489</a>)
(<a
href="8c0953a261">8c0953a</a>)</li>
<li><strong>locale:</strong> update zh_CN animal (<a
href="https://redirect.github.com/faker-js/faker/issues/3480">#3480</a>)
(<a
href="38ee7b81a8">38ee7b8</a>)</li>
<li><strong>locale:</strong> update zh_CN location (<a
href="https://redirect.github.com/faker-js/faker/issues/3481">#3481</a>)
(<a
href="456f10276b">456f102</a>)</li>
<li><strong>locale:</strong> update zh_CN word (<a
href="https://redirect.github.com/faker-js/faker/issues/3478">#3478</a>)
(<a
href="aa98867765">aa98867</a>)</li>
</ul>
<h3>Changed Locales</h3>
<ul>
<li><strong>locale:</strong> ko state data update (<a
href="https://redirect.github.com/faker-js/faker/issues/3487">#3487</a>)
(<a
href="b611ec2e51">b611ec2</a>)</li>
<li><strong>locale:</strong> normalize internet data (<a
href="https://redirect.github.com/faker-js/faker/issues/3502">#3502</a>)
(<a
href="e6151e4efd">e6151e4</a>)</li>
<li><strong>locale:</strong> rename pt-BR streetSuffix to streetPrefix
(<a
href="https://redirect.github.com/faker-js/faker/issues/3493">#3493</a>)
(<a
href="7c23db316e">7c23db3</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>locale:</strong> correct Japanese country names (<a
href="https://redirect.github.com/faker-js/faker/issues/3510">#3510</a>)
(<a
href="046bb81558">046bb81</a>)</li>
<li><strong>locale:</strong> correct the name of element Lv in Japanese
(<a
href="https://redirect.github.com/faker-js/faker/issues/3509">#3509</a>)
(<a
href="6a7ef4c2ad">6a7ef4c</a>)</li>
<li><strong>locale:</strong> ko modified street_name to street_name_part
(<a
href="https://redirect.github.com/faker-js/faker/issues/3485">#3485</a>)
(<a
href="c15da8efec">c15da8e</a>)</li>
</ul>
<h2><a
href="https://github.com/faker-js/faker/compare/v9.6.0...v9.7.0">9.7.0</a>
(2025-04-13)</h2>
<h3>New Locales</h3>
<ul>
<li><strong>locale:</strong> Add bn_BD locale (<a
href="https://redirect.github.com/faker-js/faker/issues/3439">#3439</a>)
(<a
href="fef0ad7859">fef0ad7</a>)</li>
<li><strong>locale:</strong> add cy locale, start with date (<a
href="https://redirect.github.com/faker-js/faker/issues/3462">#3462</a>)
(<a
href="f70a6f7a65">f70a6f7</a>)</li>
<li><strong>locale:</strong> add finance support for ja locale (<a
href="https://redirect.github.com/faker-js/faker/issues/3449">#3449</a>)
(<a
href="b2c5298c94">b2c5298</a>)</li>
<li><strong>locale:</strong> add localize sex support for zh_CN &amp;
zh_TW (<a
href="https://redirect.github.com/faker-js/faker/issues/3450">#3450</a>)
(<a
href="048c32581b">048c325</a>)</li>
<li><strong>locale:</strong> add Tamil language support (<a
href="https://redirect.github.com/faker-js/faker/issues/3468">#3468</a>)
(<a
href="cdf6dc4a97">cdf6dc4</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>airline:</strong> Air France and KLM Royal Dutch Airlines
(<a
href="https://redirect.github.com/faker-js/faker/issues/3440">#3440</a>)
(<a
href="8a2d168f62">8a2d168</a>)</li>
<li><strong>iban:</strong> more strict pattern for IE and PS (<a
href="https://redirect.github.com/faker-js/faker/issues/3464">#3464</a>)
(<a
href="7b12056713">7b12056</a>)</li>
<li><strong>locale:</strong> rename ja and zh_CN company affix files (<a
href="https://redirect.github.com/faker-js/faker/issues/3448">#3448</a>)
(<a
href="1e551c5f47">1e551c5</a>)</li>
<li><strong>number:</strong> don't ignore multipleOf in float when
min=max (<a
href="https://redirect.github.com/faker-js/faker/issues/3417">#3417</a>)
(<a
href="e4cc4e50d1">e4cc4e5</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="549d71cf33"><code>549d71c</code></a>
chore(release): 9.8.0 (<a
href="https://redirect.github.com/faker-js/faker/issues/3515">#3515</a>)</li>
<li><a
href="046bb81558"><code>046bb81</code></a>
fix(locale): correct Japanese country names (<a
href="https://redirect.github.com/faker-js/faker/issues/3510">#3510</a>)</li>
<li><a
href="c15da8efec"><code>c15da8e</code></a>
fix(locale): ko modified street_name to street_name_part (<a
href="https://redirect.github.com/faker-js/faker/issues/3485">#3485</a>)</li>
<li><a
href="d6ba4cc1b1"><code>d6ba4cc</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/faker-js/faker/issues/3486">#3486</a>)</li>
<li><a
href="2faf57b01c"><code>2faf57b</code></a>
chore(deps): update eslint (<a
href="https://redirect.github.com/faker-js/faker/issues/3511">#3511</a>)</li>
<li><a
href="6a7ef4c2ad"><code>6a7ef4c</code></a>
fix(locale): correct the name of element Lv in Japanese (<a
href="https://redirect.github.com/faker-js/faker/issues/3509">#3509</a>)</li>
<li><a
href="72e66c3a3a"><code>72e66c3</code></a>
feat(locale): Add additional Japanese last names to the locale data (<a
href="https://redirect.github.com/faker-js/faker/issues/3484">#3484</a>)</li>
<li><a
href="c0d5217e10"><code>c0d5217</code></a>
chore(deps): update mcr.microsoft.com/devcontainers/typescript-node:22
docker...</li>
<li><a
href="049875d283"><code>049875d</code></a>
chore(deps): update all non-major dependencies (<a
href="https://redirect.github.com/faker-js/faker/issues/3498">#3498</a>)</li>
<li><a
href="07087ff6ef"><code>07087ff</code></a>
chore(deps): update cypress/browsers docker tag to v24 (<a
href="https://redirect.github.com/faker-js/faker/issues/3507">#3507</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/faker-js/faker/compare/v9.6.0...v9.8.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/~faker-bot">faker-bot</a>, a new releaser
for <code>@​faker-js/faker</code> since your current version.</p>
</details>
<br />

Updates `@next/third-parties` from 15.2.1 to 15.3.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases"><code>@​next/third-parties</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v15.3.2</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>backport: fix(turbopack): Store persistence of wrapped task on
RawVc::LocalOutput (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78488">#78488</a>)
(<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78883">#78883</a>)</li>
<li><code>@​next/mdx</code>: Use stable turbopack config options (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78880">#78880</a>)</li>
<li>Fix react-compiler: Fix detection of interest (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78879">#78879</a>)</li>
<li>Fix turbopack: Backport sourcemap bugfix (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78881">#78881</a>)</li>
<li>[next-server] preserve rsc query for rsc redirects (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78876">#78876</a>)</li>
<li>Update middleware public/static matching (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78875">#78875</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk"><code>@​ijjk</code></a>, <a
href="https://github.com/huozhi"><code>@​huozhi</code></a>, <a
href="https://github.com/kdy1"><code>@​kdy1</code></a>, <a
href="https://github.com/wbinnssmith"><code>@​wbinnssmith</code></a>,
and <a href="https://github.com/bgw"><code>@​bgw</code></a> for
helping!</p>
<h2>v15.3.1</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>chore: Backport SWC-based RC optimization (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78260">#78260</a>)</li>
<li>fix: bump image-size@1.2.1 (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78164">#78164</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/kdy1"><code>@​kdy1</code></a> and <a
href="https://github.com/styfle"><code>@​styfle</code></a> for
helping!</p>
<h2>v15.3.1-canary.15</h2>
<h3>Core Changes</h3>
<ul>
<li>[Turbopack] refactor persistent caching from log based to cow
approach: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/76234">#76234</a></li>
</ul>
<h3>Misc Changes</h3>
<ul>
<li>fix(turbo-tasks-fs): Handle filesystem watcher rescan events: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78045">#78045</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/bgw"><code>@​bgw</code></a> and <a
href="https://github.com/sokra"><code>@​sokra</code></a> for
helping!</p>
<h2>v15.3.1-canary.14</h2>
<h3>Core Changes</h3>
<ul>
<li>Add graceful error boundary for bots requests: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78298">#78298</a></li>
<li>make sure eslint-plugin-next is built when running 'pnpm dev': <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78305">#78305</a></li>
<li>Migrate pages API routes to handler interface: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/third-parties/issues/78166">#78166</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d9ec4a4b57"><code>d9ec4a4</code></a>
v15.3.2</li>
<li><a
href="fa536cf2c9"><code>fa536cf</code></a>
v15.3.1</li>
<li><a
href="b2ff04995b"><code>b2ff049</code></a>
v15.3.0</li>
<li><a
href="60bfe64295"><code>60bfe64</code></a>
v15.3.0-canary.46</li>
<li><a
href="f71c4a1582"><code>f71c4a1</code></a>
v15.3.0-canary.45</li>
<li><a
href="4451bae75d"><code>4451bae</code></a>
v15.3.0-canary.44</li>
<li><a
href="87d7d8eb7a"><code>87d7d8e</code></a>
v15.3.0-canary.43</li>
<li><a
href="82ab39f801"><code>82ab39f</code></a>
v15.3.0-canary.42</li>
<li><a
href="8f1409d6ce"><code>8f1409d</code></a>
v15.3.0-canary.41</li>
<li><a
href="2139369821"><code>2139369</code></a>
v15.3.0-canary.40</li>
<li>Additional commits viewable in <a
href="https://github.com/vercel/next.js/commits/v15.3.2/packages/third-parties">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-alert-dialog` from 1.1.6 to 1.1.13
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-avatar` from 1.1.3 to 1.1.9
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-checkbox` from 1.1.4 to 1.3.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-collapsible` from 1.1.3 to 1.1.10
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-context-menu` from 2.2.6 to 2.2.14
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-dialog` from 1.1.6 to 1.1.13
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-dropdown-menu` from 2.1.6 to 2.1.14
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-label` from 2.1.2 to 2.1.6
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-popover` from 1.1.6 to 1.1.13
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-radio-group` from 1.2.3 to 1.3.6
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-scroll-area` from 1.2.3 to 1.2.8
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-select` from 2.1.6 to 2.2.4
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-separator` from 1.1.2 to 1.1.6
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-slot` from 1.1.2 to 1.2.2
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-switch` from 1.1.3 to 1.2.4
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-tabs` from 1.1.4 to 1.1.11
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-toast` from 1.2.6 to 1.2.13
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@radix-ui/react-tooltip` from 1.1.8 to 1.2.6
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `@sentry/nextjs` from 9.10.1 to 9.19.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-javascript/releases"><code>@​sentry/nextjs</code>'s
releases</a>.</em></p>
<blockquote>
<h2>9.19.0</h2>
<ul>
<li>feat(react-router): Add otel instrumentation for server requests (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16147">#16147</a>)</li>
<li>feat(remix): Vendor in
<code>opentelemetry-instrumentation-remix</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16145">#16145</a>)</li>
<li>fix(browser): Ensure spans auto-ended for navigations have
<code>cancelled</code> reason (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16277">#16277</a>)</li>
<li>fix(node): Pin <code>@fastify/otel</code> fork to direct url to
allow installing without git (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16287">#16287</a>)</li>
<li>fix(react): Handle nested parameterized routes in reactrouterv3
transaction normalization (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16274">#16274</a>)</li>
</ul>
<p>Work in this release was contributed by <a
href="https://github.com/sidx1024"><code>@​sidx1024</code></a>. Thank
you for your contribution!</p>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@​sentry/browser</code></td>
<td>23.4 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> - with treeshaking flags</td>
<td>23.06 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. Tracing)</td>
<td>37.31 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. Tracing, Replay)</td>
<td>74.53 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. Tracing, Replay) - with
treeshaking flags</td>
<td>67.72 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. Tracing, Replay with
Canvas)</td>
<td>79.19 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. Feedback)</td>
<td>39.8 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. sendFeedback)</td>
<td>28.03 KB</td>
</tr>
<tr>
<td><code>@​sentry/browser</code> (incl. FeedbackAsync)</td>
<td>32.79 KB</td>
</tr>
<tr>
<td><code>@​sentry/react</code></td>
<td>25.17 KB</td>
</tr>
<tr>
<td><code>@​sentry/react</code> (incl. Tracing)</td>
<td>39.27 KB</td>
</tr>
<tr>
<td><code>@​sentry/vue</code></td>
<td>27.67 KB</td>
</tr>
<tr>
<td><code>@​sentry/vue</code> (incl. Tracing)</td>
<td>39.07 KB</td>
</tr>
<tr>
<td><code>@​sentry/svelte</code></td>
<td>23.43 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.58 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>37.33 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>72.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>77.68 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.72 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>110.5 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>221.78 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>234.31 KB</td>
</tr>
<tr>
<td><code>@​sentry/nextjs</code> (client)</td>
<td>40.88 KB</td>
</tr>
<tr>
<td><code>@​sentry/sveltekit</code> (client)</td>
<td>37.77 KB</td>
</tr>
<tr>
<td><code>@​sentry/node</code></td>
<td>154.29 KB</td>
</tr>
<tr>
<td><code>@​sentry/node</code> - without tracing</td>
<td>95.6 KB</td>
</tr>
<tr>
<td><code>@​sentry/aws-serverless</code></td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
<h2>9.18.0</h2>
<h3>Important changes</h3>
<ul>
<li><strong>feat: Support Node 24 (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16236">#16236</a>)</strong></li>
</ul>
<p>We now also publish profiling binaries for Node 24.</p>
<h3>Other changes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md"><code>@​sentry/nextjs</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>9.19.0</h2>
<ul>
<li>feat(react-router): Add otel instrumentation for server requests (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16147">#16147</a>)</li>
<li>feat(remix): Vendor in
<code>opentelemetry-instrumentation-remix</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16145">#16145</a>)</li>
<li>fix(browser): Ensure spans auto-ended for navigations have
<code>cancelled</code> reason (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16277">#16277</a>)</li>
<li>fix(node): Pin <code>@fastify/otel</code> fork to direct url to
allow installing without git (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16287">#16287</a>)</li>
<li>fix(react): Handle nested parameterized routes in reactrouterv3
transaction normalization (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16274">#16274</a>)</li>
</ul>
<p>Work in this release was contributed by <a
href="https://github.com/sidx1024"><code>@​sidx1024</code></a>. Thank
you for your contribution!</p>
<h2>9.18.0</h2>
<h3>Important changes</h3>
<ul>
<li><strong>feat: Support Node 24 (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16236">#16236</a>)</strong></li>
</ul>
<p>We now also publish profiling binaries for Node 24.</p>
<h3>Other changes</h3>
<ul>
<li>deps(node): Bump <code>import-in-the-middle</code> to
<code>1.13.1</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16260">#16260</a>)</li>
<li>feat: Export <code>consoleLoggingIntegration</code> from vercel edge
sdk (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16228">#16228</a>)</li>
<li>feat(cloudflare): Add support for email, queue, and tail handler (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16233">#16233</a>)</li>
<li>feat(cloudflare): Improve http span data (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16232">#16232</a>)</li>
<li>feat(nextjs): Add more attributes for generation functions (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16214">#16214</a>)</li>
<li>feat(opentelemetry): Widen peer dependencies to support Otel v2 (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16246">#16246</a>)</li>
<li>fix(core): Gracefully handle invalid baggage entries (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16257">#16257</a>)</li>
<li>fix(node): Ensure traces are propagated without spans in Node 22+
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16221">#16221</a>)</li>
<li>fix(node): Use sentry forked <code>@fastify/otel</code> dependency
with pinned Otel v1 deps (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16256">#16256</a>)</li>
<li>fix(remix): Remove vendored types (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16218">#16218</a>)</li>
</ul>
<h2>9.17.0</h2>
<ul>
<li>feat(node): Migrate to <code>@fastify/otel</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15542">#15542</a>)</li>
</ul>
<h2>9.16.1</h2>
<ul>
<li>fix(core): Make sure logs get flushed in server-runtime-client (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16222">#16222</a>)</li>
<li>ref(node): Remove vercel flushing code that does nothing (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16217">#16217</a>)</li>
</ul>
<h2>9.16.0</h2>
<h3>Important changes</h3>
<ul>
<li><strong>feat: Create a Vite plugin that injects sentryConfig into
the global config (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16197">#16197</a>)</strong></li>
</ul>
<p>Add a new plugin <code>makeConfigInjectorPlugin</code> within our
existing vite plugin that updates the global vite config with sentry
options</p>
<ul>
<li><strong>feat(browser): Add option to sample linked traces
consistently (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16037">#16037</a>)</strong></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d69ea01d02"><code>d69ea01</code></a>
release: 9.19.0</li>
<li><a
href="9acaae28c1"><code>9acaae2</code></a>
Merge pull request <a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16288">#16288</a>
from getsentry/prepare-release/9.19.0</li>
<li><a
href="ed276633ce"><code>ed27663</code></a>
meta(changelog): Update changelog for 9.19.0</li>
<li><a
href="4b039f8a6e"><code>4b039f8</code></a>
fix(node): Pin <code>@fastify/otel</code> fork to direct url to allow
installing without...</li>
<li><a
href="26731edc99"><code>26731ed</code></a>
feat(react-router): Add otel instrumentation for server requests (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16147">#16147</a>)</li>
<li><a
href="efb86de64b"><code>efb86de</code></a>
chore: Add external contributor to CHANGELOG.md (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16282">#16282</a>)</li>
<li><a
href="e83658f23a"><code>e83658f</code></a>
fix(browser): Ensure spans auto-ended for navigations have
<code>cancelled</code> reason...</li>
<li><a
href="b9984338be"><code>b998433</code></a>
feat(remix): Vendor in <code>opentelemetry-instrumentation-remix</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16145">#16145</a>)</li>
<li><a
href="f55018fbf6"><code>f55018f</code></a>
fix(react): Handle nested parameterized routes in reactrouterv3
transaction n...</li>
<li><a
href="6d2b971980"><code>6d2b971</code></a>
Merge pull request <a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16276">#16276</a>
from getsentry/master</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-javascript/compare/9.10.1...9.19.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@supabase/ssr` from 0.5.2 to 0.6.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/supabase/ssr/releases"><code>@​supabase/ssr</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v0.6.1</h2>
<h2><a
href="https://github.com/supabase/ssr/compare/v0.6.0...v0.6.1">0.6.1</a>
(2025-03-16)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>force release (<a
href="https://redirect.github.com/supabase/ssr/issues/98">#98</a>) (<a
href="66710e82aa">66710e8</a>)</li>
<li><strong>revert:</strong> &quot;feat: improve cookie chunk handling
via base64url+length encoding (<a
href="https://redirect.github.com/supabase/ssr/issues/90">#90</a>)&quot;
(<a href="https://redirect.github.com/supabase/ssr/issues/100">#100</a>)
(<a
href="2ea8e23525">2ea8e23</a>)</li>
</ul>
<h2>v0.6.1-rc.3</h2>
<p>This is a release candidate. See release-please PR <a
href="https://redirect.github.com/supabase/ssr/issues/99">#99</a> for
context.</p>
<h2>v0.6.1-rc.2</h2>
<p>This is a release candidate. See release-please PR <a
href="https://redirect.github.com/supabase/ssr/issues/99">#99</a> for
context.</p>
<h2>v0.6.0</h2>
<h2><a
href="https://github.com/supabase/ssr/compare/v0.5.2...v0.6.0">0.6.0</a>
(2025-02-27)</h2>
<h3>Features</h3>
<ul>
<li>improve cookie chunk handling via base64url+length encoding (<a
href="https://redirect.github.com/supabase/ssr/issues/90">#90</a>) (<a
href="6deb6871ca">6deb687</a>)</li>
<li>upgrade cookie dependency and cleanup imports (<a
href="https://redirect.github.com/supabase/ssr/issues/77">#77</a>) (<a
href="95245282e6">9524528</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add <code>create*Client</code> string in <code>x-client-info</code>
(<a href="https://redirect.github.com/supabase/ssr/issues/85">#85</a>)
(<a
href="f271accfea">f271acc</a>)</li>
</ul>
<h2>v0.6.0-rc.5</h2>
<p>This is a release candidate. See release-please PR <a
href="https://redirect.github.com/supabase/ssr/issues/80">#80</a> for
context.</p>
<h2>v0.6.0-rc.3</h2>
<p>This is a release candidate. See release-please PR <a
href="https://redirect.github.com/supabase/ssr/issues/80">#80</a> for
context.</p>
<h2>v0.6.0-rc.2</h2>
<p>This is a release candidate. See release-please PR <a
href="https://redirect.github.com/supabase/ssr/issues/80">#80</a> for
context.</p>
<h2>v0.6.0-rc.1</h2>
<p>This is a release candidate. See release-please PR <a
href="https://redirect.github.com/supabase/ssr/issues/80">#80</a> for
context.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/supabase/ssr/blob/main/CHANGELOG.md"><code>@​supabase/ssr</code>'s
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/supabase/ssr/compare/v0.6.0...v0.6.1">0.6.1</a>
(2025-03-16)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>force release (<a
href="https://redirect.github.com/supabase/ssr/issues/98">#98</a>) (<a
href="66710e82aa">66710e8</a>)</li>
<li><strong>revert:</strong> &quot;feat: improve cookie chunk handling
via base64url+length encoding (<a
href="https://redirect.github.com/supabase/ssr/issues/90">#90</a>)&quot;
(<a href="https://redirect.github.com/supabase/ssr/issues/100">#100</a>)
(<a
href="2ea8e23525">2ea8e23</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a1b60ba826"><code>a1b60ba</code></a>
chore(main): release 0.6.1 (<a
href="https://redirect.github.com/supabase/ssr/issues/99">#99</a>)</li>
<li><a
href="2ea8e23525"><code>2ea8e23</code></a>
fix(revert): &quot;feat: improve cookie chunk handling via
base64url+length encodi...</li>
<li><a
href="66710e82aa"><code>66710e8</code></a>
fix: force release (<a
href="https://redirect.github.com/supabase/ssr/issues/98">#98</a>)</li>
<li><a
href="37909b21f1"><code>37909b2</code></a>
Revert &quot;chore(main): release 0.6.0&quot; (<a
href="https://redirect.github.com/supabase/ssr/issues/95">#95</a>)</li>
<li><a
href="be9cd6c70e"><code>be9cd6c</code></a>
chore(main): release 0.6.0 (<a
href="https://redirect.github.com/supabase/ssr/issues/80">#80</a>)</li>
<li><a
href="6deb6871ca"><code>6deb687</code></a>
feat: improve cookie chunk handling via base64url+length encoding (<a
href="https://redirect.github.com/supabase/ssr/issues/90">#90</a>)</li>
<li><a
href="ef429dfbd1"><code>ef429df</code></a>
build(deps): bump vite from 5.4.10 to 5.4.14 (<a
href="https://redirect.github.com/supabase/ssr/issues/88">#88</a>)</li>
<li><a
href="ca469593e3"><code>ca46959</code></a>
ci: publish with provenance (<a
href="https://redirect.github.com/supabase/ssr/issues/86">#86</a>)</li>
<li><a
href="f271accfea"><code>f271acc</code></a>
fix: add <code>create*Client</code> string in <code>x-client-info</code>
(<a
href="https://redirect.github.com/supabase/ssr/issues/85">#85</a>)</li>
<li><a
href="95245282e6"><code>9524528</code></a>
feat: upgrade cookie dependency and cleanup imports (<a
href="https://redirect.github.com/supabase/ssr/issues/77">#77</a>)</li>
<li>See full diff in <a
href="https://github.com/supabase/ssr/compare/v0.5.2...v0.6.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `@supabase/supabase-js` from 2.49.1 to 2.49.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/supabase/supabase-js/releases"><code>@​supabase/supabase-js</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v2.49.4</h2>
<h2><a
href="https://github.com/supabase/supabase-js/compare/v2.49.3...v2.49.4">2.49.4</a>
(2025-03-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> upgrade postgrest-js to 1.19.4 (<a
href="692e8e846b">692e8e8</a>)</li>
</ul>
<h2>v2.49.3</h2>
<h2><a
href="https://github.com/supabase/supabase-js/compare/v2.49.2...v2.49.3">2.49.3</a>
(2025-03-24)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>bump auth-js to 2.69.1 (<a
href="https://redirect.github.com/supabase/supabase-js/issues/1383">#1383</a>)
(<a
href="f08bfd9c96">f08bfd9</a>)</li>
</ul>
<h2>v2.49.2</h2>
<h2><a
href="https://github.com/supabase/supabase-js/compare/v2.49.1...v2.49.2">2.49.2</a>
(2025-03-24)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>bump auth-js to v2.69.0 (<a
href="https://redirect.github.com/supabase/supabase-js/issues/1380">#1380</a>)
(<a
href="73ab30dd61">73ab30d</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="692e8e846b"><code>692e8e8</code></a>
fix(deps): upgrade postgrest-js to 1.19.4</li>
<li><a
href="f08bfd9c96"><code>f08bfd9</code></a>
fix: bump auth-js to 2.69.1 (<a
href="https://redirect.github.com/supabase/supabase-js/issues/1383">#1383</a>)</li>
<li><a
href="73ab30dd61"><code>73ab30d</code></a>
fix: bump auth-js to v2.69.0 (<a
href="https://redirect.github.com/supabase/supabase-js/issues/1380">#1380</a>)</li>
<li><a
href="a5219a81b3"><code>a5219a8</code></a>
chore: add open role to README.md (<a
href="https://redirect.github.com/supabase/supabase-js/issues/1378">#1378</a>)</li>
<li>See full diff in <a
href="https://github.com/supabase/supabase-js/compare/v2.49.1...v2.49.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `@tanstack/react-table` from 8.21.2 to 8.21.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/table/releases"><code>@​tanstack/react-table</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v8.21.3</h2>
<p>Version 8.21.3 - 4/14/25, 8:19 PM</p>
<h2>Changes</h2>
<h3>Fix</h3>
<ul>
<li>table-core: use right Document instance on getResizeHandler
(column-sizing feature) (<a
href="https://github.com/TanStack/table/tree/HEAD/packages/react-table/issues/5989">#5989</a>)
(54ce673) by <a
href="https://github.com/riccardoperra"><code>@​riccardoperra</code></a></li>
</ul>
<h3>Docs</h3>
<ul>
<li>fix all 158 broken links (<a
href="https://github.com/TanStack/table/tree/HEAD/packages/react-table/issues/5972">#5972</a>)
(f7bf6f1) by <a
href="https://github.com/kisaragi-hiu"><code>@​kisaragi-hiu</code></a></li>
<li>add vue example for grouping (<a
href="https://github.com/TanStack/table/tree/HEAD/packages/react-table/issues/5941">#5941</a>)
(3efa59c) by Harshil Patel</li>
</ul>
<h2>Packages</h2>
<ul>
<li><code>@​tanstack/table-core</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/angular-table</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/lit-table</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/qwik-table</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/react-table</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/solid-table</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/svelte-table</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/vue-table</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
<li><code>@​tanstack/react-table-devtools</code><a
href="https://github.com/8"><code>@​8</code></a>.21.3</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f4dc742b7b"><code>f4dc742</code></a>
release: v8.21.3</li>
<li>See full diff in <a
href="https://github.com/TanStack/table/commits/v8.21.3/packages/react-table">compare
view</a></li>
</ul>
</details>
<br />

Updates `@xyflow/react` from 12.4.2 to 12.6.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/xyflow/xyflow/releases"><code>@​xyflow/react</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.6.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5263">#5263</a> <a
href="e4a8d4b43f"><code>e4a8d4b4</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Multi select key works when input is focused</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5266">#5266</a> <a
href="77107453fa"><code>77107453</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Fix
connection snapping for handles larger than connectionRadius</p>
</li>
<li>
<p>Updated dependencies [<a
href="77107453fa"><code>77107453</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.61</li>
</ul>
</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.6.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5259">#5259</a> <a
href="77bf79c40e"><code>77bf79c4</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Fix
background-color css variable fallback.</p>
</li>
<li>
<p>Updated dependencies [<a
href="77bf79c40e"><code>77bf79c4</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.60</li>
</ul>
</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.6.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5257">#5257</a> <a
href="b1314be04d"><code>b1314be0</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Use OnReconnect from system</p>
</li>
<li>
<p>Updated dependencies [<a
href="a95f0e2fbf"><code>a95f0e2f</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.59</li>
</ul>
</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.6.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5249">#5249</a> <a
href="895b5d81c8"><code>895b5d81</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Call <code>onNodesChange</code> for uncontrolled flows that use
<code>updateNode</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5247">#5247</a> <a
href="67e1cb6891"><code>67e1cb68</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Cleanup TSDoc annotations for ReactFlow</p>
</li>
<li>
<p>Updated dependencies [<a
href="2a03213b06"><code>2a03213b</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.58</li>
</ul>
</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.6.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5219">#5219</a> <a
href="4236adbc46"><code>4236adbc</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Add initialMinZoom, initialMaxZoom and initialFitViewOptions to
ReactFlowProvider</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5227">#5227</a> <a
href="a7d10ffce5"><code>a7d10ffc</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Add <code>resizeDirection</code> prop for the
<code>NodeResizeControl</code> component</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5217">#5217</a> <a
href="bce74e8811"><code>bce74e88</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Keep node seleciton on pane click if elementsSelectable=false</p>
</li>
<li>
<p>Updated dependencies [<a
href="a7d10ffce5"><code>a7d10ffc</code></a>,
<a
href="4e681f9c52"><code>4e681f9c</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.57</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/xyflow/xyflow/blob/main/packages/react/CHANGELOG.md"><code>@​xyflow/react</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>12.6.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5263">#5263</a> <a
href="e4a8d4b43f"><code>e4a8d4b4</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Multi select key works when input is focused</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5266">#5266</a> <a
href="77107453fa"><code>77107453</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Fix
connection snapping for handles larger than connectionRadius</p>
</li>
<li>
<p>Updated dependencies [<a
href="77107453fa"><code>77107453</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.61</li>
</ul>
</li>
</ul>
<h2>12.6.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5259">#5259</a> <a
href="77bf79c40e"><code>77bf79c4</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Fix
background-color css variable fallback.</p>
</li>
<li>
<p>Updated dependencies [<a
href="77bf79c40e"><code>77bf79c4</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.60</li>
</ul>
</li>
</ul>
<h2>12.6.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5257">#5257</a> <a
href="b1314be04d"><code>b1314be0</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Use OnReconnect from system</p>
</li>
<li>
<p>Updated dependencies [<a
href="a95f0e2fbf"><code>a95f0e2f</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.59</li>
</ul>
</li>
</ul>
<h2>12.6.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5249">#5249</a> <a
href="895b5d81c8"><code>895b5d81</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Call <code>onNodesChange</code> for uncontrolled flows that use
<code>updateNode</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5247">#5247</a> <a
href="67e1cb6891"><code>67e1cb68</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Cleanup TSDoc annotations for ReactFlow</p>
</li>
<li>
<p>Updated dependencies [<a
href="2a03213b06"><code>2a03213b</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.58</li>
</ul>
</li>
</ul>
<h2>12.6.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5219">#5219</a> <a
href="4236adbc46"><code>4236adbc</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Add initialMinZoom, initialMaxZoom and initialFitViewOptions to
ReactFlowProvider</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5227">#5227</a> <a
href="a7d10ffce5"><code>a7d10ffc</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Add <code>resizeDirection</code> prop for the
<code>NodeResizeControl</code> component</p>
</li>
</ul>
<h3>Patch Changes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0076d82222"><code>0076d82</code></a>
chore(packages): bump</li>
<li><a
href="8ce85fd8f0"><code>8ce85fd</code></a>
fix(react): multi select works when input is focused</li>
<li><a
href="cee50e1dd0"><code>cee50e1</code></a>
chore(packages): bump</li>
<li><a
href="673a3a8718"><code>673a3a8</code></a>
merge main</li>
<li><a
href="9893b6321b"><code>9893b63</code></a>
chore(packages): bump</li>
<li><a
href="69021e8bbe"><code>69021e8</code></a>
chore(react): use OnReconnet from system</li>
<li><a
href="b30a496bf4"><code>b30a496</code></a>
merg main</li>
<li><a
href="2df553e611"><code>2df553e</code></a>
chore(packages): bump</li>
<li><a href="https://g...

_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: Reinier van der Leer <pwuts@agpt.co>
2025-05-16 13:13:07 +00:00
Chirag Modi
2dc038b6c0 Add Llama API Support (#9899)
The changes in this PR are to add Llama API support.

### Changes 🏗️
We add both backend and frontend support.

**Backend**:
- Add llama_api provider
- Include models supported by Llama API along with configs
- llm_call
- credential store and llama_api_key field in Settings

**Frontend**:
- Llama API as a type
- Credentials input and provider for Llama API
 

### Checklist 📋

#### For code changes:
- [X] I have clearly listed my changes in the PR description
- [X] I have tested my changes according to the test plan:

**Test Plan**:

<details>
  <summary>AI Text Generator</summary>
  
  - [X] Start-up backend and frontend:
- Start backend with Docker services: `docker compose up -d --build`
     - Start frontend: `npm install && npm run dev`
- By visiting http://localhost:3000/, test inference and structured
outputs
  - [X] Create from scratch 
  - [X] Request for Llama API Credentials
  
<img width="2015" alt="image"
src="https://github.com/user-attachments/assets/3dede402-3718-4441-9327-ecab25c63ebf"
/>

  - [X] Execute an agent with at least 3 blocks
 
<img width="2026" alt="image"
src="https://github.com/user-attachments/assets/59d6d56b-2ccc-4af5-b511-4af312c3f7f8"
/>

  - [X] Confirm it executes correctly
</details>

<details>
  <summary>Structured Response Generator</summary>
  
  - [X] Start-up backend and frontend:
- Start backend with Docker services: `docker compose up -d --build`
     - Start frontend: `npm install && npm run dev`
- By visiting http://localhost:3000/, test inference and structured
outputs
  - [X] Create from scratch 
  - [X] Execute an agent 
<img width="2023" alt="image"
src="https://github.com/user-attachments/assets/d1107638-bf1b-45b1-a296-1e0fac29525b"
/>

  - [X] Confirm it executes correctly
</details>

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-05-14 19:45:40 +00:00
Nicholas Tindle
e8fa996c2f refactor(frontend): Move from remote loaded GTM to local (#9933)
<!-- Clearly explain the need for these changes: -->

As part of a small security review, we found that google won't let you
load with integrity. That seems insane but the general workaround is to
load a static copy of your own

### Changes 🏗️
Moves all the google analytics scripts in house instead of loading via
cdn
<!-- 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] tested it in a new isolated environment to confirm events still
work as expected everywhere they are used

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-05-14 16:07:40 +00:00
Krzysztof Czerwinski
e22d2c848a feat(frontend): Onboarding Updates 3 (#9916)
A collection of UX update and bug fixes for onboarding and wallet.

### Changes 🏗️

- Show spinner loading indicator when onboarding button is clicked
- Use `getLibraryAgentByStoreListingVersionID` instead of
`addMarketplaceAgentToLibrary` on congrats screen
- Fix `Not enough segments` issue: don't fetch onboarding when user is
logged out
- Minor updates
  - Fill some missing deps in deps arrays
  - `Spinner` component, styles updates
  - Use `useMemo`/`useCallback`
- Show error toast when onboarding agent fails to run:

<img width="405" alt="Screenshot 2025-05-06 at 5 09 01 PM"
src="https://github.com/user-attachments/assets/dd1272da-326a-448d-995d-98ac773b3ee4"
/>

### 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 can be completed
  - [x] Failing agent shows toast
  - [x] Wallet can be opened and works properly (tasks, confetti)
  - [x] Dependency arrays don't cause infinite loops
2025-05-14 14:29:29 +00:00
Krzysztof Czerwinski
c4bbfd5050 feat(frontend): Update login and signup feedback (#9917)
Currently both login and signup page show the same feedback on error on
cloud (join the waitlist).

### Changes 🏗️
Update login&signup feedback for cloud.

- Use cards for login and signup feedback instead of html list
- Make login page show prompt to redirect user to signup

<img width="474" alt="Screenshot 2025-05-07 at 4 01 07 PM"
src="https://github.com/user-attachments/assets/45f189ea-5fea-45bb-89f9-7323418d69ea"
/>
<img width="476" alt="Screenshot 2025-05-07 at 4 03 29 PM"
src="https://github.com/user-attachments/assets/96f4cd7f-f3e6-44b2-b647-96ee98063572"
/>

### 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] Signup&login works with correct credentials
  - [x] Signup&login shows correct error message on wrong credentials
  - [x] Links work correctly
2025-05-13 15:57:55 +00:00
Toran Bruce Richards
74e6a6a43a fix(frontend/library): Quick Patch for Rendering Agent Outputs (#9922)
<!-- Clearly explain the need for these changes: -->
The goal of this change is a quick and temporary tweak to improve the
displaying of output text in the Agent Runs screen.

This change is made anticipating that these outputs will be properly
improved in the near future, and is thus just a temporary change in
order to display text in a human readable format.

### Changes 🏗️
There is one change in this PR:
- The class of the Agent Output textbox is changed to properly display
text without impacting the design.
Below is a before and after of this change:

**Before**

![image](https://github.com/user-attachments/assets/5ecc16c8-8ffd-4cc6-a627-00502848450e)

**After**

![image](https://github.com/user-attachments/assets/5601c2a0-f32f-4c75-afec-d86dc0c5081d)


### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [ ] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [ ] ...

---------

Co-authored-by: Bentlybro <Github@bentlybro.com>
2025-05-08 11:41:27 +00:00
Reinier van der Leer
1ad6c76f9c feat(backend): Require discriminator value on graph save (#9858)
If a node has a multi-credentials input (e.g. AI Text Generator block)
but the discriminator value (e.g. model choice) is missing, the input
can't be discriminated into a single-provider input. Discrimination into
a single-provider input is necessary to make a graph-level credentials
input for use in the Library.

### Changes 🏗️

- feat(backend): Require discriminator fields to always have a value

- dx(frontend): Improve typing of discriminator stuff
- dx(frontend): Fix typing in `NodeOneOfDiscriminatorField` component

### 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] Saving & running graphs with and without credentials works
normally
- Note: We don't have any blocks with a discriminator that doesn't have
a default value, so currently I don't think it's possible to produce a
case where this mechanism would be triggered.
2025-05-08 09:45:22 +00:00
Bently
104928c614 feat(platform): Add captcha to login, signup and password reset pages (#9847)
This PR adds Cloudflare's Turnstile CAPTCHA to the login, signup, and
password reset pages. it is setup to only show and work when behave as
is set to CLOUD so it will not show for local hosted users.

### Changes 🏗️

#### Backend Changes
-
**[backend/server/v2/turnstile/routes.py](https://github.com/Significant-Gravitas/AutoGPT/compare/dev...bently/secrt-1169-implement-captcha-on-sign-up?expand=1#diff-2c5c2cb13346370fc48bdde8691a0d3bbfc030f7718288101b67b641c7948c10)**:
Created API endpoint at `/api/turnstile/verify` to proxy verification
requests to Cloudflare
-
**[backend/server/v2/turnstile/service.py](https://github.com/Significant-Gravitas/AutoGPT/compare/dev...bently/secrt-1169-implement-captcha-on-sign-up?expand=1#diff-296991fdc3ea821ae5a568ca96bb89789f2fc7dda7b62f59ef6bcadfaea16e56)**:
Implements service to verify CAPTCHA tokens with Cloudflare using
server-side secret key

#### Frontend Changes
-
**[frontend/src/lib/turnstile.ts](https://github.com/Significant-Gravitas/AutoGPT/compare/dev...bently/secrt-1169-implement-captcha-on-sign-up?expand=1#diff-a698e2718e0f6b0afe1d0c7fda571a7bfcbec6aeacc963c2b3620cc683dc4448)**:
Client-side function to call the backend verification endpoint
-
**[frontend/src/components/auth/Turnstile.tsx](https://github.com/Significant-Gravitas/AutoGPT/compare/dev...bently/secrt-1169-implement-captcha-on-sign-up?expand=1#diff-71a73d58d0ba5e46e5702f2f2599284e72a8fcf6c5d0b5c72e7358570d631aa7)**:
Reusable Turnstile component that renders and manages the CAPTCHA widget
-
**[frontend/src/hooks/useTurnstile.ts](https://github.com/Significant-Gravitas/AutoGPT/compare/dev...bently/secrt-1169-implement-captcha-on-sign-up?expand=1#diff-4a6a9363243ab2a88dbfb498917f464896ada059617bd8b0fb51df532c73827d)**:
Custom hook that manages Turnstile state and conditionally activates
based on environment

#### Auth Flow Integration
- Modified server actions in `login`, `signup`, and `reset_password` to
accept and verify Turnstile tokens
- Updated auth page components to integrate the CAPTCHA widget with form
submissions

### Configuration Changes
- Added two new environment variables:
- `NEXT_PUBLIC_CLOUDFLARE_TURNSTILE_SITE_KEY`: Public site key for
frontend
- `CLOUDFLARE_TURNSTILE_SECRET_KEY`: Secret key for backend verification

### Test Plan 📋
- Ask Bently for the keys to test locally!
- [x] Test login, signup and password reset with Turnstile enabled
(BEHAVE_AS=CLOUD)
- [x] Verify CAPTCHA appears and must be completed before form
submission
  - [x] Verify error message appears if CAPTCHA is not completed
  - [x] Verify form submission works after completing CAPTCHA
- [x] Test login, signup and password reset with Turnstile disabled
(BEHAVE_AS=LOCAL)
  - [x] Verify CAPTCHA does not appear
  - [x] Verify form submission works without CAPTCHA
- [x] Test with invalid site key to ensure proper error handling

---------

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
2025-05-07 21:08:12 +00:00
Krzysztof Czerwinski
6f1578239a feat(platform): Update Marketplace Agent listing buttons (#9843)
Currently agent listing on Marketplace have bad UX.

### Changes 🏗️

- Add function and endpoint to check if user has `LibraryAgent` by given
`storeListingVersionId`
- Redesign listing buttons
- `Add to library` shown when user is logged in and doesn't have an
agent in library
  - `See runs` shown when user logged in as has the agent in the library
  - `Download agent` always shown
  - Disabled buttons during processing (adding/downloading)
- Stop raising when owner is trying to add own agent. Now it'll simply
redirect to Library.
- Remove button appearing/flickering after a delay on listing page -
logged in status is now checked in server component.
- Show error toast on adding/redirecting to library and downloading
error
- Update breadcrumbs and page title to say `Marketplace` instead of
`Store`
- `font-geist` -> `font-sans` (`font-geist` var doesn't exist)

### 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] Button on a listing is `Add to library` (no library agent)
  - [x] Agent can be added and user is redirected
- [x] Button on the listing is `See runs` and clicking it redirects to
the library agent
  - [x] Remove agent from library
  - [x] Buttons shows `Add to library` again
  - [x] Agent can be re-added
  - [x] Agent can be downloaded
  - [x] `Add to library` Button is hidden when user is logged out

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2025-05-05 16:47:58 +00:00
Krzysztof Czerwinski
59ec61ef98 feat(platform): Onboarding design&UX update (#9905)
A collection of updates regarding onboarding and wallet.

### Changes 🏗️

- `try-except` instead of `if` when rewarding (skip unnecessary db call)
- Make external services question onboarding step optional
- Add `SmartImage` component to lazy load images with pulse animation
and use it throughout onboarding
- Use store agent name instead of graph graph name (run page)
- Fix some images breaking layout on the agent card (run page)
- Center agent card vertically and horizontally (center on the left half
of page) (run page)
- Delay and tweak confetti when opening wallet and when task finished
(wallet)
- Flash wallet when credits change value
- Make tutorial video grayscale on completed steps (wallet)
- Fix confetti triggering on page refresh (wallet)
- Redirect to agent run page instead of Library after onboarding
- Expand task groups by default (wallet) - this means tutorial videos
are visible by default

### 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] Services step is optional and skipping it doesn't break onboarding
  - [x] `SmartImage` works properly
  - [x] Agent card is aligned properly, including on page scroll
  - [x] Wallet flash when credits value change
  - [x] User is redirected to the agent runs page after onboarding
2025-05-02 14:42:01 +00:00
Bently
602f887623 feat(frontend): fix admin add dollars (#9898)
Fixes the admin add dollars, in the ``add-money-button.tsx`` file, in
the handleApproveSubmit action it was trying to use formatCredits for
the value which is wrong, this fix changes it

```diff
 <form action={handleApproveSubmit}>
   <input type="hidden" name="id" value={userId} />
   <input
     type="hidden"
     name="amount"
-    value={formatCredits(Number(dollarAmount))}
+    value={Math.round(parseFloat(dollarAmount) * 100)}
   />
```
i was able to add $1, $0.10 and $0.01

![image](https://github.com/user-attachments/assets/3a3126c2-5f17-4c9b-8657-4372332a0ea3)
2025-04-30 17:24:26 +00:00
Nicholas Tindle
04c4340ee3 feat(frontend,backend): user spending admin dashboard (#9751)
<!-- Clearly explain the need for these changes: -->
We need a way to refund people who spend money on agents wihout making
manual db actions

### Changes 🏗️
- Adds a bunch for refunding users
- Adds reasons and admin id for actions
- Add admin to db manager
- Add UI for this for the admin panel
- Clean up pagination controls
<!-- Concisely describe all of the changes made in this pull request:
-->

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Test by importing dev db as baseline
- [x] Add transactions on top for "refund", and make sure all existing
transactions work

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2025-04-29 17:39:25 +00:00
Nicholas Tindle
8fdfd75cc4 feat: allow admins to download agents for review (#9881)
<!-- Clearly explain the need for these changes: -->
for admins to approve agents for the marketplace, we need to be able to
run them. this is a quick workaround for downloading them so you can put
them in your marketplace to check

### Changes 🏗️
- clones various endpoints related to downloading into an admin side
with logging, and admin checks
- adds download button and removes open in builder action
<!-- Concisely describe all of the changes made in this pull request:
-->

### 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 downloading agents from local marketplace
2025-04-28 17:58:23 +00:00
Abhimanyu Yadav
5b5b2043e8 fix(frontend): Add support to optional multiselect (#9885)
- fix #9882 

we’re currently using optional multi select, and it’s working great.
We’re able to correctly determine the data type for it. However, there’s
a small issue. We’re not using the correct subSchema that is inside
anyOf on the multi select input. This is why we’re getting the problem
on the Twitter block. It’s the only one that’s using this type of input,
so it’s the only one that’s affected.

![Screenshot 2025-04-26 at 5 39
51 PM](https://github.com/user-attachments/assets/834d64d8-84dc-4dbd-a03a-df03172ecee5)

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-28 15:18:29 +00:00
Zamil Majdy
4ddb206f86 feat(frontend): Add billing page toggle (#9877)
### Changes 🏗️

Provide a system toggle for disabling the billing page:
NEXT_PUBLIC_SHOW_BILLING_PAGE

### 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] Toggle `NEXT_PUBLIC_SHOW_BILLING_PAGE` value.
2025-04-24 19:33:20 +00:00
Krzysztof Czerwinski
11a69170b5 feat(frontend): Update "Edit a copy" modal and buttons (#9876)
Update "Edit a copy" modal text when copying marketplace agent in
Library. Update agent action buttons to reflect the design accurately.

### Changes 🏗️

- Update modal text
- Disable copying owned agents (only marketplace allowed)
- `Open in Builder` -> `Customize agent`
- Disabled `Customize agent` instead of hiding
- Change `Delete agent` to non-destructive design

### 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:
  - [ ] ...
2025-04-24 16:30:43 +00:00
Krzysztof Czerwinski
c80d357149 feat(frontend): Use route groups (#9855)
Navbar sometimes disappears outside `/onboarding`.

### Changes 🏗️

This PR solves the problem of disappearing Navbar outside `/onboarding`
by introducing `app/(platform)` route group.

- Move all routes requiring Navbar to `app/(platform)`
- Move `<Navbar>` to `app/(platform)/layout.tsx`
- Move `/onboarding` to `app/(no-navbar/`
- Remove pathname injection to header from middleware and stop relying
on it to hide the navbar

### 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] Common routes work properly
2025-04-22 09:10:12 +00:00
Abhimanyu Yadav
69b8d96516 fix(library/run): Replace credits to cents (#9845)
Replacing credits with cents (100 credits = 1$).

I haven’t touched anything internally, just changed the UI.

Everything is working great.

On the frontend, there’s no other place where we use credits instead of
dollars.

![Screenshot 2025-04-19 at 11 36
00 AM](https://github.com/user-attachments/assets/de799b5c-094e-4c96-a7da-273ce60b2125)
<img width="1503" alt="Screenshot 2025-04-19 at 11 33 24 AM"
src="https://github.com/user-attachments/assets/87d7e218-f8f5-4e2e-92ef-70c81735db6b"
/>
2025-04-21 12:31:48 +00:00
Abhimanyu Yadav
2a92970a5f fix(marketplace/library): Removing white borders from Avatar (#9818)
There are some white borders around the avatar in the store card, but
they are not present in the design, so I'm removing them.

![Screenshot 2025-04-15 at 3 58
05 PM](https://github.com/user-attachments/assets/f8c98076-9cc3-46f1-b4f3-41d4e48f6127)
2025-04-19 05:36:36 +00:00
Reinier van der Leer
417d7732af feat(platform/library): Add credentials UX on /library/agents/[id] (#9789)
- Resolves #9771
- ... in a non-persistent way, so it won't work for webhook-triggered
agents
    For webhooks: #9541

### Changes 🏗️

Frontend:
- Add credentials inputs in Library "New run" screen (based on
`graph.credentials_input_schema`)
- Refactor `CredentialsInput` and `useCredentials` to not rely on XYFlow
context

- Unsplit lists of saved credentials in `CredentialsProvider` state

- Move logic that was being executed at component render to `useEffect`
hooks in `CredentialsInput`

Backend:
- Implement logic to aggregate credentials input requirements to one per
provider per graph
- Add `BaseGraph.credentials_input_schema` (JSON schema) computed field
    Underlying added logic:
- `BaseGraph._credentials_input_schema` - makes a `BlockSchema` from a
graph's aggregated credentials inputs
- `BaseGraph.aggregate_credentials_inputs()` - aggregates a graph's
nodes' credentials inputs using `CredentialsFieldInfo.combine(..)`
- `BlockSchema.get_credentials_fields_info() -> dict[str,
CredentialsFieldInfo]`
- `CredentialsFieldInfo` model (created from
`_CredentialsFieldSchemaExtra`)

- Implement logic to inject explicitly passed credentials into graph
execution
  - Add `credentials_inputs` parameter to `execute_graph` endpoint
- Add `graph_credentials_input` parameter to
`.executor.utils.add_graph_execution(..)`
  - Implement `.executor.utils.make_node_credentials_input_map(..)`
  - Amend `.executor.utils.construct_node_execution_input`
  - Add `GraphExecutionEntry.node_credentials_input_map` attribute
  - Amend validation to allow injecting credentials
    - Amend `GraphModel._validate_graph(..)`
    - Amend `.executor.utils._validate_node_input_credentials`
- Add `node_credentials_map` parameter to
`ExecutionManager.add_execution(..)`
    - Amend execution validation to handle side-loaded credentials
    - Add `GraphExecutionEntry.node_execution_map` attribute
- Add mechanism to inject passed credentials into node execution data
- Add credentials injection mechanism to node execution queueing logic
in `Executor._on_graph_execution(..)`

- Replace boilerplate logic in `v1.execute_graph` endpoint with call to
existing `.executor.utils.add_graph_execution(..)`
- Replace calls to `.server.routers.v1.execute_graph` with
`add_graph_execution`

Also:
- Address tech debt in `GraphModel._validate_gaph(..)`
- Fix type checking in `BaseGraph._generate_schema(..)`

#### TODO
- [ ] ~~Make "Run again" work with credentials in
`AgentRunDetailsView`~~
- [ ] Prohibit saving a graph if it has nodes with missing discriminator
value for discriminated credentials inputs

### 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: -->
  - [ ] ...
2025-04-18 14:27:13 +00:00
Krzysztof Czerwinski
f16a398a8e feat(frontend): Update completed task group design in Wallet (#9820)
This redesigns how the task group is displayed when finished for both
expanded and folded state.

### Changes 🏗️

- Folded state now displays `Done` badge and hides tasks
- Expanded state shows only task names and hides details and video

Screenshot:
1. Expanded unfinished group
2. Expanded finished group
3. Folded finished group

<img width="463" alt="Screenshot 2025-04-15 at 2 05 31 PM"
src="https://github.com/user-attachments/assets/40152073-fc0e-47c2-9fd4-a6b0161280e6"
/>

### 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] Finished group displays correctly
  - [x] Unfinished group displays correctly
2025-04-18 09:45:35 +00:00
Krzysztof Czerwinski
e8bbd945f2 feat(frontend): Wallet top-up and auto-refill (#9819)
### Changes 🏗️

- Add top-up and auto-refill tabs in the Wallet
- Add shadcn `tabs` component
- Disable increase/decrease spinner buttons on number inputs across
Platform (moved css from `customnode.css` to `globals.css`

### 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] Incorrect values are detected properly
  - [x] Top-up works
  - [x] Setting auto-refill works
2025-04-18 09:44:54 +00:00
Zamil Majdy
c0ee71fb27 fix(frontend/builder): Fix key-value pair input for any non-string types (#9826)
- Resolves #9823 

The key-value pairs input, like those used in CreateDictionaryBlock, are
assumed to be either a numeric or a string type.
When it has `any` type, it was randomly assumed to be a numeric type. 

### Changes 🏗️

Only convert to number when it's explicitly defined to do so on
key-value pair 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] Tried two different key-value pair input: AiTextGenerator &
CreateDictionary
2025-04-16 11:10:50 +00:00
Zamil Majdy
dc9348ec26 fix(frontend): Fix Input value mixup on Library page (#9821)
### Changes 🏗️

Fix this broken behaviors:
Input data mix-up caused by running two different executions of the same
agent with the same 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] Run agent with old user
- [x] Running two different executions of the same agent with the same
input.
2025-04-16 09:31:07 +00:00
Zamil Majdy
3ccbc31705 Revert: fix(frontend): Fix Input value mixup on Library page & broken marketplace on no onboarding data 2025-04-15 21:28:43 +02:00
Zamil Majdy
7cf0c6fe46 fix(frontend): Fix Input value mixup on Library page & broken marketplace on no onboarding data 2025-04-15 21:25:25 +02:00
Zamil Majdy
c69faa2a94 fix(frontend): Fix Input value mixup on Library page & broken marketplace on no onboarding data 2025-04-15 21:24:39 +02:00
Krzysztof Czerwinski
d791cdea76 feat(platform): Onboarding Phase 2 (#9736)
### Changes 🏗️

- Update onboarding to give user rewards for completing steps
- Remove `canvas-confetti` lib and add `party-js` instead; the former
didn't allow to play confetti from a component
- Add onboarding videos in `frontend/public/onboarding/`
- Remove Balance (`CreditsCard.tsx`) and add openable `Wallet.tsx` (and
accompanying `WalletTaskGroup.tsx`) instead that displays grouped
onboarding tasks with descriptions and short instructional videos
- Further relevant updates to `useOnboarding`, `types.ts`
- Implement onboarding rewards
- Add `onboarding_reward` function in `credit.py` that is used to reward
user for finished onboarding tasks safely - transaction key is
deterministic, so the same user won't be rewarded twice for the same
step.
  - Add `reward_user` in `onboarding.py`
- Update `UserOnboarding` model and add a migration

<img width="464" alt="Screenshot 2025-04-05 at 6 06 29 PM"
src="https://github.com/user-attachments/assets/fca8d09e-0139-466b-b679-d24117ad01f0"
/>

### 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
  - [x] Tasks can be completed
  - [x] Rewards are added correctly for all completed tasks
2025-04-12 10:56:59 +00:00
Abhimanyu Yadav
4621a95bf3 fix(marketplace): Fix small UI bugs (#9800)
Resolving the bugs listed below
- #9796 
- #9797 
- #9798 
- #8998 
- #9799 

### Changes I have made 
- Removed border and set border-radius to `24px` in FeaturedCard
- Removed `white` background from breadcrumbs
- Changed distance between featured section arrow from `28px` to `12px`
- Added `1.5rem` spacing and changed color to `gray-200` on the
creator’s page separator
- Removed focus ring from the Search Library input
- And some small UI changes on marketplace

### Screenshots

<img width="658" alt="Screenshot 2025-04-10 at 3 26 56 PM"
src="https://github.com/user-attachments/assets/22bef6f0-19b9-42a6-8227-fedca33141ba"
/>

<img width="505" alt="Screenshot 2025-04-10 at 3 27 07 PM"
src="https://github.com/user-attachments/assets/2a5409a1-94c6-4d15-a35d-e4ed9b075055"
/>

<img width="1373" alt="Screenshot 2025-04-10 at 3 28 39 PM"
src="https://github.com/user-attachments/assets/046ea726-2a98-4000-abc8-9139fffe80dc"
/>

<img width="368" alt="Screenshot 2025-04-10 at 3 29 07 PM"
src="https://github.com/user-attachments/assets/4e0510ad-f535-4760-a703-651766ff522b"
/>
2025-04-11 13:09:35 +00:00
Abhimanyu Yadav
8d8a6e450f fix(marketplace): Render newline in marketplace description text (#9808)
- fix #9177 

Add `whitespace-pre-line` tailwind property to allow newline rendering
in marketplace description text

### Before

![Screenshot 2025-04-11 at 10 32
23 AM](https://github.com/user-attachments/assets/b07f58b6-218e-4b33-a018-93757e59cd8d)

### After

![Screenshot 2025-04-11 at 10 32
59 AM](https://github.com/user-attachments/assets/f1086ee4-aef3-491a-ba81-cf681086f67b)
2025-04-11 10:50:32 +00:00
Abhimanyu Yadav
3e6d9bf963 fix(marketplace): Fixing margins between headers, divider and content (#9757)
- fix #9003 
- fix - #8969 
- fix #8970 

Adding correct margins in between headers, divider and content.

### Changes made

- Remove any vertical padding or margin from the section.
- Add top and bottom margins to the separator, so the spacing between
sections is handled only by the separator.
- Also, add a size prop in AvatarFallback because its size is currently
broken. It’s not able to extract the size properly from the className.
2025-04-10 13:04:16 +00:00
Reinier van der Leer
353396110c refactor(backend): Clean up Library & Store DB schema (#9774)
Distilled from #9541 to reduce the scope of that PR.

- Part of #9307

-  Blocks #9786
  -  Blocks #9541

### Changes 🏗️

- Fix `LibraryAgent` schema (for #9786)
- Fix relationships between `LibraryAgent`, `AgentGraph`, and
`AgentPreset`
  - Impose uniqueness constraint on `LibraryAgent`

- Rename things that are called `agent` that actually refer to a
`graph`/`agentGraph`
- Fix singular/plural forms in DB schema
- Simplify reference names of closely related objects (e.g.
`AgentGraph.AgentGraphExecutions` -> `AgentGraph.Executions`)

- Eliminate use of `# type: ignore` in DB statements
  - Add `typed` and `typed_cast` utilities to `backend.util.type`

### 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] CI static type checking (with all risky `# type: ignore` removed)
  - [x] Check that column references in views are updated
2025-04-10 10:40:25 +00:00
Abhimanyu Yadav
70890dee43 fix(marketplace): Fix store card style (#9769)
- fix #9222 
- fix #9221 
- fix #8966

### Changes made
- Standardized the height of store cards.
- Corrected spacing and responsiveness behavior.
- Removed horizontal margin and max-width from the featured section.
- Fixed the aspect ratio of the agent image in the store card.
- Now, a normal desktop screen displays 3 columns of agents instead of
4.

<img width="1512" alt="Screenshot 2025-04-07 at 7 09 40 AM"
src="https://github.com/user-attachments/assets/50d3b5c9-4e7c-456e-b5f1-7c0093509bd3"
/>
2025-04-10 10:31:14 +00:00
Krzysztof Czerwinski
0aeaaa7801 fix(frontend): Fill defaults from schema to hardcodedValues in CustomNode.tsx (#9772)
Fix https://github.com/Significant-Gravitas/AutoGPT/pull/9632

### Changes 🏗️

- Set default values from input schema to `hardcodedValues` in
`CustomNode.tsx`

### 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] Default values are correctly applied to newly created node
2025-04-07 16:53:57 +00:00
Abhimanyu Yadav
2e5a770f35 fix(marketplace): Fix typography of heading in marketplace (#9737)
- fix #8956

### Changes:
- Updated line height from 28px to 36px for improved readability.
- Ensured that all section headings (“Featured agents”, “Top agents”,
“Featured creators”, and “Become a creator”) now have a uniform style.
- Verified that font-poppins is correctly set in the Tailwind config
file and layout.tsx.
- Color changed from #282828 to #262626

### Scope:
- This PR only includes typography-related adjustments.

![Screenshot 2025-04-02 at 5 29
05 PM](https://github.com/user-attachments/assets/e27b0d52-d8c7-4921-ae18-e3f75264e74d)
2025-04-07 10:28:28 +00:00