Commit Graph

1273 Commits

Author SHA1 Message Date
DarkSky
027f741ed6 chore: bump deps (#14065)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Updated dependency versions across the monorepo (notably zod →
^3.25.76 and vitest-related packages → ^3.2.4), plus minor package bumps
to align tooling and libraries. These are manifest/test-tooling updates
only; no public API, behavior, or end-user features were changed.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-08 21:47:25 +08:00
DarkSky
776ca2c702 chore: bump version 2025-12-08 10:47:37 +08:00
Whitewater
1196101226 fix(editor): use onBlur for input handling in property menu (#14049)
Eliminate mobile-specific input handling from the property menu to
streamline functionality across devices.


Before


https://github.com/user-attachments/assets/563857c9-6d2f-4c38-9359-7e3e74dfb531


After


https://github.com/user-attachments/assets/0126b966-cdc2-40b7-b416-3a0e8be4aedf


Maybe related to
https://github.com/toeverything/blocksuite/pull/7524/files#diff-25406bbadb23338f3120c8d0c5e1e8485173750a57f1ba3d7a51be1c9f548696
https://github.com/toeverything/blocksuite/pull/8787/files#diff-36fb3de4c5129393febe0286eb10e9ebb791296500dc4229c9d609b9ed5e138c

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved input field responsiveness by enhancing event handling for
blur interactions.
  
* **Improvements**
* Unified input component behavior across all platforms for more
consistent user experience.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-05 14:37:15 +08:00
congzhou09
bcc892c8ec fix(editor): one-time size mismatch during surface-block resize after zoom change in edgeless mode (#14019)
### Problem

There's a one-time content-size mismatch during surface-block resize
after a zoom change in edgeless mode, as shown in the image and video
below.

<img width="885" height="359" alt="图片"
src="https://github.com/user-attachments/assets/97a85924-1ca1-4b48-b334-6f19c7c41f49"
/>



https://github.com/user-attachments/assets/1c0e854c-b12e-4edc-9266-6358e0cf9d5a


### Reason and resolve

`Viewport` maintains a `_cachedBoundingClientRect` that stores the
synced-doc-block’s bounding box size. This cache is cleared by a
ResizeObserver on resizing.

In `EmbedSyncedDocBlockComponent`, `fitToContent()` depends on this
cache, and is triggered by another ResizeObserver registered in
`_initEdgelessFitEffect()`.

Since `_initEdgelessFitEffect()` is invoked before the `Viewport`’s
ResizeObserver is registered — dut to `_renderSyncedView()` not being
called for the first-time in `renderBlock()` — `fitToContent()` reads a
stale cached value at the beginning of the resize, resulting in the
one-time content-size mismatch.

This PR ensures that `_initEdgelessFitEffect()` is called after the
registration of the ResizeObserver in `Viewport`.

### After



https://github.com/user-attachments/assets/e95815e2-0575-4108-a366-ea5c00efe482



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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved initialization sequence for embedded synced documents to
ensure proper rendering and resize handling, preventing potential issues
with stale data during component setup.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-27 23:29:19 +08:00
congzhou09
0bedaaadba fix(editor): surface-block canvas size not fitting its container in edgeless mode when zoom is not 1 (#14015)
### Problem
●In edgeless mode, the embed-edgeless-doc's content does not match the
size of its outer block when zoom ≠ 1.
●The follwing image and video show the issue at zoom = 0.5.

<img width="610" height="193" alt="图片"
src="https://github.com/user-attachments/assets/c50849c6-d55b-4175-9b70-218f69ab976a"
/>


https://github.com/user-attachments/assets/ea7e7cc4-64ae-4747-8124-16c4eea6458e

### Reason and resolve
●The issue occurs because the surface-block canvas uses the container’s
dimensions obtained from getBoundingClientRect(), which are already
affected by the CSS transform. The canvas is then transformed again
together with the container, causing the size mismatch.
●To keep all drawing operations in the surface-block’s original
coordinate space, we apply a reverse transform to the canvas.

### After


https://github.com/user-attachments/assets/6c802b81-d520-44a0-9f01-78d0d60d37b8



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

## Summary by CodeRabbit

* **Bug Fixes**
* Canvas rendering now properly responds to viewport zoom levels. Visual
scaling is applied dynamically to ensure canvases align correctly with
viewport scaling, providing consistent and accurate rendering during
zoomed interactions while preserving original canvas dimensions.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-27 02:31:18 +00:00
Daniel Dybing
1d9fe3b8d9 fix(core): pressing ENTER on database title now switches focus instead of creating new record (#13975)
Initial bug report: Issue
https://github.com/toeverything/AFFiNE/issues/13966

Description of bug: When a database header/title is in focus and the
user presses ENTER, a new record is created and shown to the user.

Expected outcome: When the user presses enter in the header title field,
the new title should be applied and then the title field should loose
focus.

Short summary of fix: When the ENTER key is pressed within the title,
the `onPressEnterKey()` function is called. As of now, this calls the
function `this.dataViewLogic.addRow?.('start');` which creates a new
record. In this fix, this has been changed to `this.input.blur()` which
instead essentially switches focus away from the title field and does
not create a new record, as expected.

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

## Summary by CodeRabbit

* **Bug Fixes**
* Modified Enter key behavior in the database title field. Pressing
Enter now blurs the input instead of automatically inserting a new row.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-21 12:41:39 +00:00
ents1008
6c36fc5941 fix(editor): switch to PanTool on same frame for middle mouse; restore selection snapshot (#13911)
Bug: In Edgeless mode, pressing and dragging the middle mouse button
over any element incorrectly triggers DefaultTool in the same frame,
causing unintended selection/drag instead of panning. Dragging on empty
area works because no element intercepts left-click logic.

Reproduction:
- Open an Edgeless canvas
- Press and hold middle mouse button over a shape/text/any element and
drag
- Expected: pan the canvas
- Actual: the element gets selected or moved; no panning occurs

Root cause:
1. PanTool switched via requestAnimationFrame; the current frame’s
pointerDown/pointerMove were handled by DefaultTool first (handing
middle mouse to left-click logic).
2. Selection restore used a live reference to
`this.gfx.selection.surfaceSelections`, which could be mutated by other
selection logic during the temporary pan, leading to incorrect
restoration.

Fix:
- Switch to PanTool immediately on the same frame when middle mouse is
pressed; add a guard to avoid switching if PanTool is already active.
- Snapshot `surfaceSelections` using `slice()` before the temporary
switch; restore it on `pointerup` so external mutations won’t affect
restoration.
- Only register the temporary `pointerup` listener when actually
switching; on release, restore the previous tool (including
`frameNavigator` with `restoredAfterPan: true`) and selection.
Additionally, disable black background when exiting from frameNavigator.

Affected files:
- blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts

Tests:
-
packages/frontend/core/src/blocksuite/__tests__/pan-tool-middle-mouse.spec.ts
- Verifies immediate PanTool switch, selection snapshot restoration,
frameNavigator recovery flag, and no-op when PanTool is already active.

Notes:
- Aligned with docs/contributing/tutorial.md. Local validation
performed. Thanks for reviewing!

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

* **Bug Fixes**
  * Prevented accidental re-activation of the middle-click pan tool.
* Preserved and restored the user's selection and previous tool options
after panning, including correct handling when returning to the frame
navigator.
* Ensured immediate tool switch to pan and reliable cleanup on
middle-button release.

* **Tests**
* Added tests covering middle-click pan behavior, restoration flows, and
no-op when pan is already active.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: DarkSky <25152247+darkskygit@users.noreply.github.com>
2025-11-18 14:26:27 +08:00
DarkSky
4e082e4170 chore: bump version 2025-11-15 17:29:54 +08:00
DarkSky
46958867ef fix(editor): mermaid style pollution (#13950)
fix #13546
2025-11-15 17:26:08 +08:00
DarkSky
beb09300b9 fix(editor): date picker in year (#13948)
fix #13582
2025-11-15 16:56:24 +08:00
Xun Sun
17ec76540b feat(editor): import docs from docx (#11774)
Support importing .docx files, as mentioned in
https://github.com/toeverything/AFFiNE/issues/10154#issuecomment-2655744757

It essentially uses mammoth to convert the docx to html, and then
imports the html with the standard steps.

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

* **New Features**
* Import Microsoft Word (.docx) files directly via the import dialog
(creates new documents).
* .docx added as a selectable file type in the file picker and import
options.

* **Localization**
* Added localized labels and tooltips for DOCX import in English,
Simplified Chinese, and Traditional Chinese.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: DarkSky <25152247+darkskygit@users.noreply.github.com>
Co-authored-by: DarkSky <darksky2048@gmail.com>
2025-11-15 15:51:23 +08:00
Richard Lora
e379da200e feat(editor): add collapse/expand toggle for groups with caching (#12671)
https://github.com/user-attachments/assets/4ef71704-57bb-45b8-9e73-8a51c67fb158

Adds a collapsible toggle for group-by groups.

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

- **New Features**
- Collapsible groups for desktop and mobile table views with persistent
per-view collapsed state and a keyboard-accessible toggle button.

- **Bug Fixes**
  - Group title icons now render consistently across variants.

- **Tests**
- Added unit tests verifying collapse/expand behavior for group
components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: 3720 <zuozijian1994@gmail.com>
Co-authored-by: L-Sun <zover.v@gmail.com>
2025-11-14 04:21:13 +00:00
3720
6ec1948f62 feat(editor): release callout (#13896)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Refactor**
* Callout is no longer gated as an experimental option — it now
consistently appears in the editor’s slash menu and toolbar where
applicable.

* **Tests**
* End-to-end slash-menu tests updated to expect the Callout item in
search results and adjusted item ordering.

* **Chores**
  * Repository ignore rules updated to exclude .kiro files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-12 06:46:18 +00:00
Vitaly Barakov
9f6ea83ac1 fix(editor): linked doc popover close when layout is switched (#13867)
Fixing the disappearing linked doc menu called by @ when switching
language using Alt+Shift.
2025-11-06 22:26:19 +08:00
DarkSky
e4b5b24fdd chore: bump package version 2025-10-29 21:14:34 +08:00
Kandula Ramesh Kumar
d74087fdc5 fix(blocksuite): stabilize cross-document clipboard snapshot handling (#13817)
This PR addresses issue Fixes: #13805 (cross-document copy/paste not
working).

Locally verified that:
- Copy → paste between two documents now works consistently.
- Clipboard snapshot payload remains intact when encoded/decoded.
- External paste (e.g., to Notepad or browser text field) functions
correctly.

E2E tests for clipboard behavior were added, but Playwright browsers
could not be installed in the container (`HTTP 403` from CDN).
Manual verification confirms the fix works as intended.


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

* **Tests**
* Added cross-document clipboard regression tests for copy/paste between
documents, external clipboard validation, and multi-block copy;
duplicate test entries noted.

* **Chores**
  * Minor formatting and whitespace cleanup around clipboard handling.
  * Improved error handling in paste flows.
  * Standardized HTML formatting for clipboard payload attributes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-28 17:27:54 +00:00
Martijn Smit
a0613b6306 feat(core): enhance Notion import with folder hierarchy and page icons (#13692)
Hi 👋

Love what you're doing with AFFiNE, I found my Notion replacement in
this app. Coming from Notion and importing my workspaces, I saw the need
to improve the import functionality to replicate the folder hierarchy
from Notion into the AFFiNE folder structure in the `Organize` section.
There are a few issues(i.e. #12961 and #13629 ) of people that expected
the same behavior. This should make it a lot easier for people to move
over.

### Technical description

Improve Notion import functionality to preserve organizational structure
and page icons from exports:

- Add folder hierarchy preservation during Notion import
- Extract and set page icons (emoji and image) from Notion HTML
- Integrate with OrganizeService to recreate folder structure
- Use ExplorerIconService to apply page icons to imported documents
- Tested using production workspace exports from Notion, several
thousand pages and multiple hierarchy levels deep.

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

- New Features
- Imports from Notion/HTML now recreate folder hierarchies and link
imported pages into that structure.
- Page icons (emoji and supported images) are extracted and attached to
imported pages.
  - Import results now include the created root folder for quick access.

- Improvements
- Import flows integrate folder creation and icon assignment with
non-blocking error handling.

- Bug Fixes
  - Avoids including undefined page IDs in successful imports.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: DarkSky <darksky2048@gmail.com>
Co-authored-by: DarkSky <25152247+darkskygit@users.noreply.github.com>
2025-10-21 17:34:23 +00:00
congzhou09
e2de0e0e3d fix(editor): add trash state for linked-doc and synced-doc appearance (#13767)
This PR updates the appearance of `embed-linked-doc-block` and
`embed-synced-doc-block` to reflect the trashed state of their linked
documents.
Previously, these blocks showed no visual difference whether the linked
document was trashed or not, despite the existing of codes for
deletion-related appearance.
This change ensures that the deletion appearance is properly displayed.


![after](https://github.com/user-attachments/assets/fe2d66d9-6685-4d15-95aa-0680111bc190)


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

## Summary by CodeRabbit

* **New Features**
* Documents now support trash state tracking for improved deletion
management

* **Bug Fixes**
* Improved synchronization and refresh of embedded documents when
document states change
  * Enhanced handling of trashed documents in embedded content

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-21 16:51:03 +00:00
renovate[bot]
2c44d3abc6 chore: bump up vite version to v7 [SECURITY] (#13786)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`^6.1.0` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/vite/6.3.6/7.1.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.3.6/7.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`^6.0.3` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/vite/6.3.6/7.1.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.3.6/7.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

### GitHub Vulnerability Alerts

####
[CVE-2025-62522](https://redirect.github.com/vitejs/vite/security/advisories/GHSA-93m4-6634-74q7)

### Summary
Files denied by
[`server.fs.deny`](https://vitejs.dev/config/server-options.html#server-fs-deny)
were sent if the URL ended with `\` when the dev server is running on
Windows.

### Impact
Only apps that match the following conditions are affected:

- explicitly exposes the Vite dev server to the network (using --host or
[`server.host` config
option](https://vitejs.dev/config/server-options.html#server-host))
- running the dev server on Windows

### Details
`server.fs.deny` can contain patterns matching against files (by default
it includes `.env`, `.env.*`, `*.{crt,pem}` as such patterns). These
patterns were able to bypass by using a back slash(`\`). The root cause
is that `fs.readFile('/foo.png/')` loads `/foo.png`.

### PoC
```shell
npm create vite@latest
cd vite-project/
cat "secret" > .env
npm install
npm run dev
curl --request-target /.env\ http://localhost:5173
```
<img width="1593" height="616" alt="image"
src="https://github.com/user-attachments/assets/36212f4e-1d3c-4686-b16f-16b35ca9e175"
/>

---

### Release Notes

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

###
[`v7.1.11`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-7111-2025-10-20-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.10...v7.1.11)

##### Bug Fixes

- **dev:** trim trailing slash before `server.fs.deny` check
([#&#8203;20968](https://redirect.github.com/vitejs/vite/issues/20968))
([f479cc5](f479cc57c4))

##### Miscellaneous Chores

- **deps:** update all non-major dependencies
([#&#8203;20966](https://redirect.github.com/vitejs/vite/issues/20966))
([6fb41a2](6fb41a260b))

##### Code Refactoring

- use subpath imports for types module reference
([#&#8203;20921](https://redirect.github.com/vitejs/vite/issues/20921))
([d0094af](d0094af639))

##### Build System

- remove cjs reference in files field
([#&#8203;20945](https://redirect.github.com/vitejs/vite/issues/20945))
([ef411ce](ef411cee26))
- remove hash from built filenames
([#&#8203;20946](https://redirect.github.com/vitejs/vite/issues/20946))
([a817307](a81730754d))

###
[`v7.1.10`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-7110-2025-10-14-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.9...v7.1.10)

##### Bug Fixes

- **css:** avoid duplicate style for server rendered stylesheet link and
client inline style during dev
([#&#8203;20767](https://redirect.github.com/vitejs/vite/issues/20767))
([3a92bc7](3a92bc79b3))
- **css:** respect emitAssets when cssCodeSplit=false
([#&#8203;20883](https://redirect.github.com/vitejs/vite/issues/20883))
([d3e7eee](d3e7eeefa9))
- **deps:** update all non-major dependencies
([879de86](879de86935))
- **deps:** update all non-major dependencies
([#&#8203;20894](https://redirect.github.com/vitejs/vite/issues/20894))
([3213f90](3213f90ff0))
- **dev:** allow aliases starting with `//`
([#&#8203;20760](https://redirect.github.com/vitejs/vite/issues/20760))
([b95fa2a](b95fa2aa75))
- **dev:** remove timestamp query consistently
([#&#8203;20887](https://redirect.github.com/vitejs/vite/issues/20887))
([6537d15](6537d15591))
- **esbuild:** inject esbuild helpers correctly for esbuild 0.25.9+
([#&#8203;20906](https://redirect.github.com/vitejs/vite/issues/20906))
([446eb38](446eb38632))
- normalize path before calling `fileToBuiltUrl`
([#&#8203;20898](https://redirect.github.com/vitejs/vite/issues/20898))
([73b6d24](73b6d243e0))
- preserve original sourcemap file field when combining sourcemaps
([#&#8203;20926](https://redirect.github.com/vitejs/vite/issues/20926))
([c714776](c714776aa1))

##### Documentation

- correct `WebSocket` spelling
([#&#8203;20890](https://redirect.github.com/vitejs/vite/issues/20890))
([29e98dc](29e98dc3ef))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20923](https://redirect.github.com/vitejs/vite/issues/20923))
([a5e3b06](a5e3b064fa))

###
[`v7.1.9`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-719-2025-10-03-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.8...v7.1.9)

##### Reverts

- **server:** drain stdin when not interactive
([#&#8203;20885](https://redirect.github.com/vitejs/vite/issues/20885))
([12d72b0](12d72b0538))

###
[`v7.1.8`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-718-2025-10-02-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.7...v7.1.8)

##### Bug Fixes

- **css:** improve url escape characters handling
([#&#8203;20847](https://redirect.github.com/vitejs/vite/issues/20847))
([24a61a3](24a61a3f54))
- **deps:** update all non-major dependencies
([#&#8203;20855](https://redirect.github.com/vitejs/vite/issues/20855))
([788a183](788a183afc))
- **deps:** update artichokie to 0.4.2
([#&#8203;20864](https://redirect.github.com/vitejs/vite/issues/20864))
([e670799](e670799e12))
- **dev:** skip JS responses for document requests
([#&#8203;20866](https://redirect.github.com/vitejs/vite/issues/20866))
([6bc6c4d](6bc6c4dbc2))
- **glob:** fix HMR for array patterns with exclusions
([#&#8203;20872](https://redirect.github.com/vitejs/vite/issues/20872))
([63e040f](63e040f1ca))
- keep ids for virtual modules as-is
([#&#8203;20808](https://redirect.github.com/vitejs/vite/issues/20808))
([d4eca98](d4eca986d6))
- **server:** drain stdin when not interactive
([#&#8203;20837](https://redirect.github.com/vitejs/vite/issues/20837))
([bb950e9](bb950e92b3))
- **server:** improve malformed URL handling in middlewares
([#&#8203;20830](https://redirect.github.com/vitejs/vite/issues/20830))
([d65a983](d65a9831c9))

##### Documentation

- **create-vite:** provide deno example
([#&#8203;20747](https://redirect.github.com/vitejs/vite/issues/20747))
([fdb758a](fdb758a517))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20810](https://redirect.github.com/vitejs/vite/issues/20810))
([ea68a88](ea68a8868c))
- **deps:** update rolldown-related dependencies
([#&#8203;20854](https://redirect.github.com/vitejs/vite/issues/20854))
([4dd06fd](4dd06fdc8d))
- update url of `create-react-app` license
([#&#8203;20865](https://redirect.github.com/vitejs/vite/issues/20865))
([166a178](166a178f45))

###
[`v7.1.7`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-717-2025-09-22-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.6...v7.1.7)

##### Bug Fixes

- **build:** fix ssr environment `emitAssets: true` when
`sharedConfigBuild: true`
([#&#8203;20787](https://redirect.github.com/vitejs/vite/issues/20787))
([4c4583c](4c4583ce7a))
- **client:** use CSP nonce when rendering error overlay
([#&#8203;20791](https://redirect.github.com/vitejs/vite/issues/20791))
([9bc9d12](9bc9d1258f))
- **deps:** update all non-major dependencies
([#&#8203;20811](https://redirect.github.com/vitejs/vite/issues/20811))
([9f2247c](9f2247c066))
- **glob:** handle glob imports from folders starting with dot
([#&#8203;20800](https://redirect.github.com/vitejs/vite/issues/20800))
([105abe8](105abe87c4))
- **hmr:** trigger prune event when import is removed from non hmr
module
([#&#8203;20768](https://redirect.github.com/vitejs/vite/issues/20768))
([9f32b1d](9f32b1dc71))
- **hmr:** wait for `import.meta.hot.prune` callbacks to complete before
running other HMRs
([#&#8203;20698](https://redirect.github.com/vitejs/vite/issues/20698))
([98a3484](98a3484733))

###
[`v7.1.6`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-716-2025-09-18-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.5...v7.1.6)

##### Bug Fixes

- **deps:** update all non-major dependencies
([#&#8203;20773](https://redirect.github.com/vitejs/vite/issues/20773))
([88af2ae](88af2ae7df))
- **esbuild:** inject esbuild helper functions with minified `$`
variables correctly
([#&#8203;20761](https://redirect.github.com/vitejs/vite/issues/20761))
([7e8e004](7e8e0043d6))
- fallback terser to main thread when nameCache is provided
([#&#8203;20750](https://redirect.github.com/vitejs/vite/issues/20750))
([a679a64](a679a64340))
- **types:** strict env typings fail when `skipLibCheck` is `false`
([#&#8203;20755](https://redirect.github.com/vitejs/vite/issues/20755))
([cc54e29](cc54e29474))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20675](https://redirect.github.com/vitejs/vite/issues/20675))
([a67bb5f](a67bb5fbec))
- **deps:** update rolldown-related dependencies
([#&#8203;20772](https://redirect.github.com/vitejs/vite/issues/20772))
([d785e72](d785e72f2e))

###
[`v7.1.5`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-715-2025-09-08-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.4...v7.1.5)

##### Bug Fixes

- apply `fs.strict` check to HTML files
([#&#8203;20736](https://redirect.github.com/vitejs/vite/issues/20736))
([14015d7](14015d794f))
- **deps:** update all non-major dependencies
([#&#8203;20732](https://redirect.github.com/vitejs/vite/issues/20732))
([122bfba](122bfbabeb))
- upgrade sirv to 3.0.2
([#&#8203;20735](https://redirect.github.com/vitejs/vite/issues/20735))
([09f2b52](09f2b52e8d))

###
[`v7.1.4`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-714-2025-09-01-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.3...v7.1.4)

##### Bug Fixes

- add missing awaits
([#&#8203;20697](https://redirect.github.com/vitejs/vite/issues/20697))
([79d10ed](79d10ed634))
- **deps:** update all non-major dependencies
([#&#8203;20676](https://redirect.github.com/vitejs/vite/issues/20676))
([5a274b2](5a274b29df))
- **deps:** update all non-major dependencies
([#&#8203;20709](https://redirect.github.com/vitejs/vite/issues/20709))
([0401feb](0401feba17))
- pass rollup watch options when building in watch mode
([#&#8203;20674](https://redirect.github.com/vitejs/vite/issues/20674))
([f367453](f367453ca2))

##### Miscellaneous Chores

- remove unused constants entry from rolldown.config.ts
([#&#8203;20710](https://redirect.github.com/vitejs/vite/issues/20710))
([537fcf9](537fcf9186))

##### Code Refactoring

- remove unnecessary `minify` parameter from `finalizeCss`
([#&#8203;20701](https://redirect.github.com/vitejs/vite/issues/20701))
([8099582](8099582e53))

###
[`v7.1.3`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-713-2025-08-19-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.2...v7.1.3)

##### Features

- **cli:** add Node.js version warning for unsupported versions
([#&#8203;20638](https://redirect.github.com/vitejs/vite/issues/20638))
([a1be1bf](a1be1bf090))
- generate code frame for parse errors thrown by terser
([#&#8203;20642](https://redirect.github.com/vitejs/vite/issues/20642))
([a9ba017](a9ba0174a5))
- support long lines in `generateCodeFrame`
([#&#8203;20640](https://redirect.github.com/vitejs/vite/issues/20640))
([1559577](1559577317))

##### Bug Fixes

- **deps:** update all non-major dependencies
([#&#8203;20634](https://redirect.github.com/vitejs/vite/issues/20634))
([4851cab](4851cab3ba))
- **optimizer:** incorrect incompatible error
([#&#8203;20439](https://redirect.github.com/vitejs/vite/issues/20439))
([446fe83](446fe83033))
- support multiline new URL(..., import.meta.url) expressions
([#&#8203;20644](https://redirect.github.com/vitejs/vite/issues/20644))
([9ccf142](9ccf142764))

##### Performance Improvements

- **cli:** dynamically import `resolveConfig`
([#&#8203;20646](https://redirect.github.com/vitejs/vite/issues/20646))
([f691f57](f691f57e46))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20633](https://redirect.github.com/vitejs/vite/issues/20633))
([98b92e8](98b92e8c4b))

##### Code Refactoring

- replace startsWith with strict equality
([#&#8203;20603](https://redirect.github.com/vitejs/vite/issues/20603))
([42816de](42816dee0e))
- use `import` in worker threads
([#&#8203;20641](https://redirect.github.com/vitejs/vite/issues/20641))
([530687a](530687a344))

##### Tests

- remove `checkNodeVersion` test
([#&#8203;20647](https://redirect.github.com/vitejs/vite/issues/20647))
([731d3e6](731d3e61f4))

###
[`v7.1.2`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-712-2025-08-12-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.1.1...v7.1.2)

##### Bug Fixes

- **client:** add `[vite]` prefixes to debug logs
([#&#8203;20595](https://redirect.github.com/vitejs/vite/issues/20595))
([7cdef61](7cdef612a6))
- **config:** make debugger work with bundle loader
([#&#8203;20573](https://redirect.github.com/vitejs/vite/issues/20573))
([c583927](c583927bee))
- **deps:** update all non-major dependencies
([#&#8203;20587](https://redirect.github.com/vitejs/vite/issues/20587))
([20d4817](20d48172a0))
- don't consider ids with `npm:` prefix as a built-in module
([#&#8203;20558](https://redirect.github.com/vitejs/vite/issues/20558))
([ab33803](ab33803f2c))
- **hmr:** watch non-inlined assets referenced by CSS
([#&#8203;20581](https://redirect.github.com/vitejs/vite/issues/20581))
([b7d494b](b7d494bf60))
- **module-runner:** prevent crash when sourceMappingURL pattern appears
in string literals
([#&#8203;20554](https://redirect.github.com/vitejs/vite/issues/20554))
([2770478](2770478d1c))

##### Miscellaneous Chores

- **deps:** migrate to `@jridgewell/remapping` from
`@ampproject/remapping`
([#&#8203;20577](https://redirect.github.com/vitejs/vite/issues/20577))
([0a6048a](0a6048aba4))
- **deps:** update rolldown-related dependencies
([#&#8203;20586](https://redirect.github.com/vitejs/vite/issues/20586))
([77632c5](77632c55db))

###
[`v7.1.1`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-7111-2025-10-20-small)

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

##### Bug Fixes

- **dev:** trim trailing slash before `server.fs.deny` check
([#&#8203;20968](https://redirect.github.com/vitejs/vite/issues/20968))
([f479cc5](f479cc57c4))

##### Miscellaneous Chores

- **deps:** update all non-major dependencies
([#&#8203;20966](https://redirect.github.com/vitejs/vite/issues/20966))
([6fb41a2](6fb41a260b))

##### Code Refactoring

- use subpath imports for types module reference
([#&#8203;20921](https://redirect.github.com/vitejs/vite/issues/20921))
([d0094af](d0094af639))

##### Build System

- remove cjs reference in files field
([#&#8203;20945](https://redirect.github.com/vitejs/vite/issues/20945))
([ef411ce](ef411cee26))
- remove hash from built filenames
([#&#8203;20946](https://redirect.github.com/vitejs/vite/issues/20946))
([a817307](a81730754d))

###
[`v7.1.0`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#710-2025-08-07)

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

##### Features

- support files with more than 1000 lines by `generateCodeFrame`
([#&#8203;20508](https://redirect.github.com/vitejs/vite/issues/20508))
([e7d0b2a](e7d0b2afa5))
- add `import.meta.main` support in config (bundle config loader)
([#&#8203;20516](https://redirect.github.com/vitejs/vite/issues/20516))
([5d3e3c2](5d3e3c2ae5))
- **optimizer:** improve dependency optimization error messages with
esbuild formatMessages
([#&#8203;20525](https://redirect.github.com/vitejs/vite/issues/20525))
([d17cfed](d17cfeda07))
- **ssr:** add `import.meta.main` support for Node.js module runner
([#&#8203;20517](https://redirect.github.com/vitejs/vite/issues/20517))
([794a8f2](794a8f2302))
- add `future: 'warn'`
([#&#8203;20473](https://redirect.github.com/vitejs/vite/issues/20473))
([e6aaf17](e6aaf17ca2))
- add `removeServerPluginContainer` future deprecation
([#&#8203;20437](https://redirect.github.com/vitejs/vite/issues/20437))
([c1279e7](c1279e7540))
- add `removeServerReloadModule` future deprecation
([#&#8203;20436](https://redirect.github.com/vitejs/vite/issues/20436))
([6970d17](6970d1740c))
- add `server.warmupRequest` to future deprecation
([#&#8203;20431](https://redirect.github.com/vitejs/vite/issues/20431))
([8ad388a](8ad388aeab))
- add `ssrFixStacktrace` / `ssrRewriteStacktrace` to
`removeSsrLoadModule` future deprecation
([#&#8203;20435](https://redirect.github.com/vitejs/vite/issues/20435))
([8c8f587](8c8f5879ea))
- **client:** ping from SharedWorker
([#&#8203;19057](https://redirect.github.com/vitejs/vite/issues/19057))
([5c97c22](5c97c22548))
- **dev:** add `this.fs` support
([#&#8203;20301](https://redirect.github.com/vitejs/vite/issues/20301))
([0fe3f2f](0fe3f2f7c3))
- export `defaultExternalConditions`
([#&#8203;20279](https://redirect.github.com/vitejs/vite/issues/20279))
([344d302](344d30243b))
- implement `removePluginHookSsrArgument` future deprecation
([#&#8203;20433](https://redirect.github.com/vitejs/vite/issues/20433))
([95927d9](95927d9c0b))
- implement `removeServerHot` future deprecation
([#&#8203;20434](https://redirect.github.com/vitejs/vite/issues/20434))
([259f45d](259f45d069))
- resolve server URLs before calling other listeners
([#&#8203;19981](https://redirect.github.com/vitejs/vite/issues/19981))
([45f6443](45f6443a93))
- **ssr:** resolve externalized packages with
`resolve.externalConditions` and add `module-sync` to default external
condition
([#&#8203;20409](https://redirect.github.com/vitejs/vite/issues/20409))
([c669c52](c669c524e6))
- **ssr:** support `import.meta.resolve` in module runner
([#&#8203;20260](https://redirect.github.com/vitejs/vite/issues/20260))
([62835f7](62835f7c06))

##### Bug Fixes

- **css:** avoid warnings for `image-set` containing `__VITE_ASSET__`
([#&#8203;20520](https://redirect.github.com/vitejs/vite/issues/20520))
([f1a2635](f1a2635e69))
- **css:** empty CSS entry points should generate CSS files, not JS
files
([#&#8203;20518](https://redirect.github.com/vitejs/vite/issues/20518))
([bac9f3e](bac9f3ecf8))
- **dev:** denied request stalled when requested concurrently
([#&#8203;20503](https://redirect.github.com/vitejs/vite/issues/20503))
([64a52e7](64a52e70d9))
- **manifest:** initialize `entryCssAssetFileNames` as an empty Set
([#&#8203;20542](https://redirect.github.com/vitejs/vite/issues/20542))
([6a46cda](6a46cdac5d))
- skip prepareOutDirPlugin in workers
([#&#8203;20556](https://redirect.github.com/vitejs/vite/issues/20556))
([97d5111](97d5111645))
- **asset:** only watch existing files for `new URL(, import.meta.url)`
([#&#8203;20507](https://redirect.github.com/vitejs/vite/issues/20507))
([1b211fd](1b211fd1be))
- **client:** keep ping on WS constructor error
([#&#8203;20512](https://redirect.github.com/vitejs/vite/issues/20512))
([3676da5](3676da5bc5))
- **deps:** update all non-major dependencies
([#&#8203;20537](https://redirect.github.com/vitejs/vite/issues/20537))
([fc9a9d3](fc9a9d3f14))
- don't resolve as relative for specifiers starting with a dot
([#&#8203;20528](https://redirect.github.com/vitejs/vite/issues/20528))
([c5a10ec](c5a10ec004))
- **html:** allow control character in input stream
([#&#8203;20483](https://redirect.github.com/vitejs/vite/issues/20483))
([c12a4a7](c12a4a76a2))
- merge old and new `noExternal: true` correctly
([#&#8203;20502](https://redirect.github.com/vitejs/vite/issues/20502))
([9ebe4a5](9ebe4a514a))
- **deps:** update all non-major dependencies
([#&#8203;20489](https://redirect.github.com/vitejs/vite/issues/20489))
([f6aa04a](f6aa04a52d))
- **dev:** denied requests overly
([#&#8203;20410](https://redirect.github.com/vitejs/vite/issues/20410))
([4be5270](4be5270b27))
- **hmr:** register css deps as `type: asset`
([#&#8203;20391](https://redirect.github.com/vitejs/vite/issues/20391))
([7eac8dd](7eac8ddb65))
- **optimizer:** discover correct jsx runtime during scan
([#&#8203;20495](https://redirect.github.com/vitejs/vite/issues/20495))
([10d48bb](10d48bb2e3))
- **preview:** set correct host for `resolvedUrls`
([#&#8203;20496](https://redirect.github.com/vitejs/vite/issues/20496))
([62b3e0d](62b3e0d95c))
- **worker:** resolve WebKit compat with inline workers by deferring
blob URL revocation
([#&#8203;20460](https://redirect.github.com/vitejs/vite/issues/20460))
([8033e5b](8033e5bf8d))

##### Performance Improvements

- **client:** reduce reload debounce
([#&#8203;20429](https://redirect.github.com/vitejs/vite/issues/20429))
([22ad43b](22ad43b4bf))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20536](https://redirect.github.com/vitejs/vite/issues/20536))
([8be2787](8be278748a))
- **deps:** update dependency parse5 to v8
([#&#8203;20490](https://redirect.github.com/vitejs/vite/issues/20490))
([744582d](744582d018))
- format
([f20addc](f20addc536))
- stablize `cssScopeTo`
([#&#8203;19592](https://redirect.github.com/vitejs/vite/issues/19592))
([ced1343](ced13433fb))

##### Code Refactoring

- use hook filters in the worker plugin
([#&#8203;20527](https://redirect.github.com/vitejs/vite/issues/20527))
([958cdf2](958cdf24f8))
- extract prepareOutDir as a plugin
([#&#8203;20373](https://redirect.github.com/vitejs/vite/issues/20373))
([2c4af1f](2c4af1f90b))
- extract resolve rollup options
([#&#8203;20375](https://redirect.github.com/vitejs/vite/issues/20375))
([61a9778](61a97780e6))
- rewrite openchrome.applescript to JXA
([#&#8203;20424](https://redirect.github.com/vitejs/vite/issues/20424))
([7979f9d](7979f9da55))
- use `http-proxy-3`
([#&#8203;20402](https://redirect.github.com/vitejs/vite/issues/20402))
([26d9872](26d987232a))
- use hook filters in internal plugins
([#&#8203;20358](https://redirect.github.com/vitejs/vite/issues/20358))
([f19c4d7](f19c4d72de))
- use hook filters in internal resolve plugin
([#&#8203;20480](https://redirect.github.com/vitejs/vite/issues/20480))
([acd2a13](acd2a13c2d))

##### Tests

- detect ts support via `process.features`
([#&#8203;20544](https://redirect.github.com/vitejs/vite/issues/20544))
([856d3f0](856d3f06e6))
- fix unimportant errors in test-unit
([#&#8203;20545](https://redirect.github.com/vitejs/vite/issues/20545))
([1f23554](1f235545b1))

##### Beta Changelogs

#####
[7.1.0-beta.1](https://redirect.github.com/vitejs/vite/compare/v7.1.0-beta.0...v7.1.0-beta.1)
(2025-08-05)

See [7.1.0-beta.1
changelog](https://redirect.github.com/vitejs/vite/blob/v7.1.0-beta.1/packages/vite/CHANGELOG.md)

#####
[7.1.0-beta.0](https://redirect.github.com/vitejs/vite/compare/v7.0.6...v7.1.0-beta.0)
(2025-07-30)

See [7.1.0-beta.0
changelog](https://redirect.github.com/vitejs/vite/blob/v7.1.0-beta.0/packages/vite/CHANGELOG.md)

###
[`v7.0.8`](https://redirect.github.com/vitejs/vite/releases/tag/v7.0.8)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.7...v7.0.8)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v7.0.8/packages/vite/CHANGELOG.md)
for details.

###
[`v7.0.7`](https://redirect.github.com/vitejs/vite/releases/tag/v7.0.7)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.6...v7.0.7)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v7.0.7/packages/vite/CHANGELOG.md)
for details.

###
[`v7.0.6`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#710-2025-08-07)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.5...v7.0.6)

##### Features

- support files with more than 1000 lines by `generateCodeFrame`
([#&#8203;20508](https://redirect.github.com/vitejs/vite/issues/20508))
([e7d0b2a](e7d0b2afa5))
- add `import.meta.main` support in config (bundle config loader)
([#&#8203;20516](https://redirect.github.com/vitejs/vite/issues/20516))
([5d3e3c2](5d3e3c2ae5))
- **optimizer:** improve dependency optimization error messages with
esbuild formatMessages
([#&#8203;20525](https://redirect.github.com/vitejs/vite/issues/20525))
([d17cfed](d17cfeda07))
- **ssr:** add `import.meta.main` support for Node.js module runner
([#&#8203;20517](https://redirect.github.com/vitejs/vite/issues/20517))
([794a8f2](794a8f2302))
- add `future: 'warn'`
([#&#8203;20473](https://redirect.github.com/vitejs/vite/issues/20473))
([e6aaf17](e6aaf17ca2))
- add `removeServerPluginContainer` future deprecation
([#&#8203;20437](https://redirect.github.com/vitejs/vite/issues/20437))
([c1279e7](c1279e7540))
- add `removeServerReloadModule` future deprecation
([#&#8203;20436](https://redirect.github.com/vitejs/vite/issues/20436))
([6970d17](6970d1740c))
- add `server.warmupRequest` to future deprecation
([#&#8203;20431](https://redirect.github.com/vitejs/vite/issues/20431))
([8ad388a](8ad388aeab))
- add `ssrFixStacktrace` / `ssrRewriteStacktrace` to
`removeSsrLoadModule` future deprecation
([#&#8203;20435](https://redirect.github.com/vitejs/vite/issues/20435))
([8c8f587](8c8f5879ea))
- **client:** ping from SharedWorker
([#&#8203;19057](https://redirect.github.com/vitejs/vite/issues/19057))
([5c97c22](5c97c22548))
- **dev:** add `this.fs` support
([#&#8203;20301](https://redirect.github.com/vitejs/vite/issues/20301))
([0fe3f2f](0fe3f2f7c3))
- export `defaultExternalConditions`
([#&#8203;20279](https://redirect.github.com/vitejs/vite/issues/20279))
([344d302](344d30243b))
- implement `removePluginHookSsrArgument` future deprecation
([#&#8203;20433](https://redirect.github.com/vitejs/vite/issues/20433))
([95927d9](95927d9c0b))
- implement `removeServerHot` future deprecation
([#&#8203;20434](https://redirect.github.com/vitejs/vite/issues/20434))
([259f45d](259f45d069))
- resolve server URLs before calling other listeners
([#&#8203;19981](https://redirect.github.com/vitejs/vite/issues/19981))
([45f6443](45f6443a93))
- **ssr:** resolve externalized packages with
`resolve.externalConditions` and add `module-sync` to default external
condition
([#&#8203;20409](https://redirect.github.com/vitejs/vite/issues/20409))
([c669c52](c669c524e6))
- **ssr:** support `import.meta.resolve` in module runner
([#&#8203;20260](https://redirect.github.com/vitejs/vite/issues/20260))
([62835f7](62835f7c06))

##### Bug Fixes

- **css:** avoid warnings for `image-set` containing `__VITE_ASSET__`
([#&#8203;20520](https://redirect.github.com/vitejs/vite/issues/20520))
([f1a2635](f1a2635e69))
- **css:** empty CSS entry points should generate CSS files, not JS
files
([#&#8203;20518](https://redirect.github.com/vitejs/vite/issues/20518))
([bac9f3e](bac9f3ecf8))
- **dev:** denied request stalled when requested concurrently
([#&#8203;20503](https://redirect.github.com/vitejs/vite/issues/20503))
([64a52e7](64a52e70d9))
- **manifest:** initialize `entryCssAssetFileNames` as an empty Set
([#&#8203;20542](https://redirect.github.com/vitejs/vite/issues/20542))
([6a46cda](6a46cdac5d))
- skip prepareOutDirPlugin in workers
([#&#8203;20556](https://redirect.github.com/vitejs/vite/issues/20556))
([97d5111](97d5111645))
- **asset:** only watch existing files for `new URL(, import.meta.url)`
([#&#8203;20507](https://redirect.github.com/vitejs/vite/issues/20507))
([1b211fd](1b211fd1be))
- **client:** keep ping on WS constructor error
([#&#8203;20512](https://redirect.github.com/vitejs/vite/issues/20512))
([3676da5](3676da5bc5))
- **deps:** update all non-major dependencies
([#&#8203;20537](https://redirect.github.com/vitejs/vite/issues/20537))
([fc9a9d3](fc9a9d3f14))
- don't resolve as relative for specifiers starting with a dot
([#&#8203;20528](https://redirect.github.com/vitejs/vite/issues/20528))
([c5a10ec](c5a10ec004))
- **html:** allow control character in input stream
([#&#8203;20483](https://redirect.github.com/vitejs/vite/issues/20483))
([c12a4a7](c12a4a76a2))
- merge old and new `noExternal: true` correctly
([#&#8203;20502](https://redirect.github.com/vitejs/vite/issues/20502))
([9ebe4a5](9ebe4a514a))
- **deps:** update all non-major dependencies
([#&#8203;20489](https://redirect.github.com/vitejs/vite/issues/20489))
([f6aa04a](f6aa04a52d))
- **dev:** denied requests overly
([#&#8203;20410](https://redirect.github.com/vitejs/vite/issues/20410))
([4be5270](4be5270b27))
- **hmr:** register css deps as `type: asset`
([#&#8203;20391](https://redirect.github.com/vitejs/vite/issues/20391))
([7eac8dd](7eac8ddb65))
- **optimizer:** discover correct jsx runtime during scan
([#&#8203;20495](https://redirect.github.com/vitejs/vite/issues/20495))
([10d48bb](10d48bb2e3))
- **preview:** set correct host for `resolvedUrls`
([#&#8203;20496](https://redirect.github.com/vitejs/vite/issues/20496))
([62b3e0d](62b3e0d95c))
- **worker:** resolve WebKit compat with inline workers by deferring
blob URL revocation
([#&#8203;20460](https://redirect.github.com/vitejs/vite/issues/20460))
([8033e5b](8033e5bf8d))

##### Performance Improvements

- **client:** reduce reload debounce
([#&#8203;20429](https://redirect.github.com/vitejs/vite/issues/20429))
([22ad43b](22ad43b4bf))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20536](https://redirect.github.com/vitejs/vite/issues/20536))
([8be2787](8be278748a))
- **deps:** update dependency parse5 to v8
([#&#8203;20490](https://redirect.github.com/vitejs/vite/issues/20490))
([744582d](744582d018))
- format
([f20addc](f20addc536))
- stablize `cssScopeTo`
([#&#8203;19592](https://redirect.github.com/vitejs/vite/issues/19592))
([ced1343](ced13433fb))

##### Code Refactoring

- use hook filters in the worker plugin
([#&#8203;20527](https://redirect.github.com/vitejs/vite/issues/20527))
([958cdf2](958cdf24f8))
- extract prepareOutDir as a plugin
([#&#8203;20373](https://redirect.github.com/vitejs/vite/issues/20373))
([2c4af1f](2c4af1f90b))
- extract resolve rollup options
([#&#8203;20375](https://redirect.github.com/vitejs/vite/issues/20375))
([61a9778](61a97780e6))
- rewrite openchrome.applescript to JXA
([#&#8203;20424](https://redirect.github.com/vitejs/vite/issues/20424))
([7979f9d](7979f9da55))
- use `http-proxy-3`
([#&#8203;20402](https://redirect.github.com/vitejs/vite/issues/20402))
([26d9872](26d987232a))
- use hook filters in internal plugins
([#&#8203;20358](https://redirect.github.com/vitejs/vite/issues/20358))
([f19c4d7](f19c4d72de))
- use hook filters in internal resolve plugin
([#&#8203;20480](https://redirect.github.com/vitejs/vite/issues/20480))
([acd2a13](acd2a13c2d))

##### Tests

- detect ts support via `process.features`
([#&#8203;20544](https://redirect.github.com/vitejs/vite/issues/20544))
([856d3f0](856d3f06e6))
- fix unimportant errors in test-unit
([#&#8203;20545](https://redirect.github.com/vitejs/vite/issues/20545))
([1f23554](1f235545b1))

##### Beta Changelogs

#####
[7.1.0-beta.1](https://redirect.github.com/vitejs/vite/compare/v7.1.0-beta.0...v7.1.0-beta.1)
(2025-08-05)

See [7.1.0-beta.1
changelog](https://redirect.github.com/vitejs/vite/blob/v7.1.0-beta.1/packages/vite/CHANGELOG.md)

#####
[7.1.0-beta.0](https://redirect.github.com/vitejs/vite/compare/v7.0.6...v7.1.0-beta.0)
(2025-07-30)

See [7.1.0-beta.0
changelog](https://redirect.github.com/vitejs/vite/blob/v7.1.0-beta.0/packages/vite/CHANGELOG.md)

###
[`v7.0.5`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-705-2025-07-17-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.4...v7.0.5)

##### Bug Fixes

- **deps:** update all non-major dependencies
([#&#8203;20406](https://redirect.github.com/vitejs/vite/issues/20406))
([1a1cc8a](1a1cc8a435))
- remove special handling for `Accept: text/html`
([#&#8203;20376](https://redirect.github.com/vitejs/vite/issues/20376))
([c9614b9](c9614b9c37))
- watch assets referenced by `new URL(, import.meta.url)`
([#&#8203;20382](https://redirect.github.com/vitejs/vite/issues/20382))
([6bc8bf6](6bc8bf634d))

##### Miscellaneous Chores

- **deps:** update dependency rolldown to ^1.0.0-beta.27
([#&#8203;20405](https://redirect.github.com/vitejs/vite/issues/20405))
([1165667](1165667b27))

##### Code Refactoring

- use `foo.endsWith("bar")` instead of `/bar$/.test(foo)`
([#&#8203;20413](https://redirect.github.com/vitejs/vite/issues/20413))
([862e192](862e192d21))

###
[`v7.0.4`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-704-2025-07-10-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.3...v7.0.4)

##### Bug Fixes

- allow resolving bare specifiers to relative paths for entries
([#&#8203;20379](https://redirect.github.com/vitejs/vite/issues/20379))
([324669c](324669c2d8))

##### Build System

- remove `@oxc-project/runtime` devDep
([#&#8203;20389](https://redirect.github.com/vitejs/vite/issues/20389))
([5e29602](5e29602f6f))

###
[`v7.0.3`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-703-2025-07-08-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.2...v7.0.3)

##### Bug Fixes

- **client:** protect against window being defined but addEv undefined
([#&#8203;20359](https://redirect.github.com/vitejs/vite/issues/20359))
([31d1467](31d1467cf0))
- **define:** replace optional values
([#&#8203;20338](https://redirect.github.com/vitejs/vite/issues/20338))
([9465ae1](9465ae1378))
- **deps:** update all non-major dependencies
([#&#8203;20366](https://redirect.github.com/vitejs/vite/issues/20366))
([43ac73d](43ac73da27))

##### Miscellaneous Chores

- **deps:** update dependency dotenv to v17
([#&#8203;20325](https://redirect.github.com/vitejs/vite/issues/20325))
([45040d4](45040d4807))
- **deps:** update dependency rolldown to ^1.0.0-beta.24
([#&#8203;20365](https://redirect.github.com/vitejs/vite/issues/20365))
([5ab25e7](5ab25e73a2))
- use `n/prefer-node-protocol` rule
([#&#8203;20368](https://redirect.github.com/vitejs/vite/issues/20368))
([38bb268](38bb268cde))

##### Code Refactoring

- minor changes to reduce diff between normal Vite and rolldown-vite
([#&#8203;20354](https://redirect.github.com/vitejs/vite/issues/20354))
([2e8050e](2e8050e4cd))

###
[`v7.0.2`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-702-2025-07-04-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.1...v7.0.2)

##### Bug Fixes

- **css:** resolve relative paths in sass, revert
[#&#8203;20300](https://redirect.github.com/vitejs/vite/issues/20300)
([#&#8203;20349](https://redirect.github.com/vitejs/vite/issues/20349))
([db8bd41](db8bd412a8))

###
[`v7.0.1`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-701-2025-07-03-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.0...v7.0.1)

##### Bug Fixes

- **css:** skip resolving resolved paths in sass
([#&#8203;20300](https://redirect.github.com/vitejs/vite/issues/20300))
([ac528a4](ac528a44c3))
- **deps:** update all non-major dependencies
([#&#8203;20324](https://redirect.github.com/vitejs/vite/issues/20324))
([3e81af3](3e81af38a8))
- **types:** add a global interface for Worker
([#&#8203;20243](https://redirect.github.com/vitejs/vite/issues/20243))
([37bdfc1](37bdfc18f4))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20323](https://redirect.github.com/vitejs/vite/issues/20323))
([30d2f1b](30d2f1b38c))
- fix typos and grammatical errors across documentation and comments
([#&#8203;20337](https://redirect.github.com/vitejs/vite/issues/20337))
([c1c951d](c1c951dcc3))
- group commits by category in changelog
([#&#8203;20310](https://redirect.github.com/vitejs/vite/issues/20310))
([41e83f6](41e83f62b1))
- rearrange 7.0 changelog
([#&#8203;20280](https://redirect.github.com/vitejs/vite/issues/20280))
([eafd28a](eafd28ac88))

###
[`v7.0.0`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#700-2025-06-24)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.4.1...v7.0.0)

![Vite 7 is out!](../../docs/public/og-image-announcing-vite7.png)

Today, we're excited to announce the release of the next Vite major:

- **[Vite 7.0 announcement blog
post](https://vite.dev/blog/announcing-vite7.html)**
- [Docs](https://vite.dev/) (translations: [简体中文](https://cn.vite.dev/),
[日本語](https://ja.vite.dev/), [Español](https://es.vite.dev/),
[Português](https://pt.vite.dev/), [한국어](https://ko.vite.dev/),
[Deutsch](https://de.vite.dev/), [فارسی](https://fa.vite.dev/))
- [Migration Guide](https://vite.dev/guide/migration.html)

##### ⚠ BREAKING CHANGES

- **ssr:** don't access `Object` variable in ssr transformed code
([#&#8203;19996](https://redirect.github.com/vitejs/vite/issues/19996))
- remove `experimental.skipSsrTransform` option
([#&#8203;20038](https://redirect.github.com/vitejs/vite/issues/20038))
- remove `HotBroadcaster`
([#&#8203;19988](https://redirect.github.com/vitejs/vite/issues/19988))
- **css:** always use sass compiler API
([#&#8203;19978](https://redirect.github.com/vitejs/vite/issues/19978))
- bump `build.target` and name it `baseline-widely-available`
([#&#8203;20007](https://redirect.github.com/vitejs/vite/issues/20007))
- bump required node version to 20.19+, 22.12+ and remove cjs build
([#&#8203;20032](https://redirect.github.com/vitejs/vite/issues/20032))
- **css:** remove sass legacy API support
([#&#8203;19977](https://redirect.github.com/vitejs/vite/issues/19977))
- remove deprecated `HotBroadcaster` related types
([#&#8203;19987](https://redirect.github.com/vitejs/vite/issues/19987))
- remove deprecated no-op type only properties
([#&#8203;19985](https://redirect.github.com/vitejs/vite/issues/19985))
- remove node 18 support
([#&#8203;19972](https://redirect.github.com/vitejs/vite/issues/19972))
- remove deprecated hook-level `enforce`/`transform` from
`transformIndexHtml` hook
([#&#8203;19349](https://redirect.github.com/vitejs/vite/issues/19349))
- remove deprecated splitVendorChunkPlugin
([#&#8203;19255](https://redirect.github.com/vitejs/vite/issues/19255))

##### Features

- **types:** use terser types from terser package
([#&#8203;20274](https://redirect.github.com/vitejs/vite/issues/20274))
([a5799fa](a5799fa74c))
- apply some middlewares before `configurePreviewServer` hook
([#&#8203;20224](https://redirect.github.com/vitejs/vite/issues/20224))
([b989c42](b989c42cf8))
- apply some middlewares before `configureServer` hook
([#&#8203;20222](https://redirect.github.com/vitejs/vite/issues/20222))
([f5cc4c0](f5cc4c0ded))
- add base option to import.meta.glob
([#&#8203;20163](https://redirect.github.com/vitejs/vite/issues/20163))
([253d6c6](253d6c6df2))
- add `this.meta.viteVersion`
([#&#8203;20088](https://redirect.github.com/vitejs/vite/issues/20088))
([f55bf41](f55bf41e91))
- allow passing down resolved config to vite's `createServer`
([#&#8203;19894](https://redirect.github.com/vitejs/vite/issues/19894))
([c1ae9bd](c1ae9bd4a0))
- buildApp hook
([#&#8203;19971](https://redirect.github.com/vitejs/vite/issues/19971))
([5da659d](5da659de90))
- **build:** provide names for asset entrypoints
([#&#8203;19912](https://redirect.github.com/vitejs/vite/issues/19912))
([c4e01dc](c4e01dc5ab))
- bump `build.target` and name it `baseline-widely-available`
([#&#8203;20007](https://redirect.github.com/vitejs/vite/issues/20007))
([4a8aa82](4a8aa82556))
- **client:** support opening fileURL in editor
([#&#8203;20040](https://redirect.github.com/vitejs/vite/issues/20040))
([1bde4d2](1bde4d2524))
- make PluginContext available for Vite-specific hooks
([#&#8203;19936](https://redirect.github.com/vitejs/vite/issues/19936))
([7063839](7063839d47))
- resolve environments plugins at config time
([#&#8203;20120](https://redirect.github.com/vitejs/vite/issues/20120))
([f6a28d5](f6a28d5f79))
- stabilize `css.preprocessorMaxWorkers` and default to `true`
([#&#8203;19992](https://redirect.github.com/vitejs/vite/issues/19992))
([70aee13](70aee139ea))
- stabilize `optimizeDeps.noDiscovery`
([#&#8203;19984](https://redirect.github.com/vitejs/vite/issues/19984))
([6d2dcb4](6d2dcb494d))

##### Bug Fixes

- **deps:** update all non-major dependencies
([#&#8203;20271](https://redirect.github.com/vitejs/vite/issues/20271))
([6b64d63](https://redirect.github.com/vitejs/vite/commit/6b64d63d700154de2c00270

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), 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.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 16:12:43 +00:00
L-Sun
5c0e3b8a7f fix(editor): missing signal of optional flat props (#13762)
Close https://github.com/toeverything/AFFiNE/issues/13750

#### PR Dependency Tree


* **PR #13762** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

* **New Features**
* Optional block properties are now supported (e.g., flat-table), with
default values applied automatically when not set.

* **Bug Fixes**
* More reliable initialization and syncing of block properties, ensuring
defaults appear consistently.
* Change notifications now correctly reflect updates to
optional/defaulted properties.

* **Tests**
* Added tests verifying optional property behavior, default application,
syncing, and change events.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->





#### PR Dependency Tree


* **PR #13762** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
2025-10-16 04:38:47 +00:00
L-Sun
59d8d0fbae fix(editor): text align not work (#13740)
#### PR Dependency Tree


* **PR #13740** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved reliability of updating block alignment when the current
selection isn’t explicitly defined. The editor now retrieves the
selection more consistently, reducing cases where alignment controls
appeared unresponsive or had no effect.
* Covers scenarios during initialization or edge cases where selection
was previously missed, resulting in smoother editing and fewer false
negatives when applying alignment.
* No changes to visible UI or shortcuts; behavior is simply more
consistent.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-14 03:10:38 +00:00
Cats Juice
d80ca57e94 fix(core): change doc icon layout to avoid incorrect color caused by the transform (#13719)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Style**
* Updated document title styling for improved readability (larger font,
increased line height, heavier weight).
* Refined spacing so titles align correctly when a document icon is
present (no extra top padding).
* Improved emoji rendering by using a consistent font and removing an
unnecessary visual artifact.
* Simplified title container behavior to ensure stable, predictable
alignment without placeholder-based shifts.

* **Chores**
* Minor UI cleanup and consistency adjustments for the icon/title area.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-10 02:08:05 +00:00
Cats Juice
072b5b22df fix(core): display affine icon in lit correctly (#13708)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Added an alternative icon rendering option for document icons,
delivering crisper visuals and consistent emoji/icon display.
- Style
- Improved icon alignment and sizing within grouped icon buttons for
more consistent centering and appearance.

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

Co-authored-by: Wu Yue <akumatus@gmail.com>
2025-10-09 09:04:24 +00:00
3720
3c7461a5ce fix(editor): adjust callout emoji spacing based on first child block type (#13712)
- Remove fixed marginTop from emoji container style
- Dynamically calculate emoji marginTop based on first child block type
(h1-h6)
- Use model signal to reactively update spacing when children change
- Default to 10px for non-heading blocks

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

## Summary by CodeRabbit

- Style
- Improved emoji alignment in callout blocks. The emoji now adjusts its
top spacing based on the first line’s heading level, ensuring better
vertical alignment with headings (H1–H6) and more consistent visual
balance across different callout contents.
- Maintains existing margins and layout behavior otherwise, resulting in
a cleaner, more polished appearance without affecting functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-09 09:04:14 +00:00
3720
8006812bc0 refactor(editor): new icon picker (#13658)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* In-tree icon picker for Callout blocks (emoji, app icons, images) with
popup UI and editor-wide extension/service.
* Callout toolbar adds background color presets, an icon-picker action,
and a destructive Delete action.

* **Refactor**
* Replaced legacy emoji workflow with icon-based rendering, updated
state, styling, and lifecycle for callouts.

* **Tests**
  * Updated callout E2E to reflect new default icon and picker behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: L-Sun <zover.v@gmail.com>
2025-09-29 11:06:14 +00:00
Xun Sun
5b52349b96 feat: implement textAlign property (#11790)
for paragraph blocks, image blocks, list blocks, and table blocks

Should fix #8617 and #11254.

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

- **New Features**
- Added text alignment options (left, center, right) for paragraph,
list, image, note, and table blocks.
- Introduced alignment controls in toolbars and slash menus for easier
formatting.
- Enabled keyboard shortcuts for quick text alignment changes (supports
Mac and Windows).
- **Localization**
- Added English, Simplified Chinese, and Traditional Chinese
translations for new alignment commands and shortcuts.
- **Style**
  - Blocks now visually reflect selected text alignment in their layout.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: L-Sun <zover.v@gmail.com>
2025-09-26 07:23:28 +00:00
Cats Juice
ca9811792d feat(component): emoji and icon picker (#13638)
![CleanShot 2025-09-23 at 17 11
13](https://github.com/user-attachments/assets/0a4a9d09-1149-4042-bc73-e068a428f335)


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

- **New Features**
- Icon Picker added with Emoji and Icon panels, search/filtering, recent
selections, color selection, skin tone options, and smooth group
navigation.

- **Documentation**
  - Storybook example added to preview and test the Icon Picker.

- **Chores**
  - Bumped icon library dependency to a newer minor version.
  - Added emoji data dependency to support the Emoji Picker.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-24 07:14:54 +00:00
Wu Yue
b25759c264 feat(core): support gemini model switch in ai (#13631)
<img width="757" height="447" alt="截屏2025-09-22 17 49 34"
src="https://github.com/user-attachments/assets/bab96f45-112e-4d74-bc38-54429d8a54ab"
/>


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

- New Features
- Subscription-aware AI model picker in chat: browse models with version
and category, see active selection, switch models, and receive
notifications when choosing pro models without a subscription.
Selections persist across sessions.
- Central AI model service wired into chat UI for consistent model
selection and availability.

- Changes
- Streamlined AI model availability: reduced to a curated set for a more
focused experience.
  - Context menu buttons can display supplemental info next to labels.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-22 13:25:11 +00:00
3720
7fe95f50f4 fix(editor): callout delete merge and slash menu (#13597)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- New Features
- Press Enter inside a callout splits the paragraph at the cursor into a
new focused paragraph.
- Clicking an empty callout inserts and focuses a new paragraph; emoji
menu behavior unchanged.
- New command to convert a callout paragraph to callout/selection flow
for Backspace handling.
  - New native API: ShareableContent.isUsingMicrophone(processId).

- Bug Fixes
- Backspace inside callout paragraphs now merges or deletes text
predictably and selects the callout when appropriate.

- Style
- Callout layout refined: top-aligned content and adjusted emoji
spacing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-22 11:29:18 +00:00
Cats Juice
195864fc88 feat(core): edit icon in navigation panel (#13595)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Rename dialog now edits per-item explorer icons (emoji or custom) and
can skip name-change callbacks. Doc icon picker added to the editor with
localized "Add icon" placeholder and readonly rendering. Icon editor
supports fallbacks, trigger variants, and improved input/test-id wiring.

- **Style**
- Updated icon picker and trigger sizing and placeholder visuals;
title/icon layout adjustments.

- **Chores**
- Explorer icon storage and module added to persist and serve icons
across the app.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-22 10:24:11 +00:00
L-Sun
34a3c83d84 fix(editor): prevent SwiftKey IME double input (#13590)
Close
[BS-3610](https://linear.app/affine-design/issue/BS-3610/bug-每次按空格会出现重复单词-,特定输入法,比如swiftkey)

#### PR Dependency Tree

* **PR #13591**
  * **PR #13590** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

- Bug Fixes
- Android: More reliable Backspace/delete handling, preventing missed
inputs and double-deletions.
- Android: Cursor/selection is correctly restored after merging a
paragraph with the previous block.
- Android: Smoother IME composition input; captures correct composition
range.
- Deletion across lines and around embeds/empty lines is more
consistent.
- Chores
- Internal event handling updated to improve Android compatibility and
stability (no user-facing changes).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->





#### PR Dependency Tree


* **PR #13591**
  * **PR #13590** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
2025-09-16 17:02:54 +08:00
L-Sun
795bfb2f95 fix(ios): enable horizontal scroll for database (#13494)
Close
[BS-3625](https://linear.app/affine-design/issue/BS-3625/移动端database-table-view无法横向滚动)

#### PR Dependency Tree


* **PR #13494** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved iOS mobile table view scrolling: horizontal overflow is no
longer forcibly hidden, preventing clipped content and enabling smoother
horizontal navigation.
* Users can now access columns that previously appeared truncated on
narrow screens.
  * Vertical scrolling behavior remains unchanged.
  * No impact on non‑iOS devices.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-15 06:12:33 +00:00
L-Sun
0710da15c6 fix(editor): hook of database is invoked repeatedly (#13493)
Close
[AF-2789](https://linear.app/affine-design/issue/AF-2789/安卓客户端日期没了)

#### PR Dependency Tree


* **PR #13493** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved editing mode stability in mobile Kanban cells by preventing
redundant enter/exit transitions, resulting in smoother interactions and
reduced flicker.
* Enhanced mobile Table cells to avoid duplicate editing state changes,
minimizing unnecessary updates and improving responsiveness.
* Overall, editing transitions are now idempotent across affected mobile
views, reducing visual jitter and improving performance during edit
operations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-15 06:09:34 +00:00
L-Sun
9d38f79395 fix(editor): deactivate editor when selection out of editor (#13490)
Close
[AI-415](https://linear.app/affine-design/issue/AI-415/code-artifact-复制更好的支持code-block和插入正文)

#### PR Dependency Tree


* **PR #13490** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

* **Bug Fixes**
* Editor now deactivates when text selection moves outside the app,
preventing unintended interactions.
* Better handling when selection changes to external content, reducing
cases where the editor stayed active incorrectly.

* **Stability**
* Improved reliability around selection, focus, and visibility changes
to avoid accidental edits or actions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->


#### PR Dependency Tree


* **PR #13490** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
2025-08-14 14:49:53 +08:00
L-Sun
680f3b3006 feat(editor): impl shape text with dom renderer (#13471)
#### PR Dependency Tree


* **PR #13464**
  * **PR #13465**
    * **PR #13471** 👈
      * **PR #13472**
        * **PR #13473**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

* **New Features**
* DOM rendering added for groups, mind maps and connectors so group
titles/outlines and mindmap connectors are visible on canvas.
* Shapes now support right-to-left text with proper vertical alignment.
* **Improvements**
  * Connector labels scale with viewport zoom for crisper display.
* Group-related selections (including nested groups) now update visuals
consistently.
* **Performance**
* Reduced DOM churn and fewer redraws during rendering and selection
changes.
* **Refactor**
* Renderer import/export surfaces consolidated with no user-facing
behavior changes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-14 04:29:13 +00:00
L-Sun
66c2bf3151 fix(editor): incorrect z-index in dom renderer (#13465)
#### PR Dependency Tree


* **PR #13464**
  * **PR #13465** 👈
    * **PR #13471**
      * **PR #13472**
        * **PR #13473**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved stacking order across canvas elements (shapes, connectors,
brush, highlighter), reducing unexpected overlap.
* Corrected z-index application for placeholders and fully rendered
elements to ensure consistent layering during edits.
* **Refactor**
* Centralized z-index handling for canvas elements to provide
predictable, uniform layering behavior across the app.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-14 11:10:32 +08:00
L-Sun
aa052096c1 feat(editor): brush and highlighter dom renderer (#13464)
#### PR Dependency Tree


* **PR #13464** 👈
  * **PR #13465**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

* **New Features**
* DOM-based SVG rendering for Brush and Highlighter with zoom, rotation,
layering and improved visualization.

* **Refactor**
* Consolidated renderer exports into a single entry point for simpler
integration.

* **Chores**
* Updated view registrations to include the new DOM renderer extensions.
  * Improved highlighter sizing consistency based on serialized bounds.

* **Revert**
  * Removed highlighter renderer registration from the shape module.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->


#### PR Dependency Tree


* **PR #13464** 👈
  * **PR #13465**
    * **PR #13471**
      * **PR #13472**
        * **PR #13473**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
2025-08-14 02:08:36 +00:00
L-Sun
7e0de251cb fix(editor): remove patch of key-binding in andriod (#13483)
In recent versions of Android (or maybe webview), the
`KeyboardEvent.key` for the backspace key now has the correct value.
This PR remove the patch since it will trigger two delete actions when
press backspace at the first character of paragraph"

Related PR https://github.com/toeverything/AFFiNE/issues/10523

#### PR Dependency Tree


* **PR #13483** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **Refactor**
* Streamlined keyboard shortcut handling for greater consistency across
platforms.
* Reduced overhead by consolidating event bindings; no change to
expected shortcut behavior for end-users.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-13 06:34:07 +00:00
L-Sun
5c73fc9767 chore(editor): adjust notification of database editing (#13484)
#### PR Dependency Tree


* **PR #13484** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

- Bug Fixes
- Reduced repeated mobile editing notifications; the notice now appears
once and only reappears after you dismiss it.
- More consistent notification behavior on mobile for a less disruptive
editing experience.

- Refactor
- Streamlined internal event handling to improve reliability and reduce
potential listener leaks, resulting in smoother interactions.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-13 06:33:38 +00:00
Jachin
ef99c376ec fix(editor): fix import zip with cjk filename (#13458)
fix #12721 

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

* **Bug Fixes**
* Improved handling of non‑ASCII filenames when unzipping archives: the
extractor now tries alternative encodings and validates results so
filenames are preserved and displayed correctly after extraction. This
change reduces corrupt or garbled names while keeping existing
extraction behavior otherwise unchanged.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-12 02:51:23 +00:00
Wu Yue
aa20e7ba66 fix(core): copilot tool restore (#13470)
Close [AI-410](https://linear.app/affine-design/issue/AI-410)

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

- New Features
  - None

- Bug Fixes
- Middle-click panning now reliably returns to the previously active
tool, including after using Copilot or frame navigation.
- Smoother, more responsive transition into panning to reduce accidental
selections.

- Refactor
- Simplified AI panel click-outside handling with no change to
user-visible behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-11 15:52:50 +00:00
Wu Yue
0d9f6770bf fix(core): right click on edgeless will also damage other functions (#13466)
Close [AI-411](https://linear.app/affine-design/issue/AI-411)

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

## Summary by CodeRabbit

- Bug Fixes
- Releasing the mouse now always ends panning, preventing stuck states.
  - Actions cancel correctly when you release without dragging.

- Refactor
- More consistent Copilot activation: use right-click or Ctrl (⌘ on Mac)
+ left-click.
- Smoother switching to Copilot with improved drag-state reset and
cleanup.
- Removed automatic restoration of previous selection when activating
Copilot.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-11 08:11:21 +00:00
EYHN
c54ccda881 fix(editor): allow right click on reference (#13259)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved click event handling on reference elements to prevent
unintended behavior from right-clicks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-07 04:55:37 +00:00
fengmk2
542c8e2c1d chore: fix oxlint errors (#13434)
#### PR Dependency Tree


* **PR #13434** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **Style**
* Improved clarity of TypeScript error suppression comments across
various test files and helper scripts. Comments now specify the reasons
for ignoring specific type errors, enhancing code readability for
developers.
* **Chores**
* Updated inline comments without affecting application functionality or
user experience. No changes to features, logic, or test outcomes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-07 02:53:25 +00:00
L-Sun
99a7b7f676 chore(editor): mobile database editing experimental flag (#13425)
#### PR Dependency Tree


* **PR #13425** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **New Features**
* Introduced a feature flag to enable or disable mobile database
editing.
* Added user notifications on mobile when attempting to edit databases
if the feature is not enabled.

* **Bug Fixes**
* Prevented addition of filters and group actions in readonly or
restricted mobile editing states.
* Fixed issues with selection handling in mobile Kanban and Table views
by ensuring correct context binding.

* **Style**
  * Improved toast notification styling to allow dynamic height.
* Adjusted mobile table view styles for better compatibility on iOS
devices.

* **Chores**
* Updated feature flag configuration to support mobile database editing
control.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-06 04:55:00 +00:00
L-Sun
916887e9dc fix(editor): virtual keyboard closes unexpectedly when backspace is pressed after a block (#13386)
Close
[AF-2764](https://linear.app/affine-design/issue/AF-2764/移动端没法删除图片和其他非文本block)

#### PR Dependency Tree


* **PR #13386** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

## Summary by CodeRabbit

* **New Features**
* Improved virtual keyboard handling on mobile devices to prevent
unexpected keyboard closure during certain editing actions.
* Added new signals for keyboard height and safe area, enhancing UI
responsiveness and adaptability to keyboard state.

* **Refactor**
* Streamlined keyboard toolbar logic for more reliable panel height
calculation and smoother panel open/close transitions.
* Simplified and modernized the approach to toolbar visibility and input
mode restoration.

* **Style**
* Updated keyboard toolbar and panel styling for better positioning and
layout consistency across devices.

* **Bug Fixes**
* Fixed an issue where the virtual keyboard could be incorrectly
reported as visible when a physical keyboard is connected.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-01 04:27:45 +00:00
L-Sun
4e1f047cf2 refactor(editor): always show keyboard toolbar in mobile (#13384)
Close
[AF-2756](https://linear.app/affine-design/issue/AF-2756/激活输入区的时候,展示toolbar,适配不弹虚拟键盘的场景,比如实体键盘)

#### PR Dependency Tree


* **PR #13384** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

* **New Features**
* Improved virtual keyboard handling by introducing static keyboard
height and app tab safe area tracking for more consistent toolbar
behavior.

* **Bug Fixes**
* Enhanced keyboard visibility detection on Android and iOS, especially
when a physical keyboard is connected.

* **Refactor**
* Simplified and streamlined keyboard toolbar logic, including delayed
panel closing and refined height calculations.
* Removed unused or redundant toolbar closing methods and position
management logic.

* **Style**
* Updated toolbar and panel styles for better positioning and layout
consistency.
  * Adjusted and removed certain mobile-specific padding styles.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->


#### PR Dependency Tree


* **PR #13384** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
2025-08-01 01:58:19 +00:00
德布劳外 · 贾贵
77950cfc1b feat(core): extract md & snapshot & attachments from selected (#13312)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

* **New Features**
* Enhanced extraction of selected content in the editor to include
document snapshots, markdown summaries, and attachments for both
edgeless and page modes.
* Attachments related to selected content are now available in chat and
input contexts, providing additional metadata.
* Added utility to identify and retrieve selected attachments in editor
content.

* **Bug Fixes**
* Improved consistency in attachment retrieval when extracting selected
content.

* **Chores**
* Updated dependencies and workspace references to include new block
suite components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

> CLOSE AF-2770
2025-07-31 09:53:09 +00:00
L-Sun
091bac1047 fix(editor): add comment entire to inner toolbar (#13304)
Close
[BS-3624](https://linear.app/affine-design/issue/BS-3624/page模式单选图片的时候希望有comment-按钮)




#### PR Dependency Tree


* **PR #13304** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

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

* **New Features**
* Added a comment button to the image and surface reference block
toolbars for easier commenting.

* **Refactor**
* Simplified array flattening operations across multiple components and
utilities by replacing `.map(...).flat()` with `.flatMap(...)`,
improving code readability and maintainability.

* **Bug Fixes**
* Improved comment creation logic to allow adding comments even when
selections exist.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-29 13:21:56 +08:00
EYHN
9899fad000 feat(editor): put current user in first on database user select (#13320) 2025-07-27 07:53:17 +00:00