Commit Graph

2982 Commits

Author SHA1 Message Date
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 15.11.43.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/5b545486-7c8b-4f09-bf65-9adeb482dfa9.png)
2025-04-03 14:53:50 +00:00
akumatus
6cf182190c refactor(core): remove useless chat-input components (#11426)
Close [BS-2583](https://linear.app/affine-design/issue/BS-2583).
2025-04-03 14:53:50 +00:00
akumatus
6033baeb86 refactor(core): add useAIChatConfig hook (#11424)
Close [BS-2583](https://linear.app/affine-design/issue/BS-2583).
2025-04-03 14:53:49 +00:00
forehalo
2533a92873 chore(server): avoid config object been modified (#11452) 2025-04-03 12:57:29 +00:00
forehalo
c8d22d97d5 refactor: webpack config (#11421) 2025-04-03 11:55:56 +00:00
fundon
565d7b2b1e fix(editor): should not show inner toolbar of surface-ref in edgeless (#11453)
Closes: [BS-3015](https://linear.app/affine-design/issue/BS-3015/toolbar-有时会出现空状态且被显示) [BS-3023](https://linear.app/affine-design/issue/BS-3023/surface-ref-inner-toolbar-的标题圆角)
2025-04-03 11:13:09 +00:00
EYHN
a9ba54a92e feat(core): adjust notification style (#11455) 2025-04-03 10:59:37 +00:00
EYHN
093bffdf5c fix(core): fix notification list (#11423) 2025-04-03 10:44:32 +00:00
donteatfriedrice
9206145a48 feat(editor): remove embed iframe feature flag (#11432)
Close [BS-3019](https://linear.app/affine-design/issue/BS-3019/remove-embed-iframe-feature-flag)
2025-04-03 04:59:52 +00:00
fundon
a1500e3ee1 fix(editor): textarea not focusing in AI panel (#11429)
Closes: [BS-3006](https://linear.app/affine-design/issue/BS-3006/insider上面,圈选yuan素后,ad-hoc的ai对话框焦点控制有大问题(无法对焦,总是会跳走))
2025-04-03 03:27:26 +00:00
yoyoyohamapi
c61df18ab9 test(core): chat with collection & tags (#11388)
### TL:DR

* AI chat with collection E2E
* AI chat with tag E2E

> Close BS-3007
2025-04-03 02:46:08 +00:00
fundon
03dd073cb4 fix(editor): add recent open doc with mode button (#11419)
Closes: [BS-3013](https://linear.app/affine-design/issue/BS-3013/open-doc-分开两个按钮:一个快捷按钮和一个菜单)

Split into two buttons: `recent open doc with mode button` and `open doc with dropdown menu`.
2025-04-03 02:06:14 +00:00
L-Sun
b53b2acfe3 fix(ios): mobile modal occlusion issues (#11427)
Close [BS-2925](https://linear.app/affine-design/issue/BS-2925/移动端-dialog-遮挡相关)
2025-04-03 01:51:57 +00:00
L-Sun
80a663efe7 fix(ios): adjust bootom padding of body when keyboard toolbar existed (#11410)
Close [BS-2919](https://linear.app/affine-design/issue/BS-2919/【移动端】ios-页面底部点几,页面定位有问题,光标和浮层重叠,并且看不到新添加的-block)
Close [BS-2918](https://linear.app/affine-design/issue/BS-2918/【移动端】ios-添加标题无法展示对应-block,滑动页面也无效,光标位置也不对)

## Changes
- Fixed body padding calculation when keyboard toolbar is present
- Removed redundant position controller logic and simplified the implementation
2025-04-03 01:51:57 +00:00
L-Sun
5109ceccec fix(ios): can not open keyboard in editor (#11401)
Close [BS-2917](https://linear.app/affine-design/issue/BS-2917/【移动端】ios-唤起键盘的edge-case)

This PR fixes an issue where the keyboard cannot be re-triggered on iOS devices after the keyboard toolbar is hidden or executing some actions in keyboard toolbar.

Key changes:
- Preserve and restore the initial input mode when keyboard toolbar shows/hides
- Improve virtual keyboard service interface to better handle keyboard state
- Add proper cleanup of input mode state in component lifecycle
2025-04-03 01:51:56 +00:00
EYHN
bd5428e311 feat(core): adjust notification button style (#11425) 2025-04-02 15:41:14 +00:00
pengx17
abfbf07712 fix(native): properly cleanup resource when activating device failed (#11380) 2025-04-02 14:46:34 +00:00
pengx17
90c3c4bf7f feat(electron): recording popup ux (#11403)
fix AF-2444, AF-2443
2025-04-02 14:17:53 +00:00
pengx17
2adb8e1404 feat(core): allow retry transcription (#11416) 2025-04-02 14:05:12 +00:00
akumatus
c5c6978136 refactor(core): ai input (#11381)
Close [BS-2758](https://linear.app/affine-design/issue/BS-2758).
Support [BS-2583](https://linear.app/affine-design/issue/BS-2583).

### What changed?
- Extend `ChatPanelInput` and `ChatBlockInput` from the same abstract class `AIChatInput` to reduce duplication of code.
- Unify the context interface of `chat-panel` and `chat-block`.
  - Rename `items` field to `messages`.
  - Remove duplicated type declare.
2025-04-02 13:37:30 +00:00
forehalo
1386a66579 chore(server): hide not configurable module (#11406) 2025-04-02 12:44:20 +00:00
EYHN
07b1c2fa05 fix(core): fix member search loading state (#11418) 2025-04-02 12:23:54 +00:00
darkskygit
501b5f6a97 feat(server): retry transcript job (#11414) 2025-04-02 12:02:07 +00:00
yoyoyohamapi
c4c6cdb6f2 fix(core): prevent input event propagation (#11307)
### TL;DR

Prevent input event of search propagate to editor

> CLOSE BS-2832
2025-04-02 10:22:25 +00:00
pengx17
6d1fe37e4c chore(core): remove audio block feature flag (#11399)
fix
AF-2445
2025-04-02 09:07:19 +00:00
EYHN
a3e4978354 feat(ios): add markdown import api (#11394) 2025-04-02 08:54:26 +00:00
donteatfriedrice
b8fd6370f8 fix(editor): remove embed iframe toolbar edit item (#11396) 2025-04-02 08:40:56 +00:00
CatsJuice
c6d4787954 feat(core): remove integration feature flag (#11393) 2025-04-02 08:28:10 +00:00
github-actions[bot]
90bf003ab8 chore(i18n): sync translations (#10396)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-02 07:57:36 +00:00
pengx17
c20514f269 fix(core): audio player loading styles (#11384)
fix BS-2998
2025-04-02 04:58:27 +00:00
pengx17
08eb248cb4 fix(core): add toDocSearchParams for better typeschecking doc search params (#11383) 2025-04-02 04:46:22 +00:00
pengx17
f091ac7e74 fix(core): bidi panel show button color (#11374)
fix AF-2394
2025-04-02 03:48:14 +00:00
pengx17
679e9e1966 feat(core): add copy link to doc peek view controls (#11373)
fix AF-2314
2025-04-02 02:21:32 +00:00
fundon
d9fade8045 fix(core): should display date as original title of journal (#11375)
Closes: [BS-2991](https://linear.app/affine-design/issue/BS-2991/linked-journal添加alias后,toolbar上获取不到标题)
2025-04-02 01:24:43 +00:00
pengx17
b759a22221 fix(electron): global tap should activate input device if it is not active (#11370)
fix AF-2442
2025-04-01 15:34:32 +00:00
darkskygit
f2e2072878 feat(server): s3 presigned url (#11364) 2025-04-01 15:14:07 +00:00
forehalo
dad858014f feat(admin): adapt new config system (#11360)
feat(server): add test mail api

feat(admin): adapt new config system
2025-04-01 15:00:10 +00:00
fundon
8427293d36 fix(core): fix target block cannot be reached when clicking affine-link multiple times (#10473)
Closes: [BS-2702](https://linear.app/affine-design/issue/BS-2702/超链接无法滚动到指定block)
2025-04-01 14:46:35 +00:00
CatsJuice
d8997576a5 chore(core): wrap 'get access token' for connecting readwise (#11147) 2025-04-01 14:33:00 +00:00
pengx17
2d304adf15 fix(electron): incorrect app allow list logic for recording (#11368) 2025-04-01 14:19:29 +00:00
fundon
f374f2695f fix(core): add shortcuts to open doc dropdown menu (#11358)
Closes: [BS-2992](https://linear.app/affine-design/issue/BS-2992/走查toolbar上的open-in-button)

[Screen Recording 2025-04-01 at 16.37.57.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/8ypiIKZXudF5a0tIgIzf/cf4b1baf-aa2c-4f37-9c62-f7202d0f7c42.mov" />](https://app.graphite.dev/media/video/8ypiIKZXudF5a0tIgIzf/cf4b1baf-aa2c-4f37-9c62-f7202d0f7c42.mov)
2025-04-01 12:39:13 +00:00
yoyoyohamapi
bd30a73db8 fix(core): do not show AI avatar during generating (#11363)
> CLOSE BS-2989
2025-04-01 12:11:28 +00:00
EYHN
521eb09a7a fix(nbstore): adjust indexer logic (#11355) 2025-04-01 11:31:58 +00:00
EYHN
cb7b5caa74 fix(ios): fix nbstore worker (#11362) 2025-04-01 11:11:26 +00:00