mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-01 17:50:50 +08:00
d500e472f05627a9425d7c4065d97a1d6e8ed2b4
7167 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d500e472f0 | chore: bump deps (#15124) | ||
|
|
13d9fe506e |
feat(native): cleanup vendored deps (#15119)
#### PR Dependency Tree * **PR #15119** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Breaking Changes** * Removed major Rust public APIs related to document/CRDT encoding, synchronization, and document loading from the affected packages. * **Chores** * Migrated internal dependency usage to published crates and trimmed the Rust workspace/feature surface. * **CI/CD** * Simplified the Rust CI pipeline by removing advanced testing jobs and updating job dependencies. * **Dev/Test/Bench** * Removed associated benchmark and fuzzing artifacts and related fixture/test utilities. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
1256d66938 |
fix(server): sync permission check (#15123)
fix #15121 #### PR Dependency Tree * **PR #15123** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Security Improvements** * Enforced document-level `Doc.Read`/`Doc.Update` checks for key sync websocket operations, including filtering workspace doc timestamp results to only readable documents. * Improved remote permission handling: once a remote denies access, syncing stops for the affected document and retry behavior is suppressed. * **Improvements** * `delete-doc` now relies on server acknowledgment and returns an explicit `{ success: true }`. * Websocket acknowledgment errors are now normalized for consistent error details. * **Tests** * Expanded permission-denied and websocket error-handling coverage, including timestamp filtering and no-retry behavior after permission denial. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
da7781a751 |
feat(mobile): improve android edgeless & ci (#15118)
#### PR Dependency Tree * **PR #15118** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Improved mobile CI workflow with change-aware Android/iOS build jobs and updated completion dependencies so tests wait for the relevant mobile builds. * **Performance / App Behavior** * Enhanced Android WebView behavior: improved viewport/WebView tuning, disabled zoom and scrollbars, and made mixed-content allowance environment-aware (debug vs non-debug). * Adjusted Android cleartext traffic handling based on build/debug settings and Capacitor server URL configuration. * **Tests** * Strengthened Electron BYOK storage tests with per-test temporary directories, mock control, and added coverage for when secure storage is unavailable. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a77d89bb1a |
fix(editor): edgeless can't slider with finger (#15091)
fix bug edgeless can't slider with finger <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added mobile immersive edgeless mode with dynamic chrome auto-hide and tap-gesture controls. * Added a mobile zoom ruler UI for edgeless. * **Bug Fixes** * Improved iOS rendering/zoom by applying low-zoom survival behavior, gesture-aware refresh deferral, and effective-DPR canvas scaling. * Fixed iOS webview zoom/bounce and process-termination reload behavior. * Improved placeholder styling with theme-aware colors. * **Chores** * Updated local ignore rules and iOS app build/version configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: DarkSky <darksky2048@gmail.com> |
||
|
|
07a08e6d4d |
fix(editor): import & save logic (#15098)
fix #15080 fix #15085 fix #15031 fix #15094 #### PR Dependency Tree * **PR #15098** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved code-block paste behavior for plain-text insertion * Fixed block selection ordering to reflect document model * Made table cell formatting resilient to conversion errors * Ensured user feature list is consistently returned as an array * **Refactor** * Streamlined authentication session fetch and profile enrichment flow * **Tests** * Added tests for markdown blockquote list preservation * Added authentication session validation tests <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
6faebcabd3 |
fix(editor): prevent backspace in icon picker search from deleting editor content (#15089)
## Problem
When the callout block's icon picker is open and the user types in the
search input, pressing backspace deletes content in the main editor
instead of the search text.
## Root Cause
The callout icon picker is mounted via `createPopup` inside
`editor-host`. `PageKeyboardManager` registers a global `Backspace`
handler on the editor host (`keyboard-manager.ts`) with `{ global: true
}`, which fires on every backspace keydown regardless of what element is
focused. Without `stopPropagation`, the backspace event from the search
input bubbles up through the DOM and triggers block deletion.
Other keys are unaffected because the editor handles character input
through `contenteditable` focus, those handlers only act when a
contenteditable node is active.
## Fix
Add `onKeyDown` with `e.stopPropagation()` to the search inputs in both
`EmojiPicker` and `AffineIconPicker`. This matches the existing pattern
already used by `MenuComponent` (`menu-renderer.ts:107`) and all other
interactive components (`date-picker`, `inline-edit`, `prompt-modal`).
## Why not affected elsewhere
`DocIconPicker` uses the same pickers but wraps them in a Radix UI
`Menu` with `modal: true`, which portals outside `editor-host` — so
backspace events never reach the editor's global handler there.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved keyboard event handling in search inputs for icon and emoji
pickers
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
||
|
|
d10dd12663 |
fix(core): transport may not available (#15087)
fix #15086 #### PR Dependency Tree * **PR #15087** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Console logging is now disabled in production builds to reduce unnecessary log output, while remaining enabled in development for debugging purposes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
edc87e38df |
chore: bump up RevenueCat/purchases-ios-spm version to from: "5.76.0" (#15077)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [RevenueCat/purchases-ios-spm](https://redirect.github.com/RevenueCat/purchases-ios-spm) | minor | `from: "5.75.0"` → `from: "5.76.0"` | --- ### Release Notes <details> <summary>RevenueCat/purchases-ios-spm (RevenueCat/purchases-ios-spm)</summary> ### [`v5.76.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.75.0...5.76.0) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.75.0...5.76.0) </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
65c3271beb |
feat(server): clean up dirty data from legacy version (#15078)
#### PR Dependency Tree * **PR #15078** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Persist and replay incoming payment webhooks for reliability. * Track provider-level subscriptions, payment events, and per-target trial usage across providers. * Nightly replay job to reprocess stuck payment events. * Shadow backfill mode and emit-suppression options to control projection/backfill side effects. * Subscriptions now derived from entitlements + provider facts. * **Bug Fixes** * Improved error propagation, retry tracking, and safer owner-grant projection handling. * **Tests** * Added webhook failure/replay, provider integration, entitlement projection, and trial/checkout tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
37ffef76a4 |
fix(core): restore Mermaid preview labels and theme-aware contrast (#15073)
fix #14979 [Bug]: mermaid transparent text in light theme ## Summary Mermaid diagram preview in code blocks showed shapes and connectors but no node or edge labels, with poor contrast in dark mode. This change fixes rendering, sanitization, and display so labels are visible in both light and dark themes. ## Root cause 1. **Mermaid 11 config** — `flowchart.htmlLabels: false` is ignored; only root-level `htmlLabels` applies. Labels were still emitted in `<foreignObject>`. 2. **SVG sanitization** — `sanitizeSvg()` removed all `foreignObject` elements (and did not allow `<use>`), stripping most label content. 3. **Theme mismatch** — Preview always used Mermaid’s light `default` theme while the preview panel follows AFFiNE light/dark, causing dark text on dark backgrounds for edge and title text. 4. **Embedded CSS** — Mermaid’s inline SVG styles often do not apply after sanitization, leaving text without a visible `fill`. ## Changes ### Classic renderer (`classic-mermaid.ts`) - Set root-level `htmlLabels: false` (Mermaid 11+). - Map `dark` theme to Mermaid’s built-in `dark` palette. ### Sanitization (`bridge.ts`) - Allow `<use>` and `xlink:href` / `href` for label references. - Allow `class`, `style`, and `id` on SVG nodes. - **Sanitize** `foreignObject` inner HTML with DOMPurify instead of deleting it. ### Preview UI (`mermaid-preview.ts`) - Sync render theme with app `data-theme` (`default` / `dark`) and re-render on theme change. - Add CSS overrides so `text` / `tspan` and HTML inside `foreignObject` use AFFiNE `text/primary`. ### Native / mobile (`preview.rs`) - Map `dark` and `modern` themes to the modern renderer options (light uses `default`). ### Types & tests - Extend `MermaidRenderTheme` with `'dark'`. - Update unit tests for sanitization and classic config. - Add integration test (skips when the test environment cannot lay out Mermaid). ## Test plan - [ ] Hard refresh or restart `yarn dev`. - [ ] Create a `mermaid` code block: `graph TD; A-->B` → enable **Preview**. - [ ] Confirm labels **A** and **B** appear inside nodes and on the edge. - [ ] Toggle AFFiNE **light** / **dark** theme; confirm preview updates and text stays readable. - [ ] Run unit tests: ```bash yarn vitest run packages/frontend/core/src/modules/code-block-preview-renderer/ ``` - [ ] (Optional) With **Enable Native Mermaid Renderer** enabled in experimental settings, repeat the manual check. ## Notes for reviewers - Security: `foreignObject` content is sanitized with the HTML profile; scripts are stripped. - The integration test intentionally skips when Mermaid produces an empty diagram (e.g. happy-dom without full browser layout). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Mermaid diagrams now adapt to the app's dark or light theme and update in real time. * **Improvements** * SVG sanitization now preserves diagram labels and foreignObject text while removing unsafe content. * Classic Mermaid rendering adjusted to keep text labels intact for previews. * **Tests** * Added unit and integration tests covering Mermaid rendering and SVG sanitization. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
81760fd45c | chore: cleanup legacy logic (#15072) | ||
|
|
aca47445aa |
feat(client): migration old package to rspack (#15068)
#### PR Dependency Tree * **PR #15068** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Upgraded Vitest across packages to 4.1.8 and bumped Tailwind PostCSS to 4.3.0 * CLI/tooling updated to support the media-capture-playground package and adjust build/dev server behavior * **Bug Fixes** * Improved workspace deletion reliability in the Electron app * **Refactor** * Simplified media capture playground build setup (build/config adjustments) * **Tests** * Made tests more robust by preserving/restoring environment state during runs <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
38110de134 |
fix(core): desktop e2e (#15062)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Sign-in flows now reliably propagate richer authentication results (user data and session type), improving persistence and reducing intermittent sign-in issues. * Native token handling gains a fallback for environments without encrypted storage, improving session reliability. * **New Features** * User-visible warning when sign-in is session-only because encrypted storage is unavailable. * **Chores** * Tooling ignore patterns updated to exclude .codex. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
7123595831 |
chore: bump deps (#15059)
#### PR Dependency Tree * **PR #15059** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Configurable minimum account age before new accounts can invite members or create share links (default: 24 hours). * Sign-in now returns and caches user info for improved session handling. * **Bug Fixes** * Queue handling accepts and resolves job IDs with special characters. * Improved clipboard/rich-text caret handling and nested-list paste reliability. * Calendar tests use dynamic current-month dates. * AI search returns explicit "No matching documents" when none found. * Auth session responses are explicitly non-cacheable. * **Chores** * Dependency and toolchain bumps; admin UI config/schema exposes the new account-age setting. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
78cf402141 |
fix: handle empty results in MCP keyword_search tool (#15058)
## Description Fixes: #15038 — MCP keyword_search tool errors with "Unexpected response type" when no results are found. ### Problem When the MCP `keyword_search` tool returns no matching documents, the access control `.docs()` method may return `undefined`/`null` for an empty input array. Calling `.map()` on this value throws an error, and the MCP framework wraps it as "Unexpected response type". ### Solution Added a guard check after the permission filtering step. If the result is empty or null, the tool now returns a proper informational response instead of throwing. ### Changes - `packages/backend/server/src/plugins/copilot/mcp/provider.ts`: Added null/empty check before `docs.map()` in the keyword_search tool execute function. ### Testing - **Before**: `keyword_search` with a non-existent keyword throws "Unexpected response type" - **After**: `keyword_search` with a non-existent keyword returns `{ content: [{ type: 'text', text: 'No matching documents found.' }] }` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Prevented errors when document data is missing, improving search stability. * Improved search feedback by displaying a clear "No matching documents found." message instead of empty results. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
ebd3e62ed9 |
fix(server): canary may missing changelog (#15061)
fix #15027 #### PR Dependency Tree * **PR #15061** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved handling of missing release notes during upgrade checks. The changelog field now defaults to an empty value when release information is unavailable. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
ce9841df9d |
feat(server): passkey pre-refactor (#15060)
#### PR Dependency Tree * **PR #15060** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * OpenApp native sign-in and native session exchange (JWT) for mobile & desktop. * Centralized short-lived auth challenge store for one-time tokens. * Encrypted per-endpoint token storage and native token handlers (Android, iOS, Electron). * **Improvements** * Richer auth-method reporting (password, magic link, OAuth, passkey) and improved sign-in flows. * Hardened magic-link, OAuth, and session issuance; JWT-backed sessions and websocket JWT support. * UX tweaks: form-based password submit, OTP autocomplete, adjusted captcha flow. * **Bug Fixes** * Expanded tests and auth-state resets to avoid cross-test leakage. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
5b9d51b41b |
chore: bump up RevenueCat/purchases-ios-spm version to from: "5.75.0" (#15048)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [RevenueCat/purchases-ios-spm](https://redirect.github.com/RevenueCat/purchases-ios-spm) | minor | `from: "5.74.0"` → `from: "5.75.0"` | --- ### Release Notes <details> <summary>RevenueCat/purchases-ios-spm (RevenueCat/purchases-ios-spm)</summary> ### [`v5.75.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.74.0...5.75.0) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.74.0...5.75.0) </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwMi4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
7a575a4a5b |
fix: hide experimental settings for doc and folder icons (#15021)
should fix #13955 The emoji doc and folder icons have been officially released with v0.25 but the experimental settings were still available with no effect if switched. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Feature flags for emoji folder and document icons are no longer user-configurable. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15021?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
b05c387f96 |
fix(server): mail test & retry (#15044)
#### PR Dependency Tree * **PR #15044** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Stop sending notifications to disabled users; skip member invites when workspace names contain URLs/domains * Improve mail retry handling (per-recipient exhaustion, expiry, and cache cleanup) * Make many email headers/lead lines more generic and consistent * Fail-safe workspace content parsing to avoid crashes * **New Features** * 24-hour signup protection for sharing, invites, and invite-link creation * Job-queue: remove jobs by payload predicate * **Tests** * Expanded tests for mail jobs, SMTP hostname handling, payment checkout, job-queue removal, and abuse-detection utilities * Updated test fixtures to set createdAt timestamps for new users * **Chores** * Added required name input for test-email mutation * Database flush retry with deadlock detection/backoff <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15044?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
2bd920fea6 |
chore: bump up @inquirer/prompts version to v8 (#15025)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@inquirer/prompts](https://redirect.github.com/SBoudrias/Inquirer.js/blob/main/packages/prompts/README.md) ([source](https://redirect.github.com/SBoudrias/Inquirer.js)) | [`^7.10.1` → `^8.0.0`](https://renovatebot.com/diffs/npm/@inquirer%2fprompts/7.10.1/8.5.0) |  |  | --- ### Release Notes <details> <summary>SBoudrias/Inquirer.js (@​inquirer/prompts)</summary> ### [`v8.5.0`](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.4.3...5ca6d1101d5d3f8fb066cd5b389bccfdafbbe0c0) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.4.3...@inquirer/prompts@8.5.0) ### [`v8.4.3`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.3) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.4.2...@inquirer/prompts@8.4.3) - Fix: Windows rendering bug - Fix: Preserve exact literal types in `choices` array (Typescript only) - Fix: Allow input `default` value to be of type `undefined` (Typescript only) - Bump dependencies ### [`v8.4.2`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.2) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.4.1...@inquirer/prompts@8.4.2) - Fix: some Windows terminals would freeze and not react to keypresses. ### [`v8.4.1`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.1) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.4.0...@inquirer/prompts@8.4.1) - Improve `expand` prompt type inferrence. ### [`v8.4.0`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.0) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.3.2...@inquirer/prompts@8.4.0) - Feat: Added a loading message while validating editor prompt input. - Type improvement: Better type inference with checkbox, search and expand prompts. - Fix: `editor` prompt not always properly handling editor path on windows. ### [`v8.3.2`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.2) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.3.1...@inquirer/prompts@8.3.2) - Fix broken 8.3.1 release process. ### [`v8.3.1`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.1) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.3.0...@inquirer/prompts@8.3.1) - Bump dependencies ### [`v8.3.0`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.0) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.2.1...@inquirer/prompts@8.3.0) - Fix: Keypresses happening before a prompt is rendered are now ignored. - Fix (checkbox): Element who're both checked and disabled are now always included in the returned array. - Feat (select/checkbox): Cursor will now hover disabled options of the list; but they still cannot be interacted with. This prevents the cursor jumping ahead in ways that can be confusing. - Feat: various new theme options to make all prompts content localizable. Finally, see our new [`@inquirer/i18n` package](https://redirect.github.com/SBoudrias/Inquirer.js/tree/main/packages/i18n)! ### [`v8.2.1`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.2.1) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.2.0...@inquirer/prompts@8.2.1) - chore: Switch `wrap-ansi` with `fast-wrap-ansi` ### [`v8.2.0`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.2.0) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.1.0...@inquirer/prompts@8.2.0) - feat(`search`): Add support for `default`. - feat(`rawlist`): Add support for `description` of choices. That information is displayed under the list when the choice is highlighted. - Bump dependencies ### [`v8.1.0`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.1.0) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.0.2...@inquirer/prompts@8.1.0) - Feat: `rawlist` now supports `default` option. - Fix: `select` now infer return type properly when passing a `choices` array of string literals. ### [`v8.0.2`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.2) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.0.1...@inquirer/prompts@8.0.2) - Fix Typescript not discovering types when `moduleResolution` is set to `commonjs` (you probably want to fix that in your project if it's still in your tsconfig) ### [`v8.0.1`](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.0.0...@inquirer/prompts@8.0.1) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.0.0...@inquirer/prompts@8.0.1) ### [`v8.0.0`](https://redirect.github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.0) [Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@7.10.1...@inquirer/prompts@8.0.0) ### Release Notes #### 🚨 Breaking Changes This is a major release that modernizes the codebase for Node.js ≥ 20. ##### ESM Only - No More CommonJS Support **Impact:** All packages are now ESM-only. CommonJS imports are no longer supported. If you're on modern Node versions (≥ 20), this should be transparent and have no impact. ##### Node.js Version Requirement **Minimum Node.js version is now 20.x** Node.js versions below 20 are no longer supported. Please upgrade to Node.js 20 or later. Node min versions: `>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0` ##### Deprecated APIs Removed The following deprecated APIs have been removed after being deprecated in previous releases: ##### `list` prompt alias removed (affects `inquirer` package only) The `list` alias has been removed from the `inquirer` package. This only impacts users of the legacy `inquirer` package, not users of `@inquirer/prompts` or individual prompt packages. ```js // ❌ No longer available (inquirer package only) import inquirer from 'inquirer'; const answer = await inquirer.prompt([ { type: 'list', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] } ]); // ✅ Use 'select' instead import inquirer from 'inquirer'; const answer = await inquirer.prompt([ { type: 'select', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] } ]); ``` ##### `helpMode` theme property removed ```js // ❌ No longer available const answer = await select({ theme: { helpMode: 'never' } }); // ✅ Use theme.style.keysHelpTip instead const answer = await select({ theme: { style: { keysHelpTip: () => undefined // or your custom styling function } } }); ``` This affects the following prompts: - `@inquirer/checkbox` - `@inquirer/search` - `@inquirer/select` ##### `instructions` config property removed ```js // ❌ No longer available const answer = await checkbox({ instructions: 'Custom instructions' }); // ✅ Use theme.style.keysHelpTip instead const answer = await checkbox({ theme: { style: { keysHelpTip: (text) => 'Custom instructions' } } }); ``` This affects the following prompts: - `@inquirer/checkbox` - `@inquirer/search` - `@inquirer/select` ##### `cancel()` method removed The `cancel()` method on prompt return custom `Promise` has been removed. ```js // ❌ No longer available const answerPromise = input({ message: 'Name?' }); answerPromise.cancel(); const answer = await answerPromise; // ✅ Use AbortSignal instead const controller = new AbortController(); const answer = await input( { message: 'Name?' }, { signal: controller.signal } ); controller.abort(); ``` ##### Color Library Change: yoctocolors → Node.js `styleText` **Internal change:** The project now uses Node.js built-in `util.styleText()` instead of the `yoctocolors` package for terminal colors. This makes Inquirer smaller and reduces risks of vulnerabilities coming from transitive dependencies. </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
b3b9c54a89 |
chore: bump up @types/nodemailer version to v8 (#15026)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@types/nodemailer](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/nodemailer) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer)) | [`^7.0.0` → `^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fnodemailer/7.0.9/8.0.0) |  |  | --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
1d08e1d8c0 |
fix(server): dirty data handle (#15034)
#### PR Dependency Tree * **PR #15034** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Consolidated subscription visibility and “active” selection logic so all subscription queries use a shared, consistent filter across the platform. * **Tests** * Added a test to ensure expired subscriptions are excluded from active subscription results. * Updated test fixtures to differentiate expired, unexpired, and onetime subscriptions for more accurate coverage. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15034?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
66a6a5fffc |
feat(i18n): add missing zh-Hans translations (#15032)
## Summary This PR completes the missing Simplified Chinese (`zh-Hans`) i18n resource coverage. The current i18n completeness calculation is based on key coverage between `en.json` and each locale resource file. Before this change, `zh-Hans.json` contained 2331 keys while `en.json` contained 2406 keys, resulting in a displayed completeness of 97%. This change adds the 75 missing `zh-Hans` translation entries and updates the generated completeness value for `zh-Hans` from 97% to 100%. ## Changes - Added 75 missing Simplified Chinese translations to `packages/frontend/i18n/src/resources/zh-Hans.json`. - Updated `packages/frontend/i18n/src/i18n-completenesses.json` so `zh-Hans` now reports 100% completeness. - Kept the scope limited to missing i18n resource keys only. ## Notes This PR does not modify existing `zh-Hans` translations, terminology choices, or hardcoded English UI strings outside the i18n resource files. ## Verification - Confirmed `zh-Hans.json` parses successfully. - Confirmed `zh-Hans.json` now has full key coverage against `en.json`. - Confirmed missing key count is 0. - Confirmed computed `zh-Hans` completeness is 100%. - Ran pre-commit checks: - `yarn lint-staged` - `yarn lint:ox` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Completed Chinese (Simplified) translations with 100% coverage for the application. * Added new translations across multiple areas: appearance and image settings, export functionality, document import from Bear and Obsidian, analytics and viewer information, editor settings including auto-date titles and icon options, workspace sharing controls, calendar integration with CalDAV support, share menu tooltips, and comprehensive error messages. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15032?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
4f14e8840c |
chore: bump up RevenueCat/purchases-ios-spm version to from: "5.74.0" (#15024)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [RevenueCat/purchases-ios-spm](https://redirect.github.com/RevenueCat/purchases-ios-spm) | minor | `from: "5.73.0"` → `from: "5.74.0"` | --- ### Release Notes <details> <summary>RevenueCat/purchases-ios-spm (RevenueCat/purchases-ios-spm)</summary> ### [`v5.74.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.73.1...5.74.0) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.73.1...5.74.0) ### [`v5.73.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5731) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.73.0...5.73.1) #### 5.73.1 </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
6d1172ba44 | chore: bump deps | ||
|
|
2aa56cbccd | chore: bump toolchain & fix lint | ||
|
|
eecd0a2169 |
feat(i18n): add Turkish translation (#15000)
This pull request introduces support for the Turkish language to the frontend internationalization system and adds a new pull request template to standardize PR descriptions. The main changes are grouped below: **Internationalization: Turkish Language Support** * Added `'tr'` (Turkish) to the `Language` type and `SUPPORTED_LANGUAGES` object in `index.ts`, including its display name, native name, flag emoji, and resource loader. [[1]](diffhunk://#diff-ba5f665c3490d0f5acb2cb70f08314c5373137fa8085ab05175047f10cb7fdf8L26-R27) [[2]](diffhunk://#diff-ba5f665c3490d0f5acb2cb70f08314c5373137fa8085ab05175047f10cb7fdf8R183-R188) * Updated `i18n-completenesses.json` to include Turkish (`"tr": 6`). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Turkish language can now be selected in the app. * **Localization** * Initial Turkish translations added and translation completeness set to 100%. * Locale metadata added (display name, original name, flag) for Turkish. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15000?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
f2980503b4 |
fix(editor): sorting of page emoji display toggle (#15020)
Fixes the order of the new setting toggle introduced in #14999. It appeared between "Auto-title new docs with current date" and "New doc date format" which both belong together. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Style** * Repositioned the "display add icon option" setting within General settings for improved interface organization and logical grouping. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15020?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
925c95ce88 |
feat(i18n): update German translation (#15011)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Localization** * German language completeness raised to 100%. * Added German translations for Markdown export/copy labels and success text, import formats (including Bear backup and Word .docx), editor settings (auto-date-title formats, add-icon option), AI BYOK workspace/provider-key UI and notifications, and a recording/importing UI prompt. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15011?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
3098b3b14b |
feat(server): bump models (#15013)
#### PR Dependency Tree * **PR #15013** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Expanded AI capabilities with the addition of Gemini 3.5 Flash model, providing enhanced options for AI-powered features. * **Updates** * Updated Claude Sonnet to the latest version for improved performance. * Refreshed pro models configuration with optimized selections. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15013?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
dd1cd77ca0 |
chore(server): improve migration compatibility (#15014)
#### PR Dependency Tree * **PR #15014** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Remove orphaned legacy subscription and entitlement records during backfill. * Repair workspaces missing active owners by promoting eligible members and cleaning up empty workspaces. * Skip cloud subscription backfill when target user/workspace no longer exists to avoid dangling data. * **Tests** * Added tests verifying legacy data cleanup during backfill. * Added tests verifying workspace ownership repair and migration behavior. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15014?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
d20dbfd6a2 |
feat(editor): add page emoji display toggle #14987 (#14999)
This PR adds a display toggle for Page Emoji, so users can choose whether the add emoji option is shown in the page header when no emoji is set. What changed read editor setting for display add icon option hide emoji placeholder entry when the setting is disabled keep existing behavior for readonly mode and for pages that already have an emoji Why This implements the feature request to control Page Emoji visibility and improves header cleanliness for users who prefer a minimal UI. Issue Closes #14093 <img width="1277" height="726" alt="Screenshot 2026-05-19 at 3 44 14 PM" src="https://github.com/user-attachments/assets/caa29272-35c0-410d-bd54-2e038e4e0db2" /> <img width="1511" height="779" alt="Screenshot 2026-05-19 at 3 44 35 PM" src="https://github.com/user-attachments/assets/3504136a-d34c-45cc-992b-0056b018ff92" /> Testing verified in editable mode: setting ON: add emoji placeholder is visible when page has no emoji setting OFF: add emoji placeholder is hidden when page has no emoji verified in readonly mode: no emoji: nothing shown with emoji: existing emoji is shown verified no regression for selecting/changing/removing emoji Screenshots I will attach screenshots in this section. Quick rule checks before submit Base branch is canary. PR title follows conventional format: type(scope): subject. Scope editor is valid for this repo. Include Closes #14093 in the body. Add your screenshots before creating or right after opening the PR. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added an editor setting to toggle whether the "add icon" option is shown when creating new documents (default: enabled). * **User Experience** * When disabled, the add-icon trigger is hidden for documents that use a placeholder icon; readonly display remains unchanged. * **Tests** * Updated tests to cover the new setting and toggle behavior. * **Localization** * Added translations and updated i18n typings and completeness metrics. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14999?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
41145961f9 |
chore: bump up RevenueCat/purchases-ios-spm version to from: "5.73.0" (#15008)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [RevenueCat/purchases-ios-spm](https://redirect.github.com/RevenueCat/purchases-ios-spm) | minor | `from: "5.66.0"` → `from: "5.73.0"` | --- ### Release Notes <details> <summary>RevenueCat/purchases-ios-spm (RevenueCat/purchases-ios-spm)</summary> ### [`v5.73.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5730) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.72.0...5.73.0) #### 5.73.0 ### [`v5.72.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5720) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.71.0...5.72.0) #### 5.72.0 ### [`v5.71.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5710) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.70.0...5.71.0) #### 5.71.0 ### [`v5.70.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5700) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.69.0...5.70.0) #### 5.70.0 ### [`v5.69.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5690) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.68.0...5.69.0) #### 5.69.0 ### [`v5.68.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5680) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.67.2...5.68.0) #### 5.68.0 ### [`v5.67.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5672) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.67.1...5.67.2) #### 5.67.2 ### [`v5.67.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5671) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.67.0...5.67.1) #### 5.67.1 ### [`v5.67.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5670) [Compare Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.66.0...5.67.0) #### 5.67.0 </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xODUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjE4NS4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
1f2119e273 | fix: migration timeout | ||
|
|
9f33d37add | feat(core): integrate realtime features (#15003) | ||
|
|
3e42bbf4fa |
chore: bump up apple/swift-collections version to from: "1.5.1" (#15001)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [apple/swift-collections](https://redirect.github.com/apple/swift-collections) | patch | `from: "1.5.0"` → `from: "1.5.1"` | --- ### Release Notes <details> <summary>apple/swift-collections (apple/swift-collections)</summary> ### [`v1.5.1`](https://redirect.github.com/apple/swift-collections/releases/tag/1.5.1): Swift Collections 1.5.1 [Compare Source](https://redirect.github.com/apple/swift-collections/compare/1.5.0...1.5.1) This is a patch release resolving three issues uncovered since 1.5.0 was tagged, including a source breaking regression introduced in 1.4.0, affecting clients importing the `Collections` module. #### What's Changed - Import error from `HashTreeCollections`, reported by [@​vanvoorden](https://redirect.github.com/vanvoorden) in [#​653](https://redirect.github.com/apple/swift-collections/issues/653) - Resolve source break in the Collections module by [@​lorentey](https://redirect.github.com/lorentey) in [#​654](https://redirect.github.com/apple/swift-collections/pull/654) - Linker error around RigidArray when using in Embedded Swift for WebAssembly, reported by [@​sliemeobn](https://redirect.github.com/sliemeobn) in [#​648](https://redirect.github.com/apple/swift-collections/issues/648) - \[BasicContainers] Don’t define LLDB formatter symbol on Wasm by [@​lorentey](https://redirect.github.com/lorentey) in [#​650](https://redirect.github.com/apple/swift-collections/pull/650) - Guard `UniqueBox.borrow` correctly by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [#​649](https://redirect.github.com/apple/swift-collections/pull/649) **Full Changelog**: <https://github.com/apple/swift-collections/compare/1.5.0...1.5.1> </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xODUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjE4NS4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
b5e5f0708a |
chore: bump up Lakr233/MarkdownView version to from: "3.9.1" (#14861)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [Lakr233/MarkdownView](https://redirect.github.com/Lakr233/MarkdownView) | minor | `from: "3.8.2"` → `from: "3.9.1"` | --- ### Release Notes <details> <summary>Lakr233/MarkdownView (Lakr233/MarkdownView)</summary> ### [`v3.9.1`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.9.0...3.9.1) [Compare Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.9.0...3.9.1) ### [`v3.9.0`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.8.2...3.9.0) [Compare Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.8.2...3.9.0) </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
f96bf3dd24 |
feat(i18n): expand Urdu translation (#14995)
Closes #14994 🇵🇰 Urdu Translation for Pakistani Users ## Summary `ur.json` previously had only 31 of 2404 keys translated (~1%), leaving most of the AFFiNE UI in English for Urdu-speaking users. This PR fills in the remaining ~2400 keys so Pakistani / Urdu users get a fully localized experience. - `packages/frontend/i18n/src/resources/ur.json` — expanded from 31 → 2404 keys - `packages/frontend/i18n/src/i18n-completenesses.json` — `ur: 2` → `ur: 100` Existing hand-translated keys were preserved. ## Screenshots <img width="1600" height="716" alt="image" src="https://github.com/user-attachments/assets/1e3395b9-7cb0-44ba-a29f-a484419eb9fd" /> -------- <img width="1600" height="716" alt="image" src="https://github.com/user-attachments/assets/f03cb1ac-dde8-4425-a898-c56acebe45b6" /> ## Test plan - [x] Switch app language to Urdu (اردو) in Settings → Appearance → Language - [x] Sidebar, top bar, calendar, doc list, settings panels all render in Urdu - [x] RTL layout flows correctly - [x] Prettier + lint clean <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Localization** * Urdu language support is now fully available across the application, including translated UI text and locale-specific content. * Users can select Urdu as their preferred language and experience consistent translations and messaging throughout the product. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14995?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c53457691d |
feat(server): entitlement based model (#14996)
#### PR Dependency Tree * **PR #14996** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Admin mutations to grant/revoke commercial entitlements. * New Doc comment-update permission. * Realtime user/workspace quota-state endpoints and live-update rooms. * **Bug Fixes** * More accurate readable-doc filtering and permission evaluation. * **Refactor** * Workspace feature management moved to entitlement-based model; permission and quota pipelines redesigned. * Admin workspace UI now edits flags only (feature toggles removed). * **Tests** * Extensive new and updated tests for permissions, entitlements, quota, projection, and backfills. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14996?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
103ad2a810 |
feat(i18n): add Kazakh translation (#14981)
Closes #14975 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Kazakh (kk) language has been added — users can now choose Kazakh for the interface, with complete localization coverage and language metadata (name and flag) included. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14981?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
0f5778ac89 |
feat(editor): calendar view for database block (#14984)
fix #13663 #### PR Dependency Tree * **PR #14984** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Calendar view for database blocks (month layout, entry cards, external-source support) * Workspace calendar integration and new slash-menu "Calendar View" * **Improvements** * Create/manage database rows from calendar UI; preserve durations when moving/resizing ranges * Drag-and-drop, drop-preview, and hit-testing support for calendar and docs * Redesigned in-menu View settings with multi-page navigation * Context-menu input autofocus toggle and conditional back-navigation * **Tests** * New unit and E2E suites covering calendar layout, interactions, sources, and slash-menu integration <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
e9ef3c50c8 |
fix(editor): transcript note will create useless docs (#14976)
fix #13520 #### PR Dependency Tree * **PR #14976** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Tests** * Added comprehensive test coverage for markdown insertion functionality to verify that existing document metadata remains unchanged when importing markdown content into workspace documents. * **Chores** * Optimized internal markdown-to-snapshot conversion process to use a more direct and efficient conversion approach. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14976) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c39fa1ff2d |
chore: bump up apple/swift-collections version to from: "1.5.0" (#14969)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [apple/swift-collections](https://redirect.github.com/apple/swift-collections) | minor | `from: "1.4.1"` → `from: "1.5.0"` | --- ### Release Notes <details> <summary>apple/swift-collections (apple/swift-collections)</summary> ### [`v1.5.0`](https://redirect.github.com/apple/swift-collections/releases/tag/1.5.0): Swift Collections 1.5.0 [Compare Source](https://redirect.github.com/apple/swift-collections/compare/1.4.1...1.5.0) This feature release supports Swift toolchain versions 6.0, 6.1, 6.2, and 6.3. It includes the following new features and bug fixes: ##### Debugging enhancements The package now defines LLDB data formatters for `RigidArray`. The formatters are emitted into the executable binary, and they are automatically loaded by LLDB. We expect to implement formatters for (many) more types in subsequent releases. ##### New stable APIs - `RigidArray` and `UniqueArray` now conform to `Equatable` when their element type is `Equatable`. This conformance requires a Swift 6.4 or later toolchain (it relies on [SE-0499][SE-0499] generalizations of `Equatable`/`Hashable` to support noncopyable conforming types). - `RigidArray` and `UniqueArray` gained an `isTriviallyIdentical(to:)` operation, which reports whether two instances share their underlying storage allocation. This does not require the element type to be `Equatable`, and it works with noncopyable elements. - [`BitSet`][BitSet] gained a `makeIterator(from:)` shortcut for starting iteration at (or after) a specific member, avoiding a linear scan from the start of the set. - [`OrderedDictionary`][OrderedDictionary] gained a `replaceElement(at:withKey:value:)` operation that replaces the key-value pair at a given index. The new key is allowed to equal the existing key at that index (in which case only the value is updated). [BitSet]: https://swiftpackageindex.com/apple/swift-collections/documentation/bitcollections/bitset [OrderedDictionary]: https://swiftpackageindex.com/apple/swift-collections/documentation/orderedcollections/ordereddictionary [SE-0499]: https://redirect.github.com/swiftlang/swift-evolution/blob/main/proposals/0499-equatable-hashable-comparable-noncopyable.md ##### Experimental hashed containers (`UnstableHashedContainers` trait) The Robin-Hood-hashed `UniqueSet`, `RigidSet`, `UniqueDictionary`, and `RigidDictionary` types in the `BasicContainers` module continue to evolve behind the `UnstableHashedContainers` package trait. This release brings a number of correctness fixes and performance improvements: - Faster removals, with better `maxProbeLength` maintenance to avoid probe-length bloat. - Small tables are now scrambled to avoid degenerate patterns on common key distributions. - A fast-path shortcut for insertions into under-utilized tables. - Fixes to the insertion algorithm and to `RigidDictionary.updateValue(forKey:with:)` (the latter exhibited undefined behavior on removals). - `RigidSet.insert(maximumCount:from:)` no longer spuriously reports a capacity overflow due to incorrect accounting. - The `UnstableHashedContainers` trait can now be enabled independently of `UnstableContainersPreview`. These types remain source-unstable for now. ##### Experimental sorted collections (`UnstableSortedCollections` trait) The `SortedCollections` module's [`SortedSet`][SortedSet] has gained the following additions: - `SortedSet` now supports value-range subscripts for the full variety of standard range expression types, `ClosedRange`, `PartialRangeFrom`, `PartialRangeThrough`, and `PartialRangeUpTo`. - `SortedSet.firstIndex(after:)` and `SortedSet.lastIndex(before:)` return the index to the nearest member following or preceding a given value. This release also fixes several underlying B-tree bugs that were surfaced by these additions. These types remain source-unstable; they have known API deficiencies that will need to be addressed before they ship. [SortedSet]: https://redirect.github.com/apple/swift-collections/tree/main/Sources/SortedCollections/SortedSet ##### Experimental container protocols (`UnstableContainersPreview` trait) The `ContainersPreview` module's protocol hierarchy and associated types continue to be developed. Several constructs have been renamed to follow Swift Evolution proposals in flight. | Old name | New name | | ------------------------- | --------------------------- | | `struct Box<T>` | `struct UniqueBox<Value>` | | `struct Borrow<Target>` | `struct Ref<Target>` | | `struct Inout<Target>` | `struct MutableRef<Target>` | | `Producer.ProducerError` | `Producer.Failure` | | `Producer.generateNext()` | `Producer.next()` | | `Producer.skip(upTo:)` | `Producer.skip(by:)` | For `UniqueBox`, `Ref` and `MutableRef`, there are deprecated typealiases for the old names, preserving source compatibility. Other changes to the experimental container model: - `Container.Index` no longer needs to conform to `Comparable`. This allows linked lists to become containers. - `RigidArray`, `UniqueArray`, `RigidDeque`, and `UniqueDeque` now conform to the container protocols. - Added `Producer.collect(into:)` for collecting a producer's output into a `RangeReplaceableContainer`. - Added `BorrowingIteratorProtocol.copy()` for turning a borrowing iterator into a producer. - Added `filter` and `map` overloads for `BorrowingIteratorProtocol`, `Producer`, and `Drain`. - `BorrowingSequence.first` was removed. - `BorrowingSequence`, `BorrowingIteratorProtocol` and their requirements have temporarily gained trailing underscores to avoid naming conflicts with the (provisional) protocol definition in the Standard Library. We expect these definitions to be removed when these protocols officially become part of the stdlib. The protocol-based APIs in `ContainersPreview` now require a Swift 6.4 or later toolchain. `UniqueBox` is source-stable, therefore it continues to require Swift 6.2. ##### Notable bug fixes - `HashTreeCollections`: Fixed an invariant violation that could be triggered by some operations on `TreeSet`/`TreeDictionary`. - `_RopeModule`: Fixed an infinite loop when hashing the UTF-8 view of a multi-chunk big substring. - `BitCollections`: Fixed a bogus precondition in `BitArray.insert(repeating:count:at:)`; fixed `BitSet.isSubset(of: Range<Int>)` to correctly examine elements above the range's upper word. - `HeapModule`: Fixed `Heap.insert(contentsOf:)` to use a wrapping multiply in its Floyd-heuristic computation; added a missing bounds assertion in `Heap._UnsafeHandle.swapAt(_:with:)`. - `OrderedCollections`: Fixed `OrderedSet` crash on negative capacity values; minor fixes in `_HashTable.UnsafeHandle`. - `DequeModule`: Fixed sizing issue in `UniqueDeque.replace(removing:addingCount:initializingWith:)`; fixed a missing argument validation in `RigidDeque.nextMutableSpan(after:maximumCount:)`; `RigidDeque.consume(_:consumingWith:)` now closes the resulting gap before returning; added zero-count fast-paths; replace/prepend operations taking a `Collection` now verify that the source's count matches its contents. - `BasicContainers`: Fixed an overallocation issue in `UniqueArray.replace(removing:copying:)`; fixed a partial-initialization correctness issue in `RigidArray.replace(removing:consumingWith:addingCount:initializingWith:)`. #### What's Changed - Add tests that build the ContainersPreview module by [@​natecook1000](https://redirect.github.com/natecook1000) in [#​610](https://redirect.github.com/apple/swift-collections/pull/610) - Add a workflow that performs a CMake build by [@​natecook1000](https://redirect.github.com/natecook1000) in [#​612](https://redirect.github.com/apple/swift-collections/pull/612) - Align `BorrowingSequence` implementation with proposal by [@​natecook1000](https://redirect.github.com/natecook1000) in [#​609](https://redirect.github.com/apple/swift-collections/pull/609) - Bump swiftlang/github-workflows/.github/workflows/swift\_package\_test.yml from 0.0.8 to 0.0.9 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​615](https://redirect.github.com/apple/swift-collections/pull/615) - Bump swiftlang/github-workflows/.github/workflows/soundness.yml from 0.0.8 to 0.0.9 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​614](https://redirect.github.com/apple/swift-collections/pull/614) - Fix lifetime requirements rigidly enforced in the latest nightlies by [@​lorentey](https://redirect.github.com/lorentey) in [#​617](https://redirect.github.com/apple/swift-collections/pull/617) - Track array proposal by [@​lorentey](https://redirect.github.com/lorentey) in [#​619](https://redirect.github.com/apple/swift-collections/pull/619) - Bump swiftlang/github-workflows/.github/workflows/soundness.yml from 0.0.9 to 0.0.10 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​620](https://redirect.github.com/apple/swift-collections/pull/620) - OrderedSet: Don't crash on negative capacity values by [@​thisismanan](https://redirect.github.com/thisismanan) in [#​622](https://redirect.github.com/apple/swift-collections/pull/622) - \[ContainersPreview] Don’t require `Container.Index` to conform to `Comparable` by [@​lorentey](https://redirect.github.com/lorentey) in [#​623](https://redirect.github.com/apple/swift-collections/pull/623) - Adjust experimental workflows by [@​lorentey](https://redirect.github.com/lorentey) in [#​626](https://redirect.github.com/apple/swift-collections/pull/626) - [BitSet] Add `BitSet.makeIterator(from:)` by [@​lorentey](https://redirect.github.com/lorentey) in [#​627](https://redirect.github.com/apple/swift-collections/pull/627) - \[BasicContainers] RigidSet.insert(maximumCount:from:): Fix spurious capacity overflow caused by incorrect accounting by [@​lorentey](https://redirect.github.com/lorentey) in [#​628](https://redirect.github.com/apple/swift-collections/pull/628) - \[BasicContainers] RigidArray.replace(removing:consumingWith:addingCount:initializingWith:): Fix correctness issue with partial initialization by [@​lorentey](https://redirect.github.com/lorentey) in [#​629](https://redirect.github.com/apple/swift-collections/pull/629) - \[BasicContainers] UniqueArray.replace(removing:copying): Fix overallocation issue by [@​lorentey](https://redirect.github.com/lorentey) in [#​630](https://redirect.github.com/apple/swift-collections/pull/630) - Fix \_trim(first:) returning wrong buffer region by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [#​631](https://redirect.github.com/apple/swift-collections/pull/631) - Bump swiftlang/github-workflows/.github/workflows/soundness.yml from 0.0.10 to 0.0.11 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​625](https://redirect.github.com/apple/swift-collections/pull/625) - \[OrderedCollections] Add OrderedDictionary.replaceElement(at:withKey:… by [@​inju2403](https://redirect.github.com/inju2403) in [#​616](https://redirect.github.com/apple/swift-collections/pull/616) - \[ContainersPreview] Producer.ProducerError ⟹ Producer.Failure by [@​lorentey](https://redirect.github.com/lorentey) in [#​634](https://redirect.github.com/apple/swift-collections/pull/634) - fix: reserveCapacity DocC link in RigidArray by [@​manojmahapatra](https://redirect.github.com/manojmahapatra) in [#​633](https://redirect.github.com/apple/swift-collections/pull/633) - \[BasicContainers, DequeModule]: Assorted fixes by [@​lorentey](https://redirect.github.com/lorentey) in [#​632](https://redirect.github.com/apple/swift-collections/pull/632) - \[Debugging] Add lldb data formatter for RigidArray by [@​kastiglione](https://redirect.github.com/kastiglione) in [#​607](https://redirect.github.com/apple/swift-collections/pull/607) - \[HashTreeCollections] Fix invariant violation in \_HashNode.\_regularNode by [@​lorentey](https://redirect.github.com/lorentey) in [#​635](https://redirect.github.com/apple/swift-collections/pull/635) - \[BitCollections] Fix small issues by [@​lorentey](https://redirect.github.com/lorentey) in [#​637](https://redirect.github.com/apple/swift-collections/pull/637) - \[HeapModule, SortedCollections] Assorted tool-assisted fixes and adjustments by [@​lorentey](https://redirect.github.com/lorentey) in [#​639](https://redirect.github.com/apple/swift-collections/pull/639) - \[BasicContainers] Enable APIs scheduled to ship in 1.5.0 by [@​lorentey](https://redirect.github.com/lorentey) in [#​641](https://redirect.github.com/apple/swift-collections/pull/641) - \[BasicContainers] Fix copypasta in `UniqueArray.edit`’s docs by [@​lorentey](https://redirect.github.com/lorentey) in [#​642](https://redirect.github.com/apple/swift-collections/pull/642) - Rename `Box` to `UniqueBox`; align API surface with SE-0517 by [@​lorentey](https://redirect.github.com/lorentey) in [#​640](https://redirect.github.com/apple/swift-collections/pull/640) - Bump swiftlang/github-workflows/.github/workflows/swift\_package\_test.yml from 0.0.9 to 0.0.11 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​624](https://redirect.github.com/apple/swift-collections/pull/624) - Use the defines from traits directly by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [#​644](https://redirect.github.com/apple/swift-collections/pull/644) - \[ContainersPreview] `struct Borrow` ⟹ `struct Ref` by [@​lorentey](https://redirect.github.com/lorentey) in [#​643](https://redirect.github.com/apple/swift-collections/pull/643) - \[ContainersPreview] `struct Inout` ⟹ `struct MutableRef` by [@​lorentey](https://redirect.github.com/lorentey) in [#​646](https://redirect.github.com/apple/swift-collections/pull/646) - 1.5.0 release preparations by [@​lorentey](https://redirect.github.com/lorentey) in [#​647](https://redirect.github.com/apple/swift-collections/pull/647) #### New Contributors - [@​thisismanan](https://redirect.github.com/thisismanan) made their first contribution in [#​622](https://redirect.github.com/apple/swift-collections/pull/622) - [@​FranzBusch](https://redirect.github.com/FranzBusch) made their first contribution in [#​631](https://redirect.github.com/apple/swift-collections/pull/631) - [@​inju2403](https://redirect.github.com/inju2403) made their first contribution in [#​616](https://redirect.github.com/apple/swift-collections/pull/616) - [@​manojmahapatra](https://redirect.github.com/manojmahapatra) made their first contribution in [#​633](https://redirect.github.com/apple/swift-collections/pull/633) - [@​kastiglione](https://redirect.github.com/kastiglione) made their first contribution in [#​607](https://redirect.github.com/apple/swift-collections/pull/607) **Full Changelog**: <https://github.com/apple/swift-collections/compare/1.4.1...1.5.0> </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzkuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE3OS4zIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
3416de1e4d |
fix(server): missing root cert (#14970)
#### PR Dependency Tree * **PR #14970** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated TLS library dependencies with pinned version constraints across multiple packages * Removed `tls-rustls` feature from sqlx configurations in backend and frontend packages * Removed unused `sqlx` dependency from mobile native package * Refined HTTPS client configuration with embedded certificate roots and added validation test <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14970) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c8cdc488db |
feat(server): entitlement primitive (#14964)
#### PR Dependency Tree * **PR #14964** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added entitlement resolution to validate licenses and derive plan, quotas, expiry and flags. * Introduced persistent quota/entitlement state for users and workspaces with legacy sync behavior. * Real-time quota-state operations and change events for monitoring usage. * **Chores** * Updated workspace dependencies to add cryptography/hash crates. * **Tests** * Added native entitlement tests covering validation, quantity handling, and signature/expiry cases. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14964) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
f626dbd590 |
fix(server): realtime loading (#14959)
#### PR Dependency Tree * **PR #14959** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Rewired realtime and copilot services to require their runtime dependencies, improving reliability and removing nullable/optional runtime paths. * **Tests** * Centralized service creation in tests with helper factories and added checks ensuring realtime dependency injection is configured as expected. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14959) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
419fc5d5e0 |
chore: bump up Recouse/EventSource version to from: "0.1.8" (#14960)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [Recouse/EventSource](https://redirect.github.com/Recouse/EventSource) | patch | `from: "0.1.7"` → `from: "0.1.8"` | --- ### Release Notes <details> <summary>Recouse/EventSource (Recouse/EventSource)</summary> ### [`v0.1.8`](https://redirect.github.com/Recouse/EventSource/releases/tag/0.1.8) [Compare Source](https://redirect.github.com/Recouse/EventSource/compare/0.1.7...0.1.8) #### What's Changed - Fix O(n²) performance in ServerEventParser.parse() by [@​liefran-sim](https://redirect.github.com/liefran-sim) in [#​49](https://redirect.github.com/Recouse/EventSource/pull/49) #### New Contributors - [@​liefran-sim](https://redirect.github.com/liefran-sim) made their first contribution in [#​49](https://redirect.github.com/Recouse/EventSource/pull/49) **Full Changelog**: <https://github.com/Recouse/EventSource/compare/0.1.7...0.1.8> </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzMuNiIsInVwZGF0ZWRJblZlciI6IjQzLjE3My42IiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
4b4def3a11 |
feat(server): gemini embedding 2 support (#14956)
#### PR Dependency Tree * **PR #14956** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **Bug Fixes** * Improved Gemini Vertex provider configuration validation logic for enhanced reliability. * Refined Google Vertex publisher base URL construction handling. * **Tests** * Added test coverage for Gemini Embedding 2 model resolution. * Added test coverage for Gemini Vertex provider Google Cloud integration. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14956) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> |