<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Chores**
- Updated the default setting for the indexer feature to be disabled by default.
- Added a sample environment variable for enabling the indexer in the example configuration file.
- Introduced a new environment variable for the indexer in the CI workflow configuration.
- **Tests**
- Adjusted test configurations to explicitly enable the indexer feature during test execution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
It would cause the napi-derive not work as expect in workspace level
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved internal handling and type definitions for document parsing, resulting in clearer and more maintainable data structures.
- **Chores**
- Introduced a new feature flag for mobile native builds, enabling conditional compilation for enhanced flexibility across Android and iOS.
- Updated build scripts to support the new feature flag for both Android and iOS platforms.
- Updated iOS app dependencies to newer versions, including Apollo iOS, ChidoriMenu, and swift-collections, and removed SQLite.swift.
- **Tests**
- Enhanced Rust linting and testing workflows to run selectively across workspace packages with the new feature flag enabled.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Close [AI-125](https://linear.app/affine-design/issue/AI-125)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added new provider configurations `geminiVertex` and `anthropicVertex` for Google Vertex AI in backend schema, provider classes, and admin config.
- Introduced `GeminiVertexProvider` and `AnthropicVertexProvider` classes supporting Vertex AI models with specific capabilities.
- Expanded model options for transcription prompts with newer Gemini models.
- Re-exported provider modules to include Vertex AI variants.
- **Improvements**
- Extended provider architecture to support separate Vertex AI configurations and models.
- Updated test setup to replace deprecated provider references with new Vertex variants.
- Consolidated environment variables for server testing with a single `SERVER_CONFIG`.
- **Bug Fixes**
- Updated mock models and import references in tests to align with new provider classes.
- **Chores**
- Added `@ai-sdk/google-vertex` dependency for Vertex AI support.
- Updated dependency list to include `@ai-sdk/google-vertex`.
<!-- 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 revert changes to a specific i18n file after running the i18n build step during automated checks. No impact on user-facing 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
- **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**
- 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 -->
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 -->
<!-- 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 -->
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 -->
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 a unified CLI entry point for server operations and introduced a new CLI executable alias.
- Centralized and simplified server startup, allowing selection between CLI and server modes.
- Added static migration module aggregation for easier migration management.
- **Bug Fixes**
- Improved platform-specific native module loading for better compatibility and reliability.
- **Refactor**
- Streamlined server build, startup, and artifact management processes.
- Reorganized and simplified workflow and configuration files for backend services.
- Transitioned export styles and import mechanisms for native modules to enhance maintainability.
- **Chores**
- Removed unused dependencies and configuration files.
- Updated test cases to reflect refined server flavor logic.
- Adjusted package and build configurations for consistency and clarity.
- **Revert**
- Removed legacy scripts and loaders no longer needed after refactor.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
Relocated AI-related code from `presets` directory to a dedicated `ai` directory for better organization and maintainability.
### What changed?
- Moved AI-related code from `blocksuite/presets/ai` to `blocksuite/ai`
- Relocated AI chat block code from `blocksuite/blocks` to `blocksuite/ai/blocks`
- Updated imports across files to reflect new directory structure
- Renamed `registerBlocksuitePresetsCustomComponents` to `registerAIEffects`
- Fixed path references in GitHub workflow file
### How to test?
1. Build and run the application
2. Verify AI functionality works as expected:
- Test AI chat blocks
- Check AI panel functionality
- Verify AI copilot features
- Ensure AI-related UI components render correctly
### Why make this change?
This restructuring improves code organization by:
- Giving AI features a dedicated directory that better reflects their importance
- Making the codebase more maintainable by grouping related AI functionality
- Reducing confusion by removing AI code from the more general `presets` directory
- Creating clearer boundaries between AI and non-AI related code
feat(ci): add graphite ci optimizer and update job dependencies
This PR adds the Graphite CI optimizer to improve CI efficiency by skipping unnecessary jobs. All workflow jobs have been updated to depend on the optimizer's output.
Changes:
- Add `optimize_ci` job using graphite-ci-action
- Update all jobs to depend on `optimize_ci`
- Add skip conditions based on optimizer output
- Preserve existing job dependencies while adding optimizer dependency
- Handle Redis service configurations and command syntax updates
Note: This PR requires the `GRAPHITE_CI_OPTIMIZER_TOKEN` secret to be configured in the repository settings before the optimizer can be used.
Testing:
- [x] Verified workflow file syntax
- [x] Updated all job dependencies correctly
- [x] Maintained existing job configurations
Link to Devin run: https://app.devin.ai/sessions/3872f4dc4c3341b899646a90c46c4fe3