Commit Graph

9960 Commits

Author SHA1 Message Date
donteatfriedrice
a3b8aaff61 fix(editor): toggle switch style (#12436)
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 -->
2025-05-22 06:13:25 +00:00
fengmk2
c525ca24fd test(server): use mocker (#12435)
<!-- 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 -->
2025-05-22 04:25:20 +00:00
L-Sun
573c2faf76 fix(editor): can not undo and redo of color of edgeless blocks (#12414)
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 -->
2025-05-22 04:10:16 +00:00
L-Sun
9ac1da9fc1 fix(editor): should record edgeless connector mode (#12426)
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 -->
2025-05-22 03:54:31 +00:00
L-Sun
dd816f3284 fix(editor): prevent cursor jumping to title when pressing backspace on the begin of edgeless note (#12410)
Close [BS-3492](https://linear.app/affine-design/issue/BS-3492/白板上的note,在开头按退格键,光标会到page-block的title上)

### Before

https://github.com/user-attachments/assets/334504f2-30f3-4ce2-ba60-a2688a811b53

### After

https://github.com/user-attachments/assets/be26be6c-6cfc-4f69-82b7-1127e0d10a1a

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Bug Fixes**
  - Improved behavior when deleting a note block to ensure the cursor focus does not incorrectly jump to the page title after pressing backspace.

- **Tests**
  - Added a new test to verify that focus remains within the note block after deletion, preventing unwanted cursor movement to the page title.
  - Introduced a utility to check if the document title is focused during tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-22 03:40:16 +00:00
L-Sun
ef717e617c fix(editor): incorrect position of code toolbar in safari and firefox (#12434)
Close [BS-3523](https://linear.app/affine-design/issue/BS-1974/code-block-浮标歪)
This PR fixed that the position of code toolbar is incorrect in Safari. Related PR: https://github.com/toeverything/AFFiNE/pull/10579

### Chromium

![CleanShot 2025-05-22 at 10.58.02.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyRfgiN4RuBxJfrza3SG/fcb7a3b6-9814-47be-82a7-91ebddf4c2cd.png)

### Safari

![CleanShot 2025-05-22 at 10.58.16.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyRfgiN4RuBxJfrza3SG/37d5d91a-dc11-4af2-88e0-c12e965b3818.png)

### Firefox

![CleanShot 2025-05-22 at 10.58.33.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyRfgiN4RuBxJfrza3SG/612bfb9b-2eb4-4ba2-b9cd-2736a459445c.png)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Style**
  - Improved the appearance of code blocks by ensuring they are displayed as block-level elements.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-22 03:20:49 +00:00
LongYinan
58bdabe36a ci: remove continue-on-error on TestFlight job 2025-05-22 11:19:54 +08:00
yoyoyohamapi
45ed9038b6 feat(core): workspace attachment uploading & error (#12330)
### TL;DR

feat: optimize workspace attachment uploading & error display

![截屏2025-05-16 15.29.43.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyktQ6Qwc7H6TiRCFoYN/2408fe5e-e54d-44a8-882c-91e1b26bb660.png)

### 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 -->
v0.22.0-canary.3
2025-05-22 02:35:03 +00:00
fundon
21ea65edc5 feat(core): add status to pdf viewer (#12349)
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 -->
2025-05-22 01:11:03 +00:00
fengmk2
346c0df800 chore(server): support disable indexer plugin (#12408)
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 -->
2025-05-21 13:19:02 +00:00
Flrande
322bd4f76b feat(editor): use code block html preview in make it real (#12418)
<!-- 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 -->
2025-05-21 12:02:49 +00:00
darkskygit
84667b3440 feat(server): workspace embedding status count with files (#12420)
fix AI-32
fix AI-132
2025-05-21 10:51:35 +00:00
darkskygit
7fd3ee957f fix(server): embedding chunks primary key (#12416)
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 -->
2025-05-21 10:51:35 +00:00
darkskygit
c9b296c896 fix(server): process empty doc embedding (#12417)
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 -->
2025-05-21 09:37:22 +00:00
fengmk2
abfc994180 chore(server): support elasticsearch apiKey (#12405) 2025-05-21 08:35:51 +00:00
fengmk2
ff15779208 chore(server): add auto index batch size (#12391)
<!-- 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 -->
2025-05-21 08:35:51 +00:00
EYHN
5b46c66f52 fix(core): fix all docs filters internal state reset (#12412)
<!-- 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 -->
2025-05-21 08:17:51 +00:00
Flrande
2de15e2677 feat(editor): add feature flag for code block html preview (#12397)
<!-- 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 -->
2025-05-21 07:52:24 +00:00
donteatfriedrice
20e93543e2 fix(editor): subscribe docLinkClicked event for text renderer (#12406)
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 -->
2025-05-21 07:34:28 +00:00
yoyoyohamapi
928892c5b4 refactor(core): ai input images display & max images count (#12395)
### 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

![截屏2025-05-20 17.12.02.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyktQ6Qwc7H6TiRCFoYN/e234dd02-3bb8-4ea8-b69b-93c71b203a4e.png)

<!-- 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 -->
2025-05-21 07:19:49 +00:00
akumatus
029a98c435 fix(core): chat block opens and throws an error (#12407)
<!-- 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 -->
2025-05-21 07:05:08 +00:00
yoyoyohamapi
8038ab97e6 feat(core): workspace embedding tracking (#12409)
<!-- 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 -->
2025-05-21 06:50:10 +00:00
L-Sun
6029c4d09b fix(editor): update color of deleted banner of surface-ref (#12393)
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 -->
2025-05-21 06:18:39 +00:00
L-Sun
6430a9842f fix(editor): toc viewer no update after delete heading in edgeless mode (#12411)
Close [BS-3494](https://linear.app/affine-design/issue/BS-3494/在白板删除note的标题,切回page模式,toc没更新)

Other changes: `doc` -> `store`

### Before

https://github.com/user-attachments/assets/ddce20b9-eda2-414b-9452-d8d54a811cf1

### After

https://github.com/user-attachments/assets/7124b8a1-9ab4-4e09-b0ff-7ea2cc9613c2

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Bug Fixes**
  - Improved synchronization of the outline viewer to ensure updates after editing headings in edgeless mode.
- **Tests**
  - Added an end-to-end test verifying that the outline viewer correctly reflects changes made in edgeless mode.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-21 06:03:48 +00:00
yoyoyohamapi
d70f09b498 feat(core): embedding progress (#12367)
### TL;DR

feat: show embedding progress in settings panel

![截屏2025-05-19 20.25.19.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyktQ6Qwc7H6TiRCFoYN/59d8f9ef-0876-4ed5-9c09-db12686adb47.png)

### 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 -->
2025-05-21 05:07:13 +00:00
EYHN
8f352580a7 feat(core): support draft filter (#12400)
<!-- 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 -->
2025-05-21 04:49:44 +00:00
Flrande
41ec438df8 fix(editor): disable iframe border in code block preview (#12398)
<!-- 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 -->
2025-05-21 04:21:45 +00:00
EYHN
4217bfe02d chore(infra): add url test to playwright (#11795)
<!-- 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 -->
2025-05-21 04:07:46 +00:00
CatsJuice
1831d291f1 feat(core): duplicated calendar subscription notification (#12364) 2025-05-21 03:04:01 +00:00
CatsJuice
14cba1be17 feat(core): show name tooltip for calendar event icon (#12362) 2025-05-21 03:04:01 +00:00
donteatfriedrice
bfbbc2342e fix(editor): wrap inline elements in a p tag to avoid treated as paragraph block when importing html (#12389) 2025-05-21 02:45:17 +00:00
donteatfriedrice
1a070367f3 fix(editor): handle html content copied from google docs (#12383)
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 -->
2025-05-21 02:45:17 +00:00
yoyoyohamapi
ae0dbb9faf refactor(core): indexer & embedding -> embedding (#12387)
### 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 -->
2025-05-21 02:28:43 +00:00
CatsJuice
65a14f50c7 fix(mobile): correct initial height for sign in layout (#12380) 2025-05-21 01:39:17 +00:00
CatsJuice
3bc96ba975 feat(mobile): move selfhost sign-in from menu to list (#12379) 2025-05-21 01:39:16 +00:00
CatsJuice
9d234c3ef2 chore(mobile): enable ai button feature flag for canary only (#12377)
<!-- 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 -->
2025-05-21 01:39:16 +00:00
CatsJuice
0737cef9b2 fix(core): correct card view properties display (#12401)
<!-- 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 -->
2025-05-20 14:50:45 +00:00
yoyoyohamapi
3f762cc87b feat(core): embedding status tooltip (#12382)
### TL;DR

feat: display embedding tip for ai chat

![截屏2025-05-20 10.35.11.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyktQ6Qwc7H6TiRCFoYN/c3a4fe47-1995-4ec0-bde0-ddbe19ce95a2.png)

> 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 -->
2025-05-20 11:08:33 +00:00
darkskygit
afbda482de fix(server): skip empty docs (#12396)
fix AI-129
fix CLOUD-129
2025-05-20 10:52:00 +00:00
EYHN
20665575d0 feat(core): add new doc button in new all docs header (#12390) 2025-05-20 16:10:20 +08:00
EYHN
59ef4b227b refactor(nbstore): improve doc state management (#12359)
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 -->
2025-05-20 07:33:20 +00:00
EYHN
151f499154 fix(core): fix all docs group header (#12334)
<!-- 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 -->
2025-05-20 06:55:56 +00:00
darkskygit
6f9361caee feat(server): trigger workspace embedding (#12328)
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 -->
2025-05-20 05:16:45 +00:00
EYHN
3c982d2b91 fix(nbstore): fix readonly mode indexer status (#12353)
<!-- 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 -->
2025-05-20 04:01:04 +00:00
renovate
cfb6d2a255 chore: bump up apple/swift-collections version to from: "1.2.0" (#12381)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [apple/swift-collections](https://redirect.github.com/apple/swift-collections) | minor | `from: "1.1.4"` -> `from: "1.2.0"` |

---

### Release Notes

<details>
<summary>apple/swift-collections (apple/swift-collections)</summary>

### [`v1.2.0`](https://redirect.github.com/apple/swift-collections/releases/tag/1.2.0): Swift Collections 1.2.0

[Compare Source](https://redirect.github.com/apple/swift-collections/compare/1.1.4...1.2.0)

This feature release includes the following improvements:

-   The package now compiles without warnings using Swift 6.0 and 6.1.
-   New functionality:
    -   `Heap.removeAll(where:)` ([#&#8203;454](https://redirect.github.com/apple/swift-collections/issues/454))
    -   `OrderedSet.appending(contentsOf:)` ([#&#8203;452](https://redirect.github.com/apple/swift-collections/issues/452))
-   Bug fixes and performance improvements:
    -   `Heap` operations now agree on the identity of the maximal element, even if it has duplicates ([#&#8203;439](https://redirect.github.com/apple/swift-collections/issues/439))
    -   `OrderedSet` now runs faster in unspecialized generic contexts ([#&#8203;433](https://redirect.github.com/apple/swift-collections/issues/433))
    -   Building on OpenBSD no longer requires `ManagedBuffer.capacity` ([#&#8203;456](https://redirect.github.com/apple/swift-collections/issues/456))

This version supports Swift toolchain versions 5.10, 6.0 and 6.1.

#### What's Changed

-   Set up release/1.2 branch by [@&#8203;lorentey](https://redirect.github.com/lorentey) in [https://github.com/apple/swift-collections/pull/423](https://redirect.github.com/apple/swift-collections/pull/423)
-   Optimize unspecialized `OrderedSet.init` and `OrderedSet.firstIndex(of:)` by [@&#8203;dnadoba](https://redirect.github.com/dnadoba) in [https://github.com/apple/swift-collections/pull/433](https://redirect.github.com/apple/swift-collections/pull/433)
-   fix amd64 support by [@&#8203;michael-yuji](https://redirect.github.com/michael-yuji) in [https://github.com/apple/swift-collections/pull/447](https://redirect.github.com/apple/swift-collections/pull/447)
-   \[cmake] Install libraries in standard directories by [@&#8203;Steelskin](https://redirect.github.com/Steelskin) in [https://github.com/apple/swift-collections/pull/446](https://redirect.github.com/apple/swift-collections/pull/446)
-   \[1.2]\[OrderedDictionary] fix a typo by [@&#8203;lorentey](https://redirect.github.com/lorentey) in [https://github.com/apple/swift-collections/pull/449](https://redirect.github.com/apple/swift-collections/pull/449)
-   \[release/1.2] \[CI] Add support for GitHub Actions by [@&#8203;shahmishal](https://redirect.github.com/shahmishal) in [https://github.com/apple/swift-collections/pull/453](https://redirect.github.com/apple/swift-collections/pull/453)
-   Reimplement `_specialize(_:for:)` for the 5.9 stdlib by [@&#8203;lorentey](https://redirect.github.com/lorentey) in [https://github.com/apple/swift-collections/pull/472](https://redirect.github.com/apple/swift-collections/pull/472)
-   Add .editorconfig by [@&#8203;lorentey](https://redirect.github.com/lorentey) in [https://github.com/apple/swift-collections/pull/471](https://redirect.github.com/apple/swift-collections/pull/471)
-   Cherry pick recent PRs destined for 1.2 by [@&#8203;lorentey](https://redirect.github.com/lorentey) in [https://github.com/apple/swift-collections/pull/473](https://redirect.github.com/apple/swift-collections/pull/473)
-   Drop support for the Swift 5.9.\* toolchains by [@&#8203;lorentey](https://redirect.github.com/lorentey) in [https://github.com/apple/swift-collections/pull/475](https://redirect.github.com/apple/swift-collections/pull/475)
-   \[Rope] Resolve deprecation warnings on `String.Index._description` by [@&#8203;lorentey](https://redirect.github.com/lorentey) in [https://github.com/apple/swift-collections/pull/474](https://redirect.github.com/apple/swift-collections/pull/474)

#### New Contributors

-   [@&#8203;dnadoba](https://redirect.github.com/dnadoba) made their first contribution in [https://github.com/apple/swift-collections/pull/433](https://redirect.github.com/apple/swift-collections/pull/433)
-   [@&#8203;michael-yuji](https://redirect.github.com/michael-yuji) made their first contribution in [https://github.com/apple/swift-collections/pull/447](https://redirect.github.com/apple/swift-collections/pull/447)
-   [@&#8203;Steelskin](https://redirect.github.com/Steelskin) made their first contribution in [https://github.com/apple/swift-collections/pull/446](https://redirect.github.com/apple/swift-collections/pull/446)

**Full Changelog**: https://github.com/apple/swift-collections/compare/1.1.4...1.2.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=-->
2025-05-20 03:45:19 +00:00
fengmk2
8e9d50bfe9 chore(server): add prefix to indexer jobId (#12369) 2025-05-20 03:09:23 +00:00
fengmk2
9ad76fe2f6 chore(server): support elasticsearch alias (#12363)
https://www.elastic.co/docs/manage-data/data-store/aliases
2025-05-20 03:09:22 +00:00
fengmk2
cce66f6107 fix(server): add stemmer filter (#12358)
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 -->
2025-05-20 03:09:22 +00:00
forehalo
42d527251a fix(server): avoid job fail if mail is not configured (#12306)
<!-- 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 -->
2025-05-20 02:49:49 +00:00
CatsJuice
acce1fbd99 feat(core): allow editing calendar name (#12251)
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 -->
2025-05-20 02:31:26 +00:00