close AF-2514
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced document explorer on mobile with live updates, responsive masonry layout, and improved empty state handling for all documents, collections, and tags.
- Added customization for card height and masonry item width in document explorer views.
- Extended layout components to support additional flexbox styling options for improved layout flexibility.
- **Bug Fixes**
- Improved flexibility in layout components by supporting additional flexbox styling options.
- **Refactor**
- Replaced older static document list and menu components with a unified, context-driven explorer for a more dynamic and interactive experience.
- Removed obsolete CSS and component files related to the previous document list and menu implementations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
fix: in edgeless mode, an error occurs when asking AI questions without selecting any content
> CLOSE AI-133
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for asking AI input in edgeless mode when no content is selected.
- Enhanced AI panel behavior with improved input handling and chat message sending in edgeless mode.
- **Bug Fixes**
- Improved handling of AI chat input visibility and context extraction in edgeless mode.
- **Tests**
- Introduced new end-to-end tests to verify chat interactions with AI in edgeless mode.
- Centralized editor content removal logic in test utilities for better maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Related to: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-loading-和错误样式)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a reload button with an icon for audio blocks, allowing users to retry loading audio files if an error occurs.
- Error messages are now displayed with actionable options when audio loading fails.
- **Enhancements**
- Audio file sizes are now shown in a human-readable format within the audio player.
- Improved display of audio file information, including error messages and formatted descriptions.
- **Style**
- Updated styling for audio player and audio block components, including new styles for error states and reload button.
- Renamed and refined audio player description styling for better layout and spacing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for a timezone parameter in chat prompts, allowing for more personalized AI responses.
- **Documentation**
- Updated the system prompt for "Chat With AFFiNE AI" to a clearer, sectioned format with detailed instructions and improved privacy emphasis.
- Introduced a structured markup format to guide AI response formatting, citations, and interaction rules.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a CLI command to manage local Certificate Authority (CA) and generate SSL certificates for development domains.
- Added example and template files for Nginx and OpenSSL configurations to support local development with SSL.
- Provided new DNS and Nginx configuration files for enhanced local development setup.
- **Documentation**
- Added a README with step-by-step instructions for setting up development containers and managing certificates on MacOS with OrbStack.
- **Chores**
- Updated ignore patterns to exclude additional development files and directories.
- Enhanced example Docker Compose files with commented service configurations and new volume definitions.
- Removed the Elasticsearch example Docker Compose file.
- **Refactor**
- Extended utility and command classes with new methods to support file operations and command execution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close CLOUD-221
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Resolved an issue that could cause the document listing process to enter an infinite loop under certain conditions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability for workspace owners to approve members under review, with different approval processes for team and non-team workspaces.
- **Bug Fixes**
- Improved accuracy of workspace seat quota calculations for member management.
- **Tests**
- Enhanced test coverage and consistency for workspace member actions, including approval and revocation scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Users are now prevented from deleting their account if they own one or more team workspaces. A clear error message instructs users to transfer ownership or delete those workspaces first.
- Disabled (banned) users are explicitly prevented from signing in or re-registering.
- Added new error messages and translations to improve clarity around account deletion restrictions.
- **Bug Fixes**
- Disabled users are now explicitly handled to prevent sign-in attempts.
- **Tests**
- Introduced comprehensive end-to-end tests covering account deletion, banning, and re-registration scenarios.
- **Chores**
- Improved event handling for user deletion and subscription cancellation.
- Updated localization resources with new error messages.
- Renamed payment event handler class for clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3525](https://linear.app/affine-design/issue/BS-3525/markdown-adapter-紧跟着链接的-footnote-reference-会被识别成链接的一部分)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved handling of footnote references that immediately follow URLs in markdown, ensuring correct spacing and parsing.
- **Bug Fixes**
- Footnote references after URLs are now parsed correctly, preventing formatting issues.
- **Tests**
- Added comprehensive test suites to verify footnote reference preprocessing and markdown conversion.
- **Chores**
- Introduced Vitest as a development dependency and added a dedicated test configuration for the footnote module.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3519](https://linear.app/affine-design/issue/BS-3519/白板支持手写笔点写)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced the ability to add new brush elements by clicking, capturing precise pointer location and pressure data when supported.
- **Bug Fixes**
- Improved stability when updating brush elements during dragging.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a tooltip to the delete icon for attachments, displaying a localized description when hovered.
- **Documentation**
- Updated English localization to include a tooltip label for deleting attachments.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-125](https://linear.app/affine-design/issue/AI-125)
What Changed?
- Add `gemini-2.5-flash-preview-04-17` model
- Add `thinkingConfig` provider options
- Add callout syntax highlighting
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for the "Gemini 2.5 Flash" model and updated the "Gemini 2.5 Pro" model to a newer version.
- Enhanced streaming responses to better format reasoning outputs and provide clearer callouts in AI-generated content.
- **Bug Fixes**
- Improved audio transcription prompts in test cases for more accurate and explicit testing.
- **Documentation**
- Expanded citation instructions for AI chat responses, including examples for multiple citations.
- **Chores**
- Updated the "@ai-sdk/google" dependency to a newer version.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated toolbar and language button styling to improve color consistency and theming.
- Enhanced hover effects for language buttons with improved background color handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved input validation and error reporting for chat messages, attachments, and embeddings, with clearer error messages for invalid inputs.
- Enhanced support for multimodal messages, including attachments such as images or audio.
- **Refactor**
- Unified and streamlined parameter validation across AI providers, resulting in more consistent behavior and error handling.
- Centralized parameter checks into a common provider layer, removing duplicate validation code from individual AI providers.
- **Tests**
- Simplified and consolidated audio transcription test stubs for better maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Simplified the user interface by always displaying the new All Pages view, removing the feature flag and old page version.
- Updated selection interactions to use shift+click on document items instead of checkboxes.
- Centralized drag-and-drop functionality in document list items and simplified drag handle behavior.
- Generalized new page button component to accept standard HTML attributes.
- Changed test ID attributes on new page buttons and list headers to use standard `data-testid`.
- **Bug Fixes**
- Added stable test identifiers to new page buttons, document list items, menu items, and operation buttons for improved test reliability.
- Enabled external drag-and-drop support on the trash button.
- **Tests**
- Streamlined and updated end-to-end tests to match the new selection flow and UI changes, removing outdated or redundant test cases.
- Simplified utility functions and wait conditions in test helpers for better accuracy and maintainability.
- Updated selectors in tests to reflect new document item identifiers and centralized page element retrieval using utility functions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Filter options can now start from a specified step, improving flexibility when multiple filtering methods are available.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to retrieve the system navigation bar height on Android devices.
- **Bug Fixes**
- Removed duplicate internal code to improve stability.
- **Chores**
- Removed the dependency on the edge-to-edge support package and related configuration and code.
- Updated configuration to adjust margins for edge-to-edge layouts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2626
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for debounced input changes in input fields, improving performance for rapid typing scenarios.
- Enhanced document explorer with dynamic visibility controls for drag handles and "more" menu options.
- Introduced a new filter for searching documents by title, enabling more precise filtering in collections.
- Added a direct search method for document titles to improve search accuracy and speed.
- **Bug Fixes**
- Improved layout and centering of icons in document list items.
- Updated border styles across collection editor components for a more consistent appearance.
- **Refactor**
- Simplified page selection and rule-matching logic in collection and selector components by consolidating state management and leveraging context-driven rendering.
- Removed deprecated and redundant hooks for page list configuration.
- **Chores**
- Updated code to use new theme variables for border colors, ensuring visual consistency with the latest design standards.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Properties in the document list are now displayed only if they are explicitly marked to be shown, providing a more streamlined and relevant view.
- **Bug Fixes**
- Improved filtering ensures that only designated properties appear in the document list, preventing unintended properties from being shown.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix: BS-3484
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Improved visibility of certain table row headers by ensuring their opacity cannot be unintentionally overridden by other styles.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix#12300
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved font rendering for math content on Windows by explicitly setting the font for math elements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [Lakr233/SpringInterpolation](https://redirect.github.com/Lakr233/SpringInterpolation) | patch | `from: "1.3.0"` -> `from: "1.3.1"` |
---
### Release Notes
<details>
<summary>Lakr233/SpringInterpolation (Lakr233/SpringInterpolation)</summary>
### [`v1.3.1`](https://redirect.github.com/Lakr233/SpringInterpolation/releases/tag/1.3.1): another place to let their hearts collide
[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.3.0...1.3.1)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update 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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuMTYuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [Lakr233/ChidoriMenu](https://redirect.github.com/Lakr233/ChidoriMenu) | major | `from: "2.4.3"` -> `from: "3.0.0"` |
---
### Release Notes
<details>
<summary>Lakr233/ChidoriMenu (Lakr233/ChidoriMenu)</summary>
### [`v3.0.0`](https://redirect.github.com/Lakr233/ChidoriMenu/compare/2.4.3...3.0.0)
[Compare Source](https://redirect.github.com/Lakr233/ChidoriMenu/compare/2.4.3...3.0.0)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update 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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuMTYuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Added Windows support to the desktop bundle check in CI workflows, ensuring Windows builds are tested and packaged alongside existing platforms.
- Refined the cleanup process during Windows packaging to more precisely remove specific nested dependencies, improving build reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved user management table with dynamic row count updates and enhanced synchronization of memoized user lists.
- **Bug Fixes**
- User count and displayed data now update immediately after user creation, deletion, or import, ensuring accurate and consistent information.
- **Chores**
- Enhanced internal state management for better responsiveness and reliability in the accounts section.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2619 AF-2618
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated various components to use dynamic theme-based colors and consistent border radius for a more unified look and feel.
- Adjusted icon size and text styling in the file upload area for improved visual clarity.
- Applied consistent secondary text color to informational paragraphs.
- **User Interface**
- Changed the table header label from "Username" to "Name" and removed uppercase styling from all table headers.
- Updated file upload instructions for clearer guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AI-4
fix AI-18
better provider/model choose to allow fallback to similar models (e.g., self-hosted) when the provider is not fully configured
split functions of different output types
Closes: [BS-2852](https://linear.app/affine-design/issue/BS-2852/ui-bug:-toggle-的组件样式不一样了)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated toggle switch appearance with refined colors and spacing for a more polished look.
- **Bug Fixes**
- Improved toggle switch functionality in settings menus to ensure correct state display and interaction.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Refactored test setup for the database-backed document reader to improve modularity and clarity.
- Simplified database initialization and cleanup in tests.
- Updated mocks and assertions to align with the new test structure.
- Maintained existing test coverage and logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3507](https://linear.app/affine-design/issue/BS-3507/edgeless-text-颜色无法-undoredo)
Close [BS-3426](https://linear.app/affine-design/issue/BS-3426/frame-修改背景色后不能撤销)
This PR fixes the issue where the color change of edgeless blocks could not be undone/redone, including notes, edgeless-text, and frames. It also addresses the problem of a tiny shape being unexpectedly retained on the canvas. The key changes are:
- Removal of `transact` from the `pop` method of edgeless elements.
- Refactoring of `onPickColor` for all edgeless elements and blocks to better control the lifecycle of custom color property changes.
- Addition of the missing custom background color feature for notes.
- Addition of undo/redo color tests for notes, frames, and edgeless-text.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added undo and redo support for color changes in frames, notes, and text blocks, allowing users to revert or reapply background and text color modifications.
- **Bug Fixes**
- Improved reliability of color picker interactions, ensuring consistent state management and transactional updates during color changes.
- **Tests**
- Introduced new end-to-end tests to verify undo/redo functionality for color changes in frames, notes, and text blocks.
- **Refactor**
- Streamlined color picker event handling for better maintainability and consistency across toolbars and style panels.
- Updated style panel structure and event handling for improved interaction and state management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3355](https://linear.app/affine-design/issue/BS-3355/白板快捷键c没有记住上次用的connector形状)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to cycle through connector modes (Curve, Orthogonal, Straight) using the 'c' keyboard shortcut when the connector tool is active.
- **Bug Fixes**
- Improved the logic for remembering and restoring the last used connector mode when switching between tools.
- **Tests**
- Introduced a new end-to-end test to verify correct cycling and restoration of connector modes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
feat: optimize workspace attachment uploading & error display

### What Changes
####
Support for Workspace Attachment Uploading & Error Handling
* Added support for three attachment states: uploading (local), upload failed (local error), and uploaded (persisted). The frontend UI now displays real-time upload progress and error messages.
* Attachments that fail to upload can be deleted directly without confirmation.
* Merged display of uploading and uploaded attachments for a smoother user experience.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Attachments now show real-time upload status including uploading, error, and uploaded states.
- Users can remove failed (error) attachments instantly without confirmation.
- Attachment list merges uploading and uploaded files, displaying up to 10 items.
- **Bug Fixes**
- Improved error handling and messaging for failed attachment uploads.
- **Style**
- Enhanced visual styling for error attachments with distinct colors and backgrounds.
- **Tests**
- Added tests simulating slow network uploads, upload failures, and direct removal of error attachments.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3439](https://linear.app/affine-design/issue/BS-3439/pdf-独立页面split-view-中的-status-组件)
Related to: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-loading-和错误样式)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a dedicated error handling and reload interface for PDF attachments, allowing users to retry loading PDFs when errors occur.
- **Refactor**
- Improved PDF viewer interface with clearer loading and error states.
- Enhanced attachment type detection for better performance and maintainability.
- Streamlined attachment preview logic for more direct and efficient model retrieval.
- Simplified internal PDF metadata handling and control flow for improved clarity.
- Clarified conditional rendering logic in attachment viewer components.
- Introduced explicit loading state management and refined rendering logic in attachment pages.
- **Style**
- Updated and added styles for PDF viewer controls and error status display.
- **Tests**
- Added end-to-end tests validating PDF preview error handling and attachment not-found scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close CLOUD-220
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new service to handle indexing-related events and scheduled tasks, improving the management of document and workspace indexing.
- Added support for configuring the indexer feature via the AFFINE_INDEXER_ENABLED environment variable.
- **Bug Fixes**
- Ensured that indexing and deletion jobs are only enqueued when the indexer feature is enabled.
- **Tests**
- Added comprehensive tests for the new indexing event service, covering various configuration scenarios.
- Removed obsolete test related to auto-indexing scheduling.
- **Chores**
- Updated configuration descriptions and mappings to improve clarity and environment variable support.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- HTML code previews are now displayed as code blocks within notes when supported, offering improved readability and interaction.
- **Improvements**
- Enhanced feature detection ensures HTML code block previews are only enabled in secure, compatible environments.
- If the preview feature is unavailable, HTML content will continue to be embedded as before.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AI-131
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Updated database schema to consolidate unique constraints into composite primary keys for embedding-related data, improving consistency.
- Changed the relation in the Snapshot model to allow multiple embeddings.
- Improved filtering logic for documents and snapshots based on embedding existence.
- Reformatted SQL queries and schema attributes for improved readability; no changes to functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix CLOUD-219
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Ensured that documents without content now receive a placeholder embedding, improving consistency in document processing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a configurable batch size setting for automatic workspace indexing. Users can now adjust how many workspaces are indexed per batch, with a default value of 10 and support for values between 1 and 1000.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved filter behavior by resetting filter state when editing or switching collections, ensuring filters are cleared appropriately.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced an experimental "Code block HTML preview" feature, allowing users to preview HTML within code blocks when enabled.
- **Settings**
- Added a toggle in experimental features to enable or disable the code block HTML preview.
- **Localization**
- Added English translations for the new code block HTML preview feature and its description in workspace settings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3520](https://linear.app/affine-design/issue/BS-3520/chat-panel-doc-citation-点击没有响应)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced citation cards to support double-click actions for improved interaction.
- Added the ability to open a preview view when clicking document links within rendered text content.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
* refactor: use horizontal scrolling to display images
* refactor: change max images to 9
* test: add test cases for validating the maximum number of uploadable images
> CLOSE AI-6

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a notification to inform users when attempting to upload more images than allowed in the AI chat input.
- **Bug Fixes**
- Prevented uploading more than 9 images at once in the AI chat input.
- **Style**
- Improved image preview grid layout to display images in a single horizontally scrollable row.
- **Tests**
- Added an end-to-end test to verify that an error message appears when too many images are uploaded.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved stability of the AI chat input to prevent errors when certain configuration options are missing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added event tracking for workspace embedding settings, including toggling embedding, uploading attachments, and selecting ignored documents. This enhances visibility into user interactions within the embedding settings panel.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3504](https://linear.app/affine-design/issue/BS-3504/linked-card-ui调整)
Close [BS-3377](https://linear.app/affine-design/issue/BS-3377/surface-ref在page-mode下的dark颜色不对,垃圾桶也不对)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- The "not found" placeholder now adapts its appearance to match light or dark themes for a more cohesive visual experience.
- **Style**
- Updated placeholder icons to use distinct designs for light and dark themes, providing improved clarity and consistency.
- **Chores**
- Theme information is now more accurately passed to placeholder components for proper rendering.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
feat: show embedding progress in settings panel

### What changed
* show embedding progress in settings panel
* polling embedding status based on RxJS
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added real-time embedding progress tracking and display in embedding settings, including a visual progress bar and status messages.
- Introduced localized text for embedding progress statuses.
- Added an optional test ID attribute to the progress bar component for improved testing.
- **Style**
- Added new styles for embedding progress UI elements.
- **Tests**
- Added an end-to-end test to verify embedding progress is displayed correctly in the settings UI.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for draft mode and completion callbacks across filter components, enabling stepwise filter creation and editing.
- Enhanced filter menus and editors with external control via refs and new callback props for open/close state management.
- Introduced new filter option group component for multi-step filter interactions.
- Expanded tag filter methods for more granular filtering options.
- Enabled controlled open state and close event handling for desktop and mobile menus.
- Added programmatic control and completion callbacks to member selector and tags inline editors.
- **Improvements**
- Updated filter and tag editors with improved UI layouts and added "Done" buttons for easier completion.
- Improved menu and editor accessibility by allowing programmatic open/close and completion event handling.
- Refactored date filter components for modularity and consistent draft handling.
- Separated draft filter state management in filter UI for clearer user interactions.
- **Bug Fixes**
- Refined date filter logic for more accurate "after" and "before" comparisons.
- **Style**
- Adjusted styles for draft filters and editor layouts to enhance visual clarity and user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated the HTML preview to remove the border around the preview iframe for a cleaner appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Updated Playwright test configurations to use full URL strings instead of port numbers for web server identification.
- Unified server startup approach in test environments by integrating web server configuration directly into Playwright, replacing custom setup scripts.
- Removed obsolete development server setup files to streamline test initialization.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3508](https://linear.app/affine-design/issue/BS-3508/google-docs复制内容到affine时自动加粗问题)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved detection of bold, italic, underline, and strike-through formatting in imported HTML, supporting both tags and inline CSS styles.
- Enhanced handling of inline elements containing block-level children to ensure correct formatting and structure during HTML import.
- Introduced a plugin that converts inline elements with block-level children into block elements, preserving original tag information.
- **Bug Fixes**
- Resolved issues where block-level elements nested inside inline tags could cause incorrect formatting or structure.
- **Tests**
- Added comprehensive test coverage for HTML formatting conversions and plugin behavior to ensure accuracy and reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
refactor: rename settings, indexer embedding -> embedding
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Unified naming in workspace settings from "Indexer & Embedding" to "Embedding" for improved clarity.
- Updated sidebar labels, tab keys, and test IDs to reflect the new naming convention.
- Streamlined the layout and organization of the embedding settings interface for a more consistent user experience.
- Simplified the export and component structure for embedding settings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Updated Apollo iOS dependency to version 1.21.0 and removed the SQLite.swift dependency in the iOS app workspace.
- **New Features**
- The "Enable Mobile AI Button" feature flag is now configurable only for mobile canary builds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved the layout of property display in the card view by consolidating all properties into a single container and streamlining the rendering structure.
- Updated filtering to exclude properties of type "tags" from stack properties.
- **Style**
- Simplified the visual structure for properties, removing unnecessary nested containers for a cleaner appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
feat: display embedding tip for ai chat

> CLOSE BS-3051
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced an embedding status tooltip in the AI chat interface, providing real-time feedback on embedding progress for your workspace.
- Added support for embedding status tracking within the AI provider and client services.
- **Style**
- Updated the AI chat footer layout for improved clarity and usability.
- **Tests**
- Added an end-to-end test to ensure the embedding status tooltip displays correctly.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Move the `waitForSynced` method from `frontend` to `nbstore worker` to make the wait more reliable
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added explicit tracking of document updating state to indicate when data is being applied or saved.
- Introduced new methods to wait for update and synchronization completion with abort support.
- **Improvements**
- Applied throttling with leading and trailing emissions to state observables for smoother UI updates.
- Refined synchronization waiting logic for clearer separation between update completion and sync completion.
- Removed throttling in workspace selector component for more immediate state feedback.
- Updated import and clipper services to use the new synchronization waiting methods.
- Simplified asynchronous waiting logic in indexer synchronization methods.
- **Bug Fixes**
- Enhanced accuracy and reliability of document update and sync status indicators.
- **Tests**
- Increased wait timeout in avatar selection test to improve stability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved document grouping logic in the explorer view, allowing for more dynamic and responsive updates when changing grouping criteria.
- **Bug Fixes**
- Prevented unnecessary synchronization operations in local workspace environments, ensuring sync only occurs for applicable workspace types.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AI-127
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added automated event handling for workspace updates and document embedding, streamlining document embedding workflows.
- Introduced detection and queuing of documents needing embedding, excluding ignored documents.
- **Improvements**
- Enhanced performance of embedding-related searches by filtering results at the database level.
- Increased concurrency for embedding job processing to improve throughput.
- **Bug Fixes**
- Improved error handling and fallback for missing document titles during embedding.
- Added safeguards to skip invalid embedding jobs based on document identifiers.
- **Tests**
- Expanded test coverage for document embedding and ignored document filtering.
- Updated end-to-end tests to use dynamic content for improved reliability.
- Added synchronization waits in document creation utilities to improve test stability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added clear indication and handling of read-only mode for the indexer, including updated status reporting when the indexer is read-only.
- **Bug Fixes**
- Improved state updates to accurately reflect zero activity and completion when in read-only mode.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
CLOUD-214
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved search functionality to support stemming, allowing searches for variations of words (e.g., "window", "windows", "design") to return relevant results.
- **Tests**
- Added new tests to verify that search results correctly highlight and match stemmed word variations in document titles.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved email notification handling to prevent errors from interrupting other processes when sending emails is not possible.
- **Refactor**
- Updated internal email sending logic across notifications and workspace features for more robust operation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2569
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to edit calendar subscription names directly within the interface using an inline editor.
- **Style**
- Improved the appearance of calendar subscription names by updating layout and alignment for better readability.
- **Bug Fixes**
- Ensured that custom calendar subscription names are displayed and updated correctly.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3291](https://linear.app/affine-design/issue/BS-3291/工具栏展开时报错,链接无法点击打开)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- URLs entered without a protocol (e.g., "github.com/...") are now automatically normalized to use "https://", ensuring links are secure and consistently formatted.
- **Bug Fixes**
- Improved handling and validation of links to prevent issues with missing or invalid protocols in bookmarks and inline links.
- Simplified URL validation logic by leveraging native URL parsing, removing complex regex and email-specific checks.
- Streamlined toolbar link actions to operate only on valid normalized URLs.
- Refined URL detection in markdown preprocessing to exclude lines containing spaces from being treated as URLs.
- **Tests**
- Added tests to verify that links without a protocol are correctly normalized and displayed across different views.
- Updated URL validation tests to better reflect valid and invalid URL formats, including IP addresses and domain variants.
- **Style**
- Updated snapshots to reflect the use of "https://" in links.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3506](https://linear.app/affine-design/issue/BS-3506/edgeless-text-默认改为黑色)
### Dark
<img width="691" alt="Screenshot 2025-05-19 at 19 32 52" src="https://github.com/user-attachments/assets/2927d13b-0300-4293-8f8f-7891fd87a680" />
### Light
<img width="639" alt="Screenshot 2025-05-19 at 19 33 05" src="https://github.com/user-attachments/assets/4429f6f9-b374-4b17-87f4-ae09204f1538" />
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved edgeless text block styling to support theme-based color, font, and alignment settings.
- **Style**
- Updated the default text color in edgeless text blocks to black, with support for separate dark and light mode colors.
- **Bug Fixes**
- Ensured the color picker and block rendering reflect the updated default color.
- **Tests**
- Adjusted tests and snapshots to expect the new default color and theme-based color structure.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3511](https://linear.app/affine-design/issue/BS-3511/当选中-connector-时,toolbar-上文字颜色选项颜色显示不正确)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Added end-to-end tests for the edgeless connector feature, verifying toolbar text color functionality and theme-based color changes.
- **Refactor**
- Improved performance of text toolbar actions by optimizing internal data handling for font and color selection. No changes to visible behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fix [BS-3418](https://linear.app/affine-design/issue/BS-3418/折叠的embed-doc调整宽度时,会出现一个最小高度,不需要这个)
This PR keeps the content of embed-synced-doc rendered (but clipped) when it is collapsed, to ensure accuracy in height calculation of content.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved the display logic for embedded synced document editors, ensuring the editor and overlay are always rendered regardless of the folded state.
- **Tests**
- Updated test assertions to more accurately check whether embedded editor content is within the viewport, enhancing reliability of visibility checks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixes [BS-3349](https://linear.app/affine-design/issue/BS-3349/)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved edge scrolling during selection dragging for smoother and more responsive viewport navigation.
- Dragging area and mouse position tracking now update reactively with viewport changes, ensuring more accurate selection and movement.
- **Refactor**
- Unified and clarified coordinate handling for dragging and mouse position, with clearer naming and separation between model and browser coordinates.
- Simplified selection logic and removed unnecessary accumulated state for cleaner and more maintainable behavior.
- Enhanced flexibility in coordinate conversion by allowing viewport transformations relative to arbitrary zoom and center.
- Streamlined clipboard paste handling by simplifying mouse position extraction and adjusting attachment options.
- **Bug Fixes**
- Enhanced overlay and dragging area accuracy by updating position calculations and coordinate transformations.
- Fixed paste operations to correctly handle mouse position without unnecessary coordinate conversions.
- Corrected drag initiation positions in toolbar and shape dragging to align with viewport-relative coordinates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3512](https://linear.app/affine-design/issue/BS-3512/bug-note-选中状态会穿透-toolbar)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Added a new end-to-end test to verify that selection handles are visually and interactively layered beneath the edgeless element toolbar in the editor.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2545
fix(core): go to workspace command does not work using CMDK
feat(core): add team badge to user info

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a redesigned user info section in the sidebar, including enhanced account details, cloud and AI usage indicators, and team workspace listing with improved navigation.
- Workspace selector now supports controlled open/close state for smoother sidebar integration.
- Team workspaces are grouped and displayed with role-based badges and tooltips.
- Added new localization for team roles and workspace tooltips.
- **Improvements**
- Updated theming and styling for user plan buttons and usage indicators for a more consistent look.
- Sidebar user info UI is now more modular and responsive.
- **Bug Fixes**
- Improved error handling and loading states for quota and usage displays.
- **Chores**
- Refactored internal state management and code structure for better maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2607

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Removed Telegram icon and link from the footer and About settings sections.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2551
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated the sidebar layout by reordering the Collections and Tags panels for improved navigation experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved the accuracy of workspace member overcapacity calculation.
- Corrected seat allocation handling for one-time license variants, ensuring proper event emission and bypassing unnecessary updates.
- **Refactor**
- Streamlined internal logic by removing an obsolete method related to seat count checks.
- **Tests**
- Removed a workspace member list pagination test to streamline end-to-end testing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Display preferences and selected collections are now saved and restored across sessions, providing a persistent and personalized experience in the All Documents page.
- **Refactor**
- Display settings menus and related components have been updated to use a controlled component pattern, allowing preferences to be managed externally for improved consistency and flexibility.
- Preference state management has been consolidated, simplifying how display options are handled throughout the interface.
- Various headers and detail views now accept display preferences and update callbacks as props, enabling external control of display settings.
- Components previously relying on internal context and reactive streams were refactored to receive explicit props and callbacks for state management.
- **Bug Fixes**
- Improved collection activation logic to prevent unnecessary updates when the selected collection is already active.
- Added fallback default view to ensure consistent display in document list items.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3500](https://linear.app/affine-design/issue/BS-3500/剪刀没问题了,通过拖动形成的段落能不能也有同样的表现?)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved the behavior when dragging blocks between notes, ensuring that new note blocks are inserted as siblings when appropriate, instead of always creating them at the root level.
- **Tests**
- Enhanced and enabled tests to verify correct drag-and-drop behavior across multiple notes and to ensure the relative order of note content is preserved during drag operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added platform-specific monitoring integration for Google Cloud Platform (GCP) in multiple services, enabling automated pod monitoring for deployments on GCP.
- **Chores**
- Removed an unused dependency related to Google Cloud monitoring from the backend server package.
- **Refactor**
- Updated internal monitoring implementation by removing a previously used metric reader method for GCP integration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Added a new development dependency to improve testing capabilities.
- **Tests**
- Refactored image handling tests to use enhanced HTTP request mocking, improving test reliability and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close CLOUD-207
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced automated periodic indexing of workspaces with a new job type and a scheduled cron job running every 30 seconds.
- Added a unique sequential identifier (`sid`) and an "indexed" flag to workspaces to track indexing status.
- **Improvements**
- Enhanced workspace indexing to handle missing workspaces and snapshots distinctly and selectively index documents.
- Added ability to query workspaces after a given identifier with result limits.
- **Bug Fixes**
- Improved error handling and logging during workspace indexing operations.
- **Tests**
- Expanded test coverage for workspace indexing and auto-indexing, including scheduling and edge cases.
- **Chores**
- Updated data models and schema to support new workspace fields and indexing features.
- Enhanced mock data utilities to allow custom timestamps.
- Improved type safety and flexibility in document snapshot retrieval.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to edit and remove pinned collections directly from the workspace UI.
- Improved filter management with clearer handling of temporary filters and editing workflows.
- Enhanced synchronization and readiness tracking for collections and pinned collections, resulting in more responsive and reliable updates.
- **Style**
- Updated pinned collection item styles for better interaction feedback, including new edit and remove button visuals.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close CLOUD-208
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced document access control with batch permission checks, enabling efficient filtering of documents based on user roles and permissions.
- Added detailed document-level role and permission management for workspace users.
- **Bug Fixes**
- Improved accuracy in filtering search results to only display documents users have permission to read.
- **Tests**
- Added comprehensive tests for document-level permission filtering and search result accuracy.
- Introduced new mock utilities to support permission-related test scenarios.
- **Refactor**
- Simplified and optimized permission logic for determining user roles and document access.
- **Documentation**
- Updated type definitions for improved clarity in permission handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2583
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new tag list header with breadcrumb navigation and a tag selector dropdown for improved navigation and tag management.
- Added a searchable dropdown menu for selecting and switching between tags.
- **Improvements**
- Updated the tag detail page to use a more dynamic, subscription-based document explorer for displaying tagged content.
- Enhanced header controls with an updated display menu button.
- **Style**
- Added comprehensive new styles for the tag list header and tag selector components.
- Introduced a new scroll area style for flexible layout.
- **Documentation**
- Marked an older page list header component as deprecated.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new document list view with support for different layouts (list, grid, masonry) and improved multi-selection and batch deletion capabilities.
- Added a view toggle control for switching between document list layouts across relevant pages.
- Implemented a new collection list header with breadcrumb navigation and streamlined actions for editing collections and creating new pages.
- **Improvements**
- Simplified and unified document list rendering by delegating logic to a shared component.
- Enhanced document selection behavior, allowing toggling of individual items in select mode.
- Updated styles for document lists, group headers, and collection pages for a more consistent appearance.
- Refined wrapper component styling to prevent unintended HTML attribute forwarding.
- **Refactor**
- Replaced local implementations of view toggles and document grouping with shared components for easier maintenance.
- Removed deprecated and unused styles and props to streamline components and improve code clarity.
- Refactored collection detail and header components to adopt new context-driven document explorer architecture.
- **Documentation**
- Added deprecation notice to an outdated collection page list header component.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [AF-2564](https://linear.app/affine-design/issue/AF-2564/pdf-split-view-多了-header)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved code clarity and maintainability with clearer comments and streamlined property usage.
- Updated the workspace attachment page to use a more context-appropriate attachment viewer component.
- **Style**
- Minor formatting improvements for better code readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Removed multiple internal export entries related to effects modules across various packages.
- Updated dependencies and configuration references to improve internal consistency. No visible changes for end-users.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Image content now includes file size information in its metadata.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Added a `.gitignore` file to prevent the `.env` file in the self-hosted Docker directory from being tracked by Git.
- **New Features**
- Introduced a new environment variable for the search endpoint in the Docker Compose configuration for improved service connectivity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixes [BS-3161](https://linear.app/affine-design/issue/BS-3161/发现已连接的connector会响应对齐线)
Fixes [BS-3337](https://linear.app/affine-design/issue/BS-3337/connector你肿么了)
Fixes [BS-3334](https://linear.app/affine-design/issue/BS-3334/connector-不应该能够被拖拽)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Corrected typos related to label editing state, ensuring more reliable label editing and display for connectors.
- Fixed logic in the auto-complete overlay, improving when overlays appear during hover actions.
- **New Features**
- Improved connector label handling by ensuring label state is preserved and restored during editing.
- Enhanced connector movement behavior, allowing connectors to be moved only when appropriate elements are selected.
- **Tests**
- Added end-to-end tests to verify connector movement and selection behaviors for improved reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Comparison:

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Border radius and border thickness of shapes now scale dynamically with zoom level for improved visual consistency.
- **Tests**
- Added a test to ensure percentage-based border radius values are correctly rendered in the DOM.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixes https://linear.app/affine-design/issue/BS-3448
Before this PR, presentation mode would force quit if user either:
1. Press space
2. Drag with mouse middle button
Unfixed behavior:
https://github.com/user-attachments/assets/8ff4e13a-69a8-4de6-8994-bf36e6e3eb49
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved presentation mode to preserve your current panned view when exiting pan mode or toggling fullscreen, preventing unwanted viewport resets.
- Spacebar actions are now correctly disabled when using the frame navigator tool, avoiding accidental tool switches.
- **New Features**
- Enhanced presentation controls for smoother transitions and better handling of user navigation states.
- Added a one-time toast notification for presentations without frames, shown only once per session for better user guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a toggle in the code block toolbar to show or hide line numbers for individual code blocks.
- The display of line numbers now respects both global and per-block settings, allowing more flexible control.
- **Style**
- Updated styles to hide line numbers when disabled via the new toggle option.
- **Tests**
- Added end-to-end tests to verify toggling line numbers visibility and undo/redo behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced two new widgets: Edgeless Dragging Area and Note Slicer, now available for use.
- Added extension support for these widgets, enabling enhanced interaction and integration within the application.
- **Chores**
- Updated package configurations and workspace settings to include the new widgets and their dependencies.
- Added project references and configuration files to support modular development and build processes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixes [BS-3373](https://linear.app/affine-design/issue/BS-3373/connector%E7%9A%84%E5%8F%8C%E5%87%BB%E6%B7%BB%E5%8A%A0note%E8%A1%8C%E4%B8%BA%E5%8F%97%E5%88%B0%E4%BA%86%E8%A6%86%E7%9B%96%E8%8C%83%E5%9B%B4%E7%9A%84%E5%BD%B1%E5%93%8D)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Connector label elements now include identity and creator metadata.
- **Bug Fixes**
- Improved hit-testing for pointer interactions, resulting in more accurate detection of hovered elements.
- **Refactor**
- Enhanced internal comparison logic for elements, improving sorting and ordering consistency.
- Strengthened type definitions for search filters, improving result accuracy and clarity.
- **Tests**
- Added end-to-end tests to verify correct label entry and retrieval for multiple connectors.
- Introduced utility functions to fetch connector labels and improved connector creation in test actions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced "Indexer & Embedding" workspace settings to manage AI embedding for local content, including document ignoring and attachment uploads.
- Added UI components for embedding settings, attachments, and ignored documents with pagination and deletion capabilities.
- Provided comprehensive file-type icons for attachments.
- **Improvements**
- Added a new tab for indexing and embedding in workspace settings navigation.
- Included test identifiers on key UI elements to enhance automated testing.
- **Localization**
- Added English localization strings covering all embedding-related UI text and actions.
- **Bug Fixes**
- Enabled previously skipped end-to-end tests for embedding settings to improve reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved the accuracy of document matching by excluding ignored documents from search results.
- **Chores**
- Updated internal handling of ignored document lists for better consistency and reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Updated the Docker Compose configuration to use a different image for the Postgres service.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
tests: workspace embedding e2e
> CLOSE BS-3052
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced comprehensive end-to-end tests for workspace embedding settings, including toggling embedding, uploading and managing attachments, pagination, and ignoring documents.
- Added utilities for automated interaction with the settings panel and document creation in tests.
- **Tests**
- Implemented detailed scenarios to verify workspace embedding functionality and user interactions within the settings panel.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-86](https://linear.app/affine-design/issue/AI-86)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced AI model switching in chat, allowing users to select from multiple AI models during conversations.
- Added a floating menu for easy AI model selection within the chat interface.
- Enabled visibility of the AI model switcher through a new experimental feature flag, configurable in workspace settings (canary builds only).
- **Enhancements**
- Improved session management in the chat panel for smoother model switching and state handling.
- Updated localization to support the new AI model switch feature in settings.
- **Bug Fixes**
- None.
- **Chores**
- Registered new components and services to support AI model switching functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close CLOUD-217
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a dedicated test job for Elasticsearch, running only Elasticsearch-specific tests during CI.
- **Chores**
- Enhanced server test workflows with explicit setup steps and automated coverage uploads.
- Improved test suite structure for Elasticsearch provider to enable conditional and asynchronous test execution based on environment variables.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-126](https://linear.app/affine-design/issue/AI-126)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new web crawling tool, allowing users to extract live content from specific web pages in addition to traditional web search.
- **Improvements**
- Enhanced error handling for web search and web crawl operations, providing clearer failure messages.
- Updated terminology in AI prompts and user-facing messages to reflect the new web search/crawl capabilities.
- Improved formatting of web search and crawl results for better readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-116](https://linear.app/affine-design/issue/AI-116)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to retrieve detailed information for a specific Copilot session by its ID, including model metadata and optional models, via the user interface and API.
- Session data now includes additional fields such as the model used and a list of optional models.
- Enhanced GraphQL queries and UI components to support fetching and displaying these new session details.
- **Improvements**
- Session lists now provide richer information, including model details, for each session.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced the Edgeless Selected Rectangle widget, providing enhanced selection and interaction capabilities in edgeless mode.
- Added rotation-aware resize cursors for improved usability when resizing selections.
- Integrated new autocomplete panels and selection components for a smoother user experience.
- **Refactor**
- Modularized the Edgeless Selected Rectangle widget as a standalone package for better maintainability and integration.
- Updated internal references and imports to utilize the new widget package.
- **Chores**
- Updated project and package configurations to include the new widget and ensure proper build and type-checking across the workspace.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | patch | `22.15.0` -> `22.15.1` |
---
### Release Notes
<details>
<summary>nodejs/node (node)</summary>
### [`v22.15.1`](https://redirect.github.com/nodejs/node/compare/v22.15.0...v22.15.1)
[Compare Source](https://redirect.github.com/nodejs/node/compare/v22.15.0...v22.15.1)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update 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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS45IiwidXBkYXRlZEluVmVyIjoiNDAuMTEuOSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Close [BS-3418](https://linear.app/affine-design/issue/BS-3418/折叠的embed-doc调整宽度时,会出现一个最小高度,不需要这个)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for dynamically scaling the height of embedded synced document blocks, including proper handling when folding and unfolding.
- Introduced a new property to track the scaled height of folded synced document blocks.
- **Bug Fixes**
- Improved accuracy of height calculations for synced document blocks by accounting for both viewport zoom and block scale.
- **Tests**
- Enhanced end-to-end tests to consistently apply scaling before running size adjustment checks.
- Added a utility function to simulate scaling elements with keyboard shortcuts during test execution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixed this issue (black background is on but the toggle state is not synced):

Issue source: https://linear.app/affine-design/issue/BS-3448
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- The background color now defaults to non-black for new users or when no previous setting exists.
- Improved reliability when restoring user settings.
- **New Features**
- Changes to the background color setting are now saved and persist between sessions.
- **Style**
- Enhanced toggle switch responsiveness for background and toolbar settings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Standardized the naming of the search service to "indexer" in automated test workflows.
- Ensured the "indexer" service is available in additional test jobs for improved consistency across workflows.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix: BS-3445, BS-3470, BS-3472, BS-3473
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated the alignment of the created time cell for improved layout consistency.
- Limited the maximum width of the group view settings panel for better layout control.
- Changed the icon for the "created by" property to enhance visual representation.
- Updated the background color of file popover content for improved appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3491](https://linear.app/affine-design/issue/BS-3491/支持-callout-导出成-vitepress-文档站支持的-markdown-格式)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for exporting callout blocks in both GFM and Admonition markdown styles, including configurable admonition types and custom titles.
- Introduced middleware to customize callout export options for markdown serialization.
- **Tests**
- Enhanced test coverage for callout markdown export, including scenarios with and without export middleware for different styles and content structures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3485](https://linear.app/affine-design/issue/BS-3485/粘贴-html-格式的内容时,紧邻着-bold-text-的普通文本会丢失空格)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of spaces and whitespace in paragraphs when converting HTML with inline formatting, ensuring spaces are preserved as in the original content.
- **Tests**
- Added a new test to verify that spaces are correctly preserved in paragraphs containing bold and italic formatting during HTML conversion.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close: BS-3474, BS-3153
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced property addition to support specifying both type and name for new properties across databases and views.
- Added context menu for selecting property type when adding new columns in table headers.
- Introduced `addToGroup` functions to various group-by configurations for consistent grouping behavior.
- **Bug Fixes**
- Improved grouping logic to treat empty arrays as ungrouped in multi-member group configurations.
- Refined grouping behavior to respect explicit group addition settings.
- Ensured grouping operations only occur when both group key and row ID are present.
- **Tests**
- Updated test expectations to align with revised default column naming conventions.
- Adjusted test utilities to accommodate the updated property addition method.
- Improved typing simulation in column type selection for more reliable test execution.
- **Improvements**
- Introduced a new root component rendering on the share page to enhance UI integration.
- Refined default property naming logic for clearer and more consistent column titles.
- Simplified created-time and created-by property configurations for better maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close CLOUD-137
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced advanced workspace-scoped search and aggregation capabilities with support for complex queries, highlights, and pagination.
- Added pluggable search providers: Elasticsearch and Manticoresearch.
- New GraphQL queries, schema types, and resolver support for search and aggregation.
- Enhanced configuration options for search providers in self-hosted and cloud deployments.
- Added Docker Compose services and environment variables for Elasticsearch and Manticoresearch.
- Integrated indexer service into deployment and CI workflows.
- **Bug Fixes**
- Improved error handling with new user-friendly error messages for search provider and indexer issues.
- **Documentation**
- Updated configuration examples and environment variable references for indexer and search providers.
- **Tests**
- Added extensive end-to-end and provider-specific tests covering indexing, searching, aggregation, deletion, and error cases.
- Included snapshot tests and test fixtures for search providers.
- **Chores**
- Updated deployment scripts, Helm charts, and Kubernetes manifests to include indexer-related environment variables and secrets.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Streamlined and consolidated block and inline extension exports by removing multiple block-spec and inline extension arrays from public APIs.
- Reduced exported constants, types, and utility functions related to various block and embed features.
- Simplified the codebase by removing deprecated type guards, adapter extensions, and redundant extension groupings.
- **Chores**
- Cleaned up internal APIs by deleting unused exports, imports, and outdated code, enhancing maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixes [BS-3374](https://linear.app/affine-design/issue/BS-3374/)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved control over when the peek view is shown in "edgeless" editor mode, ensuring it only activates when interacting directly with the relevant component.
- **Bug Fixes**
- Prevented unintended peek view activation in "edgeless" mode when clicking outside the associated component.
- **Tests**
- Added end-to-end test verifying the peek view does not open when content is covered by a canvas element.
- **Chores**
- Added utility function to streamline creating synced pages in edgeless mode during tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixes [BS-3261](https://linear.app/affine-design/issue/BS-3261/部分情况下-edgeless-dnd-响应区域有问题)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Documentation**
- Improved documentation for the drag handle by adding a description for the `force` parameter in the hide method.
- **Style**
- Minor code formatting adjustments with no impact on functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced AI-powered summary, translation, writing improvement, and spelling correction actions with more detailed and tailored instructions for improved output quality and user experience.
- **Improvements**
- Refined language detection, output formatting, and context-sensitive handling across AI actions for more accurate and relevant results.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3149
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved internal handling of surface components across various tools, resulting in safer and more consistent access patterns.
- Enhanced code maintainability and reliability without altering any visible features or user workflows.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Updated the code block toolbar to use a toggle switch for the "wrap" option, providing a more interactive user experience.
- **Style**
- Adjusted the height of the language selection button for consistent appearance.
- Refined code block container padding and increased spacing for line numbers to improve readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Trashed page titles are now visually indicated with a strikethrough style in collection editor dialogs.
- **Bug Fixes**
- Trashed pages are now properly excluded from allowed lists and filtered views.
- **Refactor**
- Improved filtering logic for collections and page lists, separating user filters from system filters for more consistent results.
- Enhanced filter configuration options for more flexible and maintainable filtering behavior.
- **Style**
- Added a new style for displaying trashed items with a strikethrough effect.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AI-20
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced file metadata with MIME type, blob ID, and file name across context and workspace, now visible in UI and API.
- Added workspace-level matching for files and documents with configurable thresholds and workspace scoping in search queries.
- Introduced a new error type and user-friendly messaging for global workspace context matching failures.
- **Bug Fixes**
- Improved consistent handling of file MIME types and nullable context IDs for accurate metadata.
- **Documentation**
- Updated GraphQL schema, queries, and mutations to include new metadata fields, optional parameters, and error types.
- **Style**
- Added new localization strings for global context matching error messages.
- **Tests**
- Extended test coverage with new and updated snapshot tests for metadata and matching logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Updated the user message in the brainstorming workflow to clarify that provided data should be treated as raw input, not as a command.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3418](https://linear.app/affine-design/issue/BS-3418/折叠的embed-doc调整宽度时,会出现一个最小高度,不需要这个)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved resizing and folding interactions for embedded synced documents in edgeless mode, including dynamic height calculation and enhanced drag-handle styling.
- **Bug Fixes**
- Adjusted minimum height for synced document embeds to allow more compact display.
- Ensured consistent width settings across embed cards.
- **Tests**
- Added end-to-end tests covering folding, unfolding, and resizing behaviors for edgeless synced document embeds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
feat: show stop model if click-outside during ai generating
>CLOSE AI-89
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a confirmation dialog when attempting to stop AI content generation by clicking outside the panel, ensuring users can confirm or cancel the stop action.
- **Tests**
- Introduced an end-to-end test to verify the confirmation dialog appears and AI generation stops as expected when clicking outside during generation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of filter arguments to exclude invalid or empty values, reducing potential errors during filtering operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3385](https://linear.app/affine-design/issue/BS-3385/markdown类型的导入,支持media文件和md文件不在同目录的情况)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added utility functions to resolve and normalize image file paths in markdown and HTML imports.
- Introduced middleware to provide full file path context during file import and transformation.
- Added new types for improved asset and file management in zip imports.
- **Refactor**
- Centralized and simplified image processing logic across HTML, Markdown, and Notion HTML adapters for improved maintainability.
- Enhanced type safety and clarity in file and asset handling during zip imports.
- **Tests**
- Added comprehensive tests for image file path resolution utility.
- **Documentation**
- Improved inline code comments explaining file path resolution logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added AI-powered store extension to support chat and transcription block schemas.
- Introduced a new database view extension for enhanced database block integration.
- **Refactor**
- Updated and reorganized import paths for improved code structure and maintainability.
- Consolidated and streamlined extension registration for store and view managers.
- **Chores**
- Removed deprecated or redundant extension classes and imports.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Updated test assertions to use case-insensitive matching for verifying displayed text, improving test reliability across different text casing scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
> Close AF-2616
close: BS-3433
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced advanced group-by configurations for database blocks with user membership support.
- Added a React hook for fetching and displaying user information in member-related components.
- Enabled dynamic user and membership data types in database properties.
- **Improvements**
- Replaced context-based service access with a dependency injection system for shared services and state.
- Enhanced type safety and consistency across group-by UI components and data handling.
- Centralized group data management with a new Group class and refined group trait logic.
- **Bug Fixes**
- Improved reliability and consistency in retrieving and rendering user and group information.
- **Style**
- Removed obsolete member selection styles for cleaner UI code.
- **Chores**
- Registered external group-by configurations via dependency injection.
- Refactored internal APIs for data sources, views, and group-by matchers to use service-based patterns.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Updated configuration initialization throughout the app by replacing the previous base configuration method with a new one for improved consistency.
- Removed an internal extension and adjusted related setup logic to streamline extension management.
- Renamed and simplified configuration methods for better clarity and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved the internal structure and clarity of ID handling during import processes, leading to more maintainable and modular code. No changes to user-facing functionality.
- **Chores**
- Enhanced type definitions for import events to improve code readability and maintainability. No impact on end-user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### Changed
This pr split the old `edgeless-selected-rect` into four focused modules:
- `edgeless-selected-rect`: Provide an entry point for user operation on view layer only, no further logic here.
- `GfxViewInteractionExtension`: Allow you to plug in custom resize/rotate behaviors for block or canvas element. If you don’t register an extension, it falls back to the default behaviours.
- `InteractivityManager`: Provide the API that accepts resize/rotate requests, invokes any custom behaviors you’ve registered, tracks the lifecycle and intermediate state, then hands off to the math engine.
- `ResizeController`: A pure math engine that listens for pointer moves and pointer ups and calculates new sizes, positions, and angles. It doesn’t call any business APIs.
### Customizing an element’s resize/rotate behavior
Call `GfxViewInteractionExtension` with the element’s flavour or type plus a config object. In the config you can define:
- `resizeConstraint` (min/max width & height, lock ratio)
- `handleResize(context)` method that returns an object containing `beforeResize`、`onResizeStart`、`onResizeMove`、`onResizeEnd`
- `handleRotate(context)` method that returns an object containing `beforeRotate`、`onRotateStart`、`onRotateMove`、`onRotateEnd`
```typescript
import { GfxViewInteractionExtension } from '@blocksuite/std/gfx';
GfxViewInteractionExtension(
flavourOrElementType,
{
resizeConstraint: {
minWidth,
maxWidth,
lockRatio,
minHeight,
maxHeight
},
handleResize(context) {
return {
beforeResize(context) {},
onResizeStart(context) {},
onResizeMove(context) {},
onResizeEnd(context) {}
};
},
handleRotate(context) {
return {
beforeRotate(context) {},
onRotateStart(context) {},
onRotateMove(context) {},
onRotateEnd(context) {}
};
}
}
);
```
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added interaction extensions for edgeless variants of attachment, bookmark, edgeless text, embedded docs, images, notes, frames, AI chat blocks, and various embed blocks (Figma, GitHub, HTML, iframe, Loom, YouTube).
- Introduced interaction extensions for graphical elements including connectors, groups, mind maps, shapes, and text, supporting constrained resizing and rotation disabling where applicable.
- Implemented a unified interaction extension framework enabling configurable resize and rotate lifecycle handlers.
- Enhanced autocomplete overlay behavior based on selection context.
- **Refactor**
- Removed legacy resize manager and element-specific resize/rotate logic, replacing with a centralized, extensible interaction system.
- Simplified resize handle rendering to a data-driven approach with improved cursor management.
- Replaced complex cursor rotation calculations with fixed-angle mappings for resize handles.
- Streamlined selection rectangle component to use interactivity services for resize and rotate handling.
- **Bug Fixes**
- Fixed connector update triggers to reduce unnecessary updates.
- Improved resize constraints enforcement and interaction state tracking.
- **Tests**
- Refined end-to-end tests to use higher-level resize utilities and added finer-grained assertions on element dimensions.
- Enhanced mouse movement granularity in drag tests for better simulation fidelity.
- **Chores**
- Added new workspace dependencies and project references for the interaction framework modules.
- Extended public API exports to include new interaction types and extensions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added new export paths to improve module accessibility for foundation store and view components.
- Introduced new extension points for telemetry, font configuration, link preview cache, and peek view services in the view extension foundation.
- **Improvements**
- Enhanced flexibility by allowing optional configuration of placeholders in paragraph view extensions.
- Switched to runtime schema validation for font configuration, increasing reliability.
- Streamlined service registration for peek view providers.
- **Refactor**
- Centralized and simplified extension management by removing redundant extension files and consolidating setup logic.
- Updated internal integration of telemetry, font, and peek view services for improved maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-116](https://linear.app/affine-design/issue/AI-116)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for specifying alternative AI models in chat prompts, enabling users to select from multiple available models.
- Expanded AI model options with new additions: 'gpt-4.1', 'o3', and 'claude-3-5-sonnet-20241022'.
- **Enhancements**
- Users can now optionally choose a specific AI model during chat interactions.
- Prompts and chat sessions reflect and support selection of alternative models where applicable.
- **Bug Fixes**
- Improved handling of prompt configuration defaults for better reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2609
webm container with opus has limited support on Safari. Change to mp4 instead.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Audio recordings are now saved in MP4 format instead of WebM, improving compatibility with a wider range of devices and applications.
- **Chores**
- Updated dependencies to use MP4 muxing tools in place of WebM.
- Internal audio encoding utilities and references updated to support MP4 container format.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2614
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved audio processing with persistent buffered resampling and thread-local caching for smoother and more reliable sample rate conversion.
- **Bug Fixes**
- Enhanced handling of stereo and mono audio input, ensuring accurate channel extraction and upmixing.
- **Refactor**
- Updated internal audio processing logic for better performance and reduced artifacts during audio capture.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new Collection entity and store with reactive management and real-time updates.
- Added reactive favorite and shared filters with expanded filtering options.
- **Refactor**
- Overhauled collection and filtering logic for better performance and maintainability.
- Replaced legacy filtering UI and logic with a streamlined, service-driven rules system.
- Updated collection components to use reactive data streams and simplified props.
- Simplified collection creation by delegating ID generation and instantiation to the service layer.
- Removed deprecated hooks and replaced state-based filtering with observable-driven filtering.
- **Bug Fixes**
- Improved accuracy and consistency of tag and favorite filtering in collections.
- **Chores**
- Removed deprecated and unused filter-related files, types, components, and styles to reduce complexity.
- Cleaned up imports and removed unused code across multiple components.
- **Documentation**
- Corrected inline documentation for improved clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3486](https://linear.app/affine-design/issue/BS-3486/粘贴从-notion-复制的内容出错)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of Notion text segments with empty or invalid style arrays, ensuring plain text and styled text are both processed correctly and preventing errors from malformed input.
- **Tests**
- Added a test case to verify correct conversion of Notion text with empty styles arrays.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2611
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved the process for adding audio attachments after a recording is ready, ensuring all details (name, type, size, source, embed) are included at creation for a smoother and more reliable user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2612
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of recording status updates to prevent unwanted side effects after closing the recording popup.
- Enhanced error handling and logging for internal communication, ensuring errors are logged and do not disrupt the user experience.
- Refined control flow for stream encoding to avoid unnecessary errors when encoders are closed.
- **Refactor**
- Updated popup window readiness and lifecycle management for more reliable behavior and clearer logging.
- Adjusted recording state management to allow more precise control over status updates and emissions.
- **Style**
- Added additional logging for popup and recording operations to aid in troubleshooting and transparency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2606
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- The "meetings" settings panel is now only visible on macOS when using the Electron build.
- The "Meetings Settings..." menu item in the recording menu appears only when recording functionality is available.
- **Style**
- Improved the subtitle formatting in the meetings settings panel for clearer visual separation and enhanced readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-2578](https://linear.app/affine-design/issue/BS-2578/优化-footnote-预览的逻辑:支持缓存结果,避免重复-loading)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a link preview caching mechanism, enabling faster and more efficient reuse of link preview data across the app.
- Added a feature flag for enabling or disabling link preview cache, configurable through workspace experimental settings.
- Enhanced localization with new entries describing the link preview cache feature.
- **Improvements**
- Updated link preview service architecture for better extensibility and maintainability.
- Improved integration of feature flags throughout chat and rendering components.
- **Bug Fixes**
- Fixed tooltip formatting for footnote URLs.
- **Chores**
- Updated dependencies and localization completeness tracking.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Updated workspace permission handling to use a unified role field within workspace data instead of separate admin and owner flags.
- Permission checks now rely on the workspace role for determining admin and owner status.
- **Chores**
- Removed deprecated queries and types related to admin and owner status.
- Cleaned up internal logic and variable naming for improved consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2494
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Added support for importing users with optional passwords via CSV, including password validation and error handling.
- Enhanced user creation form to allow password input and validation according to server-configured requirements.
- User table now displays a password column and provides granular error highlighting for email and password fields.
- Introduced detailed CSV format guidance and improved import dialog with dynamic content and footer controls.
- **Improvements**
- Updated import dialog workflow for clearer CSV formatting guidance and improved user feedback during import.
- Refined dropdown menu actions and improved UI clarity for user management actions.
- **Bug Fixes**
- Corrected menu action handlers for "Edit" and "Reset Password" in user actions dropdown.
- **Chores**
- Refactored import dialog code into modular components for maintainability and clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new mobile view extension that activates mobile-specific UI features based on the runtime environment.
- Automatically enables mobile keyboard toolbar and linked document menu features in mobile contexts.
- **Improvements**
- Simplified code and paragraph block configurations on mobile, including disabling line numbers and adjusting placeholders.
- Enhanced configuration chaining to include mobile-specific settings by default.
- Improved extension registration flow with method chaining support.
- **Refactor**
- Removed deprecated mobile patch classes and configurations, consolidating mobile logic into dedicated extensions.
- Streamlined mobile-related code for better maintainability and performance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3480](https://linear.app/affine-design/issue/BS-3480/event-tracking)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added telemetry tracking to toolbar actions for embedding documents, duplicating notes, and toggling note display modes.
- Telemetry events now track when new note blocks are created from drag-and-drop actions on the whiteboard.
- **Chores**
- Improved event tracking for user interactions to enhance analytics and usage insights.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new slider component for line width selection, providing a more interactive and streamlined UI.
- Added support for using the slider component across relevant panels.
- **Improvements**
- Simplified the line width selection panel for easier use and improved maintainability.
- Enhanced event handling to prevent dropdowns from closing when interacting with the panel.
- **Bug Fixes**
- Improved event propagation control within the line styles panel.
- **Chores**
- Updated package exports to include the new slider component.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced feature flag synchronization for enhanced control over feature availability.
- Added new configuration options for store management, allowing initialization and feature flag setup.
- **Improvements**
- Updated how store extensions are accessed throughout the app for more robust initialization and configuration.
- Enhanced workspace entities to support feature flag services, improving flexibility for workspace-specific features.
- Centralized configuration of storage implementations for Electron environments.
- **Refactor**
- Simplified editor module by removing direct feature flag synchronization logic.
- Streamlined imports and configuration for storage modules, especially in Electron-based apps.
- **Bug Fixes**
- Ensured consistent retrieval of store extensions across various modules and platforms.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated the HTML preview iframe to display at full width and a fixed height for improved appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a user-facing message in the HTML preview component to inform users when their browser does not support required features, with a suggestion to download the AFFiNE Desktop App.
- **Style**
- Updated styles to ensure fallback and error messages share a consistent appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-118](https://linear.app/affine-design/issue/AI-118)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- The abort button in the chat input is now available during both "transmitting" and "loading" states, giving users more control to cancel ongoing actions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjEiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjEiLCJ0YXJnZXRCcmFuY2giOiJjYW5hcnkiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a filter to exclude empty journals from document collections.
- Added a live-updating list of non-trashed document IDs for improved document management.
- **Improvements**
- Default filters in the document explorer have been updated to show all items, including trashed ones, unless filters are applied.
- Enhanced filtering in workspace views to automatically exclude empty journals and trashed documents.
- Increased the responsiveness of grouped document updates for a smoother user experience.
- **Bug Fixes**
- Removed unnecessary debug output from the document synchronization, member search, session management, and member selector components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved history and undo/redo management across the app by introducing a dedicated history extension. Undo/redo operations now use a more focused undo manager, resulting in clearer and more consistent behavior.
- **Documentation**
- Updated API documentation to reflect changes in history management, including revised method signatures and removal of outdated event references.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced dedicated extensions for cloud features, turbo renderer, and PDF embed preview, enabling modular and configurable view options.
- Added audio embed preview support for attachments, enhancing the audio file viewing experience.
- **Refactor**
- Streamlined editor view configuration with modular extension registration.
- Simplified extension setup by removing some feature flags and related services from core editor configuration.
- **Chores**
- Updated internal worker configuration paths for improved organization.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3438](https://linear.app/affine-design/issue/BS-3438/attachment-embed-view-中的-status-组件)
Closes: [BS-3447](https://linear.app/affine-design/issue/BS-3447/触发-litportal-re-render)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a visual status indicator for embedded attachments with reload capability.
- Added a new resource status component to display error messages and reload actions.
- **Improvements**
- Enhanced attachment rendering flow with reactive state and unified embed handling.
- Simplified resource state and blob URL lifecycle management.
- Added status visibility flags for PDF and video embeds.
- **Bug Fixes**
- Improved error handling and refresh support for embedded content including PDFs, videos, and audio.
- **Style**
- Added styles for the attachment embed status indicator positioning.
- **Refactor**
- Streamlined attachment and resource controller implementations for better maintainability.
- **Tests**
- Added end-to-end test verifying PDF viewer reload and re-rendering in embed mode.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2605
[CleanShot 2025-05-08 at 13.56.38.mp4 <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/LakojjjzZNf6ogjOVwKE/4e36e838-7c7f-4f0a-89a8-fd582c2ef573.mp4" />](https://app.graphite.dev/media/video/LakojjjzZNf6ogjOVwKE/4e36e838-7c7f-4f0a-89a8-fd582c2ef573.mp4)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Centralized state management in the document explorer using a reactive context, replacing prop drilling and local state with observable streams for preferences, selection, grouping, and view options.
- Updated multiple components (display menus, quick actions, doc list items, group headers) to consume and update state directly via context observables.
- Simplified component signatures by removing now-unnecessary props related to preferences and state handlers.
- **Style**
- Adjusted user avatar display: avatars now only have right margin when user names are shown, and vertical alignment was improved.
- **New Features**
- User avatar elements now include a data attribute to indicate if the user name is displayed.
- **Bug Fixes**
- Improved handling of document tags to prevent errors when tags are not in the expected format.
- **Documentation**
- Added missing group header property for updated date fields in workspace property types.
- **Chores**
- Clarified and renamed internal types for quick actions to improve code clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Related to: [BS-3101](https://linear.app/affine-design/issue/BS-3101/pdf-embed-模式的选中框选-和点开看详情有比较大的问题)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- PDF embed preview is now enabled by default for all users, regardless of workspace sharing mode.
- **Bug Fixes**
- Improved reliability of PDF viewer interaction in tests by updating the element used for visibility checks.
- Enabled opening the PDF viewer peek view in readonly and sharing modes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Streamlined and modularized the configuration of editor and theme extensions, introducing a chainable API for extension management.
- Migrated extension setup to use new provider classes and centralized patch logic, improving maintainability and consistency.
- Updated internal extension retrieval processes to use a more explicit, stepwise initialization sequence.
- Removed legacy theme and editor config registration from common views and editor setups.
- Removed direct patch registrations from editor views, consolidating them into extension providers.
- Renamed classes and variables for clarity and consistency across the codebase.
- **New Features**
- Added new extension providers for editor configuration, theme management, and edgeless block header customization, enabling more flexible and validated extension registration.
- Introduced animated viewport focus and dynamic header rendering for edgeless notes and embedded synced documents.
- Integrated reactive editor settings and toolbar configurations with workspace-aware base URL resolution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close: BS-3446
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Migrated all styling from vanilla-extract to Emotion for improved CSS-in-JS consistency across database, table, and data view components.
- Updated import paths for style modules to reflect the new Emotion-based file naming.
- Removed unused or redundant style exports and updated selector syntax where necessary.
- **Chores**
- Updated dependencies: removed vanilla-extract and added Emotion in relevant package files.
- **Style**
- No visual changes to existing components; all style definitions remain consistent with previous designs.
- **New Features**
- Introduced new reusable CSS classes for data view and table components using Emotion.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This won't affect desktop behavior, since the `MobileDataViewTable` is a standalone entry different with the default `DataViewTable`.
Horizontal scrolling needs to be disabled to prevent Safari render bug.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated table view styling on mobile to disable horizontal scrolling, improving stability on iOS Safari.
- Removed platform-specific horizontal scrolling behavior for tables on desktop for a consistent experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new grouped document explorer with a masonry layout, advanced filtering, and multi-select capabilities.
- Added a floating toolbar for batch actions, such as deleting multiple documents.
- Implemented a feature flag to enable the new "All Docs" page, allowing gradual rollout.
- Added a new navigation component with links for Docs, Collections, and Tags.
- Introduced a display menu button supporting additional menu properties.
- **Enhancements**
- Redesigned navigation headers across document, collection, and tag pages for improved consistency and usability.
- Added new display and view toggling options for document lists.
- Improved styling and responsiveness for explorer and header components.
- Updated context to support dynamic view switching in the document explorer.
- **Bug Fixes**
- Updated context and prop types to enhance state management and user interactions.
- **Refactor**
- Replaced legacy page list views with a modern, grouped explorer interface.
- Simplified and modularized header components and styles for better maintainability.
- Removed workspace-specific controls from document headers to focus on explorer functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved permission checks to ensure users only see document chunks they have read access to.
- Enhanced error handling for clearer and more user-friendly error messages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Splice will produce large yjs updates for splice because it will call insert and delete operation for every item in yarray.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for `splice`, `shift`, and `unshift` methods on reactive arrays, enabling enhanced dynamic array operations with synchronization.
- **Tests**
- Expanded test coverage for array operations including `push`, `splice`, `shift`, and `unshift`, verifying complete array state after each change.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### New all docs list ui
close AF-2531, AF-2585, AF-2586, AF-2580
### What changed
- a new `display-menu` component
- properties visibility
- quick actions visibility
- extend DocPropertyType definition
- `showInDocList`: configure whether to show in doc and how to show (stack | inline)
- `docListProperty`: define how to render property in doc
- `groupHeader`: define how to render group header when grouped
- implement all properties's `docListProperty` renderer and `groupHeader` renderer
- new `docs-view` component
- render doc in `card` | `list` view
- split doc card into minimal components for reuse in list and card views, as well as visibility control
- implement docs-list with `<Masonry />` and multi-view support
- for list view, make masonry column count always `1`
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Redesigned document explorer with multiple view modes (list, grid, masonry), grouping, selection, and multi-delete.
- Added customizable display properties and quick actions (favorite, trash, split view, new tab, select) for documents.
- Introduced new group header and document item components with improved styling and interaction.
- Enabled dynamic rendering of document properties including tags, dates, users, templates, and themes.
- Added filtering support for trash status and enhanced localization for UI elements.
- Introduced drag handle size customization and expanded masonry layout configurability.
- Added contextual "More" menu with document operations like favorite, info, duplicate, and trash.
- Implemented shared context for explorer state management and multi-selection logic.
- **Enhancements**
- Improved virtual scrolling with active item tracking and configurable preload and debounce settings.
- Responsive, theme-aware styling applied across explorer and property components.
- Configurable UI elements and quick actions via user preferences.
- Enhanced error messages for unsupported property types in filters.
- Refined padding and layout calculations in masonry component for better visual consistency.
- Avatar and date components refactored for explicit prop-driven rendering and customization.
- **Bug Fixes**
- Improved error messages for unsupported property types in filters.
- **Documentation**
- Added new localization keys and updated language completeness for new features.
- **Chores**
- Modularized workspace property types with list and group header display components.
- Consolidated imports and enhanced code maintainability.
- Added new CSS styling modules for explorer components and workspace property types.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for installing self-hosted team licenses via encrypted license files.
- Introduced a new "Onetime" license variant for self-hosted environments.
- Added a GraphQL mutation to upload and install license files.
- License details now display the license variant.
- **Bug Fixes**
- Improved error messages for license activation and expiration, including dynamic reasons.
- **Localization**
- Updated and improved license-related error messages for better clarity.
- **Tests**
- Added comprehensive end-to-end tests for license installation scenarios.
- **Chores**
- Enhanced environment variable handling and public key management for license verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AI-20
fix AI-77
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced relevance-based re-ranking for embedding results, improving the accuracy of content suggestions.
- Added prioritization for workspace content that matches specific document IDs in search results.
- Introduced a new scoped threshold parameter to refine workspace document matching.
- **Improvements**
- Increased default similarity threshold for file chunk matching, resulting in more precise matches.
- Doubled candidate retrieval for file and workspace chunk matching to improve result quality.
- Updated sorting to prioritize context-relevant documents in workspace matches.
- Explicitly included original input content in re-ranking calls for better relevance assessment.
- **Bug Fixes**
- Adjusted re-ranking logic to return only highly relevant results based on confidence scores.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
fix: ai chat input cannot scroll
> CLOSE AI-115
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Improved the appearance of the vertical scrollbar in the chat input area, making it visible and styled with custom colors and rounded corners.
- **Bug Fixes**
- The vertical scrollbar in the chat input now appears when needed, instead of being hidden.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
> CLOSE AI-114
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Temporarily disabled the AI onboarding feature in workspace detail and layout pages.
- **Chores**
- Added placeholders indicating the suspension of the AI onboarding feature pending future improvements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- support group for masonry
- expand/collapse group
- sticky group header

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced Masonry component with support for grouped items, collapsible and sticky group headers.
- Added multi-view transitions enabling switching between Masonry, Grid, and List layouts.
- Introduced virtual scrolling with group support for efficient handling of large datasets.
- New interactive storybook demonstrations showcasing grouped and multi-view Masonry scenarios.
- **Improvements**
- List view styling enhancements for improved clarity and layout.
- Resize panel now supports customizable offset modifications during drag interactions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved compatibility by ensuring code block preview features only activate when the browser supports isolated contexts, preventing potential issues in unsupported environments.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
* Fix the issue of inaccurate content replacement in AI Replace Selection
* Optimize unit Tests utils
### What Changed
1. Fixed the issue of inaccurate content replacement in AI Replace Selection:
- Convert the AI Answer into a Snapshot, then transform it into a sequence of Blocks ready for insertion.
- Invoke the `replaceSelectedTextWithBlocks` command to replace the current selection with blocks (given the complexity of block combinations, this command uses [ts-pattern](https://github.com/gvergnaud/ts-pattern) implementation to ensure compile-time prevention of pattern handling omissions).
2. Optimized unit test assertions for commands, now allowing direct document content comparison using `toEqualDoc`.
```ts
const host = affine`
<affine-page id="page">
<affine-note id="note">
<affine-paragraph id="paragraph-1">Hel<anchor />lo</affine-paragraph>
<affine-paragraph id="paragraph-2">Wor<focus />ld</affine-paragraph>
</affine-note>
</affine-page>
`;
// ....
const expected = affine`
<affine-page id="page">
<affine-note id="note">
<affine-paragraph id="paragraph-1">Hel111</affine-paragraph>
<affine-code id="code"></affine-code>
<affine-paragraph id="paragraph-2">222ld</affine-paragraph>
</affine-note>
</affine-page>
`;
expect(host.doc).toEqualDoc(expected.doc);
```
3. Added support for text cursors in unit test template syntax.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
> CLOSE BS-3278
- **New Features**
- Introduced the ability to replace selected text in documents with blocks, supporting advanced merging and insertion scenarios for various block types.
- **Bug Fixes**
- Improved handling of text selection and cursor placement in document templates used for testing.
- **Tests**
- Added comprehensive tests for replacing selected text with blocks, including edge cases and complex selection scenarios.
- Enhanced test utilities for document structure comparison and selection handling.
- Updated end-to-end tests to verify correct replacement of selected text via AI-driven actions.
- **Chores**
- Added and updated dependencies to support new features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close: BS-3431
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added "Created By" property type and cell renderer, displaying creator's avatar and name in database blocks.
- Introduced "Created Time" property type and cell renderer, showing formatted creation timestamps.
- **Improvements**
- Enhanced table and Kanban views with improved column and row movement, hiding, and statistics capabilities.
- Streamlined property and row management with unified object handling and reactive signals for better performance and reliability.
- Improved avatar display logic to handle removed or unnamed users gracefully.
- Refactored property and row APIs to consolidate access patterns and support reactive updates.
- Updated icon retrieval and reactive value access for improved UI responsiveness in database and Kanban cells.
- Consolidated property and cell access methods to use "get or create" patterns ensuring consistent data availability.
- Added locking mechanism to stabilize computed signals during locked states.
- Modularized table and Kanban column and row abstractions for better encapsulation and maintainability.
- **Bug Fixes**
- Corrected row and column deletion, movement, and selection behaviors across table and Kanban views.
- Fixed issues with property and row referencing, ensuring consistent handling of identifiers and objects.
- Removed debugging logs and fixed method calls to align with updated APIs.
- **Style**
- Updated and simplified table column header styles for a cleaner appearance.
- **Chores**
- Added `@emotion/css` dependency for styling support.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3404](https://linear.app/affine-design/issue/BS-3404/通过embed-doc时,插入的doc还是card-view,应该要默认embed-view)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to insert and display embedded synced documents, supporting different link types based on editor mode and user preferences.
- Introduced new UI interactions and view options for embedded synced documents in edgeless mode.
- **Bug Fixes**
- Updated UI selectors and preference keys to ensure consistent behavior and correct application of user settings.
- **Tests**
- Added and updated end-to-end tests for embedding synced documents, including header interactions and viewport fitting.
- Improved test coverage for quick search insertion and edgeless embed synced doc features.
- **Chores**
- Renamed settings and updated exports to align with new embedding functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved accuracy of member quota warnings by updating the logic that detects when the member limit has been exceeded.
- Enhanced test reliability by adjusting member list pagination test to better handle confirmation modals.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Change the query for querying quota of Cloud Blob Storage.
The original query used new fields, which caused errors in the old version of the server. This PR uses a simpler query to ensure compatibility.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to retrieve a workspace's blob storage quota, including both the raw limit and a human-readable format, via a new query.
- **Bug Fixes**
- Updated quota retrieval to use the new blob-specific quota query for improved accuracy.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
whats changed:
### orm
add a new `select$` method, can subscribe on only one field to improve batch subscribe performance
### yjs-observable
add a new `yjsObservePath` method, which can subscribe to changes from specific path in yjs. Improves batch subscribe performance
```ts
yjsGetPath(
this.workspaceService.workspace.rootYDoc.getMap('meta'),
'pages'
).pipe(
switchMap(pages => yjsObservePath(pages, '*.tags')),
map(pages => {
// only when tags changed
})
)
```
### standard property naming
All `DocProperty` components renamed to `WorkspaceProperty` which is consistent with the product definition.
### `WorkspacePropertyService`
Split the workspace property management logic from the `doc` module and create a new `WorkspacePropertyService`. The new service manages the creation and modification of properties, and the `docService` is only responsible for storing the property value data.
### new `<Filters />` component
in `core/component/filter`
### new `<ExplorerDisplayMenuButton />` component
in `core/component/explorer/display-menu`

### new `/workspace/xxx/all-new` route
New route for test components and functions
### new collection role service
Implemented some filter group order rules
see `collection-rules/index.ts`
### standard property type definition
define type in `modules\workspace-property\types.ts`

define components (name,icon,....) in `components\workspace-property-types\index.ts`

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced comprehensive filtering, grouping, and ordering capabilities for workspace documents with reactive updates.
- Added a new "All Pages" workspace view supporting dynamic filters and display preferences.
- Developed UI components for filter creation, condition editing, and display menu controls.
- Launched enhanced tag management with inline editors, selection, creation, and deletion workflows.
- Added workspace property types with dedicated filter UIs including checkbox, date, tags, and text.
- Introduced workspace property management replacing document property handling.
- Added modular providers for filters, group-by, and order-by operations supporting various property types and system attributes.
- **Improvements**
- Standardized tag and property naming conventions across the application (using `name` instead of `value` or `title`).
- Migrated document property handling to workspace property-centric logic.
- Enhanced internationalization with additional filter and display menu labels.
- Improved styling for filter conditions, display menus, and workspace pages.
- Optimized reactive data subscriptions and state management for performance.
- Refined schema typings and type safety for workspace properties.
- Updated imports and component references to workspace property equivalents throughout frontend.
- **Bug Fixes**
- Resolved tag property inconsistencies affecting display and filtering.
- Fixed filter and tag selection behaviors for accurate and reliable UI interactions.
- **Chores**
- Added and refined test cases for ORM, observables, and filtering logic.
- Cleaned up legacy document property code and improved type safety.
- Modularized and restructured components for better maintainability.
- Introduced new CSS styles for workspace pages and display menus.
- Added framework module configurations for collection rules and workspace property features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Corrected CPU resource allocation for the documentation service to ensure accurate deployment configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Documents now automatically track and display "created by" and "updated by" user information.
- Document creation and update timestamps are now managed and shown more accurately.
- Workspace and document metadata (name, avatar) updates are more responsive and reliable.
- Document creation supports middleware for customizing properties and behavior.
- **Improvements**
- Simplified and unified event handling for document list updates, reducing redundant event subscriptions.
- Enhanced integration of editor and theme settings into the document creation process.
- Explicit Yjs document initialization for improved workspace stability and reliability.
- Consolidated journal-related metadata display in document icons and titles for clarity.
- **Bug Fixes**
- Fixed inconsistencies in how workspace and document names are set and updated.
- Improved accuracy of "last updated" indicators by handling timestamps automatically.
- **Refactor**
- Removed deprecated event subjects and direct metadata manipulation in favor of more robust, reactive patterns.
- Streamlined document creation logic across various features (quick search, journal, recording, etc.).
- Simplified user avatar display components and removed cloud metadata dependencies.
- Removed legacy editor setting and theme service dependencies from multiple modules.
- **Chores**
- Updated internal APIs and interfaces to support new metadata and event handling mechanisms.
- Cleaned up unused code and dependencies related to editor settings and theme services.
- Skipped flaky end-to-end test to improve test suite stability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-75](https://linear.app/affine-design/issue/AI-75)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved formatting for AI-generated reasoning and web search results, displaying them as callout blocks for enhanced readability.
- Expanded support for rendering callout blocks in the text renderer.
- **Style**
- Adjusted layout to ensure callout blocks retain appropriate spacing and appearance.
- **Refactor**
- Simplified and unified the integration of web search tools for AI providers.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [apollographql/apollo-ios](https://redirect.github.com/apollographql/apollo-ios) | minor | `from: "1.20.0"` -> `from: "1.21.0"` |
| [apollographql/apollo-ios](https://redirect.github.com/apollographql/apollo-ios) | minor | `1.20.0` -> `1.21.0` |
---
### Release Notes
<details>
<summary>apollographql/apollo-ios (apollographql/apollo-ios)</summary>
### [`v1.21.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1210)
[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.20.0...1.21.0)
##### New
- **Enhanced Client Awareness ([#​638](https://redirect.github.com/apollographql/apollo-ios-dev/pull/638)):** Apollo iOS now sends the library name and version as metadata in the `extensions` key of each request. This Enhanced Client Awareness metric is collected in GraphOS along with the existing Client Awareness and general operation metrics.
##### Improvement
- **Removed SQLite.swift dependency ([#​635](https://redirect.github.com/apollographql/apollo-ios-dev/pull/635)):** Removed the dependency on `SQLite.swift` and replaced it with direct interaction with the SQLite C API.
##### Fixed
- **Fix possible data races in the WebSocketTransport ([#​636](https://redirect.github.com/apollographql/apollo-ios-dev/pull/636)):** Fixes possible data race issues in the `subscriptions` property inside of `WebSocketTransport`. *Thank you to [@​tahirmt](https://redirect.github.com/tahirmt) for the contribution.*
- **Fix cache reading of null list items ([#​3527](https://redirect.github.com/apollographql/apollo-ios/issues/3527)):** Null list items would previously generate a `wrongType` error if stored and read from the cache. This refactors the execution logic to correctly handle values from cache references in lists. See PR [#​637](https://redirect.github.com/apollographql/apollo-ios-dev/pull/637).
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNTcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjI1Ny4zIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@googleapis/androidpublisher](https://redirect.github.com/googleapis/google-api-nodejs-client) | [`^26.0.0` -> `^27.0.0`](https://renovatebot.com/diffs/npm/@googleapis%2fandroidpublisher/26.0.0/27.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>googleapis/google-api-nodejs-client (@​googleapis/androidpublisher)</summary>
### [`v27.0.0`](https://redirect.github.com/googleapis/google-api-nodejs-client/blob/HEAD/CHANGELOG.md#12700-2023-10-11)
[Compare Source](https://redirect.github.com/googleapis/google-api-nodejs-client/compare/v26.0.0...v27.0.0)
##### ⚠ BREAKING CHANGES
- This release has breaking changes.
- **iam:** This release has breaking changes.
- **dataproc:** This release has breaking changes.
- **connectors:** This release has breaking changes.
- **youtube:** This release has breaking changes.
- **vmmigration:** This release has breaking changes.
- **searchads360:** This release has breaking changes.
- **playintegrity:** This release has breaking changes.
- **places:** This release has breaking changes.
- **paymentsresellersubscription:** This release has breaking changes.
- **osconfig:** This release has breaking changes.
- **notebooks:** This release has breaking changes.
- **mybusinessverifications:** This release has breaking changes.
- **gkeonprem:** This release has breaking changes.
- **gkehub:** This release has breaking changes.
- **firestore:** This release has breaking changes.
- **displayvideo:** This release has breaking changes.
- **discoveryengine:** This release has breaking changes.
- **contentwarehouse:** This release has breaking changes.
- **compute:** This release has breaking changes.
- **cloudbilling:** This release has breaking changes.
- **checks:** This release has breaking changes.
- **assuredworkloads:** This release has breaking changes.
- **artifactregistry:** This release has breaking changes.
- **appengine:** This release has breaking changes.
- **analyticsadmin:** This release has breaking changes.
- **aiplatform:** This release has breaking changes.
##### Features
- **accessapproval:** update the API ([3887e5f](3887e5f9be))
- **accesscontextmanager:** update the API ([f18316f](f18316fc9a))
- **admob:** update the API ([d366fa5](d366fa5c15))
- **advisorynotifications:** update the API ([69862b5](69862b5ad3))
- **aiplatform:** update the API ([c1ba635](c1ba635cfa))
- **alertcenter:** update the API ([c323ec5](c323ec5700))
- **analyticsadmin:** update the API ([c212bcf](c212bcf935))
- **androiddeviceprovisioning:** update the API ([7d76542](7d76542084))
- **androidmanagement:** update the API ([a6d4009](a6d4009983))
- **androidpublisher:** update the API ([377819b](377819b2e6))
- **appengine:** update the API ([7150925](71509251f4))
- **artifactregistry:** update the API ([e3ac97a](e3ac97a206))
- **assuredworkloads:** update the API ([c4f607f](c4f607fa7b))
- **batch:** update the API ([6b95651](6b95651b44))
- **beyondcorp:** update the API ([d506eb3](d506eb3fdd))
- **bigquery:** update the API ([55da65e](55da65e7e1))
- **billingbudgets:** update the API ([97aeef6](97aeef6daf))
- **blockchainnodeengine:** update the API ([88285ef](88285ef596))
- **chat:** update the API ([0d9d67d](0d9d67d8e2))
- **checks:** update the API ([6e51323](6e51323554))
- **chromemanagement:** update the API ([f272fb5](f272fb5278))
- **chromepolicy:** update the API ([8ad0e35](8ad0e35a4d))
- **cloudasset:** update the API ([6640f27](6640f27cfe))
- **cloudbilling:** update the API ([249620e](249620e149))
- **cloudchannel:** update the API ([b940b40](b940b403ca))
- **clouddeploy:** update the API ([a732b2c](a732b2ca54))
- **clouddeploy:** update the API ([60775aa](60775aa992))
- **cloudfunctions:** update the API ([86d065d](86d065d7d0))
- **cloudtasks:** update the API ([abf169e](abf169e694))
- **composer:** update the API ([9f5baba](9f5baba8da))
- **composer:** update the API ([5014376](5014376c55))
- **compute:** update the API ([c0d7188](c0d7188676))
- **connectors:** update the API ([edc8822](edc88224be))
- **connectors:** update the API ([aca4b52](aca4b52971))
- **contactcenteraiplatform:** update the API ([d7abdc8](d7abdc8a31))
- **containeranalysis:** update the API ([0533c16](0533c16359))
- **container:** update the API ([5b77c6d](5b77c6d281))
- **content:** update the API ([5b4e734](5b4e734a5c))
- **contentwarehouse:** update the API ([16be148](16be148bb3))
- **datacatalog:** update the API ([0052588](0052588a7d))
- **dataflow:** update the API ([a16fa60](a16fa6024f))
- **dataform:** update the API ([aa38de7](aa38de7ce4))
- **datamigration:** update the API ([4e272d7](4e272d7492))
- **dataplex:** update the API ([1b8b506](1b8b506045))
- **dataproc:** update the API ([64e0c7a](64e0c7a4d0))
- **dataproc:** update the API ([dc84163](dc84163443))
- **datastream:** update the API ([52168de](52168de4af))
- **deploymentmanager:** update the API ([f3ec8ef](f3ec8efabe))
- **dialogflow:** update the API ([c0653d0](c0653d0317))
- **discoveryengine:** update the API ([6cfd107](6cfd10739f))
- **displayvideo:** update the API ([0a7b6d4](0a7b6d46e6))
- **dlp:** update the API ([5925749](5925749d8d))
- **dns:** update the API ([376ebd2](376ebd2f2a))
- **documentai:** update the API ([3b23065](3b230652ca))
- **eventarc:** update the API ([72fc700](72fc70043e))
- **firebaseappcheck:** update the API ([53b090f](53b090fa9c))
- **firebasehosting:** update the API ([64cbaa6](64cbaa6b39))
- **firebasestorage:** update the API ([22bb1f7](22bb1f7f90))
- **firebase:** update the API ([db24c70](db24c70a61))
- **firestore:** update the API ([13d1762](13d176259b))
- **games:** update the API ([30dc810](30dc8101b3))
- **gkehub:** update the API ([9c0ed64](9c0ed647e7))
- **gkehub:** update the API ([5918dbd](5918dbd2d3))
- **gkeonprem:** update the API ([26188f7](26188f73ed))
- **gmailpostmastertools:** update the API ([5dfb9b5](5dfb9b5e6e))
- **gmail:** update the API ([e943c90](e943c90dbb))
- **healthcare:** update the API ([2640490](2640490061))
- **iam:** update the API ([e35cf75](e35cf75e2c))
- **iam:** update the API ([d1e31cc](d1e31cc139))
- **iap:** update the API ([c735eaf](c735eaf4c6))
- **jobs:** update the API ([441febc](441febcb09))
- **logging:** update the API ([c43f8c0](c43f8c0963))
- **manufacturers:** update the API ([2cdbd73](2cdbd73290))
- **memcache:** update the API ([824d0cf](824d0cf5a0))
- **metastore:** update the API ([3a1ae5c](3a1ae5cd56))
- **migrationcenter:** update the API ([a714be5](a714be595b))
- **mybusinessverifications:** update the API ([e51db62](e51db6202b))
- **networkconnectivity:** update the API ([65ba5d2](65ba5d264b))
- **networkmanagement:** update the API ([4943f8a](4943f8a586))
- **networksecurity:** update the API ([7241b06](7241b067b4))
- **networkservices:** update the API ([fe7e04d](fe7e04da77))
- **notebooks:** update the API ([e76ae49](e76ae49809))
- **osconfig:** update the API ([839a3fc](839a3fc0ce))
- **oslogin:** update the API ([81cd87f](81cd87ffe8))
- **paymentsresellersubscription:** update the API ([56dbb81](56dbb8114e))
- **paymentsresellersubscription:** update the API ([31816cb](31816cbcc9))
- **places:** update the API ([096c4a7](096c4a7d4f))
- **playintegrity:** update the API ([7f9fe21](7f9fe21fd3))
- **policysimulator:** update the API ([75d74db](75d74dbbf4))
- **privateca:** update the API ([b9ee77c](b9ee77c2e9))
- **prod_tt_sasportal:** update the API ([db7f407](db7f40708f))
- **prod_tt_sasportal:** update the API ([e774324](e774324d1f))
- **recaptchaenterprise:** update the API ([c7fcfc0](c7fcfc0bec))
- **redis:** update the API ([4902a2d](4902a2dacf))
- regenerate index files ([3be35ec](3be35eceec))
- regenerate index files ([7eb77f5](7eb77f5d70))
- **retail:** update the API ([ba147af](ba147af6e3))
- run the generator ([#​3355](https://redirect.github.com/googleapis/google-api-nodejs-client/issues/3355)) ([5504c86](5504c86fd6))
- **run:** update the API ([8d67594](8d67594b17))
- **run:** update the API ([cf50ff6](cf50ff64bb))
- **sasportal:** update the API ([706a9c6](706a9c6d36))
- **searchads360:** update the API ([62c9a90](62c9a906a6))
- **securitycenter:** update the API ([39b4fe5](39b4fe528c))
- **spanner:** update the API ([3d046d5](3d046d5e61))
- **speech:** update the API ([b1e180b](b1e180bd51))
- **sqladmin:** update the API ([2d1c8c4](2d1c8c4d49))
- **storagetransfer:** update the API ([aedacc9](aedacc9da3))
- **storage:** update the API ([2d54a76](2d54a76c2e))
- **testing:** update the API ([320730e](320730e576))
- **tpu:** update the API ([5cabdfa](5cabdfa1cf))
- **transcoder:** update the API ([bcb1cd5](bcb1cd52a0))
- **verifiedaccess:** update the API ([b6ac861](b6ac861a2a))
- **vision:** update the API ([4e50f7a](4e50f7a822))
- **vmmigration:** update the API ([48fd628](48fd628fae))
- **vmmigration:** update the API ([1d3ba23](1d3ba236d4))
- **workflowexecutions:** update the API ([66d36c2](66d36c2ada))
- **workflows:** update the API ([46b0b2b](46b0b2b33f))
- **workloadmanager:** update the API ([3c3362c](3c3362cb7d))
- **workstations:** update the API ([b8b63ef](b8b63ef6c0))
- **youtube:** update the API ([43c5f61](43c5f612e6))
##### Bug Fixes
- **alloydb:** update the API ([6147b06](6147b06130))
- **analyticsadmin:** update the API ([31df609](31df609d40))
- **analyticsdata:** update the API ([6d2e734](6d2e734ff0))
- **analyticshub:** update the API ([03ce6ef](03ce6efbec))
- **apigeeregistry:** update the API ([5264dcf](5264dcfc04))
- **apigeeregistry:** update the API ([0608613](06086135ba))
- **authorizedbuyersmarketplace:** update the API ([739f4c0](739f4c0e80))
- **batch:** update the API ([2960f5b](2960f5b8b4))
- **bigquerydatatransfer:** update the API ([4a60c8c](4a60c8c831))
- **bigtableadmin:** update the API ([aeac248](aeac248580))
- **binaryauthorization:** update the API ([1e2ed6a](1e2ed6a6d6))
- **calendar:** update the API ([8fdd6c4](8fdd6c400d))
- **certificatemanager:** update the API ([dcb4fd8](dcb4fd82a2))
- **cloudbuild:** update the API ([8d999f5](8d999f52ba))
- **clouderrorreporting:** update the API ([1ec2280](1ec22807b2))
- **cloudscheduler:** update the API ([0ad660b](0ad660ba46))
- **cloudsearch:** update the API ([5f25dae](5f25dae49c))
- **cloudsupport:** update the API ([f37e735](f37e735d7f))
- **contactcenterinsights:** update the API ([8aebb3f](8aebb3fbd9))
- **dataform:** update the API ([1a91de3](1a91de3744))
- **datamigration:** update the API ([4acd892](4acd892b6a))
- **datastore:** update the API ([ee0bd25](ee0bd25a29))
- **deploymentmanager:** update the API ([4c74af6](4c74af69e1))
- **dfareporting:** update the API ([d4124d2](d4124d2165))
- **dlp:** update the API ([5809b2e](5809b2e9cb))
- **domains:** update the API ([ca2ddc0](ca2ddc03f1))
- **drive:** update the API ([ce1bfe0](ce1bfe0b0b))
- **firebasedynamiclinks:** update the API ([f2cd5c4](f2cd5c49ee))
- **firestore:** update the API ([6ff716b](6ff716b72e))
- **gkebackup:** update the API ([e4bcddf](e4bcddf04d))
- **gkeonprem:** update the API ([77c0ea4](77c0ea4977))
- **language:** update the API ([b9c3e49](b9c3e4940a))
- **ml:** update the API ([1253597](12535979be))
- **mybusinessbusinessinformation:** update the API ([fb250ff](fb250ffc72))
- **networksecurity:** update the API ([942415b](942415b372))
- **orgpolicy:** update the API ([b06315a](b06315ac76))
- **playgrouping:** update the API ([a019599](a0195992d1))
- **rapidmigrationassessment:** update the API ([479ceef](479ceefd1f))
- **realtimebidding:** update the API ([64cfc3b](64cfc3ba22))
- **recommender:** update the API ([3e76efd](3e76efde7d))
- **serviceusage:** update the API ([e5db392](e5db392a40))
- **sheets:** update the API ([e11a68c](e11a68c000))
- **tagmanager:** update the API ([958b2be](958b2be95f))
- **vpcaccess:** update the API ([a16c068](a16c06850b))
- **workflowexecutions:** update the API ([122d68b](122d68b6f9))
- **workflows:** update the API ([6c3af7d](6c3af7d5f0))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNDguNCIsInVwZGF0ZWRJblZlciI6IjM5LjI0OC40IiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Unified internal data access by replacing all references from `doc` to `store` across all components, blocks, widgets, and utilities. This affects how readonly state, block operations, and service retrieval are handled throughout the application.
- **Tests**
- Updated all test utilities and test cases to use `store` instead of `doc` for document-related operations.
- **Chores**
- Updated context providers and property names to reflect the change from `doc` to `store` for improved consistency and maintainability.
No user-facing features or behaviors have changed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNDguNCIsInVwZGF0ZWRJblZlciI6IjM5LjI0OC40IiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2 out of 7 tests are skipped as flaky due to unknown vitest issue on CI, considering migrating to E2E afterwards.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Removed a test related to rendering multiple notes in the viewport.
- Skipped two tests concerning zooming behavior and state transitions; these tests are now excluded from regular test runs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-85](https://linear.app/affine-design/issue/AI-85)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced AI chat experience with improved web search integration, including a new "AUTO" mode that allows the AI to search the web only when needed.
- Updated AI model for chat to "o4-mini" for improved performance.
- **Improvements**
- Refined instructions to reduce hallucinations and ensure the AI admits uncertainty when unsure.
- Enhanced streaming responses to display web search queries and results more clearly.
- Updated web search tool modes for more accurate and flexible search behavior.
- Centralized AI provider options and improved tool selection logic for better response quality.
- **Bug Fixes**
- Improved handling of tool calls and reasoning steps in AI chat responses.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3434](https://linear.app/affine-design/issue/BS-3434/修复-attachment-从-card-切换为-embed-尺寸问题)
<img width="1073" alt="Screenshot 2025-05-07 at 20 38 53" src="https://github.com/user-attachments/assets/9fbb7e40-3c01-4473-88d8-3469758ed06b" />
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added dedicated embed actions for PDF and video attachments, ensuring consistent sizing and improved rendering for these media types.
- **Refactor**
- Centralized PDF and video embed card dimensions using shared constants for more consistent and maintainable sizing.
- Improved styling for video embeds, including better layout and responsive sizing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced new exports related to workspace management, making additional workspace features available.
- **Refactor**
- Updated how document and workspace types are imported and exported, consolidating and reorganizing module structure.
- Shifted dependency management for document instances to use an internal provider mechanism.
- Streamlined and centralized type imports across various modules.
- **Bug Fixes**
- Removed an unused schema definition to improve code clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3400](https://linear.app/affine-design/issue/BS-3400/ui-issues)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- The "View in Page" button has been renamed to "Open in Page" and now uses a new icon for improved clarity.
- The menu for embedded synced documents is now integrated directly into the Open button for a more streamlined interface.
- **Style**
- Improved spacing and visual alignment in edgeless block headers, including dedicated styling for title icons and buttons.
- Updated toolbar icon for better visual consistency.
- Added background styling for embedded linked document blocks.
- **Localization**
- Updated translation keys and text to reflect the "Open in Page" terminology across all supported languages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved how bookmark and footnote icons are displayed by routing image URLs through an image proxy service for enhanced reliability and consistency.
- **Refactor**
- Adjusted the timing of service configuration for link previews and image proxies to occur after document initialization, ensuring more robust setup during content rendering.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3352](https://linear.app/affine-design/issue/BS-3352/[improvement]-附件上传时禁止切-view)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved the logic for enabling or disabling the embed and card actions in the attachment toolbar, ensuring actions are only available when the file is ready and conditions are met.
- **Refactor**
- Enhanced reliability by centralizing block state checks and refining conditions for action availability in the attachment dropdown menu.
- Centralized resource state management with a new computed signal, improving consistency in loading and error state handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL:DR
fix: cannot input space at the beginning of a blank paragraph
> CLOSE BS-3427
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved space key handling in the editor: pressing space on an empty AI input now hides the AI panel and inserts a space character back into the editor.
- **Bug Fixes**
- Prevented the AI panel from processing empty input when space is pressed, ensuring smoother user experience.
- **Tests**
- Added an end-to-end test verifying that pressing space on an empty AI input hides the AI panel and inserts a space.
- **Refactor**
- Streamlined event handling logic for space key detection in the editor.
- **Chores**
- Enhanced editor content retrieval to optionally preserve whitespace while removing invisible characters.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new store management system for handling document stores, improving efficiency and flexibility when working with document data.
- **Refactor**
- Updated internal store handling to use a centralized store container, simplifying store retrieval and removal across various components.
- Renamed and updated several store-related method signatures for consistency and clarity.
- Replaced editor extension loading logic with a new local implementation for better modularity.
- **Chores**
- Improved and streamlined the export of store-related modules for better maintainability.
- Removed obsolete and redundant code related to previous store management approaches.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Related to: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-loading-和错误样式)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a unified resource controller for managing image and attachment resources, providing improved loading, error, and state handling.
- Added a visual loading indicator overlay to image blocks for better feedback during image loading.
- **Improvements**
- Simplified and centralized image and attachment state management, reducing redundant properties and manual state tracking.
- Updated fallback UI for image blocks with clearer titles, descriptions, and improved layout.
- Enhanced batch image block creation and download handling for improved efficiency.
- Refined image block accessibility with improved alt text and streamlined rendering logic.
- Centralized target model selection for image insertion in AI actions.
- Reordered CSS declarations without affecting styling.
- Improved reactive state tracking for blob upload/download operations in mock server.
- **Bug Fixes**
- Improved cleanup of object URLs to prevent resource leaks.
- Adjusted toolbar logic to more accurately reflect available actions based on image state.
- **Tests**
- Updated end-to-end tests to match new UI text and behaviors for image loading and error states.
- **Chores**
- Refactored internal logic and updated comments for clarity and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added enhanced privacy controls by including the `credentialless` attribute to embedded content iframes for PDF, Figma, Loom, YouTube, and generic iframe blocks. This helps improve security and privacy when displaying embedded content.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of oversized blobs by allowing operations to continue after notifying about size limits, instead of stopping execution with an error.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Updated integration test configuration to automatically retry failed tests up to 3 times in CI environments, improving test reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3398](https://linear.app/affine-design/issue/BS-3398/实现资源控制器)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced a ResourceController for centralized and reactive management of attachment resource states, improving error handling, loading indicators, and UI state resolution for attachments.
- Added public access to resource management utilities via new export paths.
- **Refactor**
- Streamlined attachment state management by replacing manual state tracking with the new ResourceController, simplifying code and enhancing maintainability.
- Updated rendering logic for attachments to use unified state objects for clearer UI feedback.
- Centralized blob URL creation and download state management within the ResourceController.
- **Chores**
- Updated dependencies and internal references to reflect the new resource management approach, ensuring consistency across packages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3332](https://linear.app/affine-design/issue/BS-3332/错误信息)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved error messages when file uploads exceed the allowed size, now showing the maximum file size limit in a human-readable format.
- Enhanced status updates for oversized files by displaying clear error messages during blob uploads.
- **Style**
- Error messages for file size limits are now more user-friendly and informative.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Updated workflow to move the node_modules directory during the build process.
- Adjusted Prisma client output directory for improved file organization.
- Removed unused properties from backend server package configuration.
- **Refactor**
- Simplified type annotations for improved code clarity in test utilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Updated a backend dependency to the latest version to ensure continued compatibility and improvements. No user-facing changes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Improved reliability of chat panel end-to-end tests by refining the sequence of UI interactions and wait conditions during tag and collection selection.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2590
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Improved the flexibility of the "Unused blobs" count test by dynamically verifying the count before and after deletion, instead of relying on hardcoded values.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2572


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a Meetings welcome page with a beta disclaimer and "Get Started" flow.
- Added separate toggles for AI auto summary and AI auto todo list in meeting settings.
- Added "Beta" labels to relevant settings and sidebar items for clearer feature status.
- Enhanced settings UI with improved headers, subtitles, and new styling.
- **Improvements**
- Meeting settings now allow independent control over AI-generated summaries and todo lists.
- Updated internationalization to support new meeting and AI transcription features, including richer prompts and hints.
- Refined logic for enabling meeting recording, including improved permission handling.
- Simplified transcription logic to rely solely on AI enablement flag.
- **Bug Fixes**
- Fixed display and control of meeting settings based on beta disclaimer acceptance.
- **Chores**
- Updated localization files and completeness percentages for several languages.
- Removed deprecated feature flag for enabling meetings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a preview mode for code blocks, allowing users to toggle between code and rendered previews (e.g., HTML output) directly within the editor.
- Added a preview toggle button to the code block toolbar for supported languages.
- Enabled dynamic rendering of code block previews using a shared WebContainer, allowing live HTML previews in an embedded iframe.
- Added HTML preview support with loading and error states for enhanced user feedback.
- Integrated the preview feature as a view extension provider for seamless framework support.
- **Bug Fixes**
- Improved toolbar layout and button alignment for a cleaner user interface.
- **Tests**
- Added end-to-end tests to verify the new code block preview functionality and language switching behavior.
- **Chores**
- Updated development server configuration to include enhanced security headers.
- Added a new runtime dependency for WebContainer support.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Streamlined internal logic for handling block operations to improve efficiency.
- Removed unused reactive subject and related code from document handling classes.
- Renamed a private initialization method for improved clarity.
- **Chores**
- Cleaned up redundant code and imports to simplify maintenance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Streamlined internal event handling for block updates, removing previous notification mechanisms from several components.
- **Chores**
- Simplified and cleaned up internal logic related to block addition and deletion tracking.
No visible changes to the user interface or end-user features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Updated usage of JavaScript interop types to newer API versions for improved compatibility and consistency.
- Changed method and type signatures to use updated types in several areas.
- Removed an unused constructor from one component.
- Adjusted a method to use a different JavaScript array buffer type for update callbacks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR make out-of-viewport but selected edgeless block keep active, since the selected block may still have some user interactions on the DOM. For example, when hover on a selected note and scroll viewport by wheel to view its hidden content, the note should not be hidden (a.k.a idel).
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Updated viewport logic to keep selected items visible instead of only those being edited. Visibility now depends on selection status rather than editing state.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AF-2576
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a new English translation for "Add docs" in the folder organization section of the app sidebar.
- **Chores**
- Updated translation completeness percentage for the "es-CL" locale.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved stability of the toolbar menu by preventing errors when user information is unavailable.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix#10541
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated keyboard shortcuts for switching tabs to use 'Control+Tab' and 'Control+Shift+Tab'.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
Improved the test stability for the turbo renderer by using reactive state observation instead of arbitrary timeouts. (https://github.com/toeverything/AFFiNE/actions/runs/14729729312/job/41340918866?pr=12071)
### What changed?
- Replaced `wait(FRAME)` and other timeout-based waits with reactive state observation using RxJS
- Added `filter` import from `rxjs/operators`
- Updated test assertions to properly wait for specific renderer states (`ready`, `pending`, `zooming`)
- Made tests more deterministic by waiting for specific state transitions rather than arbitrary time periods
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Tests**
- Improved test reliability by replacing fixed-duration waits with reactive waits based on renderer state changes, ensuring tests are synchronized with actual state transitions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Undo/redo history management is now centralized in the workspace, providing more consistent and robust undo/redo behavior.
- History update events are emitted at the workspace level, enabling better tracking of changes.
- **Bug Fixes**
- Improved reliability of undo/redo actions by shifting history management from documents to the workspace.
- **Documentation**
- Updated and clarified documentation for history-related APIs, including improved examples and clearer descriptions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added citation component, making citation-related features available in the application.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3396
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced structured and validated configuration options for database and linked document views, allowing for more flexible and reliable customization.
- Enhanced view manager to conditionally enable AI-related paragraph placeholders and database/linked document extensions based on configuration.
- **Chores**
- Updated dependencies to include the latest version of the Zod validation library.
- Simplified and consolidated internal configuration and registration logic for AI and widget-related extensions.
- **Refactor**
- Streamlined configuration types and removed unused or redundant configuration utilities to improve maintainability.
- Improved robustness of linked widget configuration retrieval to handle optional service availability gracefully.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved mobile experience by disabling certain toolbars and slash menu features on mobile devices.
- Introduced new modular extension classes for editor and view customization, enabling more flexible configuration of themes, AI features, and editor enhancements.
- Added clipboard adapter configurations for a wide range of data types, improving clipboard compatibility.
- Added a new theme extension specifically for preview scenarios.
- Provided new hooks for block scope management in document modules.
- **Refactor**
- Streamlined editor extension setup, consolidating options and reducing complexity for better maintainability.
- Reorganized mobile-specific extension exports for clearer usage.
- Refined React-to-Lit rendering API by introducing a typed alias and updating related function signatures.
- Simplified extension registration by splitting monolithic view extension into separate common and editor view extensions.
- **Bug Fixes**
- Corrected naming inconsistencies in internal effect tracking.
- **Chores**
- Updated type exports and documentation comments for improved clarity and consistency.
- Removed unused or redundant exports and functions to clean up the codebase.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3388](https://linear.app/affine-design/issue/BS-3388/embed-doc-拖入后的初始高度不要超过800,不要限制用户随后的调整空间)
This PR impl a extension which initialize the height of added `affine-embed-edgeless-synced-doc-block` to fit its content
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved handling of embedded synced document block height to better fit content within edgeless mode.
- **Tests**
- Added an end-to-end test to verify correct height adjustment for embedded synced documents in edgeless mode.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3369](https://linear.app/affine-design/issue/BS-3369/昨天发现-footnote-中的引用,和实际渲染出来的对不上)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of URLs in footnote definitions to ensure all URLs are fully percent-encoded, including those that were only partially encoded before.
- **Tests**
- Added a new test case to verify that partially encoded URLs in footnotes are now fully encoded as expected.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3343](https://linear.app/affine-design/issue/BS-3343/处理文档-readonly-时-bookmark-citation-preview-data-的获取和显示)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved bookmark blocks to display link previews even in readonly mode by dynamically fetching preview data when needed.
- **Refactor**
- Enhanced event handling for bookmark cards, providing more consistent behavior when selecting or opening bookmarks.
- Refined how preview data is sourced and rendered for bookmarks, ensuring more accurate and up-to-date information is shown.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added paginated document listing for workspaces, allowing users to browse documents with pagination controls.
- Enhanced document details to display creation and update timestamps, as well as information about the creator and last updater.
- **Bug Fixes**
- Updated deprecation notice for workspace document metadata fields to guide users to the latest recommended field.
- **Tests**
- Added new tests to verify document info retrieval and pagination functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
* Unified loading icon
* Removed loading icon on image block
* Fixed color of circle on loading icon
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Icons in image fallback and loading states now automatically adapt to the current theme (light or dark mode) for a more consistent visual experience.
- **Style**
- Updated loading, success, and error icons to support theming and improved their color assignments for better visibility in different themes.
- **Refactor**
- Replaced static icon usage across several components with dynamic, theme-aware icons to ensure consistent appearance throughout the app.
- Removed static SVG icon exports and replaced them with theme-aware icon functions for improved maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Workspace quota information now includes a new metric: the count of members exceeding seat capacity ("overcapacityMemberCount"), available in both numeric and human-readable formats.
- The workspace quota display and related queries have been updated to show this new overcapacity member count alongside existing quota metrics.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3393
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new "Embed Doc" block, enabling embedding and rendering of linked and synced documents within cards, including support for banners and note previews.
- Added new toolbar and quick search options for inserting embedded linked and synced documents.
- **Improvements**
- Updated dependencies and internal references to support the new embed doc functionality across related blocks and components.
- Enhanced support for edgeless environments with new clipboard and configuration options for embedded docs.
- **Refactor**
- Streamlined and reorganized embed-related code, moving linked and synced doc logic into a dedicated embed doc module.
- Removed obsolete adapter and utility files to simplify maintenance.
- **Chores**
- Updated project and TypeScript configuration files to include the new embed doc module in builds and references.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AI-113
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enabled the use of a web search tool for the "Chat With AFFiNE AI" prompt, allowing responses to leverage online information.
- Added support for multiple tools in AI chat interactions.
- **Improvements**
- Refined language handling to better match the user's query language.
- Updated user instructions to clarify that responses will be in the user's preferred language.
- Enhanced streaming and tool selection for AI-generated text responses.
- **Other Changes**
- Introduced a new workspace member status: AllocatingSeat.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enabled web search capabilities in the "Chat With AFFiNE AI" prompt, allowing users to access web-based information directly within the chat.
- **Improvements**
- Enhanced support for multiple tools in AI chat prompts, paving the way for future tool integrations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a unified loading spinner icon that adapts to light or dark themes automatically.
- **Refactor**
- Streamlined loading icon usage across the app by replacing multiple theme-based icons with a single helper function for consistent and simplified icon management.
- **Chores**
- Removed an unused dependency to improve package management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3358](https://linear.app/affine-design/issue/BS-3358/remark-callout-plugin)
Closes: [BS-3247](https://linear.app/affine-design/issue/BS-3247/callout-markdown-adapter-适配)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for callout blocks in Markdown, enabling recognition and conversion of callout syntax (e.g., `[!emoji]`) to and from block structures.
- **Bug Fixes**
- Improved handling to distinguish callout blocks from regular blockquotes and paragraphs during Markdown processing.
- **Tests**
- Introduced comprehensive tests for callout block serialization, deserialization, and plugin behavior to ensure correct Markdown handling.
- **Chores**
- Added a new dependency for Markdown AST traversal.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Simplified and removed several internal AI block extension files and utility functions, streamlining the codebase and reducing unused features.
- Updated logic to access editor modes and controllers directly, removing reliance on DOM queries and certain abstractions.
- Reduced and restructured effect type declarations for improved clarity.
- **Bug Fixes**
- Improved type safety in the editor component by explicitly typing queried elements.
- **Chores**
- Removed obsolete exports and internal functions with no impact on user-facing functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3288](https://linear.app/affine-design/issue/BS-3288/从note转换-linked-doc-时,默认把note的第一行填入doc拟定的标题)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- When converting a note block to a linked document, the initial document title now uses the first paragraph in the note (if available) as a placeholder.
- **Tests**
- Updated tests to verify that the linked document creation modal pre-fills the title with the note's first paragraph and checks for correct paragraph order.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Updated the AI model used for the "Chat With AFFiNE AI" feature to enhance chat capabilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for App Tracking Transparency, including requesting user permission at runtime and providing a clear privacy usage description.
- **Dependency Updates**
- Updated the "apollo-ios" package to version 1.20.0.
- Added the "capacitor-plugin-app-tracking-transparency" package and its related pod dependency.
- **Localization**
- Added a new localized privacy usage description for tracking permission requests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3268](https://linear.app/affine-design/issue/BS-3268/edgeless-下,-dark-mode-embed的配色应该更加清晰)
Close [BS-3067](https://linear.app/affine-design/issue/BS-3067/在embed上,添加split-view等相关的操作入口,基本接近page-block(见设计稿))
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced an interactive header for embedded synced documents with fold/unfold toggle, document opening, and multiple view options.
- Added info and copy link buttons for embedded synced documents and notes to improve document management and sharing.
- **Enhancements**
- Updated styles for embedded synced document blocks and headers for better visual consistency.
- Added new localization entries for header actions: "Fold", "Unfold", and "Open".
- Disabled redundant open document actions in toolbars, centralizing controls in the header.
- **Refactor**
- Unified header button components for notes and embedded synced documents into reusable components.
- Simplified header components by delegating button behaviors to shared components.
- **Bug Fixes**
- Fixed conditional rendering of editor content in embedded synced documents when folded.
- **Chores**
- Upgraded theme dependency version from "^1.1.12" to "^1.1.14" across multiple packages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3066](https://linear.app/affine-design/issue/BS-3066/优化长note的展示和折叠)
- Enhanced the visibility behavior of hidden content in edgeless notes by:
- Showing hidden content when a note is being edited, even when it's outside the viewport
- Improving hover behavior with a delay when leaving from the bottom of the note
- Adding proper cleanup of hover timeouts when the component is disconnected
- Optimizing the viewport element to keep editing blocks or elements visible
## Testing
- Added new E2E test cases covering:
- Hover behavior on selected notes
- Content visibility during editing
- Viewport scrolling behavior
- Edge cases for content visibility
## Impact
This change improves the user experience when working with collapsed notes in edgeless mode by making the content more accessible and preventing accidental content hiding during editing.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved visibility of hidden content in edgeless notes when hovering near the bottom edge or editing the note, especially after resizing or clipping.
- **New Features**
- Enhanced hover behavior with delayed clearing based on mouse position to improve user experience.
- **Tests**
- Added new tests verifying hidden content visibility in edgeless notes during hover and editing, simulating diverse user interactions.
- **Chores**
- Added utilities to get and set viewport center for improved test control.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3379](https://linear.app/affine-design/issue/BS-3379/恢复在-loading-或错误时-attachments-的背景色)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated the background color of attachment cards in loading and error states for a more consistent appearance.
- **Bug Fixes**
- Improved the handling and display of loading and uploading states for attachment cards to better reflect their current status.
- **Chores**
- Added new workspace dependencies and project references to enhance synchronization capabilities across related modules.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3382
Closes: BS-3381
Closes: BS-3380
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced new view extensions for document title, frame panel, and outline fragments, enhancing modularity and extensibility.
- **Refactor**
- Updated export structure for fragments to support directory-based modules and added dedicated view module exports.
- Replaced a centralized view extension with individual fragment-based view extensions for improved clarity.
- **Chores**
- Updated dependencies and TypeScript project references to ensure compatibility and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3175](https://linear.app/affine-design/issue/BS-3175/剪刀剪出来的段落,排序应该紧跟原段落,而不是排到所有段落最后)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved the accuracy of new note insertion, ensuring new notes are added immediately after the anchor note in the correct order.
- **Tests**
- Enhanced end-to-end tests for note slicing, including more interactions and assertions to verify correct note order and display modes after slicing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close: BS-3378
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a modular virtualized table view with grouping, selection, drag-and-drop, clipboard support, and batch task management for optimized rendering.
- Added comprehensive keyboard shortcuts, drag-to-fill functionality, and clipboard operations for efficient table editing.
- Enabled dynamic column statistics, number formatting controls, and flexible switching between virtual and standard table views via a feature flag.
- Provided detailed row and group header/footer components with context menus, row management actions, and column reordering/resizing.
- Added a table view selector component to toggle between virtual and standard table views based on feature flags.
- **Style**
- Added extensive styling modules for virtual table elements including headers, footers, rows, cells, and interactive controls.
- **Chores**
- Registered numerous custom elements via modular effect functions to streamline component initialization.
- Updated feature flag system to include virtual table scrolling toggle.
- Added new dependencies to support styling and component functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3202
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced new root block store and view extensions, enhancing modularity and integration options for root block functionality.
- Exported the EdgelessLocker class for broader usage.
- **Improvements**
- Updated export paths for root block modules, enabling clearer and more flexible module access.
- Enhanced view extension setup to better tailor user interface and interactions based on context.
- **Removals**
- Removed legacy migrating store and view extension logic, streamlining extension management and reducing unused code.
- Removed multiple deprecated block specifications and common extension collections to simplify the codebase.
- Deleted AI page root block specification, retaining only lifecycle watcher functionality.
- **Chores**
- Updated dependencies and project references to support new extension loader integration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-29 17:20:42 +08:00
2290 changed files with 83695 additions and 32581 deletions
"description":"The config for copilot job queue\n@default {\"concurrency\":1}",
"description":"The config for copilot job queue\n@default {\"concurrency\":5}",
"properties":{
"concurrency":{
"type":"number"
}
},
"default":{
"concurrency":5
}
},
"queues.doc":{
"type":"object",
"description":"The config for doc job queue\n@default {\"concurrency\":1}",
"properties":{
"concurrency":{
"type":"number"
@@ -58,9 +70,9 @@
"concurrency":1
}
},
"queues.doc":{
"queues.indexer":{
"type":"object",
"description":"The config for doc job queue\n@default {\"concurrency\":1}",
"description":"The config for indexer job queue\n@default {\"concurrency\":1}",
"properties":{
"concurrency":{
"type":"number"
@@ -123,32 +135,6 @@
}
}
},
"websocket":{
"type":"object",
"description":"Configuration for websocket module",
"properties":{
"transports":{
"type":"array",
"description":"The enabled transports for accepting websocket traffics.\n@default [\"websocket\",\"polling\"]\n@link https://docs.nestjs.com/websockets/gateways#transports",
"items":{
"type":"string",
"enum":[
"websocket",
"polling"
]
},
"default":[
"websocket",
"polling"
]
},
"maxHttpBufferSize":{
"type":"number",
"description":"How many bytes or characters a message can be, before closing the session (to avoid DoS).\n@default 100000000",
"default":100000000
}
}
},
"auth":{
"type":"object",
"description":"Configuration for auth module",
@@ -501,6 +487,32 @@
}
}
},
"websocket":{
"type":"object",
"description":"Configuration for websocket module",
"properties":{
"transports":{
"type":"array",
"description":"The enabled transports for accepting websocket traffics.\n@default [\"websocket\",\"polling\"]\n@link https://docs.nestjs.com/websockets/gateways#transports",
"items":{
"type":"string",
"enum":[
"websocket",
"polling"
]
},
"default":[
"websocket",
"polling"
]
},
"maxHttpBufferSize":{
"type":"number",
"description":"How many bytes or characters a message can be, before closing the session (to avoid DoS).\n@default 100000000",
"default":100000000
}
}
},
"server":{
"type":"object",
"description":"Configuration for server module",
@@ -634,6 +646,13 @@
"apiKey":""
}
},
"providers.anthropic":{
"type":"object",
"description":"The config for the anthropic provider.\n@default {\"apiKey\":\"\"}",
"default":{
"apiKey":""
}
},
"unsplash":{
"type":"object",
"description":"The config for the unsplash key.\n@default {\"key\":\"\"}",
@@ -641,6 +660,13 @@
"key":""
}
},
"exa":{
"type":"object",
"description":"The config for the exa web search key.\n@default {\"key\":\"\"}",
"default":{
"key":""
}
},
"storage":{
"type":"object",
"description":"The config for the storage provider.\n@default {\"provider\":\"fs\",\"bucket\":\"copilot\",\"config\":{\"path\":\"~/.affine/storage\"}}",
"description":"Indexer search service provider name\n@default \"manticoresearch\"\n@environment `AFFINE_INDEXER_SEARCH_PROVIDER`",
"default":"manticoresearch"
},
"provider.endpoint":{
"type":"string",
"description":"Indexer search service endpoint\n@default \"http://localhost:9308\"\n@environment `AFFINE_INDEXER_SEARCH_ENDPOINT`",
"default":"http://localhost:9308"
},
"provider.apiKey":{
"type":"string",
"description":"Indexer search service api key. Optional for elasticsearch\n@default \"\"\n@environment `AFFINE_INDEXER_SEARCH_API_KEY`\n@link https://www.elastic.co/guide/server/current/api-key.html",
"default":""
},
"provider.username":{
"type":"string",
"description":"Indexer search service auth username, if not set, basic auth will be disabled. Optional for elasticsearch\n@default \"\"\n@environment `AFFINE_INDEXER_SEARCH_USERNAME`\n@link https://www.elastic.co/guide/en/elasticsearch/reference/current/http-clients.html",
"default":""
},
"provider.password":{
"type":"string",
"description":"Indexer search service auth password, if not set, basic auth will be disabled. Optional for elasticsearch\n@default \"\"\n@environment `AFFINE_INDEXER_SEARCH_PASSWORD`",
"default":""
},
"autoIndex.batchSize":{
"type":"number",
"description":"Number of workspaces automatically indexed per batch\n@default 10",
@@ -89,7 +89,7 @@ Star us, and you will receive all release notifications from GitHub without any
**Self-host & Shape your own AFFiNE**
- You have the freedom to manage, self-host, fork and build your own AFFiNE. Plugin community and third-party blocks are coming soon. More tractions on [Blocksuite](https://blocksuite.io). Check there to learn how to [self-host AFFiNE](https://docs.affine.pro/docs/self-host-affine).
- You have the freedom to manage, self-host, fork and build your own AFFiNE. Plugin community and third-party blocks are coming soon. More tractions on [Blocksuite](https://blocksuite.io). Check there to learn how to [self-host AFFiNE](https://docs.affine.pro/self-host-affine).
## Acknowledgement
@@ -191,7 +191,9 @@ We would like to express our gratitude to all the individuals who have already c
## Self-Host
Begin with Docker to deploy your own feature-rich, unrestricted version of AFFiNE. Our team is diligently updating to the latest version. For more information on how to self-host AFFiNE, please refer to our [documentation](https://docs.affine.pro/docs/self-host-affine).
Begin with Docker to deploy your own feature-rich, unrestricted version of AFFiNE. Our team is diligently updating to the latest version. For more information on how to self-host AFFiNE, please refer to our [documentation](https://docs.affine.pro/self-host-affine).
[](https://template.run.claw.cloud/?openapp=system-fastdeploy%3FtemplateName%3Daffine)
'The added link will be displayed as a card view.',
{mode:'page',parentModel,index}
{mode:'page',parentModel,index},
({mode})=>{
if(mode==='edgeless'){
constgfx=std.get(GfxControllerIdentifier);
gfx.tool.setTool(DefaultTool);
}
}
)
.then(()=>{
if(model.text?.length===0){
model.doc.deleteBlock(model);
model.store.deleteBlock(model);
}
})
.catch(console.error);
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.