Commit Graph

10978 Commits

Author SHA1 Message Date
DarkSky
059d3aa04a feat: improve native 2026-02-01 20:15:41 +08:00
renovate[bot]
948951d461 chore: bump up Lakr233/MarkdownView version to from: "3.6.2" (#14342)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[Lakr233/MarkdownView](https://redirect.github.com/Lakr233/MarkdownView)
| minor | `from: "3.4.7"` → `from: "3.6.2"` |

---

### Release Notes

<details>
<summary>Lakr233/MarkdownView (Lakr233/MarkdownView)</summary>

###
[`v3.6.2`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.6.1...3.6.2)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.6.1...3.6.2)

###
[`v3.6.1`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.6.0...3.6.1)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.6.0...3.6.1)

###
[`v3.6.0`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.6...3.6.0)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.6...3.6.0)

###
[`v3.5.6`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.2...3.5.6)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.2...3.5.6)

###
[`v3.5.2`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.1...3.5.2)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.1...3.5.2)

###
[`v3.5.1`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.0...3.5.1)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.5.0...3.5.1)

###
[`v3.5.0`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.4.9...3.5.0)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.4.9...3.5.0)

###
[`v3.4.9`](https://redirect.github.com/Lakr233/MarkdownView/releases/tag/3.4.9)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.4.8...3.4.9)

#### Changes since 3.4.7

- Add multi-platform support and SwiftUI integration
- Refactor Example app and remove legacy UIKit code
- Improve dynamic color handling for dark mode support
- Fix canImport order to check UIKit before AppKit

###
[`v3.4.8`](https://redirect.github.com/Lakr233/MarkdownView/compare/3.4.7...3.4.8)

[Compare
Source](https://redirect.github.com/Lakr233/MarkdownView/compare/3.4.7...3.4.8)

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-01 19:47:10 +08:00
passabilities.eth
0f0bfb9f06 fix(editor): slash menu on mobile browser (#14328)
## Summary
Fixed the slash menu not appearing when typing `/` on mobile web
browsers.

## Problem
Mobile browsers don't reliably fire keyboard events (`keyDown`) when
using virtual keyboards. This caused the slash menu trigger to fail on
mobile devices.

## Solution
- Changed from handling `keyDown` events to `beforeInput` events
- `InputEvent` is fired consistently across all platforms (mobile and
desktop)
- Added proper handling for IME composition to avoid duplicate triggers
- Uses `waitForUpdate()` to ensure the input is processed before
checking for the trigger

## Test plan
- [x] Tested on mobile Safari (iOS)
- [x] Tested on mobile Chrome (Android)
- [x] Verified desktop browsers still work correctly
- [x] Verified IME input (e.g., Chinese/Japanese) doesn't trigger false
positives

Fixes #12910 

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved slash menu input handling for better reliability and enhanced
IME (input method editor) composition support.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-01 19:43:28 +08:00
renovate[bot]
b778207af9 chore: bump up RevenueCat/purchases-ios-spm version to from: "5.56.1" (#14343)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[RevenueCat/purchases-ios-spm](https://redirect.github.com/RevenueCat/purchases-ios-spm)
| minor | `from: "5.55.3"` → `from: "5.56.1"` |

---

### Release Notes

<details>
<summary>RevenueCat/purchases-ios-spm
(RevenueCat/purchases-ios-spm)</summary>

###
[`v5.56.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.56.0...5.56.1)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.56.0...5.56.1)

###
[`v5.56.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5560)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.55.3...5.56.0)

#### 5.56.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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-01 19:43:01 +08:00
DarkSky
888f1f39db chore: bump deps (#14341) v2026.2.1-canary.910 2026-02-01 05:55:18 +08:00
DarkSky
b49e48b467 feat: add new tool 2026-02-01 04:37:13 +08:00
Akshaj Rawat
759aa1b684 feat: add option to disable image anti-aliasing (#14278)
## What this PR does

Closes #13869 
Adds a global setting to toggle image anti-aliasing in AFFiNE.

When disabled, images are rendered using nearest-neighbor scaling
(`image-rendering: pixelated`), preserving crisp pixels for pixel art,
sprites, icons, and low-resolution images.

## Why

Anti-aliasing causes small images to become blurry when scaled,
making it difficult to work with pixel art and technical assets.

## How to test

1. Open Settings → Appearance → Images
2. Toggle “Smooth image rendering”
3. Observe image scaling behavior:
   - ON: smooth / anti-aliased
   - OFF: pixelated / nearest-neighbor

## Notes

- Frontend-only change
- No backend required

# BEFORE
<img width="1911" height="909" alt="Screenshot 2026-01-18 202651"
src="https://github.com/user-attachments/assets/a40816c3-93fa-416d-90ec-38a919da182f"
/>

# AFTER
<img width="1919" height="910" alt="Screenshot 2026-01-18 202705"
src="https://github.com/user-attachments/assets/19fc348b-5f14-4e32-b6a8-a0905e569af5"
/>



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

* **New Features**
* Added an Images section in Appearance with a toggle to switch image
antialiasing on/off (setting is persisted).

* **Style**
* When antialiasing is turned off, images render with pixelated scaling
for a crisp, non-smoothed look.

* **Localization**
* Added English labels and description for the new Images and
antialiasing options.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: DarkSky <25152247+darkskygit@users.noreply.github.com>
2026-01-27 20:18:21 +00:00
DarkSky
5041578768 feat: bump ios toolchain (#14325)
#### PR Dependency Tree


* **PR #14325** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
v0.26.0-beta.9
2026-01-27 12:48:06 +08:00
Akshaj Rawat
b8f626513f feat: disable high power consumption without charger (#14281)
Co-authored-by: DarkSky <darksky2048@gmail.com>
2026-01-27 04:46:16 +08:00
DarkSky
3b4b0bad22 feat: improve admin panel styles (#14318) 2026-01-27 04:44:21 +08:00
DarkSky
7d47cc52b6 fix: firefox input (#14315)
fix #14296 
fix #14289

#### PR Dependency Tree


* **PR #14315** 👈

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 inline editor stability for selection edge cases and
beforeinput handling, with better recovery and native-input protection.
* Fixed potential crashes when deleting with selections outside the
editor bounds, including Firefox-specific scenarios.

* **Tests**
* Added unit tests covering beforeinput behavior and added Firefox
end-to-end regression tests.

* **Chores**
  * Reduced CI test parallelism to streamline pipeline.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-27 00:54:21 +08:00
DarkSky
27ed15a83e fix: chat session cannot delete (#14312)
fix #14309



#### PR Dependency Tree


* **PR #14312** 👈

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 AI chat session deletion with confirmation dialogs and
success/failure notifications.
* Localized AI chat panel labels, loading messages, and session
management text across multiple languages.

* **Documentation**
* Added internationalization support for chat panel titles, history
loading states, and deletion confirmations.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-26 19:47:47 +08:00
renovate[bot]
5498133627 chore: bump up rustc version to v1.93.0 (#14303)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rustc](https://redirect.github.com/rust-lang/rust) | minor | `1.92.0`
→ `1.93.0` |

---

### Release Notes

<details>
<summary>rust-lang/rust (rustc)</summary>

###
[`v1.93.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1930-2026-01-22)

[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.92.0...1.93.0)

\==========================

<a id="1.93.0-Language"></a>

## Language

- [Stabilize several s390x `vector`-related target features and the
`is_s390x_feature_detected!`
macro](https://redirect.github.com/rust-lang/rust/pull/145656)
- [Stabilize declaration of C-style variadic functions for the `system`
ABI](https://redirect.github.com/rust-lang/rust/pull/145954)
- [Emit error when using some keyword as a `cfg`
predicate](https://redirect.github.com/rust-lang/rust/pull/146978)
- [Stabilize
`asm_cfg`](https://redirect.github.com/rust-lang/rust/pull/147736)
- [During const-evaluation, support copying pointers
byte-by-byte](https://redirect.github.com/rust-lang/rust/pull/148259)
- [LUB coercions now correctly handle function item types, and functions
with differing
safeties](https://redirect.github.com/rust-lang/rust/pull/148602)
- [Allow `const` items that contain mutable references to `static`
(which is *very* unsafe, but not *always*
UB)](https://redirect.github.com/rust-lang/rust/pull/148746)
- [Add warn-by-default `const_item_interior_mutations` lint to warn
against calls which mutate interior mutable `const`
items](https://redirect.github.com/rust-lang/rust/pull/148407)
- [Add warn-by-default `function_casts_as_integer`
lint](https://redirect.github.com/rust-lang/rust/pull/141470)

<a id="1.93.0-Compiler"></a>

## Compiler

- [Stabilize
`-Cjump-tables=bool`](https://redirect.github.com/rust-lang/rust/pull/145974).
The flag was previously called `-Zno-jump-tables`.

<a id="1.93.0-Platform-Support"></a>

## Platform Support

- [Promote `riscv64a23-unknown-linux-gnu` to Tier 2 (without host
tools)](https://redirect.github.com/rust-lang/rust/pull/148435)

Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.

[platform-support-doc]:
https://doc.rust-lang.org/rustc/platform-support.html

<a id="1.93.0-Libraries"></a>

## Libraries

- [Stop internally using `specialization` on the `Copy` trait as it is
unsound in the presence of lifetime dependent `Copy` implementations.
This may result in some performance regressions as some standard library
APIs may now call `Clone::clone` instead of performing bitwise
copies](https://redirect.github.com/rust-lang/rust/pull/135634)
- [Allow the global allocator to use thread-local storage and
`std::thread::current()`](https://redirect.github.com/rust-lang/rust/pull/144465)
- [Make `BTree::append` not update existing keys when appending an entry
which already
exists](https://redirect.github.com/rust-lang/rust/pull/145628)
- [Don't require `T: RefUnwindSafe` for `vec::IntoIter<T>:
UnwindSafe`](https://redirect.github.com/rust-lang/rust/pull/145665)

<a id="1.93.0-Stabilized-APIs"></a>

## Stabilized APIs

-
[`<[MaybeUninit<T>]>::assume_init_drop`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_drop)
-
[`<[MaybeUninit<T>]>::assume_init_ref`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_ref)
-
[`<[MaybeUninit<T>]>::assume_init_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_mut)
-
[`<[MaybeUninit<T>]>::write_copy_of_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.write_copy_of_slice)
-
[`<[MaybeUninit<T>]>::write_clone_of_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.write_clone_of_slice)
-
[`String::into_raw_parts`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_raw_parts)
-
[`Vec::into_raw_parts`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.into_raw_parts)
-
[`<iN>::unchecked_neg`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unchecked_neg)
-
[`<iN>::unchecked_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unchecked_shl)
-
[`<iN>::unchecked_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unchecked_shr)
-
[`<uN>::unchecked_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unchecked_shl)
-
[`<uN>::unchecked_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unchecked_shr)
-
[`<[T]>::as_array`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_array)
-
[`<[T]>::as_mut_array`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_mut_array)
- [`<*const
[T]>::as_array`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_array)
- [`<*mut
[T]>::as_mut_array`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_mut_array)
-
[`VecDeque::pop_front_if`](https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.pop_front_if)
-
[`VecDeque::pop_back_if`](https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.pop_back_if)
-
[`Duration::from_nanos_u128`](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_nanos_u128)
-
[`char::MAX_LEN_UTF8`](https://doc.rust-lang.org/stable/std/primitive.char.html#associatedconstant.MAX_LEN_UTF8)
-
[`char::MAX_LEN_UTF16`](https://doc.rust-lang.org/stable/std/primitive.char.html#associatedconstant.MAX_LEN_UTF16)
-
[`std::fmt::from_fn`](https://doc.rust-lang.org/stable/std/fmt/fn.from_fn.html)
-
[`std::fmt::FromFn`](https://doc.rust-lang.org/stable/std/fmt/struct.FromFn.html)

<a id="1.93.0-Cargo"></a>

## Cargo

- [Enable CARGO\_CFG\_DEBUG\_ASSERTIONS in build scripts based on
profile](https://redirect.github.com/rust-lang/cargo/pull/16160/)
- [In `cargo tree`, support long forms for `--format`
variables](https://redirect.github.com/rust-lang/cargo/pull/16204/)
- [Add `--workspace` to `cargo
clean`](https://redirect.github.com/rust-lang/cargo/pull/16263/)

<a id="1.93.0-Rustdoc"></a>

## Rustdoc

- [Remove
`#![doc(document_private_items)]`](https://redirect.github.com/rust-lang/rust/pull/146495)
- [Include attribute and derive macros in search filters for
"macros"](https://redirect.github.com/rust-lang/rust/pull/148176)
- [Include extern crates in search filters for
`import`](https://redirect.github.com/rust-lang/rust/pull/148301)
- [Validate usage of crate-level doc
attributes](https://redirect.github.com/rust-lang/rust/pull/149197).
This means if any of `html_favicon_url`, `html_logo_url`,
`html_playground_url`, `issue_tracker_base_url`, or `html_no_source`
either has a missing value, an unexpected value, or a value of the wrong
type, rustdoc will emit the deny-by-default lint
`rustdoc::invalid_doc_attributes`.

<a id="1.93.0-Compatibility-Notes"></a>

## Compatibility Notes

- [Introduce `pin_v2` into the builtin attributes
namespace](https://redirect.github.com/rust-lang/rust/pull/139751)
- [Update bundled musl to
1.2.5](https://redirect.github.com/rust-lang/rust/pull/142682)
- [On Emscripten, the unwinding ABI used when compiling with
`panic=unwind` was changed from the JS exception handling ABI to the
wasm exception handling
ABI.](https://redirect.github.com/rust-lang/rust/pull/147224) If linking
C/C++ object files with Rust objects, `-fwasm-exceptions` must be passed
to the linker now. On nightly Rust, it is possible to get the old
behavior with `-Zwasm-emscripten-eh=false -Zbuild-std`, but it will be
removed in a future release.
- The `#[test]` attribute, used to define tests, was previously ignored
in various places where it had no meaning (e.g on trait methods or
types). Putting the `#[test]` attribute in these places is no longer
ignored, and will now result in an error; this may also result in errors
when generating rustdoc. [Error when `test` attribute is applied to
structs](https://redirect.github.com/rust-lang/rust/pull/147841)
- Cargo now sets the `CARGO_CFG_DEBUG_ASSERTIONS` environment variable
in more situations. This will cause crates depending on `static-init`
versions 1.0.1 to 1.0.3 to fail compilation with "failed to resolve: use
of unresolved module or unlinked crate `parking_lot`". See [the linked
issue](https://redirect.github.com/rust-lang/rust/issues/150646#issuecomment-3718964342)
for details.
- [User written types in the `offset_of!` macro are now checked to be
well formed.](https://redirect.github.com/rust-lang/rust/issues/150465/)
- `cargo publish` no longer emits `.crate` files as a final artifact for
user access when the `build.build-dir` config is unset
- [Upgrade the `deref_nullptr` lint from warn-by-default to
deny-by-default](https://redirect.github.com/rust-lang/rust/pull/148122)
- [Add future-incompatibility warning for `...` function parameters
without a pattern outside of `extern`
blocks](https://redirect.github.com/rust-lang/rust/pull/143619)
- [Introduce future-compatibility warning for `repr(C)` enums whose
discriminant values do not fit into a `c_int` or
`c_uint`](https://redirect.github.com/rust-lang/rust/pull/147017)
- [Introduce future-compatibility warning against ignoring `repr(C)`
types as part of
`repr(transparent)`](https://redirect.github.com/rust-lang/rust/pull/147185)

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 17:24:43 +08:00
JustAnDK
ecc98573eb fix: safe cookie parsing (#14292)
# Summary
This PR fixes a server-side cookie parsing edge case where malformed
cookie values throw `URI malformed`, causing socket.io auth to fail and
clients to get stuck in infinite workspace loading/syncing.

# Observed Behavior
- User creates a cloud-backed workspace and invites another user to it.
- Second user accepts the invite, awaits approval, and attempts to load
the workspace, getting stuck in infinite loading state.
- `api/workspaces/<id>/docs/<id>` return 404 for those users, as the
workspace they are trying to access was not synced to the server.
- Server logs show socket.io `CONNECT_ERROR` with `URI malformed`, then
connection closed.

# Confirmed Trigger
An externally-managed `auth_session` cookie containing a raw `%` symbol
causes `decodeURIComponent` to throw. This matches the observed
socket.io `CONNECT_ERROR`, explaining why some users were affected while
the rest were not.

# Root Cause
The `parseCookies` function calls `decodeURIComponent` on every cookie
key/value without guard, so when a malformed percent-encoded value is
encountered, `decodeURIComponent` throws, which bubbles into the
socket.io auth middleware, aborting the connection.

# Fix
Wrap `decodeURIComponent` calls in `try/catch`, on failure falling back
to the raw key/value.

# Testing
- Manually regenerating the bad cookie until no malformed parts are
present resolves the issue.
- With the guard in place, affected users can open shared workspaces
with sync successfully completing.


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

* **Bug Fixes**
* Improved cookie parsing robustness so malformed cookie values no
longer cause errors; the system now preserves raw cookie values when
decoding fails.

* **Tests**
* Added test coverage to ensure cookie parsing handles invalid/malformed
cookie values without throwing.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-26 17:24:11 +08:00
renovate[bot]
69907083f7 chore: bump up opentelemetry (#14300)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@opentelemetry/core](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`2.2.0` →
`2.5.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fcore/2.2.0/2.5.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fcore/2.5.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fcore/2.2.0/2.5.0?slim=true)
|
|
[@opentelemetry/exporter-prometheus](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`^0.208.0` →
`^0.211.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-prometheus/0.208.0/0.211.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fexporter-prometheus/0.211.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fexporter-prometheus/0.208.0/0.211.0?slim=true)
|
|
[@opentelemetry/exporter-zipkin](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-zipkin)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`2.2.0` →
`2.5.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-zipkin/2.2.0/2.5.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fexporter-zipkin/2.5.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fexporter-zipkin/2.2.0/2.5.0?slim=true)
|
|
[@opentelemetry/host-metrics](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/host-metrics#readme)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/host-metrics))
| [`0.38.0` →
`0.38.2`](https://renovatebot.com/diffs/npm/@opentelemetry%2fhost-metrics/0.38.0/0.38.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fhost-metrics/0.38.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fhost-metrics/0.38.0/0.38.2?slim=true)
|
|
[@opentelemetry/instrumentation](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`^0.208.0` →
`^0.211.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation/0.208.0/0.211.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation/0.211.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation/0.208.0/0.211.0?slim=true)
|
|
[@opentelemetry/instrumentation-graphql](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-graphql#readme)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-graphql))
| [`^0.56.0` →
`^0.58.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-graphql/0.56.0/0.58.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-graphql/0.58.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-graphql/0.56.0/0.58.0?slim=true)
|
|
[@opentelemetry/instrumentation-http](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`^0.208.0` →
`^0.211.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-http/0.208.0/0.211.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-http/0.211.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-http/0.208.0/0.211.0?slim=true)
|
|
[@opentelemetry/instrumentation-ioredis](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-ioredis#readme)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-ioredis))
| [`^0.57.0` →
`^0.59.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-ioredis/0.57.0/0.59.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-ioredis/0.59.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-ioredis/0.57.0/0.59.0?slim=true)
|
|
[@opentelemetry/instrumentation-nestjs-core](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-nestjs-core#readme)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-nestjs-core))
| [`^0.55.0` →
`^0.57.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-nestjs-core/0.55.0/0.57.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-nestjs-core/0.57.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-nestjs-core/0.55.0/0.57.0?slim=true)
|
|
[@opentelemetry/instrumentation-socket.io](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-socket.io#readme)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-socket.io))
| [`^0.55.0` →
`^0.57.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-socket.io/0.55.1/0.57.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-socket.io/0.57.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-socket.io/0.55.1/0.57.0?slim=true)
|
|
[@opentelemetry/resources](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`2.2.0` →
`2.5.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fresources/2.2.0/2.5.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fresources/2.5.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fresources/2.2.0/2.5.0?slim=true)
|
|
[@opentelemetry/sdk-metrics](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-metrics)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`2.2.0` →
`2.5.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-metrics/2.2.0/2.5.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsdk-metrics/2.5.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsdk-metrics/2.2.0/2.5.0?slim=true)
|
|
[@opentelemetry/sdk-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-sdk-node)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`^0.208.0` →
`^0.211.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-node/0.208.0/0.211.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsdk-node/0.211.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsdk-node/0.208.0/0.211.0?slim=true)
|
|
[@opentelemetry/sdk-trace-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`2.2.0` →
`2.5.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-trace-node/2.2.0/2.5.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsdk-trace-node/2.5.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsdk-trace-node/2.2.0/2.5.0?slim=true)
|
|
[@opentelemetry/semantic-conventions](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js))
| [`1.38.0` →
`1.39.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsemantic-conventions/1.38.0/1.39.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsemantic-conventions/1.39.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsemantic-conventions/1.38.0/1.39.0?slim=true)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-js
(@&#8203;opentelemetry/core)</summary>

###
[`v2.5.0`](https://redirect.github.com/open-telemetry/opentelemetry-js/blob/HEAD/CHANGELOG.md#250)

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-js/compare/v2.4.0...v2.5.0)

##### 🐛 Bug Fixes

- refactor(resources): use runtime check for default service name
[#&#8203;6257](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6257)
[@&#8203;overbalance](https://redirect.github.com/overbalance)

##### 🏠 Internal

- chore(context-async-hooks): Deprecate `AsyncHooksContextManager`
[#&#8203;6298](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6298)
[@&#8203;trentm](https://redirect.github.com/trentm)
- chore: fix CODEOWNERS rule ordering
[#&#8203;6297](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6297)
[@&#8203;overbalance](https://redirect.github.com/overbalance)
- fix(github): fix CODEOWNERS browser package paths
[#&#8203;6303](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6303)
[@&#8203;overbalance](https://redirect.github.com/overbalance)
- fix(build): update
[@&#8203;types/node](https://redirect.github.com/types/node) to
18.19.130, remove DOM types from base tsconfig
[#&#8203;6280](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6280)
[@&#8203;overbalance](https://redirect.github.com/overbalance)

###
[`v2.4.0`](https://redirect.github.com/open-telemetry/opentelemetry-js/blob/HEAD/CHANGELOG.md#240)

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-js/compare/v2.3.0...v2.4.0)

##### 🐛 Bug Fixes

- fix(sdk-metrics): improve PeriodicExportingMetricReader() constructor
input validation
[#&#8203;6286](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6286)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- fix(core): Avoid using DOM types for otperformance export
[#&#8203;6278](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6278)
[@&#8203;samchungy](https://redirect.github.com/samchungy)

##### 🏠 Internal

- chore(browser): fix CODEOWNERS paths for browser-related packages
- refactor(sdk-metrics): remove Promise.allSettled() ponyfill
[#&#8203;6277](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6277)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)

###
[`v2.3.0`](https://redirect.github.com/open-telemetry/opentelemetry-js/blob/HEAD/CHANGELOG.md#230)

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-js/compare/v2.2.0...v2.3.0)

##### 🚀 Features

- feat(sdk-trace-base): implement on ending in span processor
[#&#8203;6024](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6024)
[@&#8203;majanjua-amzn](https://redirect.github.com/majanjua-amzn)
  - note: this feature is experimental and subject to change

##### 🐛 Bug Fixes

- fix(sdk-metrics): remove setImmediate usage in ConsoleMetricExporter
[#&#8203;6199](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6199)
[@&#8203;overbalance](https://redirect.github.com/overbalance)

##### 🏠 Internal

- refactor(bundler-tests): split webpack tests into webpack-4 and
webpack-5
[#&#8203;6098](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6098)
[@&#8203;overbalance](https://redirect.github.com/overbalance)
- refactor(sdk-metrics): remove isNotNullish() utility function
[#&#8203;6151](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6151)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- refactor(sdk-metrics): remove FlatMap() utility function
[#&#8203;6154](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6154)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- refactor(sdk-metrics): simplify AllowList and DenyList processors
[#&#8203;6159](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6159)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- chore: disallow constructor parameter property syntax
[#&#8203;6187](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6187)
[@&#8203;legendecas](https://redirect.github.com/legendecas)
- refactor(sdk-metrics): use test() instead of match() in isValidName()
[#&#8203;6205](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6205)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- refactor(core): remove TimeOriginLegacy Safari <15 fallback
[#&#8203;6235](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6235)
[@&#8203;overbalance](https://redirect.github.com/overbalance)
- chore: remove backcompat workspace
[#&#8203;6238](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6238)
[@&#8203;overbalance](https://redirect.github.com/overbalance)
- refactor(core,resources): consolidate platform-specific code
[#&#8203;6208](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6208)
[@&#8203;overbalance](https://redirect.github.com/overbalance)
- test(api): remove unnecessary conditional
[#&#8203;6241](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6241)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- refactor(api): remove several reverse() calls
[#&#8203;6252](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6252)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- refactor(api): remove unnecessary map() call
[#&#8203;6251](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6251)
[@&#8203;cjihrig](https://redirect.github.com/cjihrig)
- chore: add zed to gitignore
[#&#8203;6258](https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6258)
[@&#8203;overbalance](https://redirect.github.com/overbalance)

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib
(@&#8203;opentelemetry/host-metrics)</summary>

###
[`v0.38.2`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/host-metrics/CHANGELOG.md#0382-2026-01-21)

[Compare
Source](c84212cca7...7a5f3c0a09)

##### Bug Fixes

- **deps:** update dependency systeminformation to v5.30.3
([#&#8203;3335](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3335))
([9af0086](9af0086223))

###
[`v0.38.1`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/host-metrics/CHANGELOG.md#0381-2026-01-14)

[Compare
Source](66935ac724...c84212cca7)

##### Bug Fixes

- **deps:** update dependency systeminformation to v5.27.14 \[security]
([#&#8203;3308](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3308))
([c2d0bc5](c2d0bc5b19))

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib
(@&#8203;opentelemetry/instrumentation-graphql)</summary>

###
[`v0.58.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-graphql/CHANGELOG.md#0580-2026-01-21)

[Compare
Source](c84212cca7...7a5f3c0a09)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3353](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3353))
([a56bbdc](a56bbdc34a))

###
[`v0.57.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-graphql/CHANGELOG.md#0570-2026-01-14)

[Compare
Source](94e5b7da45...c84212cca7)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3332](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3332))
([925a150](925a1501ce))
- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3340](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3340))
([2954943](29549434e7))

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib
(@&#8203;opentelemetry/instrumentation-ioredis)</summary>

###
[`v0.59.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-ioredis/CHANGELOG.md#0590-2026-01-21)

[Compare
Source](c84212cca7...7a5f3c0a09)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3353](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3353))
([a56bbdc](a56bbdc34a))

##### Dependencies

- The following workspace dependencies were updated
  - devDependencies
-
[@&#8203;opentelemetry/contrib-test-utils](https://redirect.github.com/opentelemetry/contrib-test-utils)
bumped from ^0.57.0 to ^0.58.0

###
[`v0.58.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-ioredis/CHANGELOG.md#0580-2026-01-14)

[Compare
Source](66935ac724...c84212cca7)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3332](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3332))
([925a150](925a1501ce))
- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3340](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3340))
([2954943](29549434e7))

##### Dependencies

- The following workspace dependencies were updated
  - devDependencies
-
[@&#8203;opentelemetry/contrib-test-utils](https://redirect.github.com/opentelemetry/contrib-test-utils)
bumped from ^0.56.0 to ^0.57.0

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib
(@&#8203;opentelemetry/instrumentation-nestjs-core)</summary>

###
[`v0.57.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-nestjs-core/CHANGELOG.md#0570-2026-01-21)

[Compare
Source](c84212cca7...7a5f3c0a09)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3353](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3353))
([a56bbdc](a56bbdc34a))

###
[`v0.56.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-nestjs-core/CHANGELOG.md#0560-2026-01-14)

[Compare
Source](94e5b7da45...c84212cca7)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3332](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3332))
([925a150](925a1501ce))
- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3340](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3340))
([2954943](29549434e7))

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib
(@&#8203;opentelemetry/instrumentation-socket.io)</summary>

###
[`v0.57.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-socket.io/CHANGELOG.md#0570-2026-01-21)

[Compare
Source](c84212cca7...7a5f3c0a09)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3353](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3353))
([a56bbdc](a56bbdc34a))

##### Dependencies

- The following workspace dependencies were updated
  - devDependencies
-
[@&#8203;opentelemetry/contrib-test-utils](https://redirect.github.com/opentelemetry/contrib-test-utils)
bumped from ^0.57.0 to ^0.58.0

###
[`v0.56.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-socket.io/CHANGELOG.md#0560-2026-01-14)

[Compare
Source](66935ac724...c84212cca7)

##### Features

- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3332](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3332))
([925a150](925a1501ce))
- **deps:** update deps matching '@&#8203;opentelemetry/\*'
([#&#8203;3340](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3340))
([2954943](29549434e7))

##### Dependencies

- The following workspace dependencies were updated
  - devDependencies
-
[@&#8203;opentelemetry/contrib-test-utils](https://redirect.github.com/opentelemetry/contrib-test-utils)
bumped from ^0.56.0 to ^0.57.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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 13:33:43 +08:00
renovate[bot]
268eb1f7ba chore: bump up Node.js to v22.22.0 (#14299)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | minor | `22.21.1`
→ `22.22.0` |

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

###
[`v22.22.0`](https://redirect.github.com/nodejs/node/releases/tag/v22.22.0):
2026-01-13, Version 22.22.0 &#x27;Jod&#x27; (LTS),
@&#8203;marco-ippolito

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v22.21.1...v22.22.0)

This is a security release.

##### Notable Changes

lib:

- (CVE-2025-59465) add TLSSocket default error handler
- (CVE-2025-55132) disable futimes when permission model is enabled
  lib,permission:
- (CVE-2025-55130) require full read and write to symlink APIs
  src:
- (CVE-2025-59466) rethrow stack overflow exceptions in async\_hooks
  src,lib:
- (CVE-2025-55131) refactor unsafe buffer creation to remove zero-fill
toggle
  tls:
- (CVE-2026-21637) route callback exceptions through error handlers

##### Commits

-
\[[`6badf4e6f4`](https://redirect.github.com/nodejs/node/commit/6badf4e6f4)]
- **deps**: update c-ares to v1.34.6 (Node.js GitHub Bot)
[#&#8203;60997](https://redirect.github.com/nodejs/node/pull/60997)
-
\[[`37509c3ff0`](https://redirect.github.com/nodejs/node/commit/37509c3ff0)]
- **deps**: update undici to 6.23.0 (Matteo Collina)
[nodejs-private/node-private#791](https://redirect.github.com/nodejs-private/node-private/pull/791)
-
\[[`eb8e41f8db`](https://redirect.github.com/nodejs/node/commit/eb8e41f8db)]
- **(CVE-2025-59465)** **lib**: add TLSSocket default error handler
(RafaelGSS)
[nodejs-private/node-private#797](https://redirect.github.com/nodejs-private/node-private/pull/797)
-
\[[`ebbf942a83`](https://redirect.github.com/nodejs/node/commit/ebbf942a83)]
- **(CVE-2025-55132)** **lib**: disable futimes when permission model is
enabled (RafaelGSS)
[nodejs-private/node-private#748](https://redirect.github.com/nodejs-private/node-private/pull/748)
-
\[[`6b4849583a`](https://redirect.github.com/nodejs/node/commit/6b4849583a)]
- **(CVE-2025-55130)** **lib,permission**: require full read and write
to symlink APIs (RafaelGSS)
[nodejs-private/node-private#760](https://redirect.github.com/nodejs-private/node-private/pull/760)
-
\[[`ddadc31f09`](https://redirect.github.com/nodejs/node/commit/ddadc31f09)]
- **(CVE-2025-59466)** **src**: rethrow stack overflow exceptions in
async\_hooks (Matteo Collina)
[nodejs-private/node-private#773](https://redirect.github.com/nodejs-private/node-private/pull/773)
-
\[[`d4d9f3915f`](https://redirect.github.com/nodejs/node/commit/d4d9f3915f)]
- **(CVE-2025-55131)** **src,lib**: refactor unsafe buffer creation to
remove zero-fill toggle (Сковорода Никита Андреевич)
[nodejs-private/node-private#759](https://redirect.github.com/nodejs-private/node-private/pull/759)
-
\[[`25d6799df6`](https://redirect.github.com/nodejs/node/commit/25d6799df6)]
- **(CVE-2026-21637)** **tls**: route callback exceptions through error
handlers (Matteo Collina)
[nodejs-private/node-private#796](https://redirect.github.com/nodejs-private/node-private/pull/796)

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 13:33:25 +08:00
renovate[bot]
50507fc9bf chore: bump up RevenueCat/purchases-ios-spm version to from: "5.55.3" (#14302)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[RevenueCat/purchases-ios-spm](https://redirect.github.com/RevenueCat/purchases-ios-spm)
| minor | `from: "5.0.1"` → `from: "5.55.3"` |

---

### Release Notes

<details>
<summary>RevenueCat/purchases-ios-spm
(RevenueCat/purchases-ios-spm)</summary>

###
[`v5.55.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.55.2...5.55.3)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.55.2...5.55.3)

###
[`v5.55.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5552)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.55.1...5.55.2)

#### 5.55.2

###
[`v5.55.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5551)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.55.0...5.55.1)

#### 5.55.1

###
[`v5.55.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5550)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.54.1...5.55.0)

#### 5.55.0

###
[`v5.54.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5541)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.54.0...5.54.1)

#### 5.54.1

###
[`v5.54.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5540)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.53.0...5.54.0)

#### 5.54.0

###
[`v5.53.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5530)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.52.1...5.53.0)

#### 5.53.0

###
[`v5.52.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5521)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.52.0...5.52.1)

#### 5.52.1

###
[`v5.52.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5520)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.51.1...5.52.0)

#### 5.52.0

###
[`v5.51.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5511)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.51.0...5.51.1)

#### 5.51.1

###
[`v5.51.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5510)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.50.1...5.51.0)

#### 5.51.0

###
[`v5.50.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5501)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.50.0...5.50.1)

#### 5.50.1

###
[`v5.50.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5500)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.49.3...5.50.0)

#### 5.50.0

###
[`v5.49.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5493)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.49.2...5.49.3)

#### 5.49.3

###
[`v5.49.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5492)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.49.1...5.49.2)

#### 5.49.2

###
[`v5.49.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5491)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.49.0...5.49.1)

#### 5.49.1

###
[`v5.49.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5490)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.48.0...5.49.0)

#### 5.49.0

###
[`v5.48.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5480)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.47.1...5.48.0)

#### 5.48.0

###
[`v5.47.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5471)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.47.0...5.47.1)

#### 5.47.1

###
[`v5.47.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5470)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.46.3...5.47.0)

#### 5.47.0

###
[`v5.46.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5463)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.46.2...5.46.3)

##### 🔄 Other Changes

- Use cached offerings on network errors
([#&#8203;5707](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/5707))
via Antonio Pallares
([@&#8203;ajpallares](https://redirect.github.com/ajpallares))
- Allow the use of Test Store in release builds using the uiPreview
dangerous setting for the RC Mobile app
([#&#8203;5765](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/5765))
via Rick ([@&#8203;rickvdl](https://redirect.github.com/rickvdl))
- Fix signature verification fallback urls
([#&#8203;5756](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/5756))
via Antonio Pallares
([@&#8203;ajpallares](https://redirect.github.com/ajpallares))

###
[`v5.46.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5462)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.46.1...5.46.2)

#### 5.46.2

###
[`v5.46.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5461)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.46.0...5.46.1)

#### 5.46.1

###
[`v5.46.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5460)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.45.1...5.46.0)

#### 5.46.0

###
[`v5.45.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5451)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.45.0...5.45.1)

#### 5.45.1

###
[`v5.45.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5450)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.44.1...5.45.0)

#### 5.45.0

###
[`v5.44.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5441)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.44.0...5.44.1)

#### 5.44.1

###
[`v5.44.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5440)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.43.0...5.44.0)

#### 5.44.0

###
[`v5.43.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5430)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.42.0...5.43.0)

#### 5.43.0

###
[`v5.42.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5420)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.41.0...5.42.0)

#### 5.42.0

###
[`v5.41.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5410)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.40.0...5.41.0)

#### 5.41.0

###
[`v5.40.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5400)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.39.3...5.40.0)

#### 5.40.0

###
[`v5.39.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5393)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.39.2...5.39.3)

#### 5.39.3

###
[`v5.39.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5392)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.39.1...5.39.2)

#### 5.39.2

###
[`v5.39.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5391)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.39.0...5.39.1)

#### 5.39.1

###
[`v5.39.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5390)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.38.2...5.39.0)

#### 5.39.0

###
[`v5.38.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5382)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.38.1...5.38.2)

#### 5.38.2

###
[`v5.38.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5381)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.38.0...5.38.1)

#### 5.38.1

###
[`v5.38.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5380)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.37.0...5.38.0)

#### 5.38.0

###
[`v5.37.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5370)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.36.0...5.37.0)

#### 5.37.0

###
[`v5.36.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5360)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.35.1...5.36.0)

#### 5.36.0

###
[`v5.35.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5351)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.35.0...5.35.1)

#### 5.35.1

###
[`v5.35.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5350)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.34.0...5.35.0)

#### 5.35.0

###
[`v5.34.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5340)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.33.1...5.34.0)

#### 5.34.0

###
[`v5.33.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5331)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.33.0...5.33.1)

#### 5.33.1

###
[`v5.33.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5330)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.32.0...5.33.0)

#### 5.33.0

###
[`v5.32.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5320)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.31.0...5.32.0)

#### 5.32.0

###
[`v5.31.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5310)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.30.0...5.31.0)

#### 5.31.0

###
[`v5.30.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.29.0...5.30.0)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.29.0...5.30.0)

###
[`v5.29.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5290)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.28.1...5.29.0)

#### 5.29.0

###
[`v5.28.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5281)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.28.0...5.28.1)

#### 5.28.1

###
[`v5.28.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5280)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.27.1...5.28.0)

#### 5.28.0

###
[`v5.27.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5271)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.26.0...5.27.1)

#### 5.27.1

###
[`v5.26.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5260)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.25.3...5.26.0)

#### 5.26.0

###
[`v5.25.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5253)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.25.2...5.25.3)

#### 5.25.3

###
[`v5.25.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5252)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.25.1...5.25.2)

#### 5.25.2

###
[`v5.25.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5251)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.25.0...5.25.1)

#### 5.25.1

###
[`v5.25.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5250)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.24.0...5.25.0)

#### 5.25.0

###
[`v5.24.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5240)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.23.0...5.24.0)

#### 5.24.0

###
[`v5.23.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5230)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.22.2...5.23.0)

#### 5.23.0

###
[`v5.22.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5222)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.22.1...5.22.2)

#### 5.22.2

###
[`v5.22.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5221)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.22.0...5.22.1)

#### 5.22.1

###
[`v5.22.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5220)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.21.2...5.22.0)

#### 5.22.0

###
[`v5.21.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5212)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.21.1...5.21.2)

#### 5.21.2

###
[`v5.21.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5211)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.21.0...5.21.1)

#### 5.21.1

###
[`v5.21.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5210)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.20.3...5.21.0)

#### 5.21.0

###
[`v5.20.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5203)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.20.2...5.20.3)

#### 5.20.3

###
[`v5.20.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5202)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.20.1...5.20.2)

#### 5.20.2

###
[`v5.20.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5201)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.20.0...5.20.1)

#### 5.20.1

###
[`v5.20.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5200)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.19.0...5.20.0)

#### 5.20.0

###
[`v5.19.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5190)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.18.0...5.19.0)

#### 5.19.0

###
[`v5.18.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5180)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.17.0...5.18.0)

#### 5.18.0

###
[`v5.17.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5170)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.16.1...5.17.0)

#### 5.17.0

###
[`v5.16.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5161)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.16.0...5.16.1)

#### 5.16.1

###
[`v5.16.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5160)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.15.1...5.16.0)

#### 5.16.0

###
[`v5.15.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5151)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.15.0...5.15.1)

#### 5.15.1

###
[`v5.15.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5150)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.14.6...5.15.0)

#### 5.15.0

###
[`v5.14.6`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5146)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.14.5...5.14.6)

#### 5.14.6

###
[`v5.14.5`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5145)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.14.4...5.14.5)

#### 5.14.5

###
[`v5.14.4`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5144)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.14.3...5.14.4)

#### 5.14.4

###
[`v5.14.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5143)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.14.2...5.14.3)

#### 5.14.3

###
[`v5.14.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5142)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.14.1...5.14.2)

#### 5.14.2

###
[`v5.14.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5141)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.14.0...5.14.1)

#### 5.14.1

###
[`v5.14.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5140)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.13.0...5.14.0)

#### 5.14.0

###
[`v5.13.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5130)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.12.1...5.13.0)

#### 5.13.0

###
[`v5.12.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5121)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.12.0...5.12.1)

#### 5.12.1

###
[`v5.12.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5120)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.11.0...5.12.0)

#### 5.12.0

###
[`v5.11.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5110)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.10.0...5.11.0)

#### 5.11.0

###
[`v5.10.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#5100)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.9.0...5.10.0)

#### 5.10.0

###
[`v5.9.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#590)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.8.0...5.9.0)

#### 5.9.0

###
[`v5.8.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#580)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.7.1...5.8.0)

#### 5.8.0

###
[`v5.7.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#571)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.7.0...5.7.1)

#### 5.7.1

###
[`v5.7.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#570)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.6.0...5.7.0)

#### 5.7.0

###
[`v5.6.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#560)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.5.0...5.6.0)

#### 5.6.0

###
[`v5.5.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#550)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.4.0...5.5.0)

#### 5.5.0

###
[`v5.4.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#540)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.3.4...5.4.0)

#### 5.4.0

###
[`v5.3.4`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#534)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.3.3...5.3.4)

#### 5.3.4

###
[`v5.3.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#533)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.3.2...5.3.3)

##### Bugfixes

- Remove usage of adServicesToken in syncPurchases
([#&#8203;4257](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4257))
via Mark Villacampa
([@&#8203;MarkVillacampa](https://redirect.github.com/MarkVillacampa))
- Fixes a Paywall Template 7 crash when none of the tiers have any
available products.
([#&#8203;4243](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4243))
via JayShortway
([@&#8203;JayShortway](https://redirect.github.com/JayShortway))
- \[SK2] send unsynced attributes when syncing purchases
([#&#8203;4245](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4245))
via Mark Villacampa
([@&#8203;MarkVillacampa](https://redirect.github.com/MarkVillacampa))

##### Other Changes

- Do not embed `RevenueCat.framework` in `RevenueCatUI`
([#&#8203;4256](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4256))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Add warnings and clarifications to v5 migration docs
([#&#8203;4231](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4231))
via Mark Villacampa
([@&#8203;MarkVillacampa](https://redirect.github.com/MarkVillacampa))
- Fixes SwiftLint violation of rule optional\_data\_string\_conversion
([#&#8203;4252](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4252))
via JayShortway
([@&#8203;JayShortway](https://redirect.github.com/JayShortway))
- Paywall Components Localized Strings
([#&#8203;4237](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4237))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- Update `fastlane-plugin-revenuecat_internal`
([#&#8203;4244](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4244))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Add missing `#if PAYWALL_COMPONENTS`
([#&#8203;4241](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4241))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- Paywalls Components Viewmodels + partial localization support
([#&#8203;4230](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4230))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))

###
[`v5.3.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#532)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.3.1...5.3.2)

##### Bugfixes

- \[Customer Center] Build `WrongPlatformView` from JSON
([#&#8203;4234](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4234))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Add `feedbackSurveyCompleted` event to Customer Center events
([#&#8203;4194](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4194))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))

##### Other Changes

- \[Diagnostics] Add `backend_error_code` property
([#&#8203;4236](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4236))
via Toni Rico ([@&#8203;tonidero](https://redirect.github.com/tonidero))
- Update README.md
([#&#8203;3986](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/3986))
via Khoa ([@&#8203;onmyway133](https://redirect.github.com/onmyway133))

###
[`v5.3.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#531)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.3.0...5.3.1)

##### Bugfixes

- Fix `compatibleTopBarTrailing` in MacOS and api tests
([#&#8203;4226](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4226))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- \[Paywall] Fix restoreStarted not being called on
`presentPaywallIfNeeded` when using `requiredEntitlementIdentifier`
([#&#8203;4223](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4223))
via Josh Holtz
([@&#8203;joshdholtz](https://redirect.github.com/joshdholtz))
- \[CustomerCenter] Move sheet and restore alert creation to
`ManageSubscriptionsView`
([#&#8203;4220](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4220))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- \[EXTERNAL] `Custom Entitlements Computation`: fix support display on
debug screen
([#&#8203;4215](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4215))
by [@&#8203;NachoSoto](https://redirect.github.com/NachoSoto)
([#&#8203;4218](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4218))
via Toni Rico ([@&#8203;tonidero](https://redirect.github.com/tonidero))
- \[Customer Center] Add padding to `No thanks` in promotional offer
screen
([#&#8203;4221](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4221))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Fix version number in plist files
([#&#8203;4213](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4213))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- fix mac os sandbox check slowness
([#&#8203;3879](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/3879))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- \[Customer Center] Fix `FeedbackSurveyView` not opening
([#&#8203;4208](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4208))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Remove `unneeded_override` disable to fix linter
([#&#8203;4209](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4209))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))

##### Dependency Updates

- Bump rexml from 3.3.3 to 3.3.6 in
/Tests/InstallationTests/CocoapodsInstallation
([#&#8203;4210](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4210))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])
- Bump rexml from 3.3.3 to 3.3.6
([#&#8203;4211](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4211))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])

##### Other Changes

- Update readme wording
([#&#8203;3914](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/3914))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- Set a maximum duration for iOS 15 tests
([#&#8203;4229](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4229))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Paywall Components Initial Commit
([#&#8203;4224](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4224))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- \[CustomerCenter] Open App Store when the user wants to update their
app
([#&#8203;4199](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4199))
via JayShortway
([@&#8203;JayShortway](https://redirect.github.com/JayShortway))
- \[Customer Center] Shows a warning when the app is not the latest
version
([#&#8203;4193](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4193))
via JayShortway
([@&#8203;JayShortway](https://redirect.github.com/JayShortway))
- Fix integration tests simulator version
([#&#8203;4219](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4219))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Pin swift-docc-plugin to 1.3.0
([#&#8203;4216](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4216))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))

###
[`v5.3.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#530)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.2.3...5.3.0)

##### New Features

- Price rounding logic
([#&#8203;4132](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4132))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))

##### Bugfixes

- \[Customer Center] Migrate to List style
([#&#8203;4190](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4190))
via Cody Kerns
([@&#8203;codykerns](https://redirect.github.com/codykerns))
- \[Paywalls] Improve locale consistency
([#&#8203;4158](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4158))
via Josh Holtz
([@&#8203;joshdholtz](https://redirect.github.com/joshdholtz))
- Set Paywalls Tester deployment target to iOS 15
([#&#8203;4196](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4196))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- \[Customer Center] Hide Contact Support button if URL can't be created
([#&#8203;4192](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4192))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Fix the setting for SKIP\_INSTALL in Xcode project
([#&#8203;4195](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4195))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- \[Customer Center] Improving customer center buttons
([#&#8203;4165](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4165))
via Cody Kerns
([@&#8203;codykerns](https://redirect.github.com/codykerns))
- Revert workaround for iOS 18 beta 5 SwiftUI crash
([#&#8203;4173](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4173))
via Mark Villacampa
([@&#8203;MarkVillacampa](https://redirect.github.com/MarkVillacampa))
- \[Paywalls] Make iOS version calculation lazy
([#&#8203;4163](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4163))
via Mark Villacampa
([@&#8203;MarkVillacampa](https://redirect.github.com/MarkVillacampa))
- Observe `PurchaseHandler` when owned externally
([#&#8203;4097](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4097))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))

##### Dependency Updates

- Bump fastlane-plugin-revenuecat\_internal from `d5f0742` to `4c4b8ce`
([#&#8203;4167](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4167))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])
- Bump rexml from 3.2.8 to 3.3.3 in
/Tests/InstallationTests/CocoapodsInstallation
([#&#8203;4176](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4176))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])
- Bump rexml from 3.2.9 to 3.3.3
([#&#8203;4175](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4175))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])

##### Other Changes

- \[Customer Center] Clean up colors in WrongPlatformView and
NoSubscriptionsView
([#&#8203;4204](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4204))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- Fix failing `all-tests` and retry more flaky tests
([#&#8203;4188](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4188))
via Josh Holtz
([@&#8203;joshdholtz](https://redirect.github.com/joshdholtz))
- Compatibility content unavailable improvements
([#&#8203;4197](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4197))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- Create lane to enable customer center
([#&#8203;4191](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4191))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))
- XCFramework artifacts in CircleCI
([#&#8203;4189](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4189))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- \[Customer Center] CustomerCenterViewModel checks whether the app is
the latest version
([#&#8203;4169](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4169))
via JayShortway
([@&#8203;JayShortway](https://redirect.github.com/JayShortway))
- export RevenueCatUI xcframework
([#&#8203;4172](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4172))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Corrects references from ManageSubscriptionsButtonStyle to
ButtonsStyle.
([#&#8203;4186](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4186))
via JayShortway
([@&#8203;JayShortway](https://redirect.github.com/JayShortway))
- Speed up carthage installation tests
([#&#8203;4184](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4184))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Customer center improvements
([#&#8203;4166](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4166))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- replace `color(from colorInformation:)` global with extension
([#&#8203;4183](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4183))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Generating new test snapshots for `main` - ios-13
([#&#8203;4181](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4181))
via RevenueCat Git Bot
([@&#8203;RCGitBot](https://redirect.github.com/RCGitBot))
- Generating new test snapshots for `main` - ios-16
([#&#8203;4182](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4182))
via RevenueCat Git Bot
([@&#8203;RCGitBot](https://redirect.github.com/RCGitBot))
- Generating new test snapshots for `main` - ios-14
([#&#8203;4180](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4180))
via RevenueCat Git Bot
([@&#8203;RCGitBot](https://redirect.github.com/RCGitBot))
- Generating new test snapshots for `main` - ios-15
([#&#8203;4179](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4179))
via RevenueCat Git Bot
([@&#8203;RCGitBot](https://redirect.github.com/RCGitBot))
- Fix tests in main
([#&#8203;4174](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4174))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Enable customer center tests
([#&#8203;4171](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4171))
via James Borthwick
([@&#8203;jamesrb1](https://redirect.github.com/jamesrb1))
- \[Customer Center] Initial implementation
([#&#8203;3967](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/3967))
via Cesar de la Vega
([@&#8203;vegaro](https://redirect.github.com/vegaro))

###
[`v5.2.3`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#523)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.2.2...5.2.3)

##### Bugfixes

- Fix Paywalls crash on iOS 18 beta
([#&#8203;4154](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4154))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))

##### Dependency Updates

- Bump danger from 9.4.3 to 9.5.0
([#&#8203;4143](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4143))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])
- Bump nokogiri from 1.16.6 to 1.16.7
([#&#8203;4129](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4129))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])
- Bump fastlane from 2.221.1 to 2.222.0
([#&#8203;4130](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4130))
via dependabot\[bot]
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])

##### Other Changes

- Update deployment targets for tests
([#&#8203;4145](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4145))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Deploy purchaserTester: clean up dry-run parameter
([#&#8203;4140](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4140))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Clean up API Testers
([#&#8203;4141](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4141))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- More project structure cleanup
([#&#8203;4131](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4131))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- temporarily disables purchasetester deploy
([#&#8203;4133](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4133))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Fix trigger all tests branch
([#&#8203;4135](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4135))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Clean up XCWorkspace and testing apps
([#&#8203;4111](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4111))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- tests trigger: add target-branch parameter to trigger from the right
branch
([#&#8203;4121](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4121))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Re-added the RevenueCatUI tests job on every commit
([#&#8203;4113](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4113))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))

###
[`v5.2.2`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#522-customercenteralpha3)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.2.1...5.2.2)

- Fix for disabled promo offer button
([#&#8203;4142](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4142))

###
[`v5.2.1`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#521-customercenteralpha1)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.2.0...5.2.1)

- Initial Customer Center Alpha Release

###
[`v5.2.0`](https://redirect.github.com/RevenueCat/purchases-ios-spm/blob/HEAD/CHANGELOG.md#520)

[Compare
Source](https://redirect.github.com/RevenueCat/purchases-ios-spm/compare/5.1.0...5.2.0)

##### New Features

- Added new paywall template to support multiple tiered subscriptions
([#&#8203;4022](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4022))
via Josh Holtz
([@&#8203;joshdholtz](https://redirect.github.com/joshdholtz))

##### Bugfixes

- Fix certain completion blocks not being dispatched on the main thread
([#&#8203;4058](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4058))
via Mark Villacampa
([@&#8203;MarkVillacampa](https://redirect.github.com/MarkVillacampa))
- Only checks staged files for leftover API keys.
([#&#8203;4073](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4073))
via JayShortway
([@&#8203;JayShortway](https://redirect.github.com/JayShortway))

##### Other Changes

- \[Ci] Fix trigger to run all tests from github actions
([#&#8203;4075](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4075))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- added new workflow to trigger all tests
([#&#8203;4051](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4051))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))
- Reduce CI jobs
([#&#8203;4025](https://redirect.github.com/RevenueCat/purchases-ios-spm/issues/4025))
via Andy Boedo ([@&#8203;aboedo](https://redirect.github.com/aboedo))

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 05:44:47 +08:00
DarkSky
09cc2dceda feat: cleanup chat panel (#14259)
#### PR Dependency Tree


* **PR #14258**
  * **PR #14259** 👈

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**
* Split AI initialization into separate editor, app, and shared
registries; removed legacy chat-panel and replaced it with a
component-based editor chat, updating wiring and public exports.
* Propagated server/subscription/model services into chat/playground
components and improved session lifecycle and UI composition.

* **Tests**
* Added tests for AI effect registration and chat session resolution;
extended DOM/test utilities and assertions.

* **Chores**
  * Added happy-dom for runtime and test environments.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-26 04:02:07 +08:00
Shyim
02449026b9 fix: add expose port 3010 in Dockerfile (#14293)
Expose is requierd for automatic port finding with load balancers like
Traefik without having to configure the port explict.

> error="service \"affine-affine\" error: port is missing"
container=affine-affine-a76ca4362da101be5a53279db7aac67595a9df0783b0026efc3e5431009cbd66

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

## Summary by CodeRabbit

* **Chores**
  * Updated deployment configuration for container port exposure.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-25 17:35:15 +08:00
Peng Xiao
056f2c1161 fix: should allow affine.pro to be embedded (#14285) 2026-01-20 23:33:28 +08:00
likljn
94431df236 fix(core): make member popover responsive (#14277)
## Problem
In Kanban view, clicking the `Empty` value for the Member property can
cause the member popover layout to overflow/break due to a fixed
container width.

### Before ScreenShot
<img width="410" height="119" alt="image"
src="https://github.com/user-attachments/assets/e0d28a37-2ea4-4a65-afca-e4ef10af37dd"
/>

## Repro
1. Open a Database in Kanban view
2. Ensure the Member property has some cards with `Empty`
3. Click the `Empty` member value
4. Observe the popover layout overflow/broken UI

## Solution
Make the popover container responsive by using `width: 100%` with
`maxWidth: 415px` to preserve the original intended size while
preventing overflow in narrow containers.

### After ScreenShot
<img width="410" height="146" alt="image (1)"
src="https://github.com/user-attachments/assets/d97e6b8b-eabc-499a-9f04-0422505c67bf"
/>


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

* **Style**
* Improved member selector popover styling: unified padding, made width
responsive with a max width limit, and added box-sizing for more
consistent layout and spacing across screen sizes.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-18 09:37:08 +00:00
DarkSky
f373e08583 feat: refactor doc write in native (#14272) v0.26.0-beta.8 2026-01-18 16:31:12 +08:00
Gabriele
753b11deeb fix: resolve navbar overlay issue on sign-in page (#14274)
This pr fixes #14273.

I have implemented two minor CSS adjustments to resolve the navbar
interaction issue on the sign-in page:

- Removed position: relative and z-index: 1 from signInPageContainer.
- Set z-index: 1 on the SignInPanel div (prevent SignInBackgroundArts
from overlapping the SignInPanel)


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

## Summary by CodeRabbit

* **Style**
  * Adjusted z-index layering for the sign-in page component.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-17 17:32:42 +00:00
Heera Rana
17f2ebc4de feat: render document header image from document metadata (#14255)
### What
Adds support for rendering an optional image above the document title
using document metadata.

### Why
Provides a visual identifier for documents and improves readability for
users who rely on visual cues.

### How
- Reads `headerImage` from document metadata (if present)
- Renders the image above the editor when present
- Fully optional and non-breaking
- No BlockSuite or data model changes

### Related
fix #14240


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

## Summary by CodeRabbit

* **New Features**
* Documents can now display header images in the page editor. When a
header image is available, it appears above the editor content,
enhancing visual presentation and providing better context for your
documents.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-16 14:18:59 +00:00
realies
0da91e406e feat(server): add document write tools for mcp (#14245)
## Summary

This PR adds write capabilities to AFFiNE's MCP (Model Context Protocol)
integration, enabling external tools (Claude, GPT, etc.) to create and
modify documents programmatically.

**New MCP Tools:**
- `create_document` - Create new documents from markdown content
- `update_document` - Update document content using structural diffing
for minimal changes (preserves document history and enables real-time
collaboration)

**Implementation:**
- `markdown_to_ydoc.rs` - Converts markdown to AFFiNE-compatible y-octo
binary format
- `markdown_utils.rs` - Shared markdown parsing utilities (used by both
ydoc-to-md and md-to-ydoc)
- `update_ydoc.rs` - Structural diffing implementation for updating
existing documents
- `DocWriter` service - TypeScript service for document operations
- Exposes `markdownToDocBinary` and `updateDocBinary` via napi bindings

**Supported Markdown Elements:**
- Headings (H1-H6)
- Paragraphs
- Bullet lists and numbered lists
- Code blocks (with language detection)
- Blockquotes
- Horizontal dividers
- Todo items (checkboxes)

**y-octo Changes:**
This PR reverts the y-octo sync (ca2462f, a5b60cf) which introduced a
concurrency bug causing hangs when creating documents with many nested
block structures. It also ports the improved `get_node_index` binary
search fix from upstream that prevents divide-by-zero panics when
decoding documents.

## Test Results 

### Unit Tests (47/47 passing)

| Test Suite | Tests | Status |
|------------|-------|--------|
| markdown_to_ydoc | 16/16 |  Pass |
| markdown_utils | 11/11 |  Pass |
| update_ydoc | 13/13 |  Pass |
| delta_markdown | 2/2 |  Pass |
| affine (doc parser) | 5/5 |  Pass |

### End-to-End MCP Testing 

Tested against local AFFiNE server with real MCP client requests:

| Tool | Result | Notes |
|------|--------|-------|
| `tools/list` |  Pass | Returns all 5 tools with correct schemas |
| `create_document` |  Pass | Successfully created test documents |
| `update_document` |  Pass | Successfully updated documents with
structural diffing |
| `read_document` |  Pass | Existing tool, works correctly |
| `keyword_search` |  Pass | Existing tool, works correctly |

**E2E Test Details:**
- Started local AFFiNE server with PostgreSQL, Redis, and Manticore
- Created test user and workspace via seed/GraphQL
- Verified MCP endpoint at `/api/workspaces/:workspaceId/mcp`
- Tested JSON-RPC calls with proper SSE streaming
- Confirmed documents are stored and indexed correctly (verified via
server logs)

## Test Plan
- [x] All Rust unit tests pass (47 tests)
- [x] Native bindings build successfully (release mode)
- [x] Document creation via MCP works end-to-end
- [x] Document update via MCP works end-to-end
- [x] CodeRabbit feedback addressed
- [ ] Integration testing with Claude/GPT MCP clients

Closes #14161

---

**Requested by:** @realies  
**Key guidance from:** @darkskygit (use y-octo instead of yjs for memory
efficiency)

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

* **New Features**
* Create documents from Markdown: generate new documents directly from
Markdown content with automatic title extraction
* Update documents with Markdown: modify existing documents using
Markdown as the source with automatic diff calculation for efficient
updates
* Copilot integration: new tools for document creation and updates
through Copilot's interface

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-16 20:57:24 +08:00
DarkSky
2c5559ed0b fix: missing session fields 2026-01-16 17:26:05 +08:00
DarkSky
924d58603f chore: improve event flow (#14266) 2026-01-16 16:07:27 +08:00
DarkSky
d4581b839a chore: add tools 2026-01-16 10:53:13 +08:00
DarkSky
8d14607c2b feat: improve indexer perf v0.26.0-beta.7 2026-01-15 19:27:41 +08:00
DarkSky
00a458543f feat: cleanup chat panel (#14258)
#### PR Dependency Tree


* **PR #14258** 👈

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

* **Removed Features**
* Web search functionality has been removed from AI chat and related AI
features. Users will no longer see network search options or toggles in
chat preferences and panels.
  * AI chat requests no longer support external web search capabilities.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->


#### PR Dependency Tree


* **PR #14258** 👈
  * **PR #14259**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
2026-01-15 19:20:55 +08:00
DarkSky
ac7a95e708 feat: misc optimizations (#14257)
fix #13798
2026-01-15 03:47:22 +08:00
DarkSky
76e1721d70 fix: journal conflict handle v0.26.0-beta.6 2026-01-15 00:55:35 +08:00
DarkSky
fc59dff9e2 chore: enable blur background for mac 2026-01-15 00:35:11 +08:00
DarkSky
27a58e764c chore: bump version & deps 2026-01-15 00:33:51 +08:00
DarkSky
13907f7234 fix(core): event flow handle (#14256) 2026-01-15 00:04:32 +08:00
DarkSky
7c24b2521a feat: reduce backend (#14251)
#### PR Dependency Tree


* **PR #14251** 👈

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**
* Current user profile now exposes access tokens, revealed tokens, and
detailed calendar accounts/subscriptions.
* Workspace now exposes permissions, calendars, calendar events, and a
workspace-scoped blob upload part URL.
  * New document-update mutation for applying doc updates.

* **API Changes**
  * validateAppConfig is now a query (mutation deprecated).
* Several legacy top-level calendar/blob endpoints deprecated in favor
of user/workspace fields.

* **Refactor**
* Calendar, blob-upload and access-token surfaces reorganized to use
user/workspace-centric fields.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-14 00:01:07 +08:00
github-actions[bot]
7c440686ad chore(i18n): sync translations (#14148)
New Crowdin translations by [Crowdin GH
Action](https://github.com/crowdin/github-action)

---------

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: DarkSky <darksky2048@gmail.com>
v0.26.0-beta.5
2026-01-13 22:09:42 +08:00
DarkSky
b331a08744 feat: native update merge (#14250)
#### PR Dependency Tree


* **PR #14250** 👈

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

* **Backend Optimization**
  * Faster document retrieval via a native binary fetch path.
* Native-accelerated merging of document updates for improved
performance and consistency.
* **Indexing & Reliability**
* Indexing now only proceeds on valid parse results, with clearer
warnings and richer metadata on failures.
* More consistent sync behavior and enhanced diagnostic logging for
indexing operations.
* **Tests**
  * Expanded tests to cover native binary retrieval error handling.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-13 22:03:55 +08:00
DarkSky
279b7bb64f feat(core): integrate google calendar sync (#14248)
fix #14170 
fix #13893 
fix #13673 
fix #13543 
fix #13308 
fix #7607




#### PR Dependency Tree


* **PR #14247**
  * **PR #14248** 👈

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**
* Integrations panel in Account Settings to link/unlink calendar
providers.
  * Collapsible settings wrapper for improved layout.

* **Improvements**
* Calendar system reworked: per-account calendar groups, simplified
toggles with explicit Save, richer event display (multi-dot date
indicators), improved event time/title handling across journal views.

* **Localization**
* Added calendar keys: save-error, no-journal, no-calendar; removed
legacy duplicate-error keys.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-13 02:38:16 +08:00
DarkSky
89f0430242 fix: race conditions (y-crdt/y-octo#51) 2026-01-13 01:10:07 +08:00
DarkSky
0bd8160ed4 feat: init cloud calendar support (#14247)
#### PR Dependency Tree


* **PR #14247** 👈
  * **PR #14248**

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**
* Google Calendar integration (disabled by default): link/unlink
accounts, OAuth flow, webhooks, real-time push, background sync,
workspace calendars with customizable items and date-range event
viewing.
* **GraphQL / Client**
* New queries & mutations for accounts, subscriptions, events,
providers, and workspace calendar management.
* **Localization**
* Added localized error message for calendar provider request failures.
* **Tests**
* Backend tests covering sync, webhook renewal, and error/error-recovery
scenarios.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-12 23:17:43 +08:00
DarkSky
a5b60cf679 fix: index calc & detached node handle (y-crdt/y-octo#50) 2026-01-11 18:44:55 +08:00
DarkSky
ca2462f987 feat(native): sync yocto codes (#14243)
#### PR Dependency Tree


* **PR #14243** 👈

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**
* Batch management API for coordinated document mutations and change
tracking.
* New document accessors (IDs, state snapshots, change/delete set
queries) and subscriber count.

* **Chores**
  * Upgraded Rust edition across packages to 2024.
  * Repository-wide formatting, stylistic cleanups and test adjustments.

* **Breaking Changes**
* Removed the Node native bindings package and its JS/TS declarations
and tests (no longer published/available).

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-11 06:08:33 +08:00
Adit Syed Afnan
d515d295ce feat(editor): enhance string comparison handling in eval.ts (#14233)
Refactors the compareString function to safely handle null and undefined
inputs and improves overall string comparison logic. This prevents
incorrect sort behavior and ensures consistent ordering when comparing
mixed or missing values, particularly in table view sorting scenarios.

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

* **Bug Fixes**
* Improved string comparison used for sorting: empty values are
consistently placed last, numeric parts sort numerically before
non-numeric parts, and mixed-type and case variations are handled more
predictably for stable, consistent ordering across data views.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-09 02:58:00 +00:00
DarkSky
e4dc82ee35 chore: bump deps (#14227)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated backend service dependencies to the latest stable versions for
improved performance and security.
* Upgraded UI component library dependencies to the latest minor
releases.

* **Improvements**
* Enhanced web search functionality for better search results on
standard AI models.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-07 13:15:17 +08:00
renovate[bot]
aa6f26b1a5 chore: bump up opentelemetry (#14208)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@opentelemetry/instrumentation-ioredis](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-ioredis#readme)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-ioredis))
| [`^0.56.0` →
`^0.57.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-ioredis/0.56.0/0.57.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-ioredis/0.57.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-ioredis/0.56.0/0.57.0?slim=true)
|
|
[@opentelemetry/instrumentation-socket.io](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-socket.io#readme)
([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-socket.io))
| [`0.55.0` →
`0.55.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-socket.io/0.55.0/0.55.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-socket.io/0.55.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-socket.io/0.55.0/0.55.1?slim=true)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-js-contrib
(@&#8203;opentelemetry/instrumentation-ioredis)</summary>

###
[`v0.57.0`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-ioredis/CHANGELOG.md#0570-2025-12-17)

[Compare
Source](94e5b7da45...66935ac724)

##### Features

- **instrumentations-ioredis:** support `net.*` and database semconv
migration
([#&#8203;3266](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3266))
([9f92c8b](9f92c8b5b1))

##### Dependencies

- The following workspace dependencies were updated
  - devDependencies
-
[@&#8203;opentelemetry/contrib-test-utils](https://redirect.github.com/opentelemetry/contrib-test-utils)
bumped from ^0.55.0 to ^0.56.0

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib
(@&#8203;opentelemetry/instrumentation-socket.io)</summary>

###
[`v0.55.1`](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/blob/HEAD/packages/instrumentation-socket.io/CHANGELOG.md#0551-2025-12-17)

[Compare
Source](94e5b7da45...66935ac724)

##### Dependencies

- The following workspace dependencies were updated
  - devDependencies
-
[@&#8203;opentelemetry/contrib-test-utils](https://redirect.github.com/opentelemetry/contrib-test-utils)
bumped from ^0.55.0 to ^0.56.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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-07 11:45:15 +08:00
likljn
c1d43b9b18 fix(editor): keep slash menu alive on text input when no_result (#14141)
**Problem**
Slash menu can be prematurely aborted when the query is still in
`no_result`
due to async query updates after deletion.

**Solution**
Keep the slash menu alive on text input while in `no_result`,
preventing aborts based on a stale query state.

**Repro**
1. Type `/eeee`
2. Delete to `/`
3. Type `h`
4. Slash menu should recover and show results


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

## Summary by CodeRabbit

* **Bug Fixes**
* Enhanced slash-menu keyboard interaction: users can now continue
typing to refine queries when no results are displayed, instead of the
menu closing unexpectedly. Keyboard navigation and other controls remain
responsive.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: DarkSky <25152247+darkskygit@users.noreply.github.com>
2026-01-07 02:13:13 +00:00
DarkSky
b8e597fa1d fix: hide search local label if need 2026-01-07 10:42:51 +08:00
Cats Juice
cf98afb32e chore: bump theme@1.1.23 (#14222)
close #13952

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

* **Chores**
* Upgraded the shared theme library from v1.1.16 to v1.1.23 across the
project (core components, UI widgets, content blocks, and frontend
apps), delivering the latest styling and design refinements
platform-wide.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: L-Sun <zover.v@gmail.com>
v0.26.0-beta.4
2026-01-06 20:48:44 +08:00
Yiding Jia
a11e9fe8ca feat(server): add LISTEN_ADDR env var for allowing server to listen on ipv6 (#14211)
The old code hardcoded 0.0.0.0 which means the server only listened for
ipv4 connections, making it not work on ipv6-only networks.

This change adds a LISTEN_ADDR env var which allows the server to bind
to ipv6 as well.

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

* **New Features**
* Server listen address is now configurable via the LISTEN_ADDR
environment variable (default: 0.0.0.0), enabling IPv4/IPv6 or
interface-specific binding.
* Configuration schemas and admin UI now expose the listen address
option so deployments can view and override it.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-05 09:31:47 +00:00