<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Removed internal utilities related to connector management and tree structure traversal. No changes to user-facing features or functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3122](https://linear.app/affine-design/issue/BS-3122/footnote-definition-adapter-适配)
Closes: [BS-3123](https://linear.app/affine-design/issue/BS-3123/几个-block-card-view-适配-footnote-态)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new citation card component and web element for displaying citations.
- Added support for citation-style rendering in attachment, bookmark, and linked document blocks.
- Enabled citation parsing from footnote definitions in markdown for attachments, bookmarks, and linked docs.
- Added a feature flag to enable or disable citation features.
- Provided new toolbar logic to disable downloads for citation-style attachments.
- **Improvements**
- Updated block models and properties to support citation identifiers.
- Added localization and settings for the citation experimental feature.
- Enhanced markdown adapters to recognize and process citation footnotes.
- Included new constants and styles for citation card display.
- **Bug Fixes**
- Ensured readonly state is respected in block interactions and rendering for citation blocks.
- **Documentation**
- Added exports and effects for new citation components and features.
- **Tests**
- Updated snapshots to include citation-related properties in block data.
<!-- 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 security by adding cross-origin isolation headers to HTTP responses in the desktop app.
- **Bug Fixes**
- Enhanced reliability of worker connections by ensuring workers are fully loaded before establishing communication.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3339](https://linear.app/affine-design/issue/BS-3339/一个frame插入到page之后大的离谱)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Improvements**
- Enhanced the accuracy and responsiveness of viewport and reference content rendering for surface references.
- Adjusted padding for a more consistent viewing experience.
- Improved handling of referenced elements to ensure smoother updates and display.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3368
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new link tool extension, enabling enhanced link-related functionality within the edgeless workspace.
- Added a new view extension for link tools, improving integration and usability in edgeless mode.
- **Chores**
- Added a new package for link tool functionality with appropriate dependencies and exports.
- Registered new custom elements for edgeless toolbars and link tools to support modular UI components.
- Updated project configurations and workspace dependencies to include the new link tool module.
- **Refactor**
- Removed unused quick tool exports and toolbar component registrations to streamline the edgeless extension codebase.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
For canvas elements, this PR adds placeholders during zooming operations to improve performance.

### What changed?
- Implemented placeholder rendering during zooming operations in the canvas renderer, but not only DOM.
- Added a `forceFullRender` property to the `GfxCompatibleInterface` to allow elements to opt out of placeholder rendering
- Set `forceFullRender = true` for connectors to ensure they always render properly, even during zooming
- Connected the turbo renderer to the viewport's zooming state to automatically switch between full and placeholder rendering
### Why make this change?
Rendering complex elements during zooming operations can cause performance issues and make the UI feel sluggish. Rendering connector label also leads to high cost DOM `set font` delays.

The turbo renderer improves performance by displaying simple placeholders for elements during zooming, while still rendering critical elements like connectors fully. This creates a smoother user experience while maintaining essential visual information.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a feature-flag-controlled "turbo" rendering mode that displays placeholder graphics during zooming for improved performance.
- Added the ability to override placeholder rendering for specific elements, ensuring full rendering when required.
- **Bug Fixes**
- Enhanced rendering logic to ensure connectors always render fully, even during zoom operations.
- **Documentation**
- Updated API documentation to reflect new properties related to rendering behavior.
- **Tests**
- Improved tests to verify correct rendering behavior for connectors.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3364
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new "Page Dragging Area" widget, enabling enhanced block selection and drag area detection within the user interface.
- Added utilities for more precise block selection based on rectangular selection areas.
- **Improvements**
- Integrated the new widget into the view extension system for consistent behavior across supported views.
- Enhanced clipboard handling with comprehensive adapter configurations for various data types.
- **Refactor**
- Streamlined widget registration and block selection logic for improved maintainability and modularity.
- Removed legacy widget exports and registrations to centralize widget management.
- **Chores**
- Updated workspace and TypeScript configurations to support the new widget module.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-attachment-错误样式)
Closes: [BS-3341](https://linear.app/affine-design/issue/BS-3341/attachment-select状态ui调整)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved attachment block with unified reactive state handling for loading, errors, and downloads.
- Enhanced card layouts with modular rendering and dynamic buttons based on state.
- **Bug Fixes**
- Fixed UI state for "Embed view" action, now correctly disabled when not embedded.
- Resolved attachment card styling issues and text overflow with new utility classes.
- **Refactor**
- Streamlined attachment block rendering and state management for better performance and maintainability.
- Updated toolbar configuration for consistent parameter naming.
- Simplified embedded and open methods for improved clarity.
- Made internal functions private to reduce exported API surface.
- **Chores**
- Removed unused icon export and legacy upload tracking functions.
- Updated attachment utilities to use reactive state, added data refresh, and improved error handling.
- Refined image dimension handling for consistent resizing behavior.
- Improved test selectors to target focused attachment containers for better reliability.
- Refactored CSS to separate container and card styling and adopt theme-based colors consistently.
<!-- 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 clipboard support with multiple adapter configurations for various MIME types, improving clipboard handling and compatibility.
- **Refactor**
- Relocated clipboard adapter configurations to a new location for better organization and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3360
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new viewport overlay widget, making it available as part of the workspace and enabling its integration into supported pages.
- **Refactor**
- Updated internal imports and exports to utilize the new viewport overlay widget package.
- Streamlined widget registration and extension mechanisms for improved modularity.
- **Chores**
- Added configuration and project references to support the new viewport overlay widget package in the build system.
<!-- 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 test setup to automatically skip onboarding steps during environment initialization.
- Simplified test utility methods by removing notification handling logic from chat panel and editor mode switching processes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [BS-3357](https://linear.app/affine-design/issue/BS-3357/duplicate-note-注意设置z轴的数据)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Duplicating an edgeless note now ensures the new note appears above other elements in the stacking order.
- **Tests**
- Added a test to verify that duplicated edgeless notes are rendered above existing elements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-59](https://linear.app/affine-design/issue/AI-59)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for two new providers, Anthropic and Exa, in test environments and configurations.
- **Chores**
- Updated workflow and test environment setup to include API keys for Anthropic and Exa providers.
- **Refactor**
- Changed the AI model used for the "Chat With AFFiNE AI" prompt to "claude-3-7-sonnet-20250219".
<!-- 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 crossorigin attribute to all CSS and JavaScript tags in generated HTML, improving compatibility for cross-origin resource loading.
- **Tests**
- Updated tests to verify the presence of the crossorigin attribute in script tags.
<!-- 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**
- Ignored documents in workspace embedding now display additional metadata, including document title, creation and update timestamps, and the names and avatars of users who created or updated the document.
- **Enhancements**
- The list of ignored documents provides richer information for easier identification and management within the workspace.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Support [AI-60](https://linear.app/affine-design/issue/AI-60).
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Updated naming conventions for the web search tool to ensure consistency across AI chat features.
- Simplified internal handling of web search tool options for a more streamlined experience.
- Unified parameter naming from "mustSearch" to "webSearch" across AI chat inputs and actions.
- **Chores**
- Removed unused configuration options related to web search from prompt settings.
- Added support for enabling or disabling web search via new parameters in chat requests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3303](https://linear.app/affine-design/issue/BS-3303/改進-pack-attachment-props-流程)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced attachment and image uploads with improved file size validation and clearer notifications.
- Upload telemetry tracking added for attachments to monitor upload success or failure.
- **Refactor**
- Streamlined and unified the process of adding attachments and images, making uploads more reliable and efficient.
- Parameter names updated for clarity across attachment and image insertion features.
- **Documentation**
- Updated API documentation to reflect parameter name changes for consistency.
<!-- 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 Affine Foundation package, providing a centralized layer for initializing core UI effects, custom elements, and foundational services.
- Added new foundational store and view extensions to improve core service registration and UI effect setup.
- **Refactor**
- Streamlined and reorganized block, store, and view extension arrays to rely on the new foundation layer, reducing duplication and simplifying extension management.
- Removed redundant or now-centralized services and UI effects from existing modules.
- **Chores**
- Updated configuration files and workspace dependencies to support the new Affine Foundation package.
<!-- 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 search menu logic by removing unnecessary filtering and parameters from menu item generation. No changes to visible functionality.
- **Bug Fixes**
- Improved search index matching to retrieve all relevant entries, enhancing search accuracy.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3137](https://linear.app/affine-design/issue/BS-3137/在-bs-添加-blobstate-接口)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced real-time status tracking for file upload and download operations, allowing users to monitor progress and errors more effectively.
- **Improvements**
- Enhanced icon display for attachments, providing a refreshed visual experience.
- Improved update frequency and accuracy for file synchronization status indicators.
- **Bug Fixes**
- Refined internal logic for filtering status updates, ensuring more precise feedback during file 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
- **Refactor**
- Updated and reorganized import paths for transcription block models and types to improve module structure and maintainability.
- **Chores**
- Removed deprecated transcription block schema and related exports from core libraries.
- Registered transcription block schema directly within the workspace schema for improved schema management.
- **Bug Fixes**
- Ensured consistent registration and availability of transcription block features across relevant modules.
<!-- 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 pointer graphics module with tools and quick tool integration for edgeless surfaces.
- Added a quick tool button for pointer interactions in edgeless mode.
- Exposed new extension points for pointer graphics and effects.
- **Improvements**
- Integrated pointer graphics as a dependency into related packages.
- Enhanced toolbar context to support additional surface alignment modes.
- Added conditional clipboard configuration registrations for edgeless contexts across multiple block types.
- **Removals**
- Removed legacy tool and effect definitions and related quick tool exports from edgeless components.
- Streamlined extension arrays and removed unused exports for a cleaner codebase.
- Deleted obsolete utility functions and component registrations.
- **Chores**
- Updated workspace and TypeScript project references to include the new pointer graphics module.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3226
Closes: BS-3227
Closes: BS-3228
Closes: BS-3229
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced new view extensions for remote selection, scroll anchoring, slash menu, and toolbar widgets, enhancing customization and integration capabilities.
- **Refactor**
- Updated export paths and module structure for widget-related packages to improve modularity and accessibility.
- Reorganized internal dependencies and removed redundant widget imports from core block packages.
- Refactored edgeless-related widgets and components to use a standardized scope interface for improved context and state management.
- Centralized graphics controller access and slot management through standardized context objects.
- **Chores**
- Added and updated dependencies to streamline extension loading and workspace management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3223
Closes: BS-3224
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced new view extensions for frame title and keyboard toolbar widgets with conditional registration based on context and environment.
- Enhanced widget integration by adding explicit exports for view components.
- **Chores**
- Updated export paths and package dependencies to improve modularity and compatibility.
- Removed deprecated widget dependencies and related imports from core packages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: BS-3221
Closes: BS-3222
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced extensions that conditionally register edgeless auto-connect and toolbar widgets with associated effects based on the view context.
- Added new exports for edgeless auto-connect and toolbar widget views, making them available for external use.
- **Chores**
- Updated dependencies and project references to include the extension loader for improved module integration.
- Refined workspace configuration to reflect new package dependencies.
- **Refactor**
- Streamlined registration and effect logic by removing legacy integration points for edgeless auto-connect and toolbar widgets.
- Reorganized widget export paths to a more modular directory structure.
- **Bug Fixes**
- Disabled pointer events on the edgeless navigator black background to prevent interaction interference.
<!-- 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 messages without attachments, ensuring a placeholder is shown when content is empty and attachments are omitted.
- **New Features**
- Added the ability to selectively include or exclude attachments in message processing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3302](https://linear.app/affine-design/issue/BS-3302/處理-affine-中的-redos-風險)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of footnote definitions with varied spacing, special characters, and malformed or incomplete entries, ensuring more reliable processing and display.
- **New Features**
- Introduced advanced parsing for footnote URLs to improve accuracy and validation of footnote content.
- **Tests**
- Expanded test coverage for footnote processing to include additional edge cases and mixed content scenarios, enhancing overall robustness.
<!-- 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**
- Expanded file chunk matching to include both context and workspace file embeddings, providing broader and more relevant search results.
- **Improvements**
- Enhanced result ranking by introducing a re-ranking step for combined embedding matches, improving the relevance of returned file chunks.
- Adjusted file count reporting to reflect the total number of workspace files instead of ignored documents for more accurate workspace file statistics.
- Renamed and streamlined workspace file management methods for clearer and more consistent API usage.
- **Bug Fixes**
- Prevented embedding similarity queries when embedding is disabled for a workspace, improving system behavior consistency.
- **Tests**
- Added comprehensive tests to verify workspace embedding management, including enabling, matching, and disabling 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 reliability of migration processing by ensuring migrations are now executed in a defined sequence based on numeric order extracted from their names. Errors will be shown if migration names do not include a valid numeric order suffix.
<!-- 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 an optional password field when creating a new user via the user creation form or API.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-81](https://linear.app/affine-design/issue/AI-81).

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for uploading and handling multiple images in the AI chat interface, with a maximum image limit enforced.
- Chat assistant avatar now visually indicates different statuses, including a transmitting animation.
- **Improvements**
- Enhanced file upload experience by allowing batch image uploads and clearer notifications for files exceeding size limits.
- Stronger status handling for chat assistant messages, improving reliability and user feedback.
- Unified image count limit across chat input components using a shared constant.
- **Bug Fixes**
- Improved consistency in how image limits are enforced across chat components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
close AF-2505
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced calendar event integration in the journal detail page, allowing users to view and interact with calendar events for a selected date.
- Added the ability to create new linked documents from calendar events directly within the journal interface.
- **Improvements**
- Enhanced calendar integration with support for all-day and timed events, improved event grouping by date, and real-time updates.
- Added new English localization entries for calendar event labels.
- **Bug Fixes**
- Improved URL handling for calendar subscriptions, ensuring better compatibility and error feedback.
- **Style**
- Added new styles for calendar event components to ensure a consistent and user-friendly 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**
- Introduced a new "Web Clipper" integration, allowing users to import web pages into AFFiNE via a direct link to the Chrome Web Store.
- **Improvements**
- Integration cards can now display as clickable links or settings panels, depending on the integration.
- **Localization**
- Added English translations for the "Web Clipper" integration name and description.
- **Style**
- Improved card styling to ensure consistent text color, including for visited links.
<!-- 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 test resource cleanup for the viewport turbo renderer, ensuring proper teardown after each test for more reliable and isolated test execution.
- Enhanced stability by preventing errors during cleanup when certain elements or editors are absent.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3113](https://linear.app/affine-design/issue/BS-3113/footnote-popup-ui-更新)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added a description display below the chip in the footnote popup when available.
- **Style**
- Improved the appearance of footnote popups with enhanced border radius, padding, and layout.
- Updated font styling for labels and descriptions.
- Simplified chip styling by reducing height and removing unnecessary CSS properties.
- **Bug Fixes**
- Tooltip content for URL references now displays both the link preview title and URL when available.
- **Refactor**
- Simplified click handling by attaching it to the container instead of individual elements.
- Removed unused click event properties from the footnote popup chip.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-58](https://linear.app/affine-design/issue/AI-58).
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a toggleable AI reasoning feature in the chat interface, allowing users to enable or disable advanced reasoning during AI chat interactions.
- Added a new reasoning button to the chat input for quick access and control.
- **Enhancements**
- Improved chat configuration options to include reasoning settings, providing more flexibility for AI responses.
- Streamlined network search and image upload interactions for a smoother 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
- **Tests**
- Improved test reliability by awaiting the actual state change event instead of using a fixed delay during zooming state verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->