forehalo
4e56a8447b
fix(core): missing i18n and button margin ( #11568 )
...
close AF-2486
2025-04-09 13:40:01 +00:00
darkskygit
5808b3c8df
chore(server): upgrade models ( #11576 )
2025-04-09 13:25:13 +00:00
darkskygit
a1b518c6f4
chore: temporarily fix response ( #11574 )
2025-04-09 12:44:38 +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
darkskygit
9cf5e034bb
test(server): add transcript e2e ( #11557 )
2025-04-09 07:51:17 +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
darkskygit
984a6763ae
chore(server): try repair text in structured outputs ( #11543 )
2025-04-08 16:48:22 +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
liuyi
646182ea2a
fix(server): duplicate registered otel providers ( #11513 )
2025-04-08 10:25:36 +08:00
darkskygit
e1bd2047c4
feat(server): add table support for doc parse ( #11508 )
...
fix AF-2478
2025-04-07 09:59:20 +00:00
darkskygit
3792464fa0
fix(server): early exit in doc parse ( #11507 )
2025-04-07 09:30:06 +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
darkskygit
ea9de7b542
feat(server): add transcript block indexing ( #11487 )
...
fix AF-2469
2025-04-07 05:51:06 +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
liuyi
e376992ccf
chore(server): default DEPLOYMENT_TYPE should be selfhosted ( #11484 )
2025-04-07 10:05:14 +08: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
JimmFly
7a1d5ab252
feat(core): upgrade icons package ( #11435 )
2025-04-04 04:52:49 +00:00
pengx17
133be72ac2
refactor(electron): encoding recording on the fly ( #11457 )
...
fix AF-2460, AF-2463
When recording is started, we start polling the pending raw buffers that are waiting for encoding. The buffers are determined by the cursor of the original raw buffer file. When recording is stopped, we will flush the pending buffers and wrap the encoded chunks into WebM.
```mermaid
sequenceDiagram
participant App as App/UI
participant RecordingFeature as Recording Feature
participant StateMachine as State Machine
participant FileSystem as File System
participant StreamEncoder as Stream Encoder
participant OpusEncoder as Opus Encoder
participant WebM as WebM Muxer
Note over App,WebM: Recording Start Flow
App->>RecordingFeature: startRecording()
RecordingFeature->>StateMachine: dispatch(START_RECORDING)
StateMachine-->>RecordingFeature: status: 'recording'
RecordingFeature->>StreamEncoder: createStreamEncoder(id, {sampleRate, channels})
Note over App,WebM: Streaming Flow
loop Audio Data Streaming
RecordingFeature->>FileSystem: Write raw audio chunks to .raw file
StreamEncoder->>FileSystem: Poll raw audio data
FileSystem-->>StreamEncoder: Raw audio chunks
StreamEncoder->>OpusEncoder: Encode chunks
OpusEncoder-->>StreamEncoder: Encoded Opus frames
end
Note over App,WebM: Recording Stop Flow
App->>RecordingFeature: stopRecording()
RecordingFeature->>StateMachine: dispatch(STOP_RECORDING)
StateMachine-->>RecordingFeature: status: 'stopped'
StreamEncoder->>OpusEncoder: flush()
StreamEncoder->>WebM: muxToWebM(encodedChunks)
WebM-->>RecordingFeature: WebM buffer
RecordingFeature->>FileSystem: Save as .opus file
RecordingFeature->>StateMachine: dispatch(SAVE_RECORDING)
```
2025-04-03 15:56:53 +00:00
pengx17
8ce10e6d0a
feat(electron): add tray menu settings ( #11437 )
...
fix AF-2447
2025-04-03 15:56:52 +00:00
akumatus
0aeb3041b5
feat(core): add ai chat composer ( #11443 )
...
Close [BS-2583](https://linear.app/affine-design/issue/BS-2583 ).

2025-04-03 14:53:50 +00:00