mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-12 23:56:36 +08:00
bcc892c8ec2ff4d88e0fbf89b3db6c76cd135c38
1270 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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> |
||
|
|
4e082e4170 | chore: bump version | ||
|
|
46958867ef |
fix(editor): mermaid style pollution (#13950)
fix #13546 |
||
|
|
beb09300b9 |
fix(editor): date picker in year (#13948)
fix #13582 |
||
|
|
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> |
||
|
|
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> |
||
|
|
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 --> |
||
|
|
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. |
||
|
|
e4b5b24fdd | chore: bump package version | ||
|
|
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 --> |
||
|
|
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> |
||
|
|
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.  <!-- 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 --> |
||
|
|
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) | [](https://docs.renovatebot.com/merge-confidence/) | [](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) | [](https://docs.renovatebot.com/merge-confidence/) | [](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 ([#​20968](https://redirect.github.com/vitejs/vite/issues/20968)) ([f479cc5](https://redirect.github.com/vitejs/vite/commit/f479cc57c425ed41ceb434fecebd63931b1ed4ed)) ##### Miscellaneous Chores - **deps:** update all non-major dependencies ([#​20966](https://redirect.github.com/vitejs/vite/issues/20966)) ([6fb41a2](https://redirect.github.com/vitejs/vite/commit/6fb41a260bda443685e719ea4765d3faca3db944)) ##### Code Refactoring - use subpath imports for types module reference ([#​20921](https://redirect.github.com/vitejs/vite/issues/20921)) ([d0094af](https://redirect.github.com/vitejs/vite/commit/d0094af639d9ebbb51d4e00910b74f23eb8fe131)) ##### Build System - remove cjs reference in files field ([#​20945](https://redirect.github.com/vitejs/vite/issues/20945)) ([ef411ce](https://redirect.github.com/vitejs/vite/commit/ef411cee2696af3ba791879fdae9aad165f178b2)) - remove hash from built filenames ([#​20946](https://redirect.github.com/vitejs/vite/issues/20946)) ([a817307](https://redirect.github.com/vitejs/vite/commit/a81730754d655d1371ce0f4354af1c84e12f9f2d)) ### [`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 ([#​20767](https://redirect.github.com/vitejs/vite/issues/20767)) ([3a92bc7](https://redirect.github.com/vitejs/vite/commit/3a92bc79b306a01b8aaf37f80b2239eaf6e488e7)) - **css:** respect emitAssets when cssCodeSplit=false ([#​20883](https://redirect.github.com/vitejs/vite/issues/20883)) ([d3e7eee](https://redirect.github.com/vitejs/vite/commit/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e)) - **deps:** update all non-major dependencies ([879de86](https://redirect.github.com/vitejs/vite/commit/879de86935a31b4e47ab907ddd859366518ce268)) - **deps:** update all non-major dependencies ([#​20894](https://redirect.github.com/vitejs/vite/issues/20894)) ([3213f90](https://redirect.github.com/vitejs/vite/commit/3213f90ff0d8f274bcec65f40aac6dfcff1ac244)) - **dev:** allow aliases starting with `//` ([#​20760](https://redirect.github.com/vitejs/vite/issues/20760)) ([b95fa2a](https://redirect.github.com/vitejs/vite/commit/b95fa2aa7564eda4c9f05ee7616a2dbada35e463)) - **dev:** remove timestamp query consistently ([#​20887](https://redirect.github.com/vitejs/vite/issues/20887)) ([6537d15](https://redirect.github.com/vitejs/vite/commit/6537d15591619d7e1cfc1e50599bec16cd88340f)) - **esbuild:** inject esbuild helpers correctly for esbuild 0.25.9+ ([#​20906](https://redirect.github.com/vitejs/vite/issues/20906)) ([446eb38](https://redirect.github.com/vitejs/vite/commit/446eb386329ef682d614c77958a542f2dc222880)) - normalize path before calling `fileToBuiltUrl` ([#​20898](https://redirect.github.com/vitejs/vite/issues/20898)) ([73b6d24](https://redirect.github.com/vitejs/vite/commit/73b6d243e0398ee5d8d44c7d24162f4a0f4b1cf1)) - preserve original sourcemap file field when combining sourcemaps ([#​20926](https://redirect.github.com/vitejs/vite/issues/20926)) ([c714776](https://redirect.github.com/vitejs/vite/commit/c714776aa1dcc24299a81c1495cbcbb1b1ef1dd3)) ##### Documentation - correct `WebSocket` spelling ([#​20890](https://redirect.github.com/vitejs/vite/issues/20890)) ([29e98dc](https://redirect.github.com/vitejs/vite/commit/29e98dc3efe35efbd978523367c05db7d2e7a278)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#​20923](https://redirect.github.com/vitejs/vite/issues/20923)) ([a5e3b06](https://redirect.github.com/vitejs/vite/commit/a5e3b064fa7ca981cb6f15f8e88806b36a99b8bf)) ### [`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 ([#​20885](https://redirect.github.com/vitejs/vite/issues/20885)) ([12d72b0](https://redirect.github.com/vitejs/vite/commit/12d72b0538ef1540bfb0f1dd8a44b75deaa3464e)) ### [`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 ([#​20847](https://redirect.github.com/vitejs/vite/issues/20847)) ([24a61a3](https://redirect.github.com/vitejs/vite/commit/24a61a3f5404279e91f7ceebf7449a5e874f9d56)) - **deps:** update all non-major dependencies ([#​20855](https://redirect.github.com/vitejs/vite/issues/20855)) ([788a183](https://redirect.github.com/vitejs/vite/commit/788a183afce57de13f5656f0cf42cdf6fdc3ebaa)) - **deps:** update artichokie to 0.4.2 ([#​20864](https://redirect.github.com/vitejs/vite/issues/20864)) ([e670799](https://redirect.github.com/vitejs/vite/commit/e670799e123dca78e1a63aeb06dbadade3d5ab51)) - **dev:** skip JS responses for document requests ([#​20866](https://redirect.github.com/vitejs/vite/issues/20866)) ([6bc6c4d](https://redirect.github.com/vitejs/vite/commit/6bc6c4dbc23501577d3919dc841454eb2eb14a54)) - **glob:** fix HMR for array patterns with exclusions ([#​20872](https://redirect.github.com/vitejs/vite/issues/20872)) ([63e040f](https://redirect.github.com/vitejs/vite/commit/63e040f1ca6b635a007eb40aa7c8b891e8cc5799)) - keep ids for virtual modules as-is ([#​20808](https://redirect.github.com/vitejs/vite/issues/20808)) ([d4eca98](https://redirect.github.com/vitejs/vite/commit/d4eca986d679c77bd449db20fd99d8255985b550)) - **server:** drain stdin when not interactive ([#​20837](https://redirect.github.com/vitejs/vite/issues/20837)) ([bb950e9](https://redirect.github.com/vitejs/vite/commit/bb950e92b372f9a52245e9542cf9d9700d23ef8c)) - **server:** improve malformed URL handling in middlewares ([#​20830](https://redirect.github.com/vitejs/vite/issues/20830)) ([d65a983](https://redirect.github.com/vitejs/vite/commit/d65a9831c984e562c5bf2b5f427de16f6e1bd931)) ##### Documentation - **create-vite:** provide deno example ([#​20747](https://redirect.github.com/vitejs/vite/issues/20747)) ([fdb758a](https://redirect.github.com/vitejs/vite/commit/fdb758a51796b1ab605437b2eee778a84e87e169)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#​20810](https://redirect.github.com/vitejs/vite/issues/20810)) ([ea68a88](https://redirect.github.com/vitejs/vite/commit/ea68a8868c7ee249213057f8a81c3f92a9839dde)) - **deps:** update rolldown-related dependencies ([#​20854](https://redirect.github.com/vitejs/vite/issues/20854)) ([4dd06fd](https://redirect.github.com/vitejs/vite/commit/4dd06fdc8d643059c2abf88188eae7c4877aab6e)) - update url of `create-react-app` license ([#​20865](https://redirect.github.com/vitejs/vite/issues/20865)) ([166a178](https://redirect.github.com/vitejs/vite/commit/166a178f45b6e48db27b5626559f5ec3358c2fb4)) ### [`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` ([#​20787](https://redirect.github.com/vitejs/vite/issues/20787)) ([4c4583c](https://redirect.github.com/vitejs/vite/commit/4c4583ce7a13306e0853901570c5d95517fe81da)) - **client:** use CSP nonce when rendering error overlay ([#​20791](https://redirect.github.com/vitejs/vite/issues/20791)) ([9bc9d12](https://redirect.github.com/vitejs/vite/commit/9bc9d1258f550e9d8f5e530cd27aecb1bee32bdb)) - **deps:** update all non-major dependencies ([#​20811](https://redirect.github.com/vitejs/vite/issues/20811)) ([9f2247c](https://redirect.github.com/vitejs/vite/commit/9f2247c066cac75746356c9391845235445a154b)) - **glob:** handle glob imports from folders starting with dot ([#​20800](https://redirect.github.com/vitejs/vite/issues/20800)) ([105abe8](https://redirect.github.com/vitejs/vite/commit/105abe87c412cf0f83859ba41fed869221cbb3e0)) - **hmr:** trigger prune event when import is removed from non hmr module ([#​20768](https://redirect.github.com/vitejs/vite/issues/20768)) ([9f32b1d](https://redirect.github.com/vitejs/vite/commit/9f32b1dc710991c53a9f665c8d0d6945f342bf92)) - **hmr:** wait for `import.meta.hot.prune` callbacks to complete before running other HMRs ([#​20698](https://redirect.github.com/vitejs/vite/issues/20698)) ([98a3484](https://redirect.github.com/vitejs/vite/commit/98a3484733443ee529870477a6ab6a03572e3cbc)) ### [`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 ([#​20773](https://redirect.github.com/vitejs/vite/issues/20773)) ([88af2ae](https://redirect.github.com/vitejs/vite/commit/88af2ae7df77160e7d11a9fa147a4967c8499f13)) - **esbuild:** inject esbuild helper functions with minified `$` variables correctly ([#​20761](https://redirect.github.com/vitejs/vite/issues/20761)) ([7e8e004](https://redirect.github.com/vitejs/vite/commit/7e8e0043d60379e11da481d9cc3c3556c9756ac0)) - fallback terser to main thread when nameCache is provided ([#​20750](https://redirect.github.com/vitejs/vite/issues/20750)) ([a679a64](https://redirect.github.com/vitejs/vite/commit/a679a643404c95556dda2670643e14eca9c585bd)) - **types:** strict env typings fail when `skipLibCheck` is `false` ([#​20755](https://redirect.github.com/vitejs/vite/issues/20755)) ([cc54e29](https://redirect.github.com/vitejs/vite/commit/cc54e294746d3eac868de96f85d98dd0fa0cda11)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#​20675](https://redirect.github.com/vitejs/vite/issues/20675)) ([a67bb5f](https://redirect.github.com/vitejs/vite/commit/a67bb5fbec5f3e42151dc7e3166858d0d33533de)) - **deps:** update rolldown-related dependencies ([#​20772](https://redirect.github.com/vitejs/vite/issues/20772)) ([d785e72](https://redirect.github.com/vitejs/vite/commit/d785e72f2ead705e8b2416c0a5097878fced3435)) ### [`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 ([#​20736](https://redirect.github.com/vitejs/vite/issues/20736)) ([14015d7](https://redirect.github.com/vitejs/vite/commit/14015d794f69accba68798bd0e15135bc51c9c1e)) - **deps:** update all non-major dependencies ([#​20732](https://redirect.github.com/vitejs/vite/issues/20732)) ([122bfba](https://redirect.github.com/vitejs/vite/commit/122bfbabeb1f095ce7cabd30893e5531e9a007c4)) - upgrade sirv to 3.0.2 ([#​20735](https://redirect.github.com/vitejs/vite/issues/20735)) ([09f2b52](https://redirect.github.com/vitejs/vite/commit/09f2b52e8d5907f26602653caf41b3a56692600d)) ### [`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 ([#​20697](https://redirect.github.com/vitejs/vite/issues/20697)) ([79d10ed](https://redirect.github.com/vitejs/vite/commit/79d10ed6341ba7a751d007b7ad113a9b8be9c853)) - **deps:** update all non-major dependencies ([#​20676](https://redirect.github.com/vitejs/vite/issues/20676)) ([5a274b2](https://redirect.github.com/vitejs/vite/commit/5a274b29df83744cf0ce4dafd94029d2a9e01135)) - **deps:** update all non-major dependencies ([#​20709](https://redirect.github.com/vitejs/vite/issues/20709)) ([0401feb](https://redirect.github.com/vitejs/vite/commit/0401feba17e60bd7e976c5643128a0da49670a83)) - pass rollup watch options when building in watch mode ([#​20674](https://redirect.github.com/vitejs/vite/issues/20674)) ([f367453](https://redirect.github.com/vitejs/vite/commit/f367453ca2825bc8a390d41c5d13b161756f2b41)) ##### Miscellaneous Chores - remove unused constants entry from rolldown.config.ts ([#​20710](https://redirect.github.com/vitejs/vite/issues/20710)) ([537fcf9](https://redirect.github.com/vitejs/vite/commit/537fcf91862a1bf51e70ce6fe9b414319dd3a675)) ##### Code Refactoring - remove unnecessary `minify` parameter from `finalizeCss` ([#​20701](https://redirect.github.com/vitejs/vite/issues/20701)) ([8099582](https://redirect.github.com/vitejs/vite/commit/8099582e5364f907f2bc6cb8e2d52ae0c4d937e4)) ### [`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 ([#​20638](https://redirect.github.com/vitejs/vite/issues/20638)) ([a1be1bf](https://redirect.github.com/vitejs/vite/commit/a1be1bf0905b9086e5f1370c63d76a7fa4a195ec)) - generate code frame for parse errors thrown by terser ([#​20642](https://redirect.github.com/vitejs/vite/issues/20642)) ([a9ba017](https://redirect.github.com/vitejs/vite/commit/a9ba0174a58b949373d6b4240bc69180dff0b780)) - support long lines in `generateCodeFrame` ([#​20640](https://redirect.github.com/vitejs/vite/issues/20640)) ([1559577](https://redirect.github.com/vitejs/vite/commit/15595773170c2a07f2efdccee05964fb87c19ae6)) ##### Bug Fixes - **deps:** update all non-major dependencies ([#​20634](https://redirect.github.com/vitejs/vite/issues/20634)) ([4851cab](https://redirect.github.com/vitejs/vite/commit/4851cab3ba818b5f0f82eef3796b61d4b12768f1)) - **optimizer:** incorrect incompatible error ([#​20439](https://redirect.github.com/vitejs/vite/issues/20439)) ([446fe83](https://redirect.github.com/vitejs/vite/commit/446fe83033686dd38d13b786a217b8277b5c5f09)) - support multiline new URL(..., import.meta.url) expressions ([#​20644](https://redirect.github.com/vitejs/vite/issues/20644)) ([9ccf142](https://redirect.github.com/vitejs/vite/commit/9ccf142764d48292aa33e5ca6f020a7d55b97f61)) ##### Performance Improvements - **cli:** dynamically import `resolveConfig` ([#​20646](https://redirect.github.com/vitejs/vite/issues/20646)) ([f691f57](https://redirect.github.com/vitejs/vite/commit/f691f57e46118328e00174160ceab2101b7256ca)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#​20633](https://redirect.github.com/vitejs/vite/issues/20633)) ([98b92e8](https://redirect.github.com/vitejs/vite/commit/98b92e8c4b10ae87c48292a8ac09b01ca81a02cf)) ##### Code Refactoring - replace startsWith with strict equality ([#​20603](https://redirect.github.com/vitejs/vite/issues/20603)) ([42816de](https://redirect.github.com/vitejs/vite/commit/42816dee0e177dded1c9de4d9099089ec4acef96)) - use `import` in worker threads ([#​20641](https://redirect.github.com/vitejs/vite/issues/20641)) ([530687a](https://redirect.github.com/vitejs/vite/commit/530687a344c51daf3115d1c134586bbde58356e0)) ##### Tests - remove `checkNodeVersion` test ([#​20647](https://redirect.github.com/vitejs/vite/issues/20647)) ([731d3e6](https://redirect.github.com/vitejs/vite/commit/731d3e61f444f6c5e611f67b531416ed6450f90f)) ### [`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 ([#​20595](https://redirect.github.com/vitejs/vite/issues/20595)) ([7cdef61](https://redirect.github.com/vitejs/vite/commit/7cdef612a65da5363905723f77516b6745ac9a94)) - **config:** make debugger work with bundle loader ([#​20573](https://redirect.github.com/vitejs/vite/issues/20573)) ([c583927](https://redirect.github.com/vitejs/vite/commit/c583927bee657f15f63fdf80468fbe6a74eacdec)) - **deps:** update all non-major dependencies ([#​20587](https://redirect.github.com/vitejs/vite/issues/20587)) ([20d4817](https://redirect.github.com/vitejs/vite/commit/20d48172a0352d32f766b3c878d52a8944fdbf6e)) - don't consider ids with `npm:` prefix as a built-in module ([#​20558](https://redirect.github.com/vitejs/vite/issues/20558)) ([ab33803](https://redirect.github.com/vitejs/vite/commit/ab33803f2c831a82ddee637ad62e0c4ceeb663f1)) - **hmr:** watch non-inlined assets referenced by CSS ([#​20581](https://redirect.github.com/vitejs/vite/issues/20581)) ([b7d494b](https://redirect.github.com/vitejs/vite/commit/b7d494bf60af3ef7316d87266bb3ebf56617d5fd)) - **module-runner:** prevent crash when sourceMappingURL pattern appears in string literals ([#​20554](https://redirect.github.com/vitejs/vite/issues/20554)) ([2770478](https://redirect.github.com/vitejs/vite/commit/2770478d1c190d3e3de34ef9a3d2c493c06e9933)) ##### Miscellaneous Chores - **deps:** migrate to `@jridgewell/remapping` from `@ampproject/remapping` ([#​20577](https://redirect.github.com/vitejs/vite/issues/20577)) ([0a6048a](https://redirect.github.com/vitejs/vite/commit/0a6048aba4523f451edf29ae4037d252cc963815)) - **deps:** update rolldown-related dependencies ([#​20586](https://redirect.github.com/vitejs/vite/issues/20586)) ([77632c5](https://redirect.github.com/vitejs/vite/commit/77632c55db51cd6d03bcf24a1cef8d21058100a3)) ### [`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 ([#​20968](https://redirect.github.com/vitejs/vite/issues/20968)) ([f479cc5](https://redirect.github.com/vitejs/vite/commit/f479cc57c425ed41ceb434fecebd63931b1ed4ed)) ##### Miscellaneous Chores - **deps:** update all non-major dependencies ([#​20966](https://redirect.github.com/vitejs/vite/issues/20966)) ([6fb41a2](https://redirect.github.com/vitejs/vite/commit/6fb41a260bda443685e719ea4765d3faca3db944)) ##### Code Refactoring - use subpath imports for types module reference ([#​20921](https://redirect.github.com/vitejs/vite/issues/20921)) ([d0094af](https://redirect.github.com/vitejs/vite/commit/d0094af639d9ebbb51d4e00910b74f23eb8fe131)) ##### Build System - remove cjs reference in files field ([#​20945](https://redirect.github.com/vitejs/vite/issues/20945)) ([ef411ce](https://redirect.github.com/vitejs/vite/commit/ef411cee2696af3ba791879fdae9aad165f178b2)) - remove hash from built filenames ([#​20946](https://redirect.github.com/vitejs/vite/issues/20946)) ([a817307](https://redirect.github.com/vitejs/vite/commit/a81730754d655d1371ce0f4354af1c84e12f9f2d)) ### [`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` ([#​20508](https://redirect.github.com/vitejs/vite/issues/20508)) ([e7d0b2a](https://redirect.github.com/vitejs/vite/commit/e7d0b2afa56840dabbbad10015dc04083caaf248)) - add `import.meta.main` support in config (bundle config loader) ([#​20516](https://redirect.github.com/vitejs/vite/issues/20516)) ([5d3e3c2](https://redirect.github.com/vitejs/vite/commit/5d3e3c2ae5a2174941fd09fd7842794a287c3ab7)) - **optimizer:** improve dependency optimization error messages with esbuild formatMessages ([#​20525](https://redirect.github.com/vitejs/vite/issues/20525)) ([d17cfed](https://redirect.github.com/vitejs/vite/commit/d17cfeda0741e4476570700a00b7b37917c97700)) - **ssr:** add `import.meta.main` support for Node.js module runner ([#​20517](https://redirect.github.com/vitejs/vite/issues/20517)) ([794a8f2](https://redirect.github.com/vitejs/vite/commit/794a8f230218a3b1e148defc5a2d7a67409177ff)) - add `future: 'warn'` ([#​20473](https://redirect.github.com/vitejs/vite/issues/20473)) ([e6aaf17](https://redirect.github.com/vitejs/vite/commit/e6aaf17ca21544572941957ce71bd8dbdc94e402)) - add `removeServerPluginContainer` future deprecation ([#​20437](https://redirect.github.com/vitejs/vite/issues/20437)) ([c1279e7](https://redirect.github.com/vitejs/vite/commit/c1279e75401ac6ea1d0678da88414a76ff36b6fe)) - add `removeServerReloadModule` future deprecation ([#​20436](https://redirect.github.com/vitejs/vite/issues/20436)) ([6970d17](https://redirect.github.com/vitejs/vite/commit/6970d1740cebd56af696abf60f30adb0c060f578)) - add `server.warmupRequest` to future deprecation ([#​20431](https://redirect.github.com/vitejs/vite/issues/20431)) ([8ad388a](https://redirect.github.com/vitejs/vite/commit/8ad388aeab0dc79e4bc14859b91174427805a46b)) - add `ssrFixStacktrace` / `ssrRewriteStacktrace` to `removeSsrLoadModule` future deprecation ([#​20435](https://redirect.github.com/vitejs/vite/issues/20435)) ([8c8f587](https://redirect.github.com/vitejs/vite/commit/8c8f5879ead251705c2c363f5b8b94f618fbf374)) - **client:** ping from SharedWorker ([#​19057](https://redirect.github.com/vitejs/vite/issues/19057)) ([5c97c22](https://redirect.github.com/vitejs/vite/commit/5c97c22548476e5f80856ece1d80b9234a7e6ecb)) - **dev:** add `this.fs` support ([#​20301](https://redirect.github.com/vitejs/vite/issues/20301)) ([0fe3f2f](https://redirect.github.com/vitejs/vite/commit/0fe3f2f7c325c5990f1059c28b66b24e1b8fd5d3)) - export `defaultExternalConditions` ([#​20279](https://redirect.github.com/vitejs/vite/issues/20279)) ([344d302](https://redirect.github.com/vitejs/vite/commit/344d30243b107852b133175e947a0410ea703f00)) - implement `removePluginHookSsrArgument` future deprecation ([#​20433](https://redirect.github.com/vitejs/vite/issues/20433)) ([95927d9](https://redirect.github.com/vitejs/vite/commit/95927d9c0ba1cb0b3bd8c900f039c099f8e29f90)) - implement `removeServerHot` future deprecation ([#​20434](https://redirect.github.com/vitejs/vite/issues/20434)) ([259f45d](https://redirect.github.com/vitejs/vite/commit/259f45d0698a184d6ecc352b610001fa1acdcee1)) - resolve server URLs before calling other listeners ([#​19981](https://redirect.github.com/vitejs/vite/issues/19981)) ([45f6443](https://redirect.github.com/vitejs/vite/commit/45f6443a935258d8eee62874f0695b8c1c60a481)) - **ssr:** resolve externalized packages with `resolve.externalConditions` and add `module-sync` to default external condition ([#​20409](https://redirect.github.com/vitejs/vite/issues/20409)) ([c669c52](https://redirect.github.com/vitejs/vite/commit/c669c524e6008a4902169f4b2f865e892297acf3)) - **ssr:** support `import.meta.resolve` in module runner ([#​20260](https://redirect.github.com/vitejs/vite/issues/20260)) ([62835f7](https://redirect.github.com/vitejs/vite/commit/62835f7c06d37802f0bc2abbf58bbaeaa8c73ce5)) ##### Bug Fixes - **css:** avoid warnings for `image-set` containing `__VITE_ASSET__` ([#​20520](https://redirect.github.com/vitejs/vite/issues/20520)) ([f1a2635](https://redirect.github.com/vitejs/vite/commit/f1a2635e6977a3eda681bec036f64f07686dad0d)) - **css:** empty CSS entry points should generate CSS files, not JS files ([#​20518](https://redirect.github.com/vitejs/vite/issues/20518)) ([bac9f3e](https://redirect.github.com/vitejs/vite/commit/bac9f3ecf84ae5c5add6ef224ae057508247f89e)) - **dev:** denied request stalled when requested concurrently ([#​20503](https://redirect.github.com/vitejs/vite/issues/20503)) ([64a52e7](https://redirect.github.com/vitejs/vite/commit/64a52e70d9250b16aa81ce2df27c23fe56907257)) - **manifest:** initialize `entryCssAssetFileNames` as an empty Set ([#​20542](https://redirect.github.com/vitejs/vite/issues/20542)) ([6a46cda](https://redirect.github.com/vitejs/vite/commit/6a46cdac5dece70296d1179640958deeeb2e6c19)) - skip prepareOutDirPlugin in workers ([#​20556](https://redirect.github.com/vitejs/vite/issues/20556)) ([97d5111](https://redirect.github.com/vitejs/vite/commit/97d5111645a395dae48b16b110bc76c1ee8956c8)) - **asset:** only watch existing files for `new URL(, import.meta.url)` ([#​20507](https://redirect.github.com/vitejs/vite/issues/20507)) ([1b211fd](https://redirect.github.com/vitejs/vite/commit/1b211fd1beccd0fc13bec700815abaa9f54147e8)) - **client:** keep ping on WS constructor error ([#​20512](https://redirect.github.com/vitejs/vite/issues/20512)) ([3676da5](https://redirect.github.com/vitejs/vite/commit/3676da5bc5b2b69b28619b8521fca94d30468fe5)) - **deps:** update all non-major dependencies ([#​20537](https://redirect.github.com/vitejs/vite/issues/20537)) ([fc9a9d3](https://redirect.github.com/vitejs/vite/commit/fc9a9d3f1493caa3d614f64e0a61fd5684f0928b)) - don't resolve as relative for specifiers starting with a dot ([#​20528](https://redirect.github.com/vitejs/vite/issues/20528)) ([c5a10ec](https://redirect.github.com/vitejs/vite/commit/c5a10ec004130bec17cf42760b76d1d404008fa3)) - **html:** allow control character in input stream ([#​20483](https://redirect.github.com/vitejs/vite/issues/20483)) ([c12a4a7](https://redirect.github.com/vitejs/vite/commit/c12a4a76a299237a0a13b885c72fdda6e4a3c9b7)) - merge old and new `noExternal: true` correctly ([#​20502](https://redirect.github.com/vitejs/vite/issues/20502)) ([9ebe4a5](https://redirect.github.com/vitejs/vite/commit/9ebe4a514a2e48e3fe194f16b0556a45ff38077a)) - **deps:** update all non-major dependencies ([#​20489](https://redirect.github.com/vitejs/vite/issues/20489)) ([f6aa04a](https://redirect.github.com/vitejs/vite/commit/f6aa04a52d486c8881f666c450caa3dab3c6bba1)) - **dev:** denied requests overly ([#​20410](https://redirect.github.com/vitejs/vite/issues/20410)) ([4be5270](https://redirect.github.com/vitejs/vite/commit/4be5270b27f7e6323f1771974b4b3520d86600e4)) - **hmr:** register css deps as `type: asset` ([#​20391](https://redirect.github.com/vitejs/vite/issues/20391)) ([7eac8dd](https://redirect.github.com/vitejs/vite/commit/7eac8ddb65033b8c001d6c6bc46aaeeefb79680a)) - **optimizer:** discover correct jsx runtime during scan ([#​20495](https://redirect.github.com/vitejs/vite/issues/20495)) ([10d48bb](https://redirect.github.com/vitejs/vite/commit/10d48bb2e30824d217e415a58cea9e69c2820c2a)) - **preview:** set correct host for `resolvedUrls` ([#​20496](https://redirect.github.com/vitejs/vite/issues/20496)) ([62b3e0d](https://redirect.github.com/vitejs/vite/commit/62b3e0d95c143e2f8b4e88d99c381d23663025ee)) - **worker:** resolve WebKit compat with inline workers by deferring blob URL revocation ([#​20460](https://redirect.github.com/vitejs/vite/issues/20460)) ([8033e5b](https://redirect.github.com/vitejs/vite/commit/8033e5bf8d3ff43995d0620490ed8739c59171dd)) ##### Performance Improvements - **client:** reduce reload debounce ([#​20429](https://redirect.github.com/vitejs/vite/issues/20429)) ([22ad43b](https://redirect.github.com/vitejs/vite/commit/22ad43b4bf2435efe78a65b84e8469b23521900a)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#​20536](https://redirect.github.com/vitejs/vite/issues/20536)) ([8be2787](https://redirect.github.com/vitejs/vite/commit/8be278748a92b128c49a24619d8d537dd2b08ceb)) - **deps:** update dependency parse5 to v8 ([#​20490](https://redirect.github.com/vitejs/vite/issues/20490)) ([744582d](https://redirect.github.com/vitejs/vite/commit/744582d0187c50045fb6cf229e3fab13093af08e)) - format ([f20addc](https://redirect.github.com/vitejs/vite/commit/f20addc5363058f5fd797e5bc71fab3877ed0a76)) - stablize `cssScopeTo` ([#​19592](https://redirect.github.com/vitejs/vite/issues/19592)) ([ced1343](https://redirect.github.com/vitejs/vite/commit/ced13433fb71e2101850a4da1b0ef70cbc38b804)) ##### Code Refactoring - use hook filters in the worker plugin ([#​20527](https://redirect.github.com/vitejs/vite/issues/20527)) ([958cdf2](https://redirect.github.com/vitejs/vite/commit/958cdf24f882be6953ca20912dd30c84213b069b)) - extract prepareOutDir as a plugin ([#​20373](https://redirect.github.com/vitejs/vite/issues/20373)) ([2c4af1f](https://redirect.github.com/vitejs/vite/commit/2c4af1f90b3ac98df6f4585a329528e6bd850462)) - extract resolve rollup options ([#​20375](https://redirect.github.com/vitejs/vite/issues/20375)) ([61a9778](https://redirect.github.com/vitejs/vite/commit/61a97780e6c54adb87345cb8c1f5f0d8e9ca5c05)) - rewrite openchrome.applescript to JXA ([#​20424](https://redirect.github.com/vitejs/vite/issues/20424)) ([7979f9d](https://redirect.github.com/vitejs/vite/commit/7979f9da555aa16bd221b32ea78ce8cb5292fac4)) - use `http-proxy-3` ([#​20402](https://redirect.github.com/vitejs/vite/issues/20402)) ([26d9872](https://redirect.github.com/vitejs/vite/commit/26d987232aad389733a7635b92122bb1d78dfcad)) - use hook filters in internal plugins ([#​20358](https://redirect.github.com/vitejs/vite/issues/20358)) ([f19c4d7](https://redirect.github.com/vitejs/vite/commit/f19c4d72de142814994e30120aa4ad57552cb874)) - use hook filters in internal resolve plugin ([#​20480](https://redirect.github.com/vitejs/vite/issues/20480)) ([acd2a13](https://redirect.github.com/vitejs/vite/commit/acd2a13c2d80e8c5c721bcf9738dfc03346cbfe1)) ##### Tests - detect ts support via `process.features` ([#​20544](https://redirect.github.com/vitejs/vite/issues/20544)) ([856d3f0](https://redirect.github.com/vitejs/vite/commit/856d3f06e6889979f630c8453fa385f01d8adaba)) - fix unimportant errors in test-unit ([#​20545](https://redirect.github.com/vitejs/vite/issues/20545)) ([1f23554](https://redirect.github.com/vitejs/vite/commit/1f235545b14a51d41b19a49da4a7e3a8e8eb5d10)) ##### 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` ([#​20508](https://redirect.github.com/vitejs/vite/issues/20508)) ([e7d0b2a](https://redirect.github.com/vitejs/vite/commit/e7d0b2afa56840dabbbad10015dc04083caaf248)) - add `import.meta.main` support in config (bundle config loader) ([#​20516](https://redirect.github.com/vitejs/vite/issues/20516)) ([5d3e3c2](https://redirect.github.com/vitejs/vite/commit/5d3e3c2ae5a2174941fd09fd7842794a287c3ab7)) - **optimizer:** improve dependency optimization error messages with esbuild formatMessages ([#​20525](https://redirect.github.com/vitejs/vite/issues/20525)) ([d17cfed](https://redirect.github.com/vitejs/vite/commit/d17cfeda0741e4476570700a00b7b37917c97700)) - **ssr:** add `import.meta.main` support for Node.js module runner ([#​20517](https://redirect.github.com/vitejs/vite/issues/20517)) ([794a8f2](https://redirect.github.com/vitejs/vite/commit/794a8f230218a3b1e148defc5a2d7a67409177ff)) - add `future: 'warn'` ([#​20473](https://redirect.github.com/vitejs/vite/issues/20473)) ([e6aaf17](https://redirect.github.com/vitejs/vite/commit/e6aaf17ca21544572941957ce71bd8dbdc94e402)) - add `removeServerPluginContainer` future deprecation ([#​20437](https://redirect.github.com/vitejs/vite/issues/20437)) ([c1279e7](https://redirect.github.com/vitejs/vite/commit/c1279e75401ac6ea1d0678da88414a76ff36b6fe)) - add `removeServerReloadModule` future deprecation ([#​20436](https://redirect.github.com/vitejs/vite/issues/20436)) ([6970d17](https://redirect.github.com/vitejs/vite/commit/6970d1740cebd56af696abf60f30adb0c060f578)) - add `server.warmupRequest` to future deprecation ([#​20431](https://redirect.github.com/vitejs/vite/issues/20431)) ([8ad388a](https://redirect.github.com/vitejs/vite/commit/8ad388aeab0dc79e4bc14859b91174427805a46b)) - add `ssrFixStacktrace` / `ssrRewriteStacktrace` to `removeSsrLoadModule` future deprecation ([#​20435](https://redirect.github.com/vitejs/vite/issues/20435)) ([8c8f587](https://redirect.github.com/vitejs/vite/commit/8c8f5879ead251705c2c363f5b8b94f618fbf374)) - **client:** ping from SharedWorker ([#​19057](https://redirect.github.com/vitejs/vite/issues/19057)) ([5c97c22](https://redirect.github.com/vitejs/vite/commit/5c97c22548476e5f80856ece1d80b9234a7e6ecb)) - **dev:** add `this.fs` support ([#​20301](https://redirect.github.com/vitejs/vite/issues/20301)) ([0fe3f2f](https://redirect.github.com/vitejs/vite/commit/0fe3f2f7c325c5990f1059c28b66b24e1b8fd5d3)) - export `defaultExternalConditions` ([#​20279](https://redirect.github.com/vitejs/vite/issues/20279)) ([344d302](https://redirect.github.com/vitejs/vite/commit/344d30243b107852b133175e947a0410ea703f00)) - implement `removePluginHookSsrArgument` future deprecation ([#​20433](https://redirect.github.com/vitejs/vite/issues/20433)) ([95927d9](https://redirect.github.com/vitejs/vite/commit/95927d9c0ba1cb0b3bd8c900f039c099f8e29f90)) - implement `removeServerHot` future deprecation ([#​20434](https://redirect.github.com/vitejs/vite/issues/20434)) ([259f45d](https://redirect.github.com/vitejs/vite/commit/259f45d0698a184d6ecc352b610001fa1acdcee1)) - resolve server URLs before calling other listeners ([#​19981](https://redirect.github.com/vitejs/vite/issues/19981)) ([45f6443](https://redirect.github.com/vitejs/vite/commit/45f6443a935258d8eee62874f0695b8c1c60a481)) - **ssr:** resolve externalized packages with `resolve.externalConditions` and add `module-sync` to default external condition ([#​20409](https://redirect.github.com/vitejs/vite/issues/20409)) ([c669c52](https://redirect.github.com/vitejs/vite/commit/c669c524e6008a4902169f4b2f865e892297acf3)) - **ssr:** support `import.meta.resolve` in module runner ([#​20260](https://redirect.github.com/vitejs/vite/issues/20260)) ([62835f7](https://redirect.github.com/vitejs/vite/commit/62835f7c06d37802f0bc2abbf58bbaeaa8c73ce5)) ##### Bug Fixes - **css:** avoid warnings for `image-set` containing `__VITE_ASSET__` ([#​20520](https://redirect.github.com/vitejs/vite/issues/20520)) ([f1a2635](https://redirect.github.com/vitejs/vite/commit/f1a2635e6977a3eda681bec036f64f07686dad0d)) - **css:** empty CSS entry points should generate CSS files, not JS files ([#​20518](https://redirect.github.com/vitejs/vite/issues/20518)) ([bac9f3e](https://redirect.github.com/vitejs/vite/commit/bac9f3ecf84ae5c5add6ef224ae057508247f89e)) - **dev:** denied request stalled when requested concurrently ([#​20503](https://redirect.github.com/vitejs/vite/issues/20503)) ([64a52e7](https://redirect.github.com/vitejs/vite/commit/64a52e70d9250b16aa81ce2df27c23fe56907257)) - **manifest:** initialize `entryCssAssetFileNames` as an empty Set ([#​20542](https://redirect.github.com/vitejs/vite/issues/20542)) ([6a46cda](https://redirect.github.com/vitejs/vite/commit/6a46cdac5dece70296d1179640958deeeb2e6c19)) - skip prepareOutDirPlugin in workers ([#​20556](https://redirect.github.com/vitejs/vite/issues/20556)) ([97d5111](https://redirect.github.com/vitejs/vite/commit/97d5111645a395dae48b16b110bc76c1ee8956c8)) - **asset:** only watch existing files for `new URL(, import.meta.url)` ([#​20507](https://redirect.github.com/vitejs/vite/issues/20507)) ([1b211fd](https://redirect.github.com/vitejs/vite/commit/1b211fd1beccd0fc13bec700815abaa9f54147e8)) - **client:** keep ping on WS constructor error ([#​20512](https://redirect.github.com/vitejs/vite/issues/20512)) ([3676da5](https://redirect.github.com/vitejs/vite/commit/3676da5bc5b2b69b28619b8521fca94d30468fe5)) - **deps:** update all non-major dependencies ([#​20537](https://redirect.github.com/vitejs/vite/issues/20537)) ([fc9a9d3](https://redirect.github.com/vitejs/vite/commit/fc9a9d3f1493caa3d614f64e0a61fd5684f0928b)) - don't resolve as relative for specifiers starting with a dot ([#​20528](https://redirect.github.com/vitejs/vite/issues/20528)) ([c5a10ec](https://redirect.github.com/vitejs/vite/commit/c5a10ec004130bec17cf42760b76d1d404008fa3)) - **html:** allow control character in input stream ([#​20483](https://redirect.github.com/vitejs/vite/issues/20483)) ([c12a4a7](https://redirect.github.com/vitejs/vite/commit/c12a4a76a299237a0a13b885c72fdda6e4a3c9b7)) - merge old and new `noExternal: true` correctly ([#​20502](https://redirect.github.com/vitejs/vite/issues/20502)) ([9ebe4a5](https://redirect.github.com/vitejs/vite/commit/9ebe4a514a2e48e3fe194f16b0556a45ff38077a)) - **deps:** update all non-major dependencies ([#​20489](https://redirect.github.com/vitejs/vite/issues/20489)) ([f6aa04a](https://redirect.github.com/vitejs/vite/commit/f6aa04a52d486c8881f666c450caa3dab3c6bba1)) - **dev:** denied requests overly ([#​20410](https://redirect.github.com/vitejs/vite/issues/20410)) ([4be5270](https://redirect.github.com/vitejs/vite/commit/4be5270b27f7e6323f1771974b4b3520d86600e4)) - **hmr:** register css deps as `type: asset` ([#​20391](https://redirect.github.com/vitejs/vite/issues/20391)) ([7eac8dd](https://redirect.github.com/vitejs/vite/commit/7eac8ddb65033b8c001d6c6bc46aaeeefb79680a)) - **optimizer:** discover correct jsx runtime during scan ([#​20495](https://redirect.github.com/vitejs/vite/issues/20495)) ([10d48bb](https://redirect.github.com/vitejs/vite/commit/10d48bb2e30824d217e415a58cea9e69c2820c2a)) - **preview:** set correct host for `resolvedUrls` ([#​20496](https://redirect.github.com/vitejs/vite/issues/20496)) ([62b3e0d](https://redirect.github.com/vitejs/vite/commit/62b3e0d95c143e2f8b4e88d99c381d23663025ee)) - **worker:** resolve WebKit compat with inline workers by deferring blob URL revocation ([#​20460](https://redirect.github.com/vitejs/vite/issues/20460)) ([8033e5b](https://redirect.github.com/vitejs/vite/commit/8033e5bf8d3ff43995d0620490ed8739c59171dd)) ##### Performance Improvements - **client:** reduce reload debounce ([#​20429](https://redirect.github.com/vitejs/vite/issues/20429)) ([22ad43b](https://redirect.github.com/vitejs/vite/commit/22ad43b4bf2435efe78a65b84e8469b23521900a)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#​20536](https://redirect.github.com/vitejs/vite/issues/20536)) ([8be2787](https://redirect.github.com/vitejs/vite/commit/8be278748a92b128c49a24619d8d537dd2b08ceb)) - **deps:** update dependency parse5 to v8 ([#​20490](https://redirect.github.com/vitejs/vite/issues/20490)) ([744582d](https://redirect.github.com/vitejs/vite/commit/744582d0187c50045fb6cf229e3fab13093af08e)) - format ([f20addc](https://redirect.github.com/vitejs/vite/commit/f20addc5363058f5fd797e5bc71fab3877ed0a76)) - stablize `cssScopeTo` ([#​19592](https://redirect.github.com/vitejs/vite/issues/19592)) ([ced1343](https://redirect.github.com/vitejs/vite/commit/ced13433fb71e2101850a4da1b0ef70cbc38b804)) ##### Code Refactoring - use hook filters in the worker plugin ([#​20527](https://redirect.github.com/vitejs/vite/issues/20527)) ([958cdf2](https://redirect.github.com/vitejs/vite/commit/958cdf24f882be6953ca20912dd30c84213b069b)) - extract prepareOutDir as a plugin ([#​20373](https://redirect.github.com/vitejs/vite/issues/20373)) ([2c4af1f](https://redirect.github.com/vitejs/vite/commit/2c4af1f90b3ac98df6f4585a329528e6bd850462)) - extract resolve rollup options ([#​20375](https://redirect.github.com/vitejs/vite/issues/20375)) ([61a9778](https://redirect.github.com/vitejs/vite/commit/61a97780e6c54adb87345cb8c1f5f0d8e9ca5c05)) - rewrite openchrome.applescript to JXA ([#​20424](https://redirect.github.com/vitejs/vite/issues/20424)) ([7979f9d](https://redirect.github.com/vitejs/vite/commit/7979f9da555aa16bd221b32ea78ce8cb5292fac4)) - use `http-proxy-3` ([#​20402](https://redirect.github.com/vitejs/vite/issues/20402)) ([26d9872](https://redirect.github.com/vitejs/vite/commit/26d987232aad389733a7635b92122bb1d78dfcad)) - use hook filters in internal plugins ([#​20358](https://redirect.github.com/vitejs/vite/issues/20358)) ([f19c4d7](https://redirect.github.com/vitejs/vite/commit/f19c4d72de142814994e30120aa4ad57552cb874)) - use hook filters in internal resolve plugin ([#​20480](https://redirect.github.com/vitejs/vite/issues/20480)) ([acd2a13](https://redirect.github.com/vitejs/vite/commit/acd2a13c2d80e8c5c721bcf9738dfc03346cbfe1)) ##### Tests - detect ts support via `process.features` ([#​20544](https://redirect.github.com/vitejs/vite/issues/20544)) ([856d3f0](https://redirect.github.com/vitejs/vite/commit/856d3f06e6889979f630c8453fa385f01d8adaba)) - fix unimportant errors in test-unit ([#​20545](https://redirect.github.com/vitejs/vite/issues/20545)) ([1f23554](https://redirect.github.com/vitejs/vite/commit/1f235545b14a51d41b19a49da4a7e3a8e8eb5d10)) ##### 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 ([#​20406](https://redirect.github.com/vitejs/vite/issues/20406)) ([1a1cc8a](https://redirect.github.com/vitejs/vite/commit/1a1cc8a435a21996255b3e5cc75ed4680de2a7f3)) - remove special handling for `Accept: text/html` ([#​20376](https://redirect.github.com/vitejs/vite/issues/20376)) ([c9614b9](https://redirect.github.com/vitejs/vite/commit/c9614b9c378be4a32e84f37be71a8becce52af7b)) - watch assets referenced by `new URL(, import.meta.url)` ([#​20382](https://redirect.github.com/vitejs/vite/issues/20382)) ([6bc8bf6](https://redirect.github.com/vitejs/vite/commit/6bc8bf634d4a2c9915da9813963dd80a4186daeb)) ##### Miscellaneous Chores - **deps:** update dependency rolldown to ^1.0.0-beta.27 ([#​20405](https://redirect.github.com/vitejs/vite/issues/20405)) ([1165667](https://redirect.github.com/vitejs/vite/commit/1165667b271fb1fb76584278e72a85d564c9bb09)) ##### Code Refactoring - use `foo.endsWith("bar")` instead of `/bar$/.test(foo)` ([#​20413](https://redirect.github.com/vitejs/vite/issues/20413)) ([862e192](https://redirect.github.com/vitejs/vite/commit/862e192d21f66039635a998724bdc6b94fd293a0)) ### [`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 ([#​20379](https://redirect.github.com/vitejs/vite/issues/20379)) ([324669c](https://redirect.github.com/vitejs/vite/commit/324669c2d84966a822b1b2c134c9830a90bed271)) ##### Build System - remove `@oxc-project/runtime` devDep ([#​20389](https://redirect.github.com/vitejs/vite/issues/20389)) ([5e29602](https://redirect.github.com/vitejs/vite/commit/5e29602f6fe4bf28f6e7c869a214dee6957f855c)) ### [`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 ([#​20359](https://redirect.github.com/vitejs/vite/issues/20359)) ([31d1467](https://redirect.github.com/vitejs/vite/commit/31d1467cf0da1e1dca623e6df0d345b30fae0c3d)) - **define:** replace optional values ([#​20338](https://redirect.github.com/vitejs/vite/issues/20338)) ([9465ae1](https://redirect.github.com/vitejs/vite/commit/9465ae1378b456e08659a22286bee6bce8edeedc)) - **deps:** update all non-major dependencies ([#​20366](https://redirect.github.com/vitejs/vite/issues/20366)) ([43ac73d](https://redirect.github.com/vitejs/vite/commit/43ac73da27b3907c701e95e6a7d28fde659729ec)) ##### Miscellaneous Chores - **deps:** update dependency dotenv to v17 ([#​20325](https://redirect.github.com/vitejs/vite/issues/20325)) ([45040d4](https://redirect.github.com/vitejs/vite/commit/45040d48076302eeb101f8d07bbcd04758fde8a4)) - **deps:** update dependency rolldown to ^1.0.0-beta.24 ([#​20365](https://redirect.github.com/vitejs/vite/issues/20365)) ([5ab25e7](https://redirect.github.com/vitejs/vite/commit/5ab25e73a2ea2a2e2c0469350288a183dfb57030)) - use `n/prefer-node-protocol` rule ([#​20368](https://redirect.github.com/vitejs/vite/issues/20368)) ([38bb268](https://redirect.github.com/vitejs/vite/commit/38bb268cde15541321f36016e77d61eecb707298)) ##### Code Refactoring - minor changes to reduce diff between normal Vite and rolldown-vite ([#​20354](https://redirect.github.com/vitejs/vite/issues/20354)) ([2e8050e](https://redirect.github.com/vitejs/vite/commit/2e8050e4cd8835673baf07375b7db35128144222)) ### [`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 [#​20300](https://redirect.github.com/vitejs/vite/issues/20300) ([#​20349](https://redirect.github.com/vitejs/vite/issues/20349)) ([db8bd41](https://redirect.github.com/vitejs/vite/commit/db8bd412a8b783fe8e9f82d1a822b0534abbf5a3)) ### [`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 ([#​20300](https://redirect.github.com/vitejs/vite/issues/20300)) ([ac528a4](https://redirect.github.com/vitejs/vite/commit/ac528a44c384fefb6f10c3f531df93b5ac39324c)) - **deps:** update all non-major dependencies ([#​20324](https://redirect.github.com/vitejs/vite/issues/20324)) ([3e81af3](https://redirect.github.com/vitejs/vite/commit/3e81af38a80c7617aba6bf3300d8b4267570f9cf)) - **types:** add a global interface for Worker ([#​20243](https://redirect.github.com/vitejs/vite/issues/20243)) ([37bdfc1](https://redirect.github.com/vitejs/vite/commit/37bdfc18f4c5bed053a38c5d717df33036acdd62)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#​20323](https://redirect.github.com/vitejs/vite/issues/20323)) ([30d2f1b](https://redirect.github.com/vitejs/vite/commit/30d2f1b38c72387ffdca3ee4746730959a020b59)) - fix typos and grammatical errors across documentation and comments ([#​20337](https://redirect.github.com/vitejs/vite/issues/20337)) ([c1c951d](https://redirect.github.com/vitejs/vite/commit/c1c951dcc32ec9f133b03ebbceddd749fc14f1e9)) - group commits by category in changelog ([#​20310](https://redirect.github.com/vitejs/vite/issues/20310)) ([41e83f6](https://redirect.github.com/vitejs/vite/commit/41e83f62b1adb65f5af4c1ec006de1c845437edc)) - rearrange 7.0 changelog ([#​20280](https://redirect.github.com/vitejs/vite/issues/20280)) ([eafd28a](https://redirect.github.com/vitejs/vite/commit/eafd28ac88d5908cbc3e0a047ed7a12094386436)) ### [`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)  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 ([#​19996](https://redirect.github.com/vitejs/vite/issues/19996)) - remove `experimental.skipSsrTransform` option ([#​20038](https://redirect.github.com/vitejs/vite/issues/20038)) - remove `HotBroadcaster` ([#​19988](https://redirect.github.com/vitejs/vite/issues/19988)) - **css:** always use sass compiler API ([#​19978](https://redirect.github.com/vitejs/vite/issues/19978)) - bump `build.target` and name it `baseline-widely-available` ([#​20007](https://redirect.github.com/vitejs/vite/issues/20007)) - bump required node version to 20.19+, 22.12+ and remove cjs build ([#​20032](https://redirect.github.com/vitejs/vite/issues/20032)) - **css:** remove sass legacy API support ([#​19977](https://redirect.github.com/vitejs/vite/issues/19977)) - remove deprecated `HotBroadcaster` related types ([#​19987](https://redirect.github.com/vitejs/vite/issues/19987)) - remove deprecated no-op type only properties ([#​19985](https://redirect.github.com/vitejs/vite/issues/19985)) - remove node 18 support ([#​19972](https://redirect.github.com/vitejs/vite/issues/19972)) - remove deprecated hook-level `enforce`/`transform` from `transformIndexHtml` hook ([#​19349](https://redirect.github.com/vitejs/vite/issues/19349)) - remove deprecated splitVendorChunkPlugin ([#​19255](https://redirect.github.com/vitejs/vite/issues/19255)) ##### Features - **types:** use terser types from terser package ([#​20274](https://redirect.github.com/vitejs/vite/issues/20274)) ([a5799fa](https://redirect.github.com/vitejs/vite/commit/a5799fa74c6190ecbb2da3d280136ff32463afc6)) - apply some middlewares before `configurePreviewServer` hook ([#​20224](https://redirect.github.com/vitejs/vite/issues/20224)) ([b989c42](https://redirect.github.com/vitejs/vite/commit/b989c42cf84378e6cb93970de739941f0d56d6f6)) - apply some middlewares before `configureServer` hook ([#​20222](https://redirect.github.com/vitejs/vite/issues/20222)) ([f5cc4c0](https://redirect.github.com/vitejs/vite/commit/f5cc4c0ded337670b439e51bc95f173e2b5cf9ad)) - add base option to import.meta.glob ([#​20163](https://redirect.github.com/vitejs/vite/issues/20163)) ([253d6c6](https://redirect.github.com/vitejs/vite/commit/253d6c6df2ebe3c4a88dabb6cec000128681561f)) - add `this.meta.viteVersion` ([#​20088](https://redirect.github.com/vitejs/vite/issues/20088)) ([f55bf41](https://redirect.github.com/vitejs/vite/commit/f55bf41e91f8dfe829a46e58f0035b19c8ab6a25)) - allow passing down resolved config to vite's `createServer` ([#​19894](https://redirect.github.com/vitejs/vite/issues/19894)) ([c1ae9bd](https://redirect.github.com/vitejs/vite/commit/c1ae9bd4a0542b4703ae7766ad61d072e8b833bd)) - buildApp hook ([#​19971](https://redirect.github.com/vitejs/vite/issues/19971)) ([5da659d](https://redirect.github.com/vitejs/vite/commit/5da659de902f0a2d6d8beefbf269128383b63887)) - **build:** provide names for asset entrypoints ([#​19912](https://redirect.github.com/vitejs/vite/issues/19912)) ([c4e01dc](https://redirect.github.com/vitejs/vite/commit/c4e01dc5ab0f1708383c39d28ce62e12b8f374fc)) - bump `build.target` and name it `baseline-widely-available` ([#​20007](https://redirect.github.com/vitejs/vite/issues/20007)) ([4a8aa82](https://redirect.github.com/vitejs/vite/commit/4a8aa82556eb2b9e54673a6aac77873e0eb27fa9)) - **client:** support opening fileURL in editor ([#​20040](https://redirect.github.com/vitejs/vite/issues/20040)) ([1bde4d2](https://redirect.github.com/vitejs/vite/commit/1bde4d25243cd9beaadb01413e896fef562626ef)) - make PluginContext available for Vite-specific hooks ([#​19936](https://redirect.github.com/vitejs/vite/issues/19936)) ([7063839](https://redirect.github.com/vitejs/vite/commit/7063839d47dfd4ac6be1247ba68e414ffe287b00)) - resolve environments plugins at config time ([#​20120](https://redirect.github.com/vitejs/vite/issues/20120)) ([f6a28d5](https://redirect.github.com/vitejs/vite/commit/f6a28d5f792ba5cc4dc236e3e6edd05199cabcc8)) - stabilize `css.preprocessorMaxWorkers` and default to `true` ([#​19992](https://redirect.github.com/vitejs/vite/issues/19992)) ([70aee13](https://redirect.github.com/vitejs/vite/commit/70aee139ea802478bad56e5e441f187140bcf0cc)) - stabilize `optimizeDeps.noDiscovery` ([#​19984](https://redirect.github.com/vitejs/vite/issues/19984)) ([6d2dcb4](https://redirect.github.com/vitejs/vite/commit/6d2dcb494db9f40565f11b50bdbb8c1b7245697d)) ##### Bug Fixes - **deps:** update all non-major dependencies ([#​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> |
||
|
|
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) |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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> |
||
|
|
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 --> |
||
|
|
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> |
||
|
|
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> |
||
|
|
ca9811792d |
feat(component): emoji and icon picker (#13638)
 <!-- 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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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) |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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) |
