Commit Graph

2370 Commits

Author SHA1 Message Date
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

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/024ac070-fbd8-4ab0-be93-6670cbee587e.png)
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
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
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
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
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
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
EYHN
07b1c2fa05 fix(core): fix member search loading state (#11418) 2025-04-02 12:23:54 +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
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
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
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
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
zzj3720
08327b14d6 fix(editor): database block columns popover closes unexpectedly (#11352)
fix: BS-2906
2025-04-01 10:32:23 +00:00
fundon
7af5e53838 refactor(editor): image toolbar config extension (#11329)
Closes: [BS-2378](https://linear.app/affine-design/issue/BS-2378/image-toolbar-迁移)
2025-04-01 10:04:28 +00:00
akumatus
b74d40d45f refactor(core): ai chat chips (#11341)
Support [BS-2583](https://linear.app/affine-design/issue/BS-2583).

### What changed?
- Move chat panel chip components to `/components` folder.
- Separate `chips` and `embeddingProgress` from ChatContextValue.
2025-04-01 09:15:16 +00:00