Commit Graph

60 Commits

Author SHA1 Message Date
akumatus
50b3f5f7df fix(core): ai history of new users is always loading, enable online search by default (#11741)
Close [AI-69](https://linear.app/affine-design/issue/AI-69).
2025-04-17 02:53:41 +00:00
yoyoyohamapi
0df584bd5e refactor(core): add keyPress event to fix IME space detection (#11700)
### TL;DR
Refactor space-triggered AI Widget activation logic from `keydown` to `keypress` event listeners

### Background

The `keydown` event triggered by a space may originate from:
1. Normal space insertion
2. Space triggered by input method confirming candidate words

In scenarios like (2), some browsers (see [ISSUE](https://github.com/toeverything/AFFiNE/issues/11541)) and input method callbacks produce events identical to scenario (1),making it impossible to distinguish between the two.

To fix this, the space-activated AI listener uses the `keypress` event:
In scenario 2, `event.which !== 32` (may be `30430` or other values) can be used to differentiate from scenario 1.

> CLOSE BS-3081
2025-04-15 08:37:27 +00:00
yoyoyohamapi
d494394c8d test(core): common setup for ai tests (#11644)
### TL:DR

By sharing initialization logic, accelerate test case execution.

### What Changed

* Global setup for copilot e2e
  * Login
  * Create Workspace
* Enable fully parallel for ci

### Optimization Comparison​

Comparing with PR [fix(core): ask AI input box in the whiteboard is blocked by the menu …](https://github.com/toeverything/AFFiNE/pull/11634):

|           |    Shard 1   |2|3|4|5|6|7|8|
| ------|----|----|----|----|----|---|---|--|
|Before|15min|14min|14min|14min|14min|13min|15min|10min|
|After|8min|11min|8min|8min|8min|8min|8min|7min|

### Trade-Off

Since all copilot use cases currently share a single user and workspace, some test cases need to focus on **isolation** and **independence**.
For example, when testing Embedding-related workflows:
* Different document contents should be used to avoid interference.
* After each test case execution, **cleanup** operations are also required.
* Some tests should be configured to **serial** mode.

```ts
test.describe.configure({ mode: 'serial' });

test.describe('AIChatWith/Collections', () => {
  test.beforeEach(async ({ loggedInPage: page, utils }) => {
    await utils.testUtils.setupTestEnvironment(page);
    await utils.chatPanel.openChatPanel(page);
    await utils.editor.clearAllCollections(page);

    await utils.testUtils.createNewPage(page);
  });

  test.afterEach(async ({ loggedInPage: page, utils }) => {
    // clear all collections
    await utils.editor.clearAllCollections(page);
  });

  test('should support chat with collection', async ({
    loggedInPage: page,
    utils,
  }) => {
    // Create two collections
    await utils.editor.createCollectionAndDoc(
      page,
      'Collection 1',
      'CollectionAAaa is a cute dog'
    );

    await utils.chatPanel.chatWithCollections(page, ['Collection 1']);
    await utils.chatPanel.makeChat(page, 'What is CollectionAAaa(Use English)');
    // ...
  });

  test('should support chat with multiple collections', async ({
    loggedInPage: page,
    utils,
  }) => {
    // Create two collections
    await utils.editor.createCollectionAndDoc(
      page,
      'Collection 2',
      'CollectionEEee is a cute cat'
    );

    await utils.editor.createCollectionAndDoc(
      page,
      'Collection 3',
      'CollectionFFff is a cute dog'
    );

    await utils.chatPanel.chatWithCollections(page, [
      'Collection 2',
      'Collection 3',
    ]);
    await utils.chatPanel.makeChat(
      page,
      'What is CollectionEEee? What is CollectionFFff?(Use English)'
    );
    // ...
  });
});

```

> CLOSE AI-51
2025-04-14 02:42:06 +00:00
yoyoyohamapi
149433b8d0 fix(core): cannot focus inside shape in test (#11630) 2025-04-11 05:26:27 +00:00
yoyoyohamapi
25418b402a fix(core): replace zero-width non-ioiner for editor content​ (#11591) 2025-04-10 11:55:31 +00:00
forehalo
40f218c898 chore: set base version to 0.21 2025-04-07 16:10:32 +08:00
yoyoyohamapi
030af6f426 test(core): edgeless shape e2e (#11446)
### TL;DR

Add Edgeless shape ai e2e tests.

### What Changed

- Add Edgeless shape make it real e2e
- Add Edgeless shape generate image e2e
- Fix Edgeless generate headings e2e
2025-04-03 16:53:20 +00:00
akumatus
6cf182190c refactor(core): remove useless chat-input components (#11426)
Close [BS-2583](https://linear.app/affine-design/issue/BS-2583).
2025-04-03 14:53:50 +00:00
fundon
a1500e3ee1 fix(editor): textarea not focusing in AI panel (#11429)
Closes: [BS-3006](https://linear.app/affine-design/issue/BS-3006/insider上面,圈选yuan素后,ad-hoc的ai对话框焦点控制有大问题(无法对焦,总是会跳走))
2025-04-03 03:27:26 +00:00
yoyoyohamapi
c61df18ab9 test(core): chat with collection & tags (#11388)
### TL:DR

* AI chat with collection E2E
* AI chat with tag E2E

> Close BS-3007
2025-04-03 02:46:08 +00:00
yoyoyohamapi
317d3e7ea6 test(core): split and enhance copilot e2e tests (#11007)
### TL;DR

Split and enhance copilot e2e tests.

### What Changed

#### Tests Structure

The e2e tests are organized into the following categories:

1. **Basic Tests (`/basic`)**: Tests for verifying core AI capabilities including feature onboarding, authorization workflows, and basic chat interactions.
2. **Chat Interaction Tests (`/chat-with`)**: Tests for verifying the AI's interaction with various ​object types, such as attachments, images, text content, Edgeless elements, etc.
3. **AI Action Tests (`/ai-action`)**: Tests for verifying the AI's actions, such as text translation, gramma correction, etc.
4. **Insertion Tests (`/insertion`)**: Tests for verifying answer insertion functionality.

#### Tests Writing

Writing a copilot test cases is easier and clear

e.g.
```ts
test('support chat with specified doc', async ({ page, utils }) => {
  // Initialize the doc
  await focusDocTitle(page);
  await page.keyboard.insertText('Test Doc');
  await page.keyboard.press('Enter');
  await page.keyboard.insertText('EEee is a cute cat');

  await utils.chatPanel.chatWithDoc(page, 'Test Doc');

  await utils.chatPanel.makeChat(page, 'What is EEee?');
  await utils.chatPanel.waitForHistory(page, [
    {
      role: 'user',
      content: 'What is EEee?',
    },
    {
      role: 'assistant',
      status: 'success',
    },
  ]);

  const { content } = await utils.chatPanel.getLatestAssistantMessage(page);
  expect(content).toMatch(/EEee/);
});
```

#### Summary

||Cases|
|------|----|
|Before|19||
|After|151||

> Close BS-2769
2025-03-29 03:41:09 +00:00
akumatus
aefbc11aab feat(core): add candidates popover in ai chat-panel (#11178)
Close [BS-2853](https://linear.app/affine-design/issue/BS-2853).
2025-03-25 15:50:11 +00:00
renovate
0773a719d5 chore: bump up all non-major dependencies (#10920)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@ai-sdk/google](https://sdk.vercel.ai/docs) ([source](https://redirect.github.com/vercel/ai)) | [`1.1.19` -> `1.1.26`](https://renovatebot.com/diffs/npm/@ai-sdk%2fgoogle/1.1.19/1.1.26) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@ai-sdk%2fgoogle/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@ai-sdk%2fgoogle/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@ai-sdk%2fgoogle/1.1.19/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@ai-sdk%2fgoogle/1.1.19/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@react-email/components](https://redirect.github.com/resend/react-email) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/components)) | [`0.0.33` -> `0.0.34`](https://renovatebot.com/diffs/npm/@react-email%2fcomponents/0.0.33/0.0.34) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@react-email%2fcomponents/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@react-email%2fcomponents/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@react-email%2fcomponents/0.0.33/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@react-email%2fcomponents/0.0.33/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@sentry/electron](https://redirect.github.com/getsentry/sentry-electron) | [`6.1.0` -> `6.2.0`](https://renovatebot.com/diffs/npm/@sentry%2felectron/6.1.0/6.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2felectron/6.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2felectron/6.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2felectron/6.1.0/6.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2felectron/6.1.0/6.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`9.5.0` -> `9.6.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.5.0/9.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.5.0/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.5.0/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`9.5.0` -> `9.6.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.5.0/9.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.5.0/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.5.0/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@slack/web-api](https://tools.slack.dev/node-slack-sdk/web-api) ([source](https://redirect.github.com/slackapi/node-slack-sdk)) | [`7.8.0` -> `7.9.0`](https://renovatebot.com/diffs/npm/@slack%2fweb-api/7.8.0/7.9.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@slack%2fweb-api/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@slack%2fweb-api/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@slack%2fweb-api/7.8.0/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@slack%2fweb-api/7.8.0/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@storybook/addon-essentials](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/essentials) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials)) | [`8.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/addon-interactions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/interactions) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions)) | [`8.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links)) | [`8.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/addon-mdx-gfm](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/gfm) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/gfm)) | [`8.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-mdx-gfm/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-mdx-gfm/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-mdx-gfm/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-mdx-gfm/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/react](https://redirect.github.com/storybookjs/storybook/tree/next/code/renderers/react) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/renderers/react)) | [`8.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/react-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/react-vite) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite)) | [`8.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact-vite/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact-vite/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.11.9` -> `1.11.11`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.11.9/1.11.11) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.11.9/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.11.9/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`19.0.10` -> `19.0.12`](https://renovatebot.com/diffs/npm/@types%2freact/19.0.10/19.0.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/19.0.10/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/19.0.10/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitejs/plugin-react-swc](https://redirect.github.com/vitejs/vite-plugin-react-swc) | [`3.8.0` -> `3.8.1`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-react-swc/3.8.0/3.8.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-react-swc/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-react-swc/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-react-swc/3.8.0/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-react-swc/3.8.0/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/coverage-istanbul](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [ai](https://sdk.vercel.ai/docs) ([source](https://redirect.github.com/vercel/ai)) | [`4.1.51` -> `4.1.63`](https://renovatebot.com/diffs/npm/ai/4.1.51/4.1.63) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ai/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ai/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ai/4.1.51/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ai/4.1.51/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [bullmq](https://bullmq.io/) ([source](https://redirect.github.com/taskforcesh/bullmq)) | [`5.43.1` -> `5.44.0`](https://renovatebot.com/diffs/npm/bullmq/5.43.1/5.44.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/bullmq/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/bullmq/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/bullmq/5.43.1/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bullmq/5.43.1/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [foxact](https://foxact.skk.moe) ([source](https://redirect.github.com/SukkaW/foxact)) | [`0.2.44` -> `0.2.45`](https://renovatebot.com/diffs/npm/foxact/0.2.44/0.2.45) | [![age](https://developer.mend.io/api/mc/badges/age/npm/foxact/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/foxact/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/foxact/0.2.44/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/foxact/0.2.44/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) | [`1.24.1` -> `1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.1/1.24.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.482.0` -> `^0.483.0`](https://renovatebot.com/diffs/npm/lucide-react/0.482.0/0.483.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.482.0/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.482.0/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [mimalloc](https://redirect.github.com/purpleprotocol/mimalloc_rust) | `0.1.43` -> `0.1.44` | [![age](https://developer.mend.io/api/mc/badges/age/crate/mimalloc/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/mimalloc/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/mimalloc/0.1.43/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/mimalloc/0.1.43/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid) | [`5.1.4` -> `5.1.5`](https://renovatebot.com/diffs/npm/nanoid/5.1.4/5.1.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid) | [`5.1.4` -> `5.1.5`](https://renovatebot.com/diffs/npm/nanoid/5.1.4/5.1.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [nestjs-cls](https://papooch.github.io/nestjs-cls/) ([source](https://redirect.github.com/Papooch/nestjs-cls)) | [`5.4.0` -> `5.4.1`](https://renovatebot.com/diffs/npm/nestjs-cls/5.4.0/5.4.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nestjs-cls/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nestjs-cls/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nestjs-cls/5.4.0/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nestjs-cls/5.4.0/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [openai](https://redirect.github.com/openai/openai-node) | [`4.87.3` -> `4.88.0`](https://renovatebot.com/diffs/npm/openai/4.87.3/4.88.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.87.3/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.87.3/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [playwright](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/playwright/1.51.0/1.51.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/playwright/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [react-day-picker](https://daypicker.dev) ([source](https://redirect.github.com/gpbl/react-day-picker)) | [`9.6.2` -> `9.6.3`](https://renovatebot.com/diffs/npm/react-day-picker/9.6.2/9.6.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-day-picker/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-day-picker/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-day-picker/9.6.2/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-day-picker/9.6.2/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [sinon](https://sinonjs.org/) ([source](https://redirect.github.com/sinonjs/sinon)) | [`19.0.2` -> `19.0.4`](https://renovatebot.com/diffs/npm/sinon/19.0.2/19.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sinon/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sinon/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sinon/19.0.2/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sinon/19.0.2/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [storybook](https://redirect.github.com/storybookjs/storybook/tree/next/code/lib/cli) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/cli)) | [`8.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/storybook/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [text-splitter](https://redirect.github.com/benbrandt/text-splitter) | `0.24.1` -> `0.24.2` | [![age](https://developer.mend.io/api/mc/badges/age/crate/text-splitter/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/text-splitter/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/text-splitter/0.24.1/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/text-splitter/0.24.1/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [typedoc](https://typedoc.org) ([source](https://redirect.github.com/TypeStrong/TypeDoc)) | [`^0.27.4` -> `^0.28.0`](https://renovatebot.com/diffs/npm/typedoc/0.27.9/0.28.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.27.9/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.27.9/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [typedoc-plugin-markdown](https://typedoc-plugin-markdown.org) ([source](https://redirect.github.com/typedoc2md/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown)) | [`4.5.0` -> `4.5.2`](https://renovatebot.com/diffs/npm/typedoc-plugin-markdown/4.5.0/4.5.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc-plugin-markdown/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc-plugin-markdown/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc-plugin-markdown/4.5.0/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc-plugin-markdown/4.5.0/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [uniffi](https://mozilla.github.io/uniffi-rs) ([source](https://redirect.github.com/mozilla/uniffi-rs)) | `0.29.0` -> `0.29.1` | [![age](https://developer.mend.io/api/mc/badges/age/crate/uniffi/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/uniffi/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/uniffi/0.29.0/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/uniffi/0.29.0/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [net.java.dev.jna:jna](https://redirect.github.com/java-native-access/jna) | `5.16.0` -> `5.17.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/net.java.dev.jna:jna/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/net.java.dev.jna:jna/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/net.java.dev.jna:jna/5.16.0/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/net.java.dev.jna:jna/5.16.0/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |

---

### Release Notes

<details>
<summary>vercel/ai (@&#8203;ai-sdk/google)</summary>

### [`v1.1.26`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.26)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.25...@ai-sdk/google@1.1.26)

##### Patch Changes

-   [`0bd5bc6`](https://redirect.github.com/vercel/ai/commit/0bd5bc6): feat (ai): support model-generated files
-   Updated dependencies \[[`0bd5bc6`](https://redirect.github.com/vercel/ai/commit/0bd5bc6)]
    -   [@&#8203;ai-sdk/provider](https://redirect.github.com/ai-sdk/provider)[@&#8203;1](https://redirect.github.com/1).0.12
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.14

### [`v1.1.25`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.25)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.24...@ai-sdk/google@1.1.25)

##### Patch Changes

-   Updated dependencies \[[`2e1101a`](https://redirect.github.com/vercel/ai/commit/2e1101a)]
    -   [@&#8203;ai-sdk/provider](https://redirect.github.com/ai-sdk/provider)[@&#8203;1](https://redirect.github.com/1).0.11
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.13

### [`v1.1.24`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.24)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.23...@ai-sdk/google@1.1.24)

##### Patch Changes

-   [`5261762`](https://redirect.github.com/vercel/ai/commit/5261762): fix (provider/google): ensure correct finishReason for tool calls in streaming response

### [`v1.1.23`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.23)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.22...@ai-sdk/google@1.1.23)

##### Patch Changes

-   [`413f5a7`](https://redirect.github.com/vercel/ai/commit/413f5a7): feat (providers/google): add gemma 3 model id

### [`v1.1.22`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/react%401.1.22)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.21...@ai-sdk/google@1.1.22)

##### Patch Changes

-   Updated dependencies \[[`1531959`](https://redirect.github.com/vercel/ai/commit/1531959)]
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.12
    -   [@&#8203;ai-sdk/ui-utils](https://redirect.github.com/ai-sdk/ui-utils)[@&#8203;1](https://redirect.github.com/1).1.18

### [`v1.1.21`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.21)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.20...@ai-sdk/google@1.1.21)

##### Patch Changes

-   Updated dependencies \[[`1531959`](https://redirect.github.com/vercel/ai/commit/1531959)]
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.12

### [`v1.1.20`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/react%401.1.20)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.19...@ai-sdk/google@1.1.20)

##### Patch Changes

-   [`6255fbc`](https://redirect.github.com/vercel/ai/commit/6255fbc): fix (ai/react): update messages when initialMessages changes

</details>

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

### [`v1.51.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.51.1)

[Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.51.0...v1.51.1)

##### Highlights

[https://github.com/microsoft/playwright/issues/35093](https://redirect.github.com/microsoft/playwright/issues/35093) - \[Regression]: TimeoutOverflowWarning: [`2149630`](https://redirect.github.com/microsoft/playwright/commit/2149630296).634 does not fit into a 32-bit signed integer
[https://github.com/microsoft/playwright/issues/35138](https://redirect.github.com/microsoft/playwright/issues/35138) - \[Regression]: TypeError: Cannot read properties of undefined (reading 'expectInfo')

#### Browser Versions

-   Chromium 134.0.6998.35
-   Mozilla Firefox 135.0
-   WebKit 18.4

This version was also tested against the following stable channels:

-   Google Chrome 133
-   Microsoft Edge 133

</details>

<details>
<summary>resend/react-email (@&#8203;react-email/components)</summary>

### [`v0.0.34`](https://redirect.github.com/resend/react-email/releases/tag/%40react-email/components%400.0.34): @&#8203;react-email/components 0.0.34

[Compare Source](https://redirect.github.com/resend/react-email/compare/@react-email/components@0.0.33...@react-email/components@0.0.34)

#### What's Changed

-   Updated dependencies \[[`bfe1936`](https://redirect.github.com/resend/react-email/commit/bfe1936)]
    -   [@&#8203;react-email/text](https://redirect.github.com/react-email/text)[@&#8203;0](https://redirect.github.com/0).1.0

**Full Changelog**: https://github.com/resend/react-email/compare/[@&#8203;react-email/components](https://redirect.github.com/react-email/components)[@&#8203;0](https://redirect.github.com/0).0.33...[@&#8203;react-email/components](https://redirect.github.com/react-email/components)[@&#8203;0](https://redirect.github.com/0).0.34

</details>

<details>
<summary>getsentry/sentry-electron (@&#8203;sentry/electron)</summary>

### [`v6.2.0`](https://redirect.github.com/getsentry/sentry-electron/blob/HEAD/CHANGELOG.md#620)

[Compare Source](https://redirect.github.com/getsentry/sentry-electron/compare/6.1.0...6.2.0)

-   feat: Update from
    [v9.1.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.1.0) to
    [v9.6.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.0)
-   feat: Use new `registerPreloadScript` API in Electron >= v35 ([#&#8203;1098](https://redirect.github.com/getsentry/sentry-electron/issues/1098))
-   feat: Add `gpuContextIntegration` ([#&#8203;1097](https://redirect.github.com/getsentry/sentry-electron/issues/1097))
-   feat: Parse crashpad metadata from minidumps and include in electron context
    ([#&#8203;1095](https://redirect.github.com/getsentry/sentry-electron/issues/1095))

</details>

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/react)</summary>

### [`v9.6.1`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.1)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.6.0...9.6.1)

-   feat(deps): bump [@&#8203;prisma/instrumentation](https://redirect.github.com/prisma/instrumentation) from 6.4.1 to 6.5.0 ([#&#8203;15714](https://redirect.github.com/getsentry/sentry-javascript/pull/15714))
-   feat(deps): bump [@&#8203;sentry/cli](https://redirect.github.com/sentry/cli) from 2.42.2 to 2.42.3 ([#&#8203;15711](https://redirect.github.com/getsentry/sentry-javascript/pull/15711))
-   fix(nextjs): Re-patch router if it is overridden by Next.js ([#&#8203;15721](https://redirect.github.com/getsentry/sentry-javascript/pull/15721))
-   fix(nuxt): Add Nitro Rollup plugin to inject Sentry server config ([#&#8203;15710](https://redirect.github.com/getsentry/sentry-javascript/pull/15710))
-   chore(deps): Bump rollup to 4.35.0 ([#&#8203;15651](https://redirect.github.com/getsentry/sentry-javascript/pull/15651))

#### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 23.15 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 22.94 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 36.21 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 73.39 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 66.81 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 78.01 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 90.57 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 40.3 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.79 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.58 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 24.97 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 38.1 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.4 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.9 KB   |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 23.18 KB  |
| CDN Bundle                                                       | 24.36 KB  |
| CDN Bundle (incl. Tracing)                                       | 36.26 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 71.27 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 76.45 KB  |
| CDN Bundle - uncompressed                                        | 71.19 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 107.57 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 218.83 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 231.39 KB |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 39.38 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.63 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 142.29 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 95.71 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 120.06 KB |

### [`v9.6.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.0)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.5.0...9.6.0)

##### Important Changes

-   **feat(tanstackstart): Add `@sentry/tanstackstart-react` package and make `@sentry/tanstackstart` package a utility package ([#&#8203;15629](https://redirect.github.com/getsentry/sentry-javascript/pull/15629))**

    Since TanStack Start is supposed to be a generic framework that supports libraries like React and Solid, the `@sentry/tanstackstart` SDK package was renamed to `@sentry/tanstackstart-react` to reflect that the SDK is specifically intended to be used for React TanStack Start applications.
    Note that the TanStack Start SDK is still in alpha status and may be subject to breaking changes in non-major package updates.

##### Other Changes

-   feat(astro): Accept all vite-plugin options ([#&#8203;15638](https://redirect.github.com/getsentry/sentry-javascript/pull/15638))
-   feat(deps): bump [@&#8203;sentry/webpack-plugin](https://redirect.github.com/sentry/webpack-plugin) from 3.2.1 to 3.2.2 ([#&#8203;15627](https://redirect.github.com/getsentry/sentry-javascript/pull/15627))
-   feat(tanstackstart): Refine initial API ([#&#8203;15574](https://redirect.github.com/getsentry/sentry-javascript/pull/15574))
-   fix(core): Ensure `fill` only patches functions ([#&#8203;15632](https://redirect.github.com/getsentry/sentry-javascript/pull/15632))
-   fix(nextjs): Consider `pageExtensions` when looking for instrumentation file ([#&#8203;15701](https://redirect.github.com/getsentry/sentry-javascript/pull/15701))
-   fix(remix): Null-check `options` ([#&#8203;15610](https://redirect.github.com/getsentry/sentry-javascript/pull/15610))
-   fix(sveltekit): Correctly parse angle bracket type assertions for auto instrumentation ([#&#8203;15578](https://redirect.github.com/getsentry/sentry-javascript/pull/15578))
-   fix(sveltekit): Guard process variable ([#&#8203;15605](https://redirect.github.com/getsentry/sentry-javascript/pull/15605))

Work in this release was contributed by [@&#8203;angelikatyborska](https://redirect.github.com/angelikatyborska) and [@&#8203;nwalters512](https://redirect.github.com/nwalters512). Thank you for your contributions!

#### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 23.15 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 22.94 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 36.21 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 73.39 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 66.8 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 78.01 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 90.57 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 40.3 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.79 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.58 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 24.97 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 38.1 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.4 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.9 KB   |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 23.18 KB  |
| CDN Bundle                                                       | 24.36 KB  |
| CDN Bundle (incl. Tracing)                                       | 36.26 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 71.27 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 76.45 KB  |
| CDN Bundle - uncompressed                                        | 71.19 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 107.57 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 218.84 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 231.4 KB  |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 39.27 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.63 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 142.15 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 95.58 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 119.92 KB |

</details>

<details>
<summary>slackapi/node-slack-sdk (@&#8203;slack/web-api)</summary>

### [`v7.9.0`](https://redirect.github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/web-api@7.9.0)

[Compare Source](https://redirect.github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/web-api@7.9.0)

</details>

<details>
<summary>storybookjs/storybook (@&#8203;storybook/addon-essentials)</summary>

### [`v8.6.7`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#867)

[Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.6...v8.6.7)

-   React-Native-Web: Fix errors in CLI template stories - [#&#8203;30821](https://redirect.github.com/storybookjs/storybook/pull/30821), thanks [@&#8203;dannyhw](https://redirect.github.com/dannyhw)!

</details>

<details>
<summary>swc-project/swc (@&#8203;swc/core)</summary>

### [`v1.11.11`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11111---2025-03-17)

[Compare Source](https://redirect.github.com/swc-project/swc/compare/v1.11.10...v1.11.11)

##### Bug Fixes

-   **(es/ast)** Fix Typo in API ([#&#8203;10210](https://redirect.github.com/swc-project/swc/issues/10210)) ([8eb87ba](8eb87ba896))

-   **(es/minifier)** Do not drop numbers incorrectly ([#&#8203;10211](https://redirect.github.com/swc-project/swc/issues/10211)) ([80ccd86](80ccd861a2))

-   **(es/minifier)** Allow TypeScript nodes to fix `styled-jsx` ([#&#8203;10221](https://redirect.github.com/swc-project/swc/issues/10221)) ([9d87d4d](9d87d4d8e4))

##### Features

-   **(es/minifier)** Default to the smallest size ([#&#8203;10218](https://redirect.github.com/swc-project/swc/issues/10218)) ([800f51a](800f51aae5))

##### Miscellaneous Tasks

-   **(es/minifier)** Make `test.sh` faster ([#&#8203;10209](https://redirect.github.com/swc-project/swc/issues/10209)) ([f28d96e](f28d96e356))

##### Refactor

-   **(es/minifier)** Move some deps to dev deps ([#&#8203;10216](https://redirect.github.com/swc-project/swc/issues/10216)) ([1dcdbbc](1dcdbbc78d))

##### Testing

-   **(es/minifier)** Add full tests back ([#&#8203;10212](https://redirect.github.com/swc-project/swc/issues/10212)) ([e6c04b4](e6c04b4f58))

-   **(es/minifier)** Remove `full` tests with too large input ([#&#8203;10213](https://redirect.github.com/swc-project/swc/issues/10213)) ([99b590f](99b590f869))

### [`v1.11.10`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11110---2025-03-17)

[Compare Source](https://redirect.github.com/swc-project/swc/compare/v1.11.9...v1.11.10)

##### Bug Fixes

-   **(es/proposal)** Fix declarations for `explicit-resource-management` ([#&#8203;10198](https://redirect.github.com/swc-project/swc/issues/10198)) ([99ba555](99ba555c81))

-   **(es/types)** Add missing types for `jsc.transform.react.refresh` ([#&#8203;10206](https://redirect.github.com/swc-project/swc/issues/10206)) ([e71b000](e71b000392))

-   **(typescript)** Skip the body of ArrowExpr in type usage analysis  ([#&#8203;10187](https://redirect.github.com/swc-project/swc/issues/10187)) ([9aca205](9aca205c77))

##### Documentation

-   **(es/minifier)** Make `minifier` example utilize comments ([#&#8203;10195](https://redirect.github.com/swc-project/swc/issues/10195)) ([ec3ebe7](ec3ebe78ff))

##### Features

-   **(es/fast-parser)** Implement the initial version ([#&#8203;10185](https://redirect.github.com/swc-project/swc/issues/10185)) ([44e7c39](44e7c39fda))

##### Miscellaneous Tasks

-   **(es/minifier)** Fix lints & `size.sh` ([#&#8203;10191](https://redirect.github.com/swc-project/swc/issues/10191)) ([e862c32](e862c329fc))

##### Performance

-   **(es/minifier)** Do not repeat applying pure minifier on last ([#&#8203;10196](https://redirect.github.com/swc-project/swc/issues/10196)) ([e6b7cee](e6b7cee6cd))

##### Refactor

-   **(es/minifier)** Remove code for infinite loop ([#&#8203;10194](https://redirect.github.com/swc-project/swc/issues/10194)) ([fcc6884](fcc6884242))

##### Testing

-   **(es/minifier)** Update test inputs ([#&#8203;10193](https://redirect.github.com/swc-project/swc/issues/10193)) ([97d8337](97d83372dc))

-   **(es/minifier)** Add a benchmark for real-world inputs ([#&#8203;10204](https://redirect.github.com/swc-project/swc/issues/10204)) ([97f2180](97f2180e86))

-   **(es/minifier)** Disable real-world benchmarks on CI ([#&#8203;10205](https://redirect.github.com/swc-project/swc/issues/10205)) ([c5f1cbe](c5f1cbe467))

-   **(es/minifier)** Test only sizes for large inputs ([#&#8203;10208](https://redirect.github.com/swc-project/swc/issues/10208)) ([bec3e3e](bec3e3e960))

</details>

<details>
<summary>vitejs/vite-plugin-react-swc (@&#8203;vitejs/plugin-react-swc)</summary>

### [`v3.8.1`](https://redirect.github.com/vitejs/vite-plugin-react-swc/blob/HEAD/CHANGELOG.md#381)

[Compare Source](https://redirect.github.com/vitejs/vite-plugin-react-swc/compare/v3.8.0...v3.8.1)

##### Remove WebContainers warning [#&#8203;268](https://redirect.github.com/vitejs/vite-plugin-react-swc/pull/268)

SWC is now supported in WebContainers 🎉

</details>

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/browser)</summary>

### [`v3.0.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.9)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

#####    🐞 Bug Fixes

-   Typings of `ctx.skip()` as `never`  -  by [@&#8203;sirlancelot](https://redirect.github.com/sirlancelot) in [https://github.com/vitest-dev/vitest/issues/7608](https://redirect.github.com/vitest-dev/vitest/issues/7608) [<samp>(09f35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/09f35301)
-   Cleanup vitest in public `resolveConfig` API  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7623](https://redirect.github.com/vitest-dev/vitest/issues/7623) [<samp>(db14a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db14ab71)
-   Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined` arguments  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7624](https://redirect.github.com/vitest-dev/vitest/issues/7624) [<samp>(0fb21)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb21faa)
-   Race condition in RPC filesystem cache.  -  by [@&#8203;dts](https://redirect.github.com/

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-03-20 17:03:05 +00:00
yoyoyohamapi
99491eb3c5 refactor(core): reorganize chat-panel components (#10935)
### TL;DR
Split complex chat message component into smaller, reusable units with ​finer granularity

> CLOSE AF-2323 AF-2326

### What Changed
* Split messages into components:
  * `<chat-message-assistant />`
  * `<chat-message-user />`
  * `<chat-message-action />`
* Split message content into types:
  * `<chat-content-images />`
  * `<chat-content-rich-text />`
  * `<chat-content-pure-text />`
2025-03-20 06:39:27 +00:00
yoyoyohamapi
5aa36efab0 refactor(core): simplify chat panel user message rendering (#10910)
### TL;DR
Refactor style of  user chat message

> CLOSE AF-2323 AF-2324 AF-2325

### What Changed
* Refactor style of user message.
* Refactor style of image message.
2025-03-20 04:59:10 +00:00
yoyoyohamapi
4a1a557a9e refactor(web): save as doc & save as block action (#10833)
### TL;DR

Added "Save as doc" option to Edgeless editor actions.

### What changed?

- Renamed `SAVE_CHAT_TO_BLOCK_ACTION` to `SAVE_AS_BLOCK` and updated its title from "Save chat to block" to "Save as block"
- Renamed `CREATE_AS_DOC` to `SAVE_AS_DOC` and updated its title from "Create as a doc" to "Save as doc"
- Added `SAVE_AS_DOC` to the `EdgelessEditorActions` array, making this option available in the Edgeless editor
2025-03-14 09:01:31 +00:00
yoyoyohamapi
1258f47d70 refactor(web): insert blew action (#10722)
### TL;DR
Refactor the insert below functionality to work with page mode and edgeless mode
* Page Mode
  - Insert content below the current selection
  - If nothing selected, insert content below the last block
* EdgeLess Mode
  - If no note block is currently selected, create the content as a new note block.
  - Otherwise, insert content into the selected note

Close BS-2760

### What changed?
- Created separate insert handlers for page and edgeless modes with context-aware behavior
  - Added support for inserting content when nothing is selected by targeting the last content block
  - Added special handling for edgeless mode to support inserting below selected note blocks
- Removed the "Replace selection" action and consolidated insert functionality
- Optimized the clickable area of the action button
2025-03-14 09:01:31 +00:00
akumatus
1546b76337 feat(core): poll context docs and files embedding status (#10843)
Close [BS-2791](https://linear.app/affine-design/issue/BS-2791).

### What Changed?
- Add status filed to `CopilotContextDoc` to querying document embedding processing progress.
- Change `ChipState` from `success` to `finished` to better align with backend server status.
- Add `pollContextDocsAndFiles` API for embedding status polling.

### About Polling
- Set the minimum interval to 1 second and the maximum interval to 30 seconds
- Use exponential backoff and increase the interval by 50% after each poll
- Make sure the interval does not exceed the maximum
2025-03-14 08:44:55 +00:00
akumatus
daccb2c865 feat(core): add ai file context api (#10842)
Close [BS-2349](https://linear.app/affine-design/issue/BS-2349).

### What Changed?
- Add file context graphql apis
- Pass matched file chunks to LLM

[录屏2025-02-19 23.27.47.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/8e8a98ca-6959-4bb6-9759-b51d97cede49.mov" />](https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/8e8a98ca-6959-4bb6-9759-b51d97cede49.mov)
2025-03-14 04:29:54 +00:00
darkskygit
d8373f66e7 feat(server): context awareness for copilot (#9611)
fix PD-2167
fix PD-2169
fix PD-2190
2025-03-13 11:44:55 +00:00
renovate
adf8da363c chore: bump up all non-major dependencies (#10521)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@capawesome/capacitor-android-edge-to-edge-support](https://capawesome.io/plugins/android-edge-to-edge-support/) ([source](https://redirect.github.com/capawesome-team/capacitor-plugins)) | [`7.0.0` -> `7.1.0`](https://renovatebot.com/diffs/npm/@capawesome%2fcapacitor-android-edge-to-edge-support/7.0.0/7.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capawesome%2fcapacitor-android-edge-to-edge-support/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capawesome%2fcapacitor-android-edge-to-edge-support/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capawesome%2fcapacitor-android-edge-to-edge-support/7.0.0/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capawesome%2fcapacitor-android-edge-to-edge-support/7.0.0/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capgo/inappbrowser](https://redirect.github.com/Cap-go/capacitor-inappbrowser) | [`7.2.18` -> `7.2.20`](https://renovatebot.com/diffs/npm/@capgo%2finappbrowser/7.2.18/7.2.20) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capgo%2finappbrowser/7.2.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capgo%2finappbrowser/7.2.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capgo%2finappbrowser/7.2.18/7.2.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capgo%2finappbrowser/7.2.18/7.2.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@commitlint/cli](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli)) | [`19.7.1` -> `19.8.0`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/19.7.1/19.8.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@commitlint%2fcli/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@commitlint%2fcli/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@commitlint%2fcli/19.7.1/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@commitlint%2fcli/19.7.1/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional)) | [`19.7.1` -> `19.8.0`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/19.7.1/19.8.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@commitlint%2fconfig-conventional/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@commitlint%2fconfig-conventional/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@commitlint%2fconfig-conventional/19.7.1/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@commitlint%2fconfig-conventional/19.7.1/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@eslint/js](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js)) | [`9.21.0` -> `9.22.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.21.0/9.22.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@eslint%2fjs/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@eslint%2fjs/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@eslint%2fjs/9.21.0/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@eslint%2fjs/9.21.0/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@faker-js/faker](https://fakerjs.dev) ([source](https://redirect.github.com/faker-js/faker)) | [`9.5.1` -> `9.6.0`](https://renovatebot.com/diffs/npm/@faker-js%2ffaker/9.5.1/9.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@faker-js%2ffaker/9.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@faker-js%2ffaker/9.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@faker-js%2ffaker/9.5.1/9.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@faker-js%2ffaker/9.5.1/9.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@google/generative-ai](https://redirect.github.com/google/generative-ai-js) | [`^0.22.0` -> `^0.24.0`](https://renovatebot.com/diffs/npm/@google%2fgenerative-ai/0.22.0/0.24.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@google%2fgenerative-ai/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@google%2fgenerative-ai/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@google%2fgenerative-ai/0.22.0/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@google%2fgenerative-ai/0.22.0/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@lottiefiles/dotlottie-wc](https://redirect.github.com/LottieFiles/dotlottie-web) ([source](https://redirect.github.com/LottieFiles/dotlottie-web/tree/HEAD/packages/wc)) | [`0.4.4` -> `0.4.6`](https://renovatebot.com/diffs/npm/@lottiefiles%2fdotlottie-wc/0.4.4/0.4.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@lottiefiles%2fdotlottie-wc/0.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@lottiefiles%2fdotlottie-wc/0.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@lottiefiles%2fdotlottie-wc/0.4.4/0.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@lottiefiles%2fdotlottie-wc/0.4.4/0.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.50.1` -> `=1.51.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.50.1/1.51.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.50.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.50.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.50.1` -> `=1.51.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.50.1/1.51.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.50.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.50.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@sentry/esbuild-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/esbuild-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`3.2.1` -> `3.2.2`](https://renovatebot.com/diffs/npm/@sentry%2fesbuild-plugin/3.2.1/3.2.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fesbuild-plugin/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fesbuild-plugin/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fesbuild-plugin/3.2.1/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fesbuild-plugin/3.2.1/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`9.2.0` -> `9.5.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.2.0/9.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.2.0/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.2.0/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`9.2.0` -> `9.5.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.2.0/9.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.2.0/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.2.0/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@sentry/webpack-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/webpack-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`3.2.1` -> `3.2.2`](https://renovatebot.com/diffs/npm/@sentry%2fwebpack-plugin/3.2.1/3.2.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fwebpack-plugin/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fwebpack-plugin/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fwebpack-plugin/3.2.1/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fwebpack-plugin/3.2.1/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@storybook/addon-essentials](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/essentials) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials)) | [`8.6.2` -> `8.6.4`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.6.2/8.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/addon-interactions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/interactions) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions)) | [`8.6.2` -> `8.6.4`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.6.2/8.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links)) | [`8.6.2` -> `8.6.4`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.6.2/8.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/addon-mdx-gfm](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/gfm) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/gfm)) | [`8.6.2` -> `8.6.4`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.6.2/8.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-mdx-gfm/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-mdx-gfm/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-mdx-gfm/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-mdx-gfm/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/react](https://redirect.github.com/storybookjs/storybook/tree/next/code/renderers/react) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/renderers/react)) | [`8.6.2` -> `8.6.4`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.6.2/8.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@storybook/react-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/react-vite) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite)) | [`8.6.2` -> `8.6.4`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.6.2/8.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact-vite/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact-vite/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact-vite/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact-vite/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.11.4` -> `1.11.8`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.11.4/1.11.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.11.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.11.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.11.4/1.11.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.11.4/1.11.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@tailwindcss/postcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss)) | [`4.0.9` -> `4.0.12`](https://renovatebot.com/diffs/npm/@tailwindcss%2fpostcss/4.0.9/4.0.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fpostcss/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fpostcss/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fpostcss/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fpostcss/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@tailwindcss/vite](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite)) | [`4.0.9` -> `4.0.12`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.0.9/4.0.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fvite/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fvite/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fvite/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fvite/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`22.13.5` -> `22.13.9`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.5/22.13.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.13.5/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.13.5/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`22.13.5` -> `22.13.9`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.5/22.13.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.13.5/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.13.5/22.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser)) | [`3.0.7` -> `3.0.8`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.7/3.0.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/coverage-istanbul](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul)) | [`3.0.7` -> `3.0.8`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.7/3.0.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`3.0.7` -> `3.0.8`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.7/3.0.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [anyhow](https://redirect.github.com/dtolnay/anyhow) | `1.0.96` -> `1.0.97` | [![age](https://developer.mend.io/api/mc/badges/age/crate/anyhow/1.0.97?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/anyhow/1.0.97?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/anyhow/1.0.96/1.0.97?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/anyhow/1.0.96/1.0.97?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [cc](https://redirect.github.com/rust-lang/cc-rs) | `1.2.15` -> `1.2.16` | [![age](https://developer.mend.io/api/mc/badges/age/crate/cc/1.2.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/cc/1.2.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/cc/1.2.15/1.2.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/cc/1.2.15/1.2.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | build-dependencies | patch |
| [changelogithub](https://redirect.github.com/antfu/changelogithub) | [`13.12.1` -> `13.13.0`](https://renovatebot.com/diffs/npm/changelogithub/13.12.1/13.13.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/changelogithub/13.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/changelogithub/13.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/changelogithub/13.12.1/13.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/changelogithub/13.12.1/13.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [commitlint](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@alias/commitlint)) | [`19.7.1` -> `19.8.0`](https://renovatebot.com/diffs/npm/commitlint/19.7.1/19.8.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/commitlint/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/commitlint/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/commitlint/19.7.1/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/commitlint/19.7.1/19.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [core-js](https://redirect.github.com/zloirock/core-js) ([source](https://redirect.github.com/zloirock/core-js/tree/HEAD/packages/core-js)) | [`3.40.0` -> `3.41.0`](https://renovatebot.com/diffs/npm/core-js/3.40.0/3.41.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/core-js/3.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/core-js/3.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/core-js/3.40.0/3.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/core-js/3.40.0/3.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [electron](https://redirect.github.com/electron/electron) | [`34.3.0` -> `34.3.1`](https://renovatebot.com/diffs/npm/electron/34.3.0/34.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron/34.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron/34.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron/34.3.0/34.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron/34.3.0/34.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [electron-log](https://redirect.github.com/megahertz/electron-log) | [`5.3.0` -> `5.3.2`](https://renovatebot.com/diffs/npm/electron-log/5.3.0/5.3.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron-log/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron-log/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron-log/5.3.0/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron-log/5.3.0/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [electron-updater](https://redirect.github.com/electron-userland/electron-builder) ([source](https://redirect.github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-updater)) | [`6.6.0` -> `6.6.1`](https://renovatebot.com/diffs/npm/electron-updater/6.6.0/6.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron-updater/6.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron-updater/6.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron-updater/6.6.0/6.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron-updater/6.6.0/6.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`17.1.8` -> `17.4.0`](https://renovatebot.com/diffs/npm/happy-dom/17.1.8/17.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/17.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/17.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/17.1.8/17.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/17.1.8/17.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [html-validate](https://html-validate.org) ([source](https://gitlab.com/html-validate/html-validate)) | [`9.4.1` -> `9.4.2`](https://renovatebot.com/diffs/npm/html-validate/9.4.1/9.4.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/html-validate/9.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/html-validate/9.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/html-validate/9.4.1/9.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/html-validate/9.4.1/9.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [ioredis](https://redirect.github.com/luin/ioredis) | [`5.5.0` -> `5.6.0`](https://renovatebot.com/diffs/npm/ioredis/5.5.0/5.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ioredis/5.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ioredis/5.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ioredis/5.5.0/5.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ioredis/5.5.0/5.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [keyv](https://redirect.github.com/jaredwray/keyv) | [`5.2.3` -> `5.3.1`](https://renovatebot.com/diffs/npm/keyv/5.2.3/5.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/keyv/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/keyv/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/keyv/5.2.3/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/keyv/5.2.3/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.476.0` -> `^0.479.0`](https://renovatebot.com/diffs/npm/lucide-react/0.476.0/0.479.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.479.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.479.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.476.0/0.479.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.476.0/0.479.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [mixpanel-browser](https://redirect.github.com/mixpanel/mixpanel-js) | [`2.60.0` -> `2.61.0`](https://renovatebot.com/diffs/npm/mixpanel-browser/2.60.0/2.61.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/mixpanel-browser/2.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/mixpanel-browser/2.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/mixpanel-browser/2.60.0/2.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/mixpanel-browser/2.60.0/2.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [nanoid](https://redirect.github.com/ai/nanoid) | [`5.1.2` -> `5.1.3`](https://renovatebot.com/diffs/npm/nanoid/5.1.2/5.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nanoid/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nanoid/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nanoid/5.1.2/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nanoid/5.1.2/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid) | [`5.1.2` -> `5.1.3`](https://renovatebot.com/diffs/npm/nanoid/5.1.2/5.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nanoid/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nanoid/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nanoid/5.1.2/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nanoid/5.1.2/5.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [nest-commander](https://nest-commander.jaymcdoniel.dev) ([source](https://redirect.github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander)) | [`3.16.0` -> `3.16.1`](https://renovatebot.com/diffs/npm/nest-commander/3.16.0/3.16.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nest-commander/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nest-commander/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nest-commander/3.16.0/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nest-commander/3.16.0/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [openai](https://redirect.github.com/openai/openai-node) | [`4.86.1` -> `4.86.2`](https://renovatebot.com/diffs/npm/openai/4.86.1/4.86.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.86.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.86.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.86.1/4.86.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.86.1/4.86.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [playwright](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.50.1` -> `=1.51.0`](https://renovatebot.com/diffs/npm/playwright/1.50.1/1.51.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/playwright/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright/1.50.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright/1.50.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [prettier](https://prettier.io) ([source](https://redirect.github.com/prettier/prettier)) | [`3.5.2` -> `3.5.3`](https://renovatebot.com/diffs/npm/prettier/3.5.2/3.5.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.5.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.5.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [prettier](https://prettier.io) ([source](https://redirect.github.com/prettier/prettier)) | [`3.5.2` -> `3.5.3`](https://renovatebot.com/diffs/npm/prettier/3.5.2/3.5.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.5.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.5.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [react-markdown](https://redirect.github.com/remarkjs/react-markdown) | [`10.0.0` -> `10.1.0`](https://renovatebot.com/diffs/npm/react-markdown/10.0.0/10.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-markdown/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-markdown/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-markdown/10.0.0/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-markdown/10.0.0/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-router-dom](https://redirect.github.com/remix-run/react-router) ([source](https://redirect.github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | [`6.28.0` -> `6.30.0`](https://renovatebot.com/diffs/npm/react-router-dom/6.28.0/6.30.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.28.0/6.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.28.0/6.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [serde_json](https://redirect.github.com/serde-rs/json) | `1.0.139` -> `1.0.140` | [![age](https://developer.mend.io/api/mc/badges/age/crate/serde_json/1.0.140?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/serde_json/1.0.140?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/serde_json/1.0.139/1.0.140?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/serde_json/1.0.139/1.0.140?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [storybook](https://redirect.github.com/storybookjs/storybook/tree/next/code/lib/cli) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/cli)) | [`8.6.2` -> `8.6.4`](https://renovatebot.com/diffs/npm/storybook/8.6.2/8.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.6.2/8.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [swr](https://swr.vercel.app) ([source](https://redirect.github.com/vercel/swr)) | [`2.3.2` -> `2.3.3`](https://renovatebot.com/diffs/npm/swr/2.3.2/2.3.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/swr/2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/swr/2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/swr/2.3.2/2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/swr/2.3.2/2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.0.9` -> `4.0.12`](https://renovatebot.com/diffs/npm/tailwindcss/4.0.9/4.0.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.0.9` -> `4.0.12`](https://renovatebot.com/diffs/npm/tailwindcss/4.0.9/4.0.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.0.9/4.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [terser-webpack-plugin](https://redirect.github.com/webpack-contrib/terser-webpack-plugin) | [`5.3.12` -> `5.3.14`](https://renovatebot.com/diffs/npm/terser-webpack-plugin/5.3.12/5.3.14) | [![age](https://developer.mend.io/api/mc/badges/age/npm/terser-webpack-plugin/5.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/terser-webpack-plugin/5.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/terser-webpack-plugin/5.3.12/5.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/terser-webpack-plugin/5.3.12/5.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [thiserror](https://redirect.github.com/dtolnay/thiserror) | `2.0.11` -> `2.0.12` | [![age](https://developer.mend.io/api/mc/badges/age/crate/thiserror/2.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/thiserror/2.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/thiserror/2.0.11/2.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/thiserror/2.0.11/2.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [tldts](https://redirect.github.com/remusao/tldts) | [`6.1.79` -> `6.1.83`](https://renovatebot.com/diffs/npm/tldts/6.1.79/6.1.83) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tldts/6.1.83?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tldts/6.1.83?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tldts/6.1.79/6.1.83?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tldts/6.1.79/6.1.83?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.43.0` -> `1.44.0` | [![age](https://developer.mend.io/api/mc/badges/age/crate/tokio/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio/1.43.0/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio/1.43.0/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | minor |
| [tree-sitter](https://tree-sitter.github.io/tree-sitter) ([source](https://redirect.github.com/tree-sitter/tree-sitter)) | `0.25.2` -> `0.25.3` | [![age](https://developer.mend.io/api/mc/badges/age/crate/tree-sitter/0.25.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tree-sitter/0.25.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tree-sitter/0.25.2/0.25.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tree-sitter/0.25.2/0.25.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.7.3` -> `5.8.2`](https://renovatebot.com/diffs/npm/typescript/5.7.3/5.8.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.7.3/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.7.3/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.7.3` -> `5.8.2`](https://renovatebot.com/diffs/npm/typescript/5.7.3/5.8.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.7.3/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.7.3/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.25.0` -> `8.26.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.25.0/8.26.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.25.0/8.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.25.0/8.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.3.0` -> `7.4.0`](https://renovatebot.com/diffs/npm/undici/7.3.0/7.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/7.3.0/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/7.3.0/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.2.0` -> `6.2.1`](https://renovatebot.com/diffs/npm/vite/6.2.0/6.2.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.2.0/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.2.0/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.2.0` -> `6.2.1`](https://renovatebot.com/diffs/npm/vite/6.2.0/6.2.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.2.0/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.2.0/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`3.0.7` -> `3.0.8`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.0.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.7/3.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [yarn](https://redirect.github.com/yarnpkg/berry) ([source](https://redirect.github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-cli)) | [`4.6.0` -> `4.7.0`](https://renovatebot.com/diffs/npm/yarn/4.6.0/4.7.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@yarnpkg%2fcli/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@yarnpkg%2fcli/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@yarnpkg%2fcli/4.6.0/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@yarnpkg%2fcli/4.6.0/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | packageManager | minor |
| [com.android.library](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | `8.8.2` -> `8.9.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.library:com.android.library.gradle.plugin/8.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.library:com.android.library.gradle.plugin/8.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.library:com.android.library.gradle.plugin/8.8.2/8.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.library:com.android.library.gradle.plugin/8.8.2/8.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | minor |
| [com.android.application](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | `8.8.2` -> `8.9.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.application:com.android.application.gradle.plugin/8.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.app
2025-03-08 04:42:04 +00:00
fundon
8da12025af fix(core): should invoke cleanup fn when ai sub item list is removed (#10685)
Closes: [BS-2755](https://linear.app/affine-design/issue/BS-2755/ai-translate-死循环报错)
2025-03-07 03:35:59 +00:00
fundon
ec9bd1f383 feat(editor): add toolbar registry extension (#9572)
### What's Changed!

#### Added
Manage various types of toolbars uniformly in one place.

* `affine-toolbar-widget`
* `ToolbarRegistryExtension`

The toolbar currently supports and handles several scenarios:

1.  Select blocks: `BlockSelection`
2. Select text: `TextSelection` or `NativeSelection`
3. Hover a link: `affine-link` and `affine-reference`

#### Removed
Remove redundant toolbar implementations.

* `attachment` toolbar
* `bookmark` toolbar
* `embed` toolbar
* `formatting` toolbar
* `affine-link` toolbar
* `affine-reference` toolbar

### How to migrate?

Here is an example that can help us migrate some unrefactored toolbars:

Check out the more detailed types of [`ToolbarModuleConfig`](c178debf2d/blocksuite/affine/shared/src/services/toolbar-service/config.ts).

1.  Add toolbar configuration file to a block type, such as bookmark block: [`config.ts`](c178debf2d/blocksuite/affine/block-bookmark/src/configs/toolbar.ts)

```ts
export const builtinToolbarConfig = {
  actions: [
    {
      id: 'a.preview',
      content(ctx) {
        const model = ctx.getCurrentModelBy(BlockSelection, BookmarkBlockModel);
        if (!model) return null;

        const { url } = model;

        return html`<affine-link-preview .url=${url}></affine-link-preview>`;
      },
    },
    {
      id: 'b.conversions',
      actions: [
        {
          id: 'inline',
          label: 'Inline view',
          run(ctx) {
          },
        },
        {
          id: 'card',
          label: 'Card view',
          disabled: true,
        },
        {
          id: 'embed',
          label: 'Embed view',
          disabled(ctx) {
          },
          run(ctx) {
          },
        },
      ],
      content(ctx) {
      },
    } satisfies ToolbarActionGroup<ToolbarAction>,
    {
      id: 'c.style',
      actions: [
        {
          id: 'horizontal',
          label: 'Large horizontal style',
        },
        {
          id: 'list',
          label: 'Small horizontal style',
        },
      ],
      content(ctx) {
      },
    } satisfies ToolbarActionGroup<ToolbarAction>,
    {
      id: 'd.caption',
      tooltip: 'Caption',
      icon: CaptionIcon(),
      run(ctx) {
      },
    },
    {
      placement: ActionPlacement.More,
      id: 'a.clipboard',
      actions: [
        {
          id: 'copy',
          label: 'Copy',
          icon: CopyIcon(),
          run(ctx) {
          },
        },
        {
          id: 'duplicate',
          label: 'Duplicate',
          icon: DuplicateIcon(),
          run(ctx) {
          },
        },
      ],
    },
    {
      placement: ActionPlacement.More,
      id: 'b.refresh',
      label: 'Reload',
      icon: ResetIcon(),
      run(ctx) {
      },
    },
    {
      placement: ActionPlacement.More,
      id: 'c.delete',
      label: 'Delete',
      icon: DeleteIcon(),
      variant: 'destructive',
      run(ctx) {
      },
    },
  ],
} as const satisfies ToolbarModuleConfig;
```

2. Add configuration extension to a block spec: [bookmark's spec](c178debf2d/blocksuite/affine/block-bookmark/src/bookmark-spec.ts)

```ts
const flavour = BookmarkBlockSchema.model.flavour;

export const BookmarkBlockSpec: ExtensionType[] = [
  ...,
  ToolbarModuleExtension({
    id: BlockFlavourIdentifier(flavour),
    config: builtinToolbarConfig,
  }),
].flat();
```

3. If the bock type already has a toolbar configuration built in, we can customize it in the following ways:

Check out the [editor's config](c178debf2d/packages/frontend/core/src/blocksuite/extensions/editor-config/index.ts (L51C4-L54C8)) file.

```ts
// Defines a toolbar configuration for the bookmark block type
const customBookmarkToolbarConfig = {
  actions: [
    ...
  ]
} as const satisfies ToolbarModuleConfig;

// Adds it into the editor's config
 ToolbarModuleExtension({
    id: BlockFlavourIdentifier('custom:affine:bookmark'),
    config: customBookmarkToolbarConfig,
 }),
```

4. If we want to extend the global:

```ts
// Defines a toolbar configuration
const customWildcardToolbarConfig = {
  actions: [
    ...
  ]
} as const satisfies ToolbarModuleConfig;

// Adds it into the editor's config
 ToolbarModuleExtension({
    id: BlockFlavourIdentifier('custom:affine:*'),
    config: customWildcardToolbarConfig,
 }),
```

Currently, only most toolbars in page mode have been refactored. Next is edgeless mode.
2025-03-06 06:46:03 +00:00
akumatus
e990a5523e fix(core): can not clear chat-panel history (#10634)
Close [BS-2754](https://linear.app/affine-design/issue/BS-2754).

### What Changed?
Use the latest session id and display the corresponding historical messages.
2025-03-06 03:19:02 +00:00
akumatus
a6692f70aa fix(core): text style is not centered when chat-panel is wide (#10607)
Fix issue [BS-2751](https://linear.app/affine-design/issue/BS-2751).

Before:

![截屏2025-03-04 16.56.46.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/d0aae342-ff53-42d6-964b-ecd2e8720af6.png)

After:

![截屏2025-03-04 16.56.57.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/986bde63-6fe8-485d-97d1-0a062658cf7c.png)
2025-03-04 15:25:35 +00:00
donteatfriedrice
272d41e32d chore: remove unused component imports and styles from text-renderer (#10478) 2025-02-27 08:54:15 +00:00
forehalo
2e0f0c624a chore: set base version to 0.20 (#10382) 2025-02-24 04:44:42 +00:00
donteatfriedrice
734ca154ae refactor(core): use image preview component in chat (#10357)
[BS-2421](https://linear.app/affine-design/issue/BS-2421/chat-block-and-chat-panel-input-render-images-时存在内存泄露风险)
2025-02-21 15:36:55 +00:00
akumatus
efe36161e8 fix(core): remove candidate doc chip suggestions (#10327)
Fix issue [AF-2247](https://linear.app/affine-design/issue/AF-2247).
2025-02-20 14:01:00 +00:00
akumatus
126677d7ad fix(core): no pop-ups if user click discard menu item (#10317)
Fix issue [BS-2628](https://linear.app/affine-design/issue/BS-2628).
2025-02-20 13:29:28 +00:00
akumatus
015452e8fb fix(core): unable to explain image when network search is active (#10228)
Fix issue [PD-2316](https://linear.app/affine-design/issue/PD-2316).
2025-02-18 02:20:21 +00:00
akumatus
631c8b8145 refactor(core): lazy create copilot session and context (#10170) 2025-02-14 14:48:46 +00:00
akumatus
d17f5651f1 feat(core): add with your docs label to ai answer (#10124)
Fix issue [BS-2425](https://linear.app/affine-design/issue/BS-2425).

![截屏2025-02-12 16.34.20.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/89576eac-e176-4890-8d58-7c39d0ae1d9b.png)
2025-02-13 03:28:27 +00:00
donteatfriedrice
e350ba4a9c test: enable chat block e2e test (#10111) 2025-02-12 09:26:52 +00:00
akumatus
58fed5928b feat: add doc copilot context api (#10103)
### What Changed?
- Add graphql APIs.
- Provide context and session service in `AIProvider`.
- Rename the state from `embedding` to `processing`.
- Reafctor front-end session create, update and save logic.

Persist the document selected by the user:
[录屏2025-02-08 11.04.40.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/195a85f2-43c4-4e49-88d9-6b5fc4f235ca.mov" />](https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/195a85f2-43c4-4e49-88d9-6b5fc4f235ca.mov)
2025-02-12 08:33:07 +00:00
pengx17
9fd547d484 chore(core): upload flaky test traces (#9974) 2025-02-07 15:15:45 +08:00
renovate
f00fb327e2 chore: bump up all non-major dependencies (#9810)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@clack/prompts](https://redirect.github.com/natemoo-re/clack/tree/main/packages/prompts#readme) ([source](https://redirect.github.com/natemoo-re/clack/tree/HEAD/packages/prompts)) | [`^0.9.0` -> `^0.10.0`](https://renovatebot.com/diffs/npm/@clack%2fprompts/0.9.1/0.10.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@clack%2fprompts/0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@clack%2fprompts/0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@clack%2fprompts/0.9.1/0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@clack%2fprompts/0.9.1/0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@graphql-codegen/cli](https://redirect.github.com/dotansimha/graphql-code-generator) ([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/graphql-codegen-cli)) | [`5.0.3` -> `5.0.4`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fcli/5.0.3/5.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fcli/5.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2fcli/5.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2fcli/5.0.3/5.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fcli/5.0.3/5.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) | [`3.0.0-alpha.68` -> `3.0.0-alpha.70`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.68/3.0.0-alpha.70) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.70?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.70?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.68/3.0.0-alpha.70?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.68/3.0.0-alpha.70?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.49.1` -> `=1.50.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.49.1/1.50.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.49.1/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.49.1/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.49.1` -> `=1.50.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.49.1/1.50.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.49.1/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.49.1/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@shoelace-style/shoelace](https://redirect.github.com/shoelace-style/shoelace) | [`2.19.1` -> `2.20.0`](https://renovatebot.com/diffs/npm/@shoelace-style%2fshoelace/2.19.1/2.20.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@shoelace-style%2fshoelace/2.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@shoelace-style%2fshoelace/2.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@shoelace-style%2fshoelace/2.19.1/2.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@shoelace-style%2fshoelace/2.19.1/2.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser)) | [`3.0.4` -> `3.0.5`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.4/3.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/3.0.4/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/3.0.4/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/coverage-istanbul](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul)) | [`3.0.2` -> `3.0.5`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.2/3.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/3.0.2/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/3.0.2/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`3.0.2` -> `3.0.5`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.2/3.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.0.2/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.0.2/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [apollographql/apollo-ios](https://redirect.github.com/apollographql/apollo-ios) | `from: "1.16.0"` -> `from: "1.17.0"` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.16.0/1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.16.0/1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | minor |
| [gradle](https://gradle.org) ([source](https://redirect.github.com/gradle/gradle)) | `8.12` -> `8.12.1` | [![age](https://developer.mend.io/api/mc/badges/age/gradle-version/gradle/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/gradle-version/gradle/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/gradle-version/gradle/8.12/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/gradle-version/gradle/8.12/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | patch |
| [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.473.0` -> `^0.474.0`](https://renovatebot.com/diffs/npm/lucide-react/0.473.0/0.474.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.474.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.474.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.473.0/0.474.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.473.0/0.474.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | `22.13.0` -> `22.13.1` | [![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v22.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v22.13.0/v22.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v22.13.0/v22.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | patch |
| [playwright](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.49.1` -> `=1.50.1`](https://renovatebot.com/diffs/npm/playwright/1.49.1/1.50.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/playwright/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright/1.49.1/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright/1.49.1/1.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [react-email](https://redirect.github.com/resend/react-email) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/react-email)) | [`3.0.4` -> `3.0.6`](https://renovatebot.com/diffs/npm/react-email/3.0.4/3.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-email/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-email/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-email/3.0.4/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-email/3.0.4/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [swr](https://swr.vercel.app) ([source](https://redirect.github.com/vercel/swr)) | [`2.3.0` -> `2.3.2`](https://renovatebot.com/diffs/npm/swr/2.3.0/2.3.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/swr/2.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/swr/2.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/swr/2.3.0/2.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/swr/2.3.0/2.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.0.9` -> `6.1.0`](https://renovatebot.com/diffs/npm/vite/6.0.9/6.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.0.9/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.0.9/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | resolutions | minor |
| [com.apollographql.apollo](https://redirect.github.com/apollographql/apollo-kotlin) | `4.1.0` -> `4.1.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | patch |
| [com.apollographql.apollo:apollo-api](https://redirect.github.com/apollographql/apollo-kotlin) | `4.1.0` -> `4.1.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.apollo:apollo-api/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.apollo:apollo-api/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.apollo:apollo-api/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.apollo:apollo-api/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [com.apollographql.apollo:apollo-runtime](https://redirect.github.com/apollographql/apollo-kotlin) | `4.1.0` -> `4.1.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.apollo:apollo-runtime/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.apollo:apollo-runtime/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.apollo:apollo-runtime/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.apollo:apollo-runtime/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [org.jetbrains.kotlin.jvm](https://kotlinlang.org/) ([source](https://redirect.github.com/JetBrains/kotlin)) | `2.1.0` -> `2.1.10` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | patch |
| [org.jetbrains.kotlin.android](https://kotlinlang.org/) ([source](https://redirect.github.com/JetBrains/kotlin)) | `2.1.0` -> `2.1.10` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | patch |

---

### Release Notes

<details>
<summary>natemoo-re/clack (@&#8203;clack/prompts)</summary>

### [`v0.10.0`](https://redirect.github.com/natemoo-re/clack/blob/HEAD/packages/prompts/CHANGELOG.md#0100)

[Compare Source](https://redirect.github.com/natemoo-re/clack/compare/@clack/prompts@0.9.1...@clack/prompts@0.10.0)

##### Minor Changes

-   [`613179d`](https://redirect.github.com/natemoo-re/clack/commit/613179d): Adds a new `indicator` option to `spinner`, which supports the original `"dots"` loading animation or a new `"timer"` loading animation.

    ```ts
    import * as p from "@&#8203;clack/prompts";

    const spin = p.spinner({ indicator: "timer" });
    spin.start("Loading");
    await sleep(3000);
    spin.stop("Loaded");
    ```

-   [`a38b2bc`](https://redirect.github.com/natemoo-re/clack/commit/a38b2bc): Adds `stream` API which provides the same methods as `log`, but for iterable (even async) message streams. This is particularly useful for AI responses which are dynamically generated by LLMs.

    ```ts
    import * as p from "@&#8203;clack/prompts";

    await p.stream.step(
      (async function* () {
        yield* generateLLMResponse(question);
      })()
    );
    ```

</details>

<details>
<summary>dotansimha/graphql-code-generator (@&#8203;graphql-codegen/cli)</summary>

### [`v5.0.4`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/graphql-codegen-cli/CHANGELOG.md#504)

[Compare Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/cli@5.0.3...@graphql-codegen/cli@5.0.4)

##### Patch Changes

-   [#&#8203;10248](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10248) [`72eb86f`](72eb86f49b) Thanks [@&#8203;renovate](https://redirect.github.com/apps/renovate)! - dependencies updates:

    -   Updated dependency [`@whatwg-node/fetch@^0.10.0` ↗︎](https://www.npmjs.com/package/@&#8203;whatwg-node/fetch/v/0.10.0) (from `^0.9.20`, in `dependencies`)

-   [#&#8203;10227](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10227) [`6f1741a`](6f1741af03) Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Fix schema pointers type to allow an array of pointers

-   Updated dependencies \[[`8737dd8`](8737dd86b4), [`ed71811`](ed71811ace)]:
    -   [@&#8203;graphql-codegen/client-preset](https://redirect.github.com/graphql-codegen/client-preset)[@&#8203;4](https://redirect.github.com/4).6.0

</details>

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.0.0-alpha.70`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.69...@napi-rs/cli@3.0.0-alpha.70)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.69...@napi-rs/cli@3.0.0-alpha.70)

### [`v3.0.0-alpha.69`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.68...@napi-rs/cli@3.0.0-alpha.69)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.68...@napi-rs/cli@3.0.0-alpha.69)

</details>

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

### [`v1.50.1`](https://redirect.github.com/microsoft/playwright/compare/v1.50.0...dbc685ca98bf937a318f36b0de9ed6e48dac2db5)

[Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.50.0...v1.50.1)

### [`v1.50.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.50.0)

[Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.49.1...v1.50.0)

#### Test runner

-   New option [`timeout`](https://playwright.dev/docs/api/class-test#test-step-option-timeout) allows specifying a maximum run time for an individual test step. A timed-out step will fail the execution of the test.

    ```js
    test('some test', async ({ page }) => {
      await test.step('a step', async () => {
        // This step can time out separately from the test
      }, { timeout: 1000 });
    });
    ```

-   New method [test.step.skip()](https://playwright.dev/docs/api/class-test#test-step-skip) to disable execution of a test step.

    ```js
    test('some test', async ({ page }) => {
      await test.step('before running step', async () => {
        // Normal step
      });

      await test.step.skip('not yet ready', async () => {
        // This step is skipped
      });

      await test.step('after running step', async () => {
        // This step still runs even though the previous one was skipped
      });
    });
    ```

-   Expanded [expect(locator).toMatchAriaSnapshot()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-match-aria-snapshot-2) to allow storing of aria snapshots in separate YAML files.

-   Added method [expect(locator).toHaveAccessibleErrorMessage()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-accessible-error-message) to assert the Locator points to an element with a given [aria errormessage](https://w3c.github.io/aria/#aria-errormessage).

-   Option [testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots) added the configuration enum `changed`. `changed` updates only the snapshots that have changed, whereas `all` now updates all snapshots, regardless of whether there are any differences.

-   New option [testConfig.updateSourceMethod](https://playwright.dev/docs/api/class-testconfig#test-config-update-source-method) defines the way source code is updated when [testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots) is configured. Added `overwrite` and `3-way` modes that write the changes into source code, on top of existing `patch` mode that creates a patch file.

    ```bash
    npx playwright test --update-snapshots=changed --update-source-method=3way
    ```

-   Option [testConfig.webServer](https://playwright.dev/docs/api/class-testconfig#test-config-web-server) added a `gracefulShutdown` field for specifying a process kill signal other than the default `SIGKILL`.

-   Exposed [testStep.attachments](https://playwright.dev/docs/api/class-teststep#test-step-attachments) from the reporter API to allow retrieval of all attachments created by that step.

#### UI updates

-   Updated default HTML reporter to improve display of attachments.
-   New button for picking elements to produce aria snapshots.
-   Additional details (such as keys pressed) are now displayed alongside action API calls in traces.
-   Display of `canvas` content in traces is error-prone. Display is now disabled by default, and can be enabled via the `Display canvas content` UI setting.
-   `Call` and `Network` panels now display additional time information.

#### Breaking

-   [expect(locator).toBeEditable()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-editable) and [locator.isEditable()](https://playwright.dev/docs/api/class-locator#locator-is-editable) now throw if the target element is not `<input>`, `<select>`, or a number of other editable elements.
-   Option [testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots) now updates all snapshots when set to `all`, rather than only the failed/changed snapshots. Use the new enum `changed` to keep the old functionality of only updating the changed snapshots.

#### Browser Versions

-   Chromium 133.0.6943.16
-   Mozilla Firefox 134.0
-   WebKit 18.2

This version was also tested against the following stable channels:

-   Google Chrome 132
-   Microsoft Edge 132

</details>

<details>
<summary>shoelace-style/shoelace (@&#8203;shoelace-style/shoelace)</summary>

### [`v2.20.0`](https://redirect.github.com/shoelace-style/shoelace/releases/tag/v2.20.0)

[Compare Source](https://redirect.github.com/shoelace-style/shoelace/compare/v2.19.1...v2.20.0)

#### Commits

-   [`7fd18d1`](https://redirect.github.com/shoelace-style/shoelace/commit/7fd18d1): Modify ja.ts ([#&#8203;2329](https://redirect.github.com/shoelace-style/shoelace/issues/2329)) (jz5) [#&#8203;2329](https://redirect.github.com/shoelace-style/shoelace/pull/2329)
-   [`c16c533`](https://redirect.github.com/shoelace-style/shoelace/commit/c16c533): update changelog (Cory LaViska)
-   [`7f88bb3`](https://redirect.github.com/shoelace-style/shoelace/commit/7f88bb3): Svelte documentation: adding Two-way Binding example in <sl-select> ([#&#8203;2327](https://redirect.github.com/shoelace-style/shoelace/issues/2327)) (Emanuel Saramago) [#&#8203;2327](https://redirect.github.com/shoelace-style/shoelace/pull/2327)
-   [`b5e82d6`](https://redirect.github.com/shoelace-style/shoelace/commit/b5e82d6): update docs (Cory LaViska)
-   [`81e94f2`](https://redirect.github.com/shoelace-style/shoelace/commit/81e94f2): Only trigger defaultslotchange of select after initialization ([#&#8203;2318](https://redirect.github.com/shoelace-style/shoelace/issues/2318)) (Susanne Kirchner) [#&#8203;2318](https://redirect.github.com/shoelace-style/shoelace/pull/2318)
-   [`f0c93d0`](https://redirect.github.com/shoelace-style/shoelace/commit/f0c93d0): update changelog (Cory LaViska)
-   [`6761fdc`](https://redirect.github.com/shoelace-style/shoelace/commit/6761fdc): Merge branch 'next' of https://github.com/shoelace-style/shoelace into next (Cory LaViska)
-   [`b0399ca`](https://redirect.github.com/shoelace-style/shoelace/commit/b0399ca): fix tabbable for radios ([#&#8203;2357](https://redirect.github.com/shoelace-style/shoelace/issues/2357)) (Konnor Rogers) [#&#8203;2357](https://redirect.github.com/shoelace-style/shoelace/pull/2357)
-   [`372ba1f`](https://redirect.github.com/shoelace-style/shoelace/commit/372ba1f): fix ssr for sl-alert and scrollend-polyfill ([#&#8203;2359](https://redirect.github.com/shoelace-style/shoelace/issues/2359)) (Christian Schilling) [#&#8203;2359](https://redirect.github.com/shoelace-style/shoelace/pull/2359)
-   [`69cf94b`](https://redirect.github.com/shoelace-style/shoelace/commit/69cf94b): Explain why dividers don't show if you use TailwindCSS and add a workaround. ([#&#8203;2356](https://redirect.github.com/shoelace-style/shoelace/issues/2356)) (Marcus) [#&#8203;2356](https://redirect.github.com/shoelace-style/shoelace/pull/2356)
-   [`b5f308c`](https://redirect.github.com/shoelace-style/shoelace/commit/b5f308c): move to section (Cory LaViska)
-   [`cb6460c`](https://redirect.github.com/shoelace-style/shoelace/commit/cb6460c): update action (Cory LaViska)
-   [`d93ee89`](https://redirect.github.com/shoelace-style/shoelace/commit/d93ee89): add changelog check (Cory LaViska)
-   [`0bc6d8c`](https://redirect.github.com/shoelace-style/shoelace/commit/0bc6d8c): fix error (Cory LaViska)
-   [`c3b1fb9`](https://redirect.github.com/shoelace-style/shoelace/commit/c3b1fb9): try again (Cory LaViska)
-   [`fce7f7c`](https://redirect.github.com/shoelace-style/shoelace/commit/fce7f7c): fix comment (Cory LaViska)
-   [`afc2b06`](https://redirect.github.com/shoelace-style/shoelace/commit/afc2b06): sigh (Cory LaViska)
-   [`03f8464`](https://redirect.github.com/shoelace-style/shoelace/commit/03f8464): ahem (Cory LaViska)
-   [`471e6cc`](https://redirect.github.com/shoelace-style/shoelace/commit/471e6cc): somebody save me (Cory LaViska)
-   [`c858a3a`](https://redirect.github.com/shoelace-style/shoelace/commit/c858a3a): yaml was a mistake (Cory LaViska)
-   [`5e11687`](https://redirect.github.com/shoelace-style/shoelace/commit/5e11687): save me tarides (Cory LaViska)
-   [`4530ba3`](https://redirect.github.com/shoelace-style/shoelace/commit/4530ba3): welp (Cory LaViska)
-   [`d674577`](https://redirect.github.com/shoelace-style/shoelace/commit/d674577): not today i guess (Cory LaViska)
-   [`ca8a12b`](https://redirect.github.com/shoelace-style/shoelace/commit/ca8a12b): maybe, just maybe (Cory LaViska)
-   [`74dafea`](https://redirect.github.com/shoelace-style/shoelace/commit/74dafea): somebody save me (Cory LaViska)
-   [`39e4557`](https://redirect.github.com/shoelace-style/shoelace/commit/39e4557): ok konnor (Cory LaViska)
-   [`d45e6df`](https://redirect.github.com/shoelace-style/shoelace/commit/d45e6df): revert (Cory LaViska)
-   [`e3b117d`](https://redirect.github.com/shoelace-style/shoelace/commit/e3b117d): i'll get you next time gadget! next time... (Cory LaViska)
-   [`a7aadc9`](https://redirect.github.com/shoelace-style/shoelace/commit/a7aadc9): SlSplitPanel `snap` improvements. ([#&#8203;2340](https://redirect.github.com/shoelace-style/shoelace/issues/2340)) (Auri Collings) [#&#8203;2340](https://redirect.github.com/shoelace-style/shoelace/pull/2340)
-   [`bb8f16a`](https://redirect.github.com/shoelace-style/shoelace/commit/bb8f16a): fix code field (Cory LaViska)
-   [`ee7aa09`](https://redirect.github.com/shoelace-style/shoelace/commit/ee7aa09): update changelog (Cory LaViska)
-   [`ff34da1`](https://redirect.github.com/shoelace-style/shoelace/commit/ff34da1): prettier (Cory LaViska)
-   [`de371b3`](https://redirect.github.com/shoelace-style/shoelace/commit/de371b3): update version (Cory LaViska)
-   [`960de96`](https://redirect.github.com/shoelace-style/shoelace/commit/960de96): 2.20.0 (Cory LaViska)

</details>

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/browser)</summary>

### [`v3.0.5`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.5)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.4...v3.0.5)

This release includes security patches for:

-   [Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964](https://redirect.github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq)

##### 🚀 Features

-   **ui**: Insert message "no tests found" in ui - by [@&#8203;DevJoaoLopes](https://redirect.github.com/DevJoaoLopes) in [https://github.com/vitest-dev/vitest/issues/7366](https://redirect.github.com/vitest-dev/vitest/issues/7366) [<samp>(92da4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/92da490bd)

##### 🐞 Bug Fixes

-   Validate websocket request - by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7317](https://redirect.github.com/vitest-dev/vitest/issues/7317) [<samp>(191ef)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/191ef9e34)
-   Don't toggle cli cursor on non-TTY - by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7336](https://redirect.github.com/vitest-dev/vitest/issues/7336) [<samp>(3c805)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3c8050e69)
-   **vite-node**: Differentiate file url with hash and query - by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa)  in [https://github.com/vitest-dev/vitest/issues/7365](https://redirect.github.com/vitest-dev/vitest/issues/7365) [<samp>(926ca)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/926ca9546)

##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.4...v3.0.5)

</details>

<details>
<summary>apollographql/apollo-ios (apollographql/apollo-ios)</summary>

### [`v1.17.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1170)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.16.1...1.17.0)

##### New

-   **Add suffix to schema type filenames ([#&#8203;2598](https://redirect.github.com/apollographql/apollo-ios/issues/2598)):** When fragments were named the same as schema types code generation would produce two files with the same name, but at different paths, for each respective type. This would cause a build error in Xcode. There is a new codegen configuration option (`appendSchemaTypeFilenameSuffix`) to add a suffix to schema generated filenames and prevent the build error. See PR [#&#8203;580](https://redirect.github.com/apollographql/apollo-ios-dev/pull/580).
-   **Specify caching fields with `typePolicy` directive ([#&#8203;554](https://redirect.github.com/apollographql/apollo-ios-dev/pull/554)):** The `@typePolicy` directive lets you specify an object's cache ID using key fields of the response object. See the [documentation](https://www.apollographql.com/docs/ios/caching/cache-key-resolution#the-typepolicy-directive) for full details. *Thank you to [@&#8203;x-sheep](https://redirect.github.com/x-sheep) for the contribution.*
-   **Emit `Identifiable` conformance on `SelectionSet` ([#&#8203;584](https://redirect.github.com/apollographql/apollo-ios-dev/pull/584)):** If the `@typePolicy` of a type uses a `keyField` of `id` the selection set will emit conformance to Swifts [`Identifiable` protocol](https://developer.apple.com/documentation/swift/identifiable). *Thank you to [@&#8203;x-sheep](https://redirect.github.com/x-sheep) for the contribution.*

##### Improvement

-   **Improved performance of code generation on operations with many nested fragments ([#&#8203;3434](https://redirect.github.com/apollographql/apollo-ios/issues/3434)):** When fragment field merging is disabled the fragment selection trees are no longer merged into the `EntitySelectionSet` while building operations. See PR [#&#8203;571](https://redirect.github.com/apollographql/apollo-ios-dev/pull/571).

##### Fixed

-   **Defer metadata extension ([#&#8203;3505](https://redirect.github.com/apollographql/apollo-ios/issues/3503)):** Metadata extensions for deferred selection sets were incorrectly generated inside the namespace extension for `embeddedInTarget` and `other` module types. See PR [#&#8203;581](https://redirect.github.com/apollographql/apollo-ios-dev/pull/581).
-   **`DataDict` initialization of `deferredFragments` for named fragments ([#&#8203;587](https://redirect.github.com/apollographql/apollo-ios-dev/pull/587)):** When deferred fragments are named fragments the deferred type should be the fragment generated definition name.

### [`v1.16.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1161)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.16.0...1.16.1)

##### Fixed

-   **Web socket data race crash fixed ([#&#8203;578](https://redirect.github.com/apollographql/apollo-ios-dev/pull/578)):** A data race in the web socket layer was causing crashes in some rare circumstances.

-   **Added support for GraphQL over HTTP media type([#&#8203;558](https://redirect.github.com/apollographql/apollo-ios-dev/pull/558)):** Apollo iOS now supports the `content-type` header with a type of `application/graphql-response+json`.

</details>

<details>
<summary>gradle/gradle (gradle)</summary>

### [`v8.12.1`](https://redirect.github.com/gradle/gradle/compare/v8.12.0...v8.12.1)

[Compare Source](https://redirect.github.com/gradle/gradle/compare/v8.12.0...v8.12.1)

</details>

<details>
<summary>lucide-icons/lucide (lucide-react)</summary>

### [`v0.474.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.474.0): New icons 0.474.0

[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.473.0...0.474.0)

##### Modified Icons 🔨

-   `expand` ([#&#8203;2677](https://redirect.github.com/lucide-icons/lucide/issues/2677)) by [@&#8203;jguddas](https://redirect.github.com/jguddas)

</details>

<details>
<summary>nodejs/node (node)</summary>

### [`v22.13.1`](https://redirect.github.com/nodejs/node/compare/v22.13.0...v22.13.1)

[Compare Source](https://redirect.github.com/nodejs/node/compare/v22.13.0...v22.13.1)

</details>

<details>
<summary>resend/react-email (react-email)</summary>

### [`v3.0.6`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#306)

[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@3.0.5...react-email@3.0.6)

##### Patch Changes

-   [`c6fcd94`](https://redirect.github.com/resend/react-email/commit/c6fcd94): Fix preview server crashing without React 19

### [`v3.0.5`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#305)

[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@3.0.4...react-email@3.0.5)

##### Patch Changes

-   [`7337d04`](https://redirect.github.com/resend/react-email/commit/7337d04): Fix emails being re-rendered each time there is navigation in the preview server

</details>

<details>
<summary>vercel/swr (swr)</summary>

### [`v2.3.2`](https://redirect.github.com/vercel/swr/compare/v2.3.1...v2.3.2)

[Compare Source](https://redirect.github.com/vercel/swr/compare/v2.3.1...v2.3.2)

### [`v2.3.1`](https://redirect.github.com/vercel/swr/releases/tag/v2.3.1)

[Compare Source](https://redirect.github.com/vercel/swr/compare/v2.3.0...v2.3.1)

##### Fixes

-   fix: missing `throwOnError` in SWRMutationHook options by [@&#8203;Ram4GB](https://redirect.github.com/Ram4GB) in [https://github.com/vercel/swr/pull/3054](https://redirect.github.com/vercel/swr/pull/3054)
-   fix: sever env detection for deno by [@&#8203;elrrrrrrr](https://redirect.github.com/elrrrrrrr) in [https://github.com/vercel/swr/pull/4064](https://redirect.github.com/vercel/swr/pull/4064)
-   keepPreviousData: return fallback instead of undefined value by [@&#8203;dvoytenko](https://redirect.github.com/dvoytenko) in [https://github.com/vercel/swr/pull/4084](https://redirect.github.com/vercel/swr/pull/4084)

##### Misc

-   ci: update pnpm setup and lock pnpm vesion by [@&#8203;huozhi](https://redirect.github.com/huozhi) in [https://github.com/vercel/swr/pull/4085](https://redirect.github.com/vercel/swr/pull/4085)
-   build: bump bundler by [@&#8203;huozhi](https://redirect.github.com/huozhi) in [https://github.com/vercel/swr/pull/4086](https://redirect.github.com/vercel/swr/pull/4086)
-   refactor: type improvement of `useSWRHandler` by [@&#8203;samuel871211](https://redirect.github.com/samuel871211) in [https://github.com/vercel/swr/pull/4075](https://redirect.github.com/vercel/swr/pull/4075)

#### New Contributors

-   [@&#8203;Ram4GB](https://redirect.github.com/Ram4GB) made their first contribution in [https://github.com/vercel/swr/pull/3054](https://redirect.github.com/vercel/swr/pull/3054)
-   [@&#8203;elrrrrrrr](https://redirect.github.com/elrrrrrrr) made their first contribution in [https://github.com/vercel/swr/pull/4064](https://redirect.github.com/vercel/swr/pull/4064)
-   [@&#8203;dvoytenko](https://redirect.github.com/dvoytenko) made their first contribution in [https://github.com/vercel/swr/pull/4084](https://redirect.github.com/vercel/swr/pull/4084)
-   [@&#8203;samuel871211](https://redirect.github.com/samuel871211) made their first contribution in [https://github.com/vercel/swr/pull/4075](https://redirect.github.com/vercel/swr/pull/4075)

**Full Changelog**: https://github.com/vercel/swr/compare/v2.3.0...v2.3.1

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v6.1.0`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#610-2025-02-05)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.11...v6.1.0)

-   refactor: deprecate `vite optimize` command ([#&#8203;19348](https://redirect.github.com/vitejs/vite/issues/19348)) ([6e0e3c0](6e0e3c0b99)), closes [#&#8203;19348](https://redirect.github.com/vitejs/vite/issues/19348)
-   feat: show hosts in cert in CLI ([#&#8203;19317](https://redirect.github.com/vitejs/vite/issues/19317)) ([a5e306f](a5e306f2fc)), closes [#&#8203;19317](https://redirect.github.com/vitejs/vite/issues/19317)
-   feat: support for env var for defining allowed hosts ([#&#8203;19325](https://redirect.github.com/vitejs/vite/issues/19325)) ([4d88f6c](4d88f6c939)), closes [#&#8203;19325](https://redirect.github.com/vitejs/vite/issues/19325)
-   feat: use native runtime to import the config ([#&#8203;19178](https://redirect.github.com/vitejs/vite/issues/19178)) ([7c2a794](7c2a7942cc)), closes [#&#8203;19178](https://redirect.github.com/vitejs/vite/issues/19178)
-   fix: avoid builtStart during vite optimize ([#&#8203;19356](https://redirect.github.com/vitejs/vite/issues/19356)) ([fdb36e0](fdb36e0769)), closes [#&#8203;19356](https://redirect.github.com/vitejs/vite/issues/19356)
-   fix(build): fix stale build manifest on watch rebuild ([#&#8203;19361](https://redirect.github.com/vitejs/vite/issues/19361)) ([fcd5785](fcd578587b)), closes [#&#8203;19361](https://redirect.github.com/vitejs/vite/issues/19361)

### [`v6.0.11`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small6011-2025-01-21-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.10...v6.0.11)

-   fix: `preview.allowedHosts` with specific values was not respected ([#&#8203;19246](https://redirect.github.com/vitejs/vite/issues/19246)) ([aeb3ec8](aeb3ec84a2)), closes [#&#8203;19246](https://redirect.github.com/vitejs/vite/issues/19246)
-   fix: allow CORS from loopback addresses by default ([#&#8203;19249](https://redirect.github.com/vitejs/vite/issues/19249)) ([3d03899](3d03899737)), closes [#&#8203;19249](https://redirect.github.com/vitejs/vite/issues/19249)

### [`v6.0.10`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small6010-2025-01-20-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.9...v6.0.10)

-   fix: try parse `server.origin` URL ([#&#8203;19241](https://redirect.github.com/vitejs/vite/issues/19241)) ([2495022](2495022420)), closes [#&#8203;19241](https://redirect.github.com/vitejs/vite/issues/19241)

</details>

<details>
<summary>apollographql/apollo-kotlin (com.apollographql.apollo)</summary>

### [`v4.1.1`](https://redirect.github.com/apollographql/apollo-kotlin/blob/HEAD/CHANGELOG.md#Version-411)

*2025-01-24*

#### Kotlin 2.1.0 ([#&#8203;6291](https://redirect.github.com/apollographql/apollo-kotlin/issues/6291))

The artifacts are now compiled with [Kotlin 2.1.0](https://kotlinlang.org/docs/whatsnew21.html). This change should be transparent for JVM and Android users thanks to [`languageVersion`](https://kotlinlang.org/docs/compatibility-modes.html) but [requires klib consumers (native + JS) to update their KGP version to 2.1.0](8add2e3b98/compiler/util-klib/KotlinAbiVersionBumpHistory.md (L3-L5)).

#### Rover LSP support in the IntelliJ plugin ([#&#8203;6274](https://redirect.github.com/apollographql/apollo-kotlin/issues/6274))

The IntelliJ plugin now has a dedicated mode for backend developers that uses [Rover](https://redirect.github.com/apollographql/rover) LSP ([Language Server Protocol](https://en.wikipedia.org/wiki/Language_Server_Protocol)) to parse federation and connectors directives. This mode is only available when using IntelliJ Ultimate and other IDEs with LSP support. It is recommended for subgraphs authors.

#### Gradle isolated projects support ([#&#8203;6351](https://redirect.github.com/apollographql/apollo-kotlin/issues/6351))

This release supports [Gradle isolated projects](https://docs.gradle.org/current/userguide/isolated_projects.html) for shorter configuration times.

#### Contributors 💙💙

Many thanks to [@&#8203;jvanderwee](https://redirect.github.com/jvanderwee), [@&#8203;varahash](https://redirect.github.com/varahash), [@&#8203;whyoleg](https://redirect.github.com/whyoleg), [@&#8203;StylianosGakis](https://redirect.github.com/StylianosGakis) and [@&#8203;scana](https://redirect.github.com/scana) for all the contributions and help in this release 💙!

#### 👷‍♂️ All changes

-   \[all] Do not set the license URL in the POMs ([#&#8203;6247](https://redirect.github.com/apollographql/apollo-kotlin/issues/6247))
-   \[all] Bump Kotlin to 2.1.0 ([#&#8203;6291](https://redirect.github.com/apollographql/apollo-kotlin/issues/6291))
-   \[all] Bump atomicfu ([#&#8203;6245](https://redirect.github.com/apollographql/apollo-kotlin/issues/6245))
-   \[intellij-plugin] Play nice with IDEs without Kotlin/Gradle ([#&#8203;6358](https://redirect.github.com/apollographql/apollo-kotlin/issues/6358))
-   \[intellij-plugin] Reduce usage of GradleExecutionHelper ([#&#8203;6355](https://redirect.github.com/apollographql/apollo-kotlin/issues/6355))
-   \[intellij-plugin] Use our own executeOnPooledThread instead of Android Plugin's ([#&#8203;6310](https://redirect.github.com/apollographql/apollo-kotlin/issues/6310))
-   \[intellij-plugin] Make Java and Kotlin dependencies optional ([#&#8203;6304](https://redirect.github.com/apollographql/apollo-kotlin/issues/6304))
-   \[intellij-plugin] Pass arguments to rover ([#&#8203;6303](https://redirect.github.com/apollographql/apollo-kotlin/issues/6303))
-   \[intellij-plugin] Move Rover settings to own section and add note about needing v0.27.0+ ([#&#8203;6278](https://redirect.github.com/apollographql/apollo-kotlin/issues/6278))
-   \[intellij-plugin] Remove untilBuild ([#&#8203;6279](https://redirect.github.com/apollographql/apollo-kotlin/issues/6279))
-   \[intellij-plugin] Add support for the Apollo LSP via Rover ([#&#8203;6274](https://redirect.github.com/apollographql/apollo-kotlin/issues/6274))
-   \[intellij-plugin] Don't reference AdbShellCommandsUtil.executeCommandBlocking that's been removed ([#&#8203;6268](https://redirect.github.com/apollographql/apollo-kotlin/issues/6268))
-   \[intellij-plugin] Make verifyPlugin fail on certain problems ([#&#8203;6256](https://redirect.github.com/apollographql/apollo-kotlin/issues/6256))
-   \[intellij-plugin] Do not use internal symbol ([#&#8203;6255](https://redirect.github.com/apollographql/apollo-kotlin/issues/6255))
-   \[intellij-plugin] Add explicit dependency to com.intellij.modules.json ([#&#8203;6254](https://redirect.github.com/apollographql/apollo-kotlin/issues/6254))
-   \[gradle-plugin] Add a fail-safe mode to disable 2-step introspection and use minimal introspection query ([#&#8203;6360](https://redirect.github.com/apollographql/apollo-kotlin/issues/6360))
-   \[gradle-plugin] Isolated Projects support ([#&#8203;6351](https://redirect.github.com/apollographql/apollo-kotlin/issues/6351))
-   \[gradle-plugin] expose the outgoing variants ([#&#8203;6329](https://redirect.github.com/apollographql/apollo-kotlin/issues/6329))
-   \[gradle-plugin] Better Gradle error message ([#&#8203;6326](https://redirect.github.com/apollographql/apollo-kotlin/issues/6326))
-   \[gradle-plugin] Fix classloader caching. Many thanks [@&#8203;scana](https://redirect.github.com/scana) for catching this ([#&#8203;6309](https://redirect.github.com/apollographql/apollo-kotlin/issues/6309))
-   \[gradle-plugin] Manage our classloaders manually ([#&#8203;6305](https://redirect.github.com/apollographql/apollo-kotlin/issues/6305))
-   \[gradle-plugin] Only call `onSchema()` once in multi-module scenrios ([#&#8203;6252](https://redirect.github.com/apollographql/apollo-kotlin/issues/6252))
-   \[runtime] Copy executionContext inside HttpRequest.newBuilder ([#&#8203;6350](https://redirect.github.com/apollographql/apollo-kotlin/issues/6350))
-   \[runtime] Apple HttpEngine: lock the handlers map ([#&#8203;6348](https://redirect.github.com/apollographql/apollo-kotlin/issues/6348))
-   \[runtime] Allow to initialize WebSocketEngine lazily ([#&#8203;6290](https://redirect.github.com/apollographql/apollo-kotlin/issues/6290))
-   \[runtime] Remove CloseableBackgroundDispatcher and bump coroutines version ([#&#8203;6286](https://redirect.github.com/apollographql/apollo-kotlin/issues/6286))
-   \[runtime] Override JsonNumber.toString() ([#&#8203;6273](https://redirect.github.com/apollographql/apollo-kotlin/issues/6273))
-   \[runtime] Implement ApolloWebSocketClosedException on darwin targets and update docs ([#&#8203;6275](https://redirect.github.com/apollographql/apollo-kotlin/issues/6275))
-   \[ast] Make deprecation.reason non-nullable ([#&#8203;6311](https://redirect.github.com/apollographql/apollo-kotlin/issues/6311))
-   \[ast] Allow multiple [@&#8203;link](https://redirect.github.com/link) schema extensions ([#&#8203;6284](https://redirect.github.com/apollographql/apollo-kotlin/issues/6284))
-   \[normalized-cache] Add ApolloStore.ALL_KEYS to notify all watchers ([#&#8203;6337](https://redirect.github.com/apollographql/apollo-kotlin/issues/6337))
-   \[http-cache] HTTP cache: do not remove cached entries on transport errors ([#&#8203;6314](https://redirect.github.com/apollographql/apollo-kotlin/issues/6314))
-   \[execution] Add apollo-execution ([#&#8203;6356](https://redirect.github.com/apollographql/apollo-kotlin/issues/6356))

</details>

<details>
<summary>JetBrains/kotlin (org.jetbrains.kotlin.jvm)</summary>

### [`v2.1.10`](https://redirect.github.com/JetBrains/kotlin/blob/HEAD/ChangeLog.md#2110)

##### Compiler

-   [`KT-73858`](https://youtrack.jetbrains.com/issue/KT-73858) Compose  / iOS: NullPointerException on building
-   [`KT-73454`](https://youtrack.jetbrains.com/issue/KT-73454) K2: Fix type parameters mapping for typealiases with inner RHS
-   [`KT-73043`](https://youtrack.jetbrains.com/issue/KT-73043) K2 Compiler does not allow references to inner constructors with typealiases
-   [`KT-74040`](https://youtrack.jetbrains.com/issue/KT-74040) Compilation of inner class usage does not check the visibility of parent class during compilation in different rounds
-   [`KT-73339`](https://youtrack.jetbrains.com/issue/KT-73339) K2: "VerifyError: Bad type on operand stack" because of missing implicit cast on generic field receiver with star projection
-   [`KT-72585`](https://youtrack.jetbrains.com/issue/KT-72585) K2: Compilation failure when upgrading to Kotlin 2.0.20+: Cannot replace top-level type with star projection: S
-   [`KT-73399`](https://youtrack.jetbrains.com/issue/KT-73399) compile-time JVM codegen failure on a KProperty argument of a KSuspendFunction parameter
-   [`KT-72725`](https://youtrack.jetbrains.com/issue/KT-72725) KMP: Unsupported actualization of inherited java field in expect class
-   [`KT-73153`](https://youtrack.jetbrains.com/issue/KT-73153) K2: Standalone diagnostics on type arguments are not reported

##### Compose compiler

-   [`CMP-5680`](https://youtrack.jetbrains.com/issue/CMP-5680) Compose compiler: unexpected stability warnings for classes compiled with 2.0.10
-   [`b/381407900`](https://issuetracker.google.com/issues/381407900) Avoid adding Compose annotations on synthetic classes

##### IR. Inlining

-   [`KT-73981`](https://youtrack.jetbrains.com/issue/KT-73981) Cherry-pick the fix for KT-73482 to 2.1.10

##### JavaScript

-   [`KT-70778`](https://youtrack.jetbrains.com/issue/KT-70778) Kotlin Js companion is undefined  in production build
-   [`KT-73130`](https://youtrack.jetbrains.com/issue/KT-73130) KJS: Missed `break` for do/while in generated JS code
-   [`KT-58797`](https://youtrack.jetbrains.com/issue/KT-58797) Optimize the code generated for objects on JS and Wasm backends

##### Klibs

-   [`KT-70146`](https://youtrack.jetbrains.com/issue/KT-70146) \[KLIB Resolve] Don't fail on nonexistent transitive dependency
-   [`KT-73951`](https://youtrack.jetbrains.com/issue/KT-73951) Workaround for "Partial linkage engine may not patch some discrepancies in IR when compiling Kotlin/Native static caches" in 2.1.10

##### Native

-   [`KT-73559`](https://youtrack.jetbrains.com/issue/KT-73559) K/Native: AndroidNativeArm64 linking fails starting from Kotlin 2.1.0

##### Tools. CLI

-   [`KT-73967`](https://youtrack.jetbrains.com/issue/KT-73967) JDK 25: "IllegalArgumentException: 25-ea" with EA builds

##### Tools. Daemon

-   [`KT-73311`](https://youtrack.jetbrains.com/issue/KT-73311) "Unable to release compile session, maybe daemon is already down" flakiness

##### Tools. Gradle

-   [`KT-73728`](https://youtrack.jetbrains.com/issue/KT-73728) 'generatePomFileForMavenPublication' creates pom with dependencies with 'unspecified' version

##### Tools. Gradle. Multiplatform

-   [`KT-73620`](https://youtrack.jetbrains.com/issue/KT-73620) KMP 2.1.0: Transitive dependency is broken when setting publication groupId

##### Tools. Gradle. Native

-   [`KT-73572`](https://youtrack.jetbrains.com/issue/KT-73572) \[Gradle] `kotlin.native.cacheKind=none` doesn't work anymore
-   [`KT-71419`](https://youtrack.jetbrains.com/issue/KT-71419) Light bundle KGP IT run against a stable K/N version

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-02-06 05:09:51 +00:00
donteatfriedrice
4b553d153a feat(core): update chat error style (#9885)
[BS-2487](https://linear.app/affine-design/issue/BS-2487/报错样式更新)
2025-01-24 12:39:10 +00:00
akumatus
95cf2e047f feat(core): cite source documents in the AI answer (#9863)
Support issue [BS-2424](https://linear.app/affine-design/issue/BS-2424).

### What changed?
- Add relevant document prompt templates.
- Add citation rules in system prompts.
- Change message `params` type to `Record<string, any>`
- Add unit test.

<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/ec24e664-039e-4fab-bd26-b3312f011daf.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/ec24e664-039e-4fab-bd26-b3312f011daf.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/ec24e664-039e-4fab-bd26-b3312f011daf.mov">录屏2025-01-23 10.40.38.mov</video>
2025-01-24 04:04:01 +00:00
akumatus
862a9d0bc4 feat: use footnote for perplexity search results (#9851)
Support issue [BS-2475](https://linear.app/affine-design/issue/BS-2475).

![截屏2025-01-22 16.49.25.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/49febcdf-e403-4a2e-ba99-da36df34e08c.png)
2025-01-22 10:54:01 +00:00
L-Sun
29995e498a feat(editor): add start-with-ai button for empty doc (#9836)
Close [BS-2391](https://linear.app/affine-design/issue/BS-2391/bs-ai-toolbar-空状态下添加-actions-列表)

https://github.com/user-attachments/assets/cbded517-2d3d-4a75-b144-644e2b03f68a
2025-01-21 16:00:49 +00:00
akumatus
d048ac6c91 feat(core): support chat panel chips and suggest current doc for embedding (#9747)
Support issue [BS-2347](https://linear.app/affine-design/issue/BS-2347).

## What Changed?
- Add chat panel components
  - `chat-panel-chips`
  - `chat-panel-doc-chip`
  - `chat-panel-file-chip`
  - `chat-panel-chip`
- Add `chips` and `docs` field in `ChatContextValue`
- Add `extractMarkdownFromDoc` function to extract markdown content of a doc
- Add e2e test

Click a candidate card to add it into AI chat context:
<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/4e6b11ef-f993-4e6a-9f40-b2826af1990c.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/4e6b11ef-f993-4e6a-9f40-b2826af1990c.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/4e6b11ef-f993-4e6a-9f40-b2826af1990c.mov">录屏2025-01-17 01.02.04.mov</video>
2025-01-18 08:35:19 +00:00
akumatus
c8e550138d fix(core): add ai send button test (#9685) 2025-01-14 10:06:31 +00:00
akumatus
2f49c064eb feat(editor): remove chat-cards and Open AI Chat menu item (#9626)
Support issue [BS-2353](https://linear.app/affine-design/issue/BS-2353).

### What changed?
- Remove `Open AI Chat` menu item.
- Remove `chat-cards` web component.
- Add `extractAll` function for page and edgeless doc full content extract.
2025-01-10 03:53:11 +00:00
akumatus
58ce86533e feat(core): support ai network search (#9357)
### What Changed?
- Add `PerplexityProvider` in backend.
- Update session prompt name if user toggle network search mode in chat panel.
- Add experimental flag for AI network search feature.
- Add unit tests and e2e tests.

Search results are streamed and appear word for word:

<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">录屏2024-12-27 18.58.40.mov</video>

Click the little globe icon to manually turn on/off Internet search:
<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">录屏2024-12-27 19.01.16.mov</video>

When there is an image, it will automatically switch to the openai model:

<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">录屏2024-12-27 19.02.13.mov</video>
2025-01-09 04:00:59 +00:00
forehalo
c0ed74dfed chore: standardize tsconfig (#9568) 2025-01-08 04:07:56 +00:00
forehalo
12542f51f9 chore: bump base version to 0.19.0 2024-12-28 00:27:50 +08:00
liuyi
2443935830 chore: add monorepo tools (#9196) 2024-12-24 15:29:48 +08:00
darkskygit
475e3d80b2 fix(server): vague initial chat content in test (#9267) 2024-12-24 04:26:52 +00:00
liuyi
b0e64fe516 chore: remove legacy tests (#9183) 2024-12-17 17:06:28 +08:00