What's Changed
- chore: adjust loading doc component style by @JimmFly in #11810
- fix(core): unable to copy the selected ai answer content across multiple lines by @yoyoyohamapi in #11806
- fix(editor): get block props by @fundon in #11807
- refactor(editor): adjust parameters of duplicate block command by @L-Sun in #11812
- fix(editor): edgeless selected block is missing in the return of getSelectedBlockCommand by @L-Sun in #11813
- chore(editor): update file icons by @fundon in #11826
- chore: bump up nestjs by @renovate in #11819
- chore: bump up apollographql/apollo-ios version to v1.20.0 by @renovate in #11830
- chore(android): integrate firebase-crashlytics by @aki-chang-dev in #11808
- feat(y-octo): import y-octo monorepo by @Brooooooklyn in #11750
- chore: bump up hilt to v2.56.2 by @renovate in #11829
- fix(editor): convert note to linked doc from edgeless by @Saul-Mirone in #11828
- fix(editor): banner of blookmark not shown in edgeless by @L-Sun in #11796
- fix(editor): prototype polluting in gfx util by @doodlewind in #11831
- fix(core): flaky quick search test by @pengx17 in #11833
- feat(editor): affine extension provider and manager by @Saul-Mirone in #11822
- feat(editor): bookmark and attachment extension by @Saul-Mirone in #11824
- feat(editor): callout and code extension by @Saul-Mirone in #11827
- feat(server): workspace file embedding & ignored docs model impl by @darkskygit in #11804
- fix(web): export png split text error with comment out rich text replacement in export process by @doufa in #11834
- test(server): don't mock event bus on e2e by @fengmk2 in #11841
- fix(core): action items in the ai response are not optimized for dark mode by @yoyoyohamapi in #11839
- fix(electron): use askForMeetingPermission for asking microphone permission by @pengx17 in #11792
- fix(core): sidebar audio player seek position issue by @pengx17 in #11844
- fix(core): disable space ai guidance for non-paragraph block by @yoyoyohamapi in #11847
- feat(electron): adapts to default audio input/output device changes by @pengx17 in #11815
- refactor(editor): split synced-doc-block tests to serveral files by @L-Sun in #11845
- refactor(editor): add attachments by @fundon in #11842
- feat(editor): data view and database extension by @Saul-Mirone in #11837
- feat(editor): scaffolding store and view manager in affine by @Saul-Mirone in #11840
- feat(editor): divider and edgeless text extensions by @Saul-Mirone in #11846
- feat(editor): embed extension by @Saul-Mirone in #11848
- fix(editor): remove replaceRichTextWithSvgElement by @Saul-Mirone in #11843
- feat(editor): frame and image extensions by @Saul-Mirone in #11849
- feat(editor): latex and list extensions by @Saul-Mirone in #11851
- feat(native): upgrade dispatch2 to 0.3 by @Brooooooklyn in #11855
- feat(editor): insertion and duplication actions for embed synced doc by @L-Sun in #11852
- fix(core): ai images are not right-aligned by @yoyoyohamapi in #11850
- fix(core): chat user message margin & max-width by @yoyoyohamapi in #11854
- ci: set npmRegistryServer to npmjs.org by @Brooooooklyn in #11857
- test: fix flaky create template doc e2e by @Brooooooklyn in #11863
- feat(editor): note extension by @Saul-Mirone in #11856
- chore: bump up @blocksuite/icons version to v2.2.13 by @renovate in #11838
- fix(editor): should update color of edgeless text when switching theme by @fundon in #11853
- fix(core): improve EdgelessCopilotPanel position by @fundon in #11814
- chore: bump up android.gradle.plugin to v8.9.2 by @renovate in #11871
- chore: bump up com.android.tools.build:gradle version to v8.9.2 by @renovate in #11872
- chore: bump up oxlint version to v0.16.7 - abandoned by @renovate in #11870
- fix(server): config defaults by @forehalo in #11879
- refactor(core): rename explorer to navigation-panel by @EYHN in #11876
- ci: Auto-update AppStream on release by @eaglesemanation in #11820
- fix(core): falky ai save as block test by @yoyoyohamapi in #11878
- fix(core): do not need to inline fonts by @pengx17 in #11880
- feat(editor): replace spec provider with extension manager by @Saul-Mirone in #11861
- fix(editor): add reference after duplicate edgeless embed doc as note by @L-Sun in #11877
- refactor: redesign element transform manager interface by @doouding in #11679
- refactor: migrate elements clone from default-tool to extension by @doouding in #11703
- refactor: moving connector label to connector view by @doouding in #11738
- chore: remove frame overlay dependency from default-tool by @doouding in #11762
- refactor: default-tool box selection by @doouding in #11800
- feat(server): find transcript actions by @darkskygit in #11890
- fix(core): should not limit the number of docs of at menu by @pengx17 in #11889
- fix(editor): remove unnecessary css styles by @fundon in #11885
- test: add mutex to clipboard copy & paste operation to reduce flaky by @Brooooooklyn in #11884
- chore(android): set version name from pipeline by @aki-chang-dev in #11897
- feat(core): add actions to transcription block by @pengx17 in #11896
- fix(editor): add footnote url markdown preprocessor to avoid link node parsing by @donteatfriedrice in #11888
- feat(server): enable web search for 4.1 by @darkskygit in #11825
- fix(server): empty mimetype attachments fallback by @darkskygit in #11869
- feat(editor): use migrated extensions by @Saul-Mirone in #11886
- feat(editor): use store extension manager by @Saul-Mirone in #11891
- refactor(editor): cleanup dead code by @Saul-Mirone in #11893
- fix(editor): lit change-in-update warning by @L-Sun in #11904
- feat(editor): surface ref extension by @Saul-Mirone in #11902
- feat(editor): table extension by @Saul-Mirone in #11906
- refactor(editor): move block-specific extensions to their respective modules by @Saul-Mirone in #11907
- feat(editor): inline footnote extension by @Saul-Mirone in #11908
- refactor(editor): remove old specs by @Saul-Mirone in #11909
- fix(editor): should not paste in readonly page mode by @doodlewind in #11913
- feat(editor): link inline extension by @Saul-Mirone in #11910
- test(core): add missing await for expect by @L-Sun in #11900
- feat(core): new async global state storage impl by @CatsJuice in #11794
- refactor(core): move actions to footer of notification card by @L-Sun in #11894
- refactor(editor): add helper function for undo notification by @L-Sun in #11903
- fix(electron): cannot stop recording by @pengx17 in #11917
- feat(core): sub-page for setting panel by @CatsJuice in #11678
- feat(core): calendar integration storage by @CatsJuice in #11788
- test(core): enable no-floating-promises rule for tests by @L-Sun in #11915
- fix(nbstore): fix indexer cache not working by @EYHN in #11922
- fix(core): reselt default contenteditable outline by @pengx17 in #11921
- feat(editor): reference, mention and latex inline extension by @Saul-Mirone in #11914
- fix(core): audio job submittion timeout too short by @pengx17 in #11918
- feat(infra): route package by @forehalo in #10353
- build: allow node package depends on workspace packages by @forehalo in #11892
- feat(server): global embedding gql endpoint by @darkskygit in #11809
- feat: add pagination support for workspace config by @darkskygit in #11859
- refactor(server): reduce server logs by @fengmk2 in #11931
- feat(editor): add favicon, title, description support for footnote url reference by @donteatfriedrice in #11924
- fix(core): subscribe search not unsubscribe by @EYHN in #11929
- feat(editor): inline preset extension by @Saul-Mirone in #11919
- feat(server): add time context for chat by @darkskygit in #11933
- chore(server): ignore unknown config module by @forehalo in #11926
- feat(editor): brush and note gfx extension by @Saul-Mirone in #11927
- feat(editor) shape gfx extension by @Saul-Mirone in #11928
- feat(editor): mindmap gfx extension by @Saul-Mirone in #11936
- feat(editor): template gfx extension by @Saul-Mirone in #11939
- feat(editor): connector gfx extension by @Saul-Mirone in #11940
- refactor(editor): move connector overlay to connector package by @Saul-Mirone in #11944
- fix(editor): for single-select, picking the original option should make the TagManager disappear by @UNIDY2002 in #11745
- fix(editor): preserve tag name updates on modifying tag color by @UNIDY2002 in #11744
- chore: bump up nestjs to v11.1.0 by @renovate in #11916
- fix(electron): sometimes pops up failed to save dialog by @pengx17 in #11925
- fix(editor): turbo renderer placeholder for built in template by @doodlewind in #11793
- feat(editor): group gfx extension by @Saul-Mirone in #11950
- feat(editor): text gfx extension by @Saul-Mirone in #11951
- chore: bump up Node.js to v22.15.0 by @renovate in #11920
- feat(server): add all ignored docs endpoint by @darkskygit in #11953
- fix(core): ai affine label alignment by @pengx17 in #11952
- fix(electron): do not add * as the default cors headers by @pengx17 in #11867
- chore(ios): change ios app version by @EYHN in #11965
- fix(core): remove image proxy in onboarding snapshots by @pengx17 in #11954
- feat(server): adapt 4o image by @darkskygit in #11956
- feat(admin): bump react-router and adapt new routes package by @forehalo in #11887
- feat(android): t+1 file log system with firebase storage by @aki-chang-dev in #11945
- refactor(editor): remove unused block dependencies by @Saul-Mirone in #11959
- feat(editor): surface block extension by @Saul-Mirone in #11961
- feat(editor): drag handle widget extension by @Saul-Mirone in #11962
- refactor(core): adjust effect api by @EYHN in #11935
- chore: proxy image preview in frontend by @forehalo in #11957
- build: allow node package depends on workspace packages by @forehalo in #11963
- feat(core): add anthropic provider by @akumatus in #11911
- feat(core): add web search tool and reasoning params by @akumatus in #11912
- test(editor): reduce flaky test by @doodlewind in #11970
- feat(core): add reasoning icon button by @akumatus in #11941
- feat(core): chat-panel buttons ui by @akumatus in #11942
- feat(editor): update footnote popup style by @donteatfriedrice in #11932
- fix(editor): should toggle toolbar when creating connector via auto complete by @fundon in #11862
- test(editor): reduce flaky in turbo renderer test by @doodlewind in #11973
- feat(core): web-clipper integration entrance by @CatsJuice in #11883
- feat(core): events list in journal calendar by @CatsJuice in #11873
- feat(core): calendar integration setting by @CatsJuice in #11882
- feat(core): add button supports uploading images by @akumatus in #11943
- feat(server): support importing users with password by @forehalo in #11978
- chore(server): sort data migrations by @forehalo in #11979
- fix(server): query workspace embed files by @darkskygit in #11982
- refactor(editor): improve footnote URL preprocessor by @donteatfriedrice in #11975
- fix(server): filter out attachment in pplx provider by @darkskygit in #11986
- chore: bump up all non-major npm dependencies by @renovate in #11693
- feat(editor): edgeless auto connect widget extension by @Saul-Mirone in #11990
- feat(editor): add frame title and mobile toolbar widget extension by @Saul-Mirone in #11996
- feat(editor): linked doc widget extension by @Saul-Mirone in #12001
- test(server): do not use specific date time in tests by @forehalo in #12004
- feat(editor): slash menu and toolbar widget extensions by @Saul-Mirone in #12002
- feat(editor): add gfx pointer extension by @Saul-Mirone in #12006
- refactor(editor): move transcription block model to ai by @Saul-Mirone in #12010
- feat(editor): add blobState$ to BlobEngine by @fundon in #11756
- fix(core): better search result by @EYHN in #12015
- feat(editor): add bs affine foundation module by @Saul-Mirone in #12012
- refactor(editor): simplify attachment and image upload handling by @fundon in #11987
New Contributors
Full Changelog: v0.21.3...v0.22.0-canary.1