doodlewind
dba8e00fb6
feat(editor): add basic note support in turbo renderer ( #11607 )
...
After landing layout tree refactoring, this PR adds basic note support in turbo renderer.
In this demo recording, the code and image block needs to be further supported.
[Screen Recording 2025-04-10 at 5.16.15 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/lEGcysB4lFTEbCwZ8jMv/2e416b41-5609-4e52-a90f-5b7bb77db682.mov " />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/2e416b41-5609-4e52-a90f-5b7bb77db682.mov )
2025-04-10 09:52:33 +00:00
renovate
c36dc9318c
chore: bump up all non-major dependencies ( #11600 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@react-email/components](https://redirect.github.com/resend/react-email ) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/components )) | [`0.0.35` -> `0.0.36`](https://renovatebot.com/diffs/npm/@react-email%2fcomponents/0.0.35/0.0.36 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [bullmq](https://bullmq.io/ ) ([source](https://redirect.github.com/taskforcesh/bullmq )) | [`5.48.0` -> `5.48.1`](https://renovatebot.com/diffs/npm/bullmq/5.48.0/5.48.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [cc](https://redirect.github.com/rust-lang/cc-rs ) | `1.2.17` -> `1.2.18` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | build-dependencies | patch |
| [mimalloc](https://redirect.github.com/purpleprotocol/mimalloc_rust ) | `0.1.45` -> `0.1.46` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [react-email](https://redirect.github.com/resend/react-email ) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/react-email )) | [`4.0.3` -> `4.0.7`](https://renovatebot.com/diffs/npm/react-email/4.0.3/4.0.7 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [androidx.compose.material3:material3](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2 ) ([source](https://cs.android.com/androidx/platform/frameworks/support )) | `1.3.1` -> `1.3.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [org.jetbrains.kotlinx:kotlinx-coroutines-core](https://redirect.github.com/Kotlin/kotlinx.coroutines ) | `1.10.1` -> `1.10.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://redirect.github.com/Kotlin/kotlinx.coroutines ) | `1.10.1` -> `1.10.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [com.android.tools.build:gradle](https://developer.android.com/studio/build ) ([source](https://android.googlesource.com/platform/tools/base )) | `8.7.2` -> `8.9.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [androidx.core:core-ktx](https://developer.android.com/jetpack/androidx/releases/core#1.16.0 ) ([source](https://cs.android.com/androidx/platform/frameworks/support )) | `1.15.0` -> `1.16.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
---
### Release Notes
<details>
<summary>resend/react-email (@​react-email/components)</summary>
### [`v0.0.36`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/components/CHANGELOG.md#0036 )
[Compare Source](https://redirect.github.com/resend/react-email/compare/@react-email/components@0.0.35...@react-email/components@0.0.36 )
##### Patch Changes
- Updated dependencies \[[`f4c5456`](https://redirect.github.com/resend/react-email/commit/f4c5456 )]
- Updated dependencies \[[`f4c5456`](https://redirect.github.com/resend/react-email/commit/f4c5456 )]
- [@​react-email/render](https://redirect.github.com/react-email/render )[@​1](https://redirect.github.com/1 ).0.6
- [@​react-email/code-block](https://redirect.github.com/react-email/code-block )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/body](https://redirect.github.com/react-email/body )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/button](https://redirect.github.com/react-email/button )[@​0](https://redirect.github.com/0 ).0.19
- [@​react-email/code-inline](https://redirect.github.com/react-email/code-inline )[@​0](https://redirect.github.com/0 ).0.5
- [@​react-email/column](https://redirect.github.com/react-email/column )[@​0](https://redirect.github.com/0 ).0.13
- [@​react-email/container](https://redirect.github.com/react-email/container )[@​0](https://redirect.github.com/0 ).0.15
- [@​react-email/font](https://redirect.github.com/react-email/font )[@​0](https://redirect.github.com/0 ).0.9
- [@​react-email/head](https://redirect.github.com/react-email/head )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/heading](https://redirect.github.com/react-email/heading )[@​0](https://redirect.github.com/0 ).0.15
- [@​react-email/hr](https://redirect.github.com/react-email/hr )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/html](https://redirect.github.com/react-email/html )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/img](https://redirect.github.com/react-email/img )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/link](https://redirect.github.com/react-email/link )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/markdown](https://redirect.github.com/react-email/markdown )[@​0](https://redirect.github.com/0 ).0.14
- [@​react-email/preview](https://redirect.github.com/react-email/preview )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/row](https://redirect.github.com/react-email/row )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/section](https://redirect.github.com/react-email/section )[@​0](https://redirect.github.com/0 ).0.16
- [@​react-email/tailwind](https://redirect.github.com/react-email/tailwind )[@​1](https://redirect.github.com/1 ).0.4
- [@​react-email/text](https://redirect.github.com/react-email/text )[@​0](https://redirect.github.com/0 ).1.1
</details>
<details>
<summary>taskforcesh/bullmq (bullmq)</summary>
### [`v5.48.1`](https://redirect.github.com/taskforcesh/bullmq/compare/v5.48.0...b00731469ebbc65d35003c48da093e48c0ccc6ed )
[Compare Source](https://redirect.github.com/taskforcesh/bullmq/compare/v5.48.0...v5.48.1 )
</details>
<details>
<summary>rust-lang/cc-rs (cc)</summary>
### [`v1.2.18`](https://redirect.github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#1218---2025-04-04 )
[Compare Source](https://redirect.github.com/rust-lang/cc-rs/compare/cc-v1.2.17...cc-v1.2.18 )
##### Other
- Regenerate target info ([#​1450](https://redirect.github.com/rust-lang/cc-rs/pull/1450 ))
- Use `std::thread::available_parallelism` for determining the default number of jobs ([#​1447](https://redirect.github.com/rust-lang/cc-rs/pull/1447 ))
- Fix mips64-openwrt-linux-musl parsing ([#​1449](https://redirect.github.com/rust-lang/cc-rs/pull/1449 ))
- Use compiler prefix `x86_64-linux-musl` ([#​1443](https://redirect.github.com/rust-lang/cc-rs/pull/1443 ))
</details>
<details>
<summary>purpleprotocol/mimalloc_rust (mimalloc)</summary>
### [`v0.1.46`](https://redirect.github.com/purpleprotocol/mimalloc_rust/releases/tag/v0.1.46 ): Version 0.1.46
[Compare Source](https://redirect.github.com/purpleprotocol/mimalloc_rust/compare/v0.1.45...v0.1.46 )
##### Changes
- Fixed musl builds.
</details>
<details>
<summary>resend/react-email (react-email)</summary>
### [`v4.0.7`](https://redirect.github.com/resend/react-email/releases/tag/react-email%404.0.7 ): react-email 4.0.7
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.6...react-email@4.0.7 )
#### What's Changed
- [`403e415`](https://redirect.github.com/resend/react-email/commit/403e415 ): Fix `deno` not working as an option for `email build`
**Full Changelog**: https://github.com/resend/react-email/compare/react-email@4.0.6...react-email@4.0.7
### [`v4.0.6`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#406 )
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.5...react-email@4.0.6 )
##### Patch Changes
- [`809130e`](https://redirect.github.com/resend/react-email/commit/809130e ): `next@15.2.4`
### [`v4.0.5`](https://redirect.github.com/resend/react-email/releases/tag/react-email%404.0.5 ): react-email 4.0.5
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.4...react-email@4.0.5 )
#### What's Changed
- [`e1dc351`](https://redirect.github.com/resend/react-email/commit/e1dc351 ): Add support for path aliases when linter runs tailwind config
**Full Changelog**: https://github.com/resend/react-email/compare/react-email@4.0.4...react-email@4.0.5
### [`v4.0.4`](https://redirect.github.com/resend/react-email/releases/tag/react-email%404.0.4 ): react-email 4.0.4
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.3...react-email@4.0.4 )
#### What's Changed
- [`1a7f9e6`](https://redirect.github.com/resend/react-email/commit/1a7f9e6 ): Update dependencies: `next@15.2.3`
**Full Changelog**: https://github.com/resend/react-email/compare/react-email@4.0.3...react-email@4.0.4
</details>
<details>
<summary>Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-core)</summary>
### [`v1.10.2`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-1102 )
[Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.10.1...1.10.2 )
- Fixed the `kotlinx-coroutines-debug` JAR file including the `module-info.class` file twice, resulting in failures in various tooling ([#​4314](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4314 )). Thanks, [@​RyuNen344](https://redirect.github.com/RyuNen344 )!
- Fixed `Flow.stateIn` hanging when the scope is cancelled in advance or the flow is empty ([#​4322](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4322 )). Thanks, [@​francescotescari](https://redirect.github.com/francescotescari )!
- Improved handling of dispatcher failures in `.limitedParallelism` ([#​4330](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4330 )) and during flow collection ([#​4272](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4272 )).
- Fixed `runBlocking` failing to run its coroutine to completion in some cases if its JVM thread got interrupted ([#​4399](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4399 )).
- Small tweaks, fixes, and documentation improvements.
</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-04-10 09:04:18 +00:00
doodlewind
f85b35227b
feat(editor): replace flat layout cache with tree in turbo renderer ( #11319 )
...
### TL;DR
Refactored the BlockSuite turbo renderer to use a hierarchical tree structure for layouts instead of a flat list, improving rendering accuracy and performance.
### What changed?
- Redesigned the layout system to use a tree structure (`ViewportLayoutTree`) that better represents the document hierarchy
- Added `blockId` to all layout objects for better tracking and debugging
- Updated the layout query mechanism to work with models directly instead of components
- Enhanced error handling with more descriptive warnings and error messages
- Improved the painting process to traverse the layout tree recursively
- Fixed viewport coordinate calculations for more accurate rendering
- Updated the worker communication to support the new tree-based layout structure
### Why make this change?
The previous flat layout structure didn't properly represent the hierarchical nature of documents, leading to rendering issues with nested blocks. This tree-based approach:
1. Better represents the actual document structure
2. Improves rendering accuracy for nested elements
3. Makes debugging easier with more consistent block identification
4. Provides a more robust foundation for future rendering optimizations
5. Reduces the likelihood of rendering artifacts when scrolling or zooming
2025-04-10 08:49:23 +00:00
Flrande
cc257f4fbe
chore(editor): add track for mention ( #11594 )
2025-04-10 16:33:11 +08:00
liuyi
d1bd809608
chore(core): add pricing link in license panel ( #11598 )
2025-04-10 08:18:26 +00:00
JimmFly
eb664f3016
fix(core): improve share menu width and member name overflow handling ( #11527 )
2025-04-10 15:33:12 +08:00
liuyi
e376aa57c5
chore: bring treeshake back ( #11577 )
2025-04-10 14:12:36 +08:00
Flrande
0ce5a9544b
fix(editor): update doc role instead of workspace role when invite in mention panel ( #11588 )
...
Close [BS-3048: mention 时检测的是文档权限不是 workspace 权限](https://linear.app/affine-design/issue/BS-3048/mention-时检测的是文档权限不是-workspace-权限 )
2025-04-10 05:52:38 +00:00
darkskygit
5199a74426
feat(server): migrate copilot provider sdk ( #11584 )
...
fix AI-15
fix AI-16
2025-04-10 04:14:09 +00:00
CatsJuice
bf293d8dca
fix(core): update background of sign-in button and input ( #11118 )
2025-04-10 03:24:37 +00:00
EYHN
e7d4684531
feat(core): hide sidebar when sidebar is not visible ( #11560 )
2025-04-10 02:56:11 +00:00
forehalo
cdbcb8a42a
chore: adjust webpack output ( #11573 )
...
- automatically split i18n resources into i18n-langs.{lang} naming
- force worker resources to be bundled in one file
2025-04-10 01:48:28 +00:00
JimmFly
e58f230354
fix(core): unexpected style of redeem code button ( #11540 )
...
close AF-2482
2025-04-09 13:57:11 +00:00
forehalo
4e56a8447b
fix(core): missing i18n and button margin ( #11568 )
...
close AF-2486
2025-04-09 13:40:01 +00:00
pengx17
34b6e7ef88
feat(core): support splitting audio blobs before submitting to backend ( #11572 )
...
fix AF-2484
2025-04-09 12:44:37 +00:00
zzj3720
ba875a120f
feat(editor): support image preview for attachment columns ( #11544 )
...
close: BS-2634
2025-04-09 10:50:41 +00:00
pengx17
c09bd8c422
chore(electron): self-hosted mixpanel flag ( #11561 )
...
fix AF-2341

2025-04-09 08:34:27 +00:00
darkskygit
15abb78a6b
feat(server): support sliced audio ( #11562 )
...
fix AF-2479
2025-04-09 08:21:19 +00:00
akumatus
3bf3068650
fix(core): after clearing the history, new chat will report an error ( #11549 )
...
Close [BS-3025](https://linear.app/affine-design/issue/BS-3025 )
2025-04-09 07:22:31 +00:00
akumatus
82ade96b3f
fix(core): online search button status not updated to the search prompt ( #11542 )
...
Close [BS-3079](https://linear.app/affine-design/issue/BS-3079 ).
2025-04-09 06:51:35 +00:00
akumatus
c9790ed854
refactor(core): ai session create ( #11539 )
...
Close [BS-3079](https://linear.app/affine-design/issue/BS-3079 ).
- Separate the create session logic from the `createMessage function`.
- Ensure the session is created before executing any chat or actions.
- Convert the `AIActions` into asynchronous functions.
- Transfer the update prompt name logic to the chat action.
- Introduce a networkSearch field in `AITextActionOptions`.
- Eliminate the redundant `LAST_ROOT_SESSION_ID`.
2025-04-09 06:18:57 +00:00
akumatus
1e9561b46c
fix(core): retry on chat-block, view components not update as expected ( #11553 )
...
Close [BS-3026](https://linear.app/affine-design/issue/BS-3026 )
2025-04-09 03:30:19 +00:00
pengx17
f0aafda509
fix(electron): cannot restart recording the same app again ( #11498 )
...
fix AF-2455
2025-04-09 02:37:50 +00:00
pengx17
a2125787c2
fix(electron): use another origin for popup to disable zoom in/out issue of the popup window ( #11506 )
...
fix AF-2473
2025-04-08 10:18:09 +00:00
pengx17
93d8e22b07
feat(electron): meeting recording permissions checks ( #11505 )
...
fix AF-2472, AF-2446


2025-04-08 10:18:08 +00:00
liuyi
ebdeaf3783
chore(core): reorg polyfill ( #11528 )
2025-04-08 14:59:54 +08:00
darkskygit
558e84138c
chore: remove lame encoder ( #11529 )
2025-04-08 05:02:30 +00:00
yoyoyohamapi
49c6ad7c04
feat(core): ai panel adaptation for edgeless theme ( #11509 )
...
### TL;DR
AI panel adaptation for Edgeless theme
> CLOSE BS-3017

2025-04-08 02:29:57 +00:00
JimmFly
af48df230d
feat(core): add docRole to inviteUserDocRole tracking event ( #11501 )
...
close AF-2476
2025-04-07 08:51:45 +00:00
EYHN
f93acc6635
fix(android): fix uniffi bindgen ( #11500 )
2025-04-07 08:37:35 +00:00
forehalo
40f218c898
chore: set base version to 0.21
2025-04-07 16:10:32 +08:00
pengx17
952f1878a6
fix(core): add option to disable middle click paste behavior on linux ( #11496 )
...
fix BS-3028
2025-04-07 07:01:37 +00:00
pengx17
92240fc1a2
chore(electron): add community link for meeting feature ( #11494 )
...
fix AF-2471

2025-04-07 06:15:50 +00:00
pengx17
fddf68f061
fix(core): stop media when audio block is removed ( #11492 )
2025-04-07 06:15:50 +00:00
JimmFly
53dff7a158
fix(admin): adjust available upgrade button style ( #11489 )
2025-04-07 05:25:34 +00:00
Saul-Mirone
8c473cf685
fix(editor): adjust block meta info ( #11488 )
...
Closes: BS-2901
2025-04-07 05:12:04 +00:00
yoyoyohamapi
da580076b0
fix(core): cannot select text in electron ( #11486 )
2025-04-07 03:19:34 +00:00
donteatfriedrice
568a390b75
feat(editor): support markdown adapter preprocessed with latex delimiters ( #11431 )
...
To close [BS-2870](https://linear.app/affine-design/issue/BS-2870/支持识别-和- [-包裹内容为公式)
## Add Markdown Preprocessor Extension and Enhanced LaTeX Support
### Markdown Preprocessor Extension
This PR introduces a new preprocessor extension for Markdown adapters that allows preprocessing of content before conversion:
Adds a new PreprocessorManager for handling text transformations
Introduces extensible preprocessor interface that supports different processing levels (block/slice/doc)
Integrates preprocessor extension into the existing Markdown adapter workflow
### LaTeX Support Enhancement
Extends LaTeX support to handle both traditional and alternative syntax:
Adds support for backslash LaTeX syntax:
Block math: ```\[...\] ``` alongside existing ```$$...$$```
Inline math: ```\(...\) ``` alongside existing ```$...$```
Implements LaTeX preprocessor to standardize syntax before conversion
Updates tests to cover both syntax variants
2025-04-07 02:18:04 +00:00
Saul-Mirone
bb1270061a
feat(editor): gfx template package ( #11480 )
2025-04-06 12:24:13 +00:00
Saul-Mirone
41499c1cd6
refactor(editor): merge implementation of createTemplateJob ( #11474 )
2025-04-05 12:59:48 +00:00
Saul-Mirone
2a1306c58c
refactor(editor): separate the element renders ( #11461 )
2025-04-04 13:09:46 +00:00
Saul-Mirone
138e7f60de
refactor(editor): extensionalize surface canvas renderer ( #11456 )
2025-04-04 13:09:45 +00:00
JimmFly
3ecdc377fe
fix(admin): unable to log into admin panel ( #11451 )
2025-04-04 10:39:20 +00:00
renovate[bot]
0f7a739b3b
chore: bump up all non-major dependencies ( #11351 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: LongYinan <lynweklm@gmail.com >
2025-04-04 18:37:22 +08:00
renovate
a76414066a
chore: bump up rustc version to v1.86.0 ( #11464 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [rustc](https://redirect.github.com/rust-lang/rust ) | minor | `1.85.1` -> `1.86.0` |
---
### Release Notes
<details>
<summary>rust-lang/rust (rustc)</summary>
### [`v1.86.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1860-2025-04-03 )
[Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.85.1...1.86.0 )
\==========================
<a id="1.86.0-Language"></a>
## Language
- [Stabilize upcasting trait objects to supertraits.](https://redirect.github.com/rust-lang/rust/pull/134367 )
- [Allow safe functions to be marked with the `#[target_feature]` attribute.](https://redirect.github.com/rust-lang/rust/pull/134090 )
- [The `missing_abi` lint now warns-by-default.](https://redirect.github.com/rust-lang/rust/pull/132397 )
- Rust now lints about double negations, to catch cases that might have intended to be a prefix decrement operator (`--x`) as written in other languages. This was previously a clippy lint, `clippy::double_neg`, and is [now available directly in Rust as `double_negations`.](https://redirect.github.com/rust-lang/rust/pull/126604 )
- [More pointers are now detected as definitely not-null based on their alignment in const eval.](https://redirect.github.com/rust-lang/rust/pull/133700 )
- [Empty `repr()` attribute applied to invalid items are now correctly rejected.](https://redirect.github.com/rust-lang/rust/pull/133925 )
- [Inner attributes `#![test]` and `#![rustfmt::skip]` are no longer accepted in more places than intended.](https://redirect.github.com/rust-lang/rust/pull/134276 )
<a id="1.86.0-Compiler"></a>
## Compiler
- [Debug-assert that raw pointers are non-null on access.](https://redirect.github.com/rust-lang/rust/pull/134424 )
- [Change `-O` to mean `-C opt-level=3` instead of `-C opt-level=2` to match Cargo's defaults.](https://redirect.github.com/rust-lang/rust/pull/135439 )
- [Fix emission of `overflowing_literals` under certain macro environments.](https://redirect.github.com/rust-lang/rust/pull/136393 )
<a id="1.86.0-Platform-Support"></a>
## Platform Support
- [Replace `i686-unknown-redox` target with `i586-unknown-redox`.](https://redirect.github.com/rust-lang/rust/pull/136698 )
- [Increase baseline CPU of `i686-unknown-hurd-gnu` to Pentium 4.](https://redirect.github.com/rust-lang/rust/pull/136700 )
- New tier 3 targets:
- [`{aarch64-unknown,x86_64-pc}-nto-qnx710_iosock`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 7.1 with `io-socket` network stack.
- [`{aarch64-unknown,x86_64-pc}-nto-qnx800`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 8.0 (`no_std`-only).
- [`{x86_64,i686}-win7-windows-gnu`](https://redirect.github.com/rust-lang/rust/pull/134609 ).
Intended for backwards compatibility with Windows 7. `{x86_64,i686}-win7-windows-msvc` are the Windows MSVC counterparts that already exist as Tier 3 targets.
- [`amdgcn-amd-amdhsa`](https://redirect.github.com/rust-lang/rust/pull/134740 ).
- [`x86_64-pc-cygwin`](https://redirect.github.com/rust-lang/rust/pull/134999 ).
- [`{mips,mipsel}-mti-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135074 ).
Initial bare-metal support.
- [`m68k-unknown-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135085 ).
- [`armv7a-nuttx-{eabi,eabihf}`, `aarch64-unknown-nuttx`, and `thumbv7a-nuttx-{eabi,eabihf}`](https://redirect.github.com/rust-lang/rust/pull/135757 ).
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.86.0-Libraries"></a>
## Libraries
- The type of `FromBytesWithNulError` in `CStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self, FromBytesWithNulError>` was [changed from an opaque struct to an enum](https://redirect.github.com/rust-lang/rust/pull/134143 ), allowing users to examine why the conversion failed.
- [Remove `RustcDecodable` and `RustcEncodable`.](https://redirect.github.com/rust-lang/rust/pull/134272 )
- [Deprecate libtest's `--logfile` option.](https://redirect.github.com/rust-lang/rust/pull/134283 )
- [On recent versions of Windows, `std::fs::remove_file` will now remove read-only files.](https://redirect.github.com/rust-lang/rust/pull/134679 )
<a id="1.86.0-Stabilized-APIs"></a>
## Stabilized APIs
- [`{float}::next_down`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_down )
- [`{float}::next_up`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_up )
- [`<[_]>::get_disjoint_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut )
- [`<[_]>::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_unchecked_mut )
- [`slice::GetDisjointMutError`](https://doc.rust-lang.org/stable/std/slice/enum.GetDisjointMutError.html )
- [`HashMap::get_disjoint_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_mut )
- [`HashMap::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_unchecked_mut )
- [`NonZero::count_ones`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.count_ones )
- [`Vec::pop_if`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop_if )
- [`sync::Once::wait`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait )
- [`sync::Once::wait_force`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait_force )
- [`sync::OnceLock::wait`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html#method.wait )
These APIs are now stable in const contexts:
- [`hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html )
- [`io::Cursor::get_mut`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_mut )
- [`io::Cursor::set_position`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.set_position )
- [`str::is_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.is_char_boundary )
- [`str::split_at`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at )
- [`str::split_at_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_checked )
- [`str::split_at_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut )
- [`str::split_at_mut_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut_checked )
<a id="1.86.0-Cargo"></a>
## Cargo
- [When merging, replace rather than combine configuration keys that refer to a program path and its arguments.](https://redirect.github.com/rust-lang/cargo/pull/15066/ )
- [Error if both `--package` and `--workspace` are passed but the requested package is missing.](https://redirect.github.com/rust-lang/cargo/pull/15071/ ) This was previously silently ignored, which was considered a bug since missing packages should be reported.
- [Deprecate the token argument in `cargo login` to avoid shell history leaks.](https://redirect.github.com/rust-lang/cargo/pull/15057/ )
- [Simplify the implementation of `SourceID` comparisons.](https://redirect.github.com/rust-lang/cargo/pull/14980/ ) This may potentially change behavior if the canonicalized URL compares differently in alternative registries.
<a id="1.86.0-Rustdoc"></a>
## Rustdoc
- [Add a sans-serif font setting.](https://redirect.github.com/rust-lang/rust/pull/133636 )
<a id="1.86.0-Compatibility-Notes"></a>
## Compatibility Notes
- [The `wasm_c_abi` future compatibility warning is now a hard error.](https://redirect.github.com/rust-lang/rust/pull/133951 )
Users of `wasm-bindgen` should upgrade to at least version 0.2.89, otherwise compilation will fail.
- [Remove long-deprecated no-op attributes `#![no_start]` and `#![crate_id]`.](https://redirect.github.com/rust-lang/rust/pull/134300 )
- [The future incompatibility lint `cenum_impl_drop_cast` has been made into a hard error.](https://redirect.github.com/rust-lang/rust/pull/135964 ) This means it is now an error to cast a field-less enum to an integer if the enum implements `Drop`.
- [SSE2 is now required for "i686" 32-bit x86 hard-float targets; disabling it causes a warning that will become a hard error eventually.](https://redirect.github.com/rust-lang/rust/pull/137037 )
To compile for pre-SSE2 32-bit x86, use a "i586" target instead.
<a id="1.86.0-Internal-Changes"></a>
## Internal Changes
These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.
- [Build the rustc on AArch64 Linux with ThinLTO + PGO.](https://redirect.github.com/rust-lang/rust/pull/133807 )
The ARM 64-bit compiler (AArch64) on Linux is now optimized with ThinLTO and PGO, similar to the optimizations we have already performed for the x86-64 compiler on Linux. This should make it up to 30% faster.
</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIyNy4zIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-04-04 07:21:18 +00:00
CatsJuice
905349a139
chore(core): modify ai purchase button text ( #11035 )
2025-04-04 07:07:50 +00:00
CatsJuice
fa50743393
feat(core): hide all sidebars when resizing to a small screen ( #11105 )
2025-04-04 05:51:19 +00:00
CatsJuice
ae92aef1a4
feat(core): automatically focus on the Readwise token input when the window is focused ( #11112 )
2025-04-04 05:36:59 +00:00
CatsJuice
eebc7b751a
feat(component): apply animation for tooltip, remove triangle ( #11245 )
2025-04-04 05:24:18 +00:00
JimmFly
adbd41130c
fix(admin): adjust import users dialog styles ( #11436 )
...
close AF-2456 AF-2454 AF-2441 AF-2422
2025-04-04 04:52:50 +00:00