What's Changed
- refactor: remove unused surface service by @doouding in #11339
- chore: bump up oxlint version to v0.16.4 by @renovate in #11349
- fix(editor): database block view layout menu style by @zzj3720 in #11312
- fix(core): improve tag list performance by @EYHN in #11353
- chore(electron): add telemetry events for enabling meetings by @pengx17 in #11327
- refactor(core): ai chat chips by @akumatus in #11341
- feat(ios): translate & continue to chat & clear history by @Lakr233 in #11347
- refactor(editor): image toolbar config extension by @fundon in #11329
- fix(editor): database block columns popover closes unexpectedly by @zzj3720 in #11352
- chore: bump up Node.js to v22 by @renovate in #11357
- chore(server): reschedule doc merging jobs by @forehalo in #11318
- fix(ios): fix nbstore worker by @EYHN in #11362
- fix(nbstore): adjust indexer logic by @EYHN in #11355
- fix(editor): wrong deactive logic by @Saul-Mirone in #11361
- fix(editor): missing doc mode extension in frame preview by @L-Sun in #11348
- fix(core): do not show AI avatar during generating by @yoyoyohamapi in #11363
- fix(core): add shortcuts to open doc dropdown menu by @fundon in #11358
- chore(server): watch storages config updates by @forehalo in #11367
- chore(server): omit system message in error by @darkskygit in #11365
- chore: allow cursor in none-contenteditable blocks by @Saul-Mirone in #11366
- fix(electron): incorrect app allow list logic for recording by @pengx17 in #11368
- chore(core): wrap 'get access token' for connecting readwise by @CatsJuice in #11147
- fix(core): fix target block cannot be reached when clicking affine-link multiple times by @fundon in #10473
- feat(admin): adapt new config system by @forehalo in #11360
- feat(server): s3 presigned url by @darkskygit in #11364
- fix(electron): global tap should activate input device if it is not active by @pengx17 in #11370
Full Changelog: v0.21.0-canary.13...v0.21.0-canary.14