<!-- 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 -->
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
- **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 -->
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
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 -->
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 -->
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 [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**
- 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 -->
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 [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 -->
<!-- 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 -->
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 -->
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 -->
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 -->
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**
- 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 -->
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**
- 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 -->
<!-- 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 -->
<!-- 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 -->
Close [AI-40](https://linear.app/affine-design/issue/AI-40).
### What changed?
- Add anthropic provider.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for Anthropic as a new provider option in Copilot, enabling integration with Anthropic's text generation models.
- Users can now configure Anthropic provider settings, including API key management, through the admin interface.
- **Chores**
- Updated dependencies to include the Anthropic SDK for backend operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fix AI-88
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added support for the new image generation model "gpt-image-1" in both backend and frontend.
- Updated available prompt options to include "gpt-image-1" for image creation actions.
- **Improvements**
- Set a 5-minute timeout for image generation requests to improve reliability.
- **Tests**
- Expanded test coverage to validate image generation using the new "gpt-image-1" prompt.
<!-- 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 view a complete list of ignored documents for a workspace without pagination.
- Introduced separate options to add or remove ignored documents from workspace embeddings.
- Added a new query to fetch all ignored documents for a workspace, including document IDs and creation timestamps.
- **Refactor**
- Reorganized and clarified GraphQL mutations and queries related to managing ignored documents in workspace embeddings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->