||
|
|
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 -->
|
||
|
|
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 --> |
||
|
|
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) |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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 --> |
||
|
|
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) |
||
|
|
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 |
||
|
|
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 --> |
||
|
|
9899fad000 | feat(editor): put current user in first on database user select (#13320) | ||
|
|
21360591a9 |
chore(editor): add table and callout entries for mobile (#13245)
Close [AF-2755](https://linear.app/affine-design/issue/AF-2755/table-block支持) #### PR Dependency Tree * **PR #13245** 👈 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 "Table" and "Callout" options to the keyboard toolbar, allowing users to insert table and callout blocks directly from the toolbar when available. * **Chores** * Updated internal dependencies to support new block types and maintain compatibility. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
5300eff8f1 |
fix(editor): at-menu boundary in chat pannel (#13241)
Close [BS-3621](https://linear.app/affine-design/issue/BS-3621/comment-menu-需要规避边缘) #### PR Dependency Tree * **PR #13241** 👈 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 the positioning of the linked document popover to ensure it displays correctly, even when its width is not initially rendered. <!-- end of auto-generated comment: release notes by coderabbit.ai --> #### PR Dependency Tree * **PR #13241** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) |
||
|
|
04e002eb77 |
feat(core): optimize artifact preview loading (#13224)
fix AI-369 #### PR Dependency Tree * **PR #13224** 👈 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 loading skeleton component for artifact previews, providing a smoother visual experience during loading states. * Artifact loading skeleton is now globally available as a custom element. * **Refactor** * Streamlined icon and loading state handling in AI tools, centralizing logic and removing redundant loading indicators. * Simplified card metadata by removing loading and icon properties from card meta methods. * **Chores** * Improved resource management for code block highlighting, ensuring efficient disposal and avoiding unnecessary operations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |