What's Changed
- refactor(server): rename tx to db by @fengmk2 in #9867
- feat(server): search user in workspace by @forehalo in #9870
- refactor(editor): remove hard code icons from presets by @L-Sun in #9857
- refactor(editor): simplify TOC implementation with signal and context by @L-Sun in #9873
- feat(editor): add link preview to footnote popup by @donteatfriedrice in #9869
- chore(editor): update notification message of change display mode of doc by @L-Sun in #9874
- refactor(editor): move zod schema with model for non surface blocks by @doodlewind in #9876
- fix(editor): render title in page block header using DocDisplayMetaService by @L-Sun in #9878
- fix(core): database properties in info flickering issue by @pengx17 in #9872
- feat(core): cite source documents in the AI answer by @akumatus in #9863
- fix(core): extract text blocks markdown from doc by @donteatfriedrice in #9879
- fix(core): some storage setting enhancements by @pengx17 in #9877
- chore(electron): speed up electron tests by @pengx17 in #9871
- fix(core): some style issues by @pengx17 in #9875
- chore(editor): add RTL experiement flag for editor by @L-Sun in #9882
- feat(editor): simple table block by @zzj3720 in #9740
- feat(core): update chat error style by @donteatfriedrice in #9885
- fix(editor): prevent errors when moving a block to its own position by @L-Sun in #9887
- refactor(editor): toc dragging with std.dnd by @L-Sun in #9883
- feat(editor): flat block data by @Saul-Mirone in #9854
- fix(core): tag input keyboard control enhancements by @pengx17 in #9881
- feat(server): cluster level event system by @forehalo in #9884
- chore: bump up oxlint version to v0.15.8 by @renovate in #9886
- fix(editor): typecheck for tests and playground by @Saul-Mirone in #9897
- chore(electron): split view tracking events by @pengx17 in #9896
- refactor(editor): use selected signal in block component by @fundon in #9849
- chore: dnd cleanup by @doouding in #9899
- fix(web): minor bug fixes by @OlegDev1 in #9696
- fix(electron): optimize find in page in electron by @pengx17 in #9900
- fix(electron): optimize find in page in electron (2) by @pengx17 in #9901
- refactor(editor): remove dependency of command global types by @Saul-Mirone in #9903
- chore(editor): cleanup dead code by @Saul-Mirone in #9904
- refactor(editor): remove attachment and image block service by @Saul-Mirone in #9909
- chore: bump up @vanilla-extract/vite-plugin version to v5 by @renovate in #9915
- chore: bump up rustc version to v1.84.1 by @renovate in #9920
- chore: bump up tailwind-merge version to v3 by @renovate in #9917
- chore: bump up tailwindcss version to v4 by @renovate in #9918
- fix(server): should redeem onetime invoice only once by @forehalo in #9927
- chore(server): remove old subscription table usage by @forehalo in #9928
- fix(server): selfhost should not use canary mobile pages by @forehalo in #9929
- fix(electron): add refer/origin to api requests by @pengx17 in #9880
- refactor(editor): remove deprecated editor slot by @Saul-Mirone in #9908
- fix(editor): support worker renderer zoom by @doodlewind in #9943
- fix(editor): render position of repeated sentence by @doodlewind in #9948
- feat(android): sign-in with google & magic-link & email by @aki-chang-dev in #9868
- chore(editor): switch to edgeless in renderer poc entry by @doodlewind in #9950
- feat(server): doc level permission by @Brooooooklyn in #9760
- fix: drag block issue by @doouding in #9902
- refactor(editor): use spec builder to unify the extend of editor extensions by @Saul-Mirone in #9916
- feat(nbstore): share worker between workspaces by @EYHN in #9947
- fix(electron): sourcemap not loading for electron dev mode by @pengx17 in #9951
- chore: bump up vitest version to v3.0.5 [SECURITY] by @renovate in #9938
- fix(editor): can not add attachment because service not exist by @Flrande in #9952
- fix(ios): fix app crash by @EYHN in #9955
- feat(server): auto create page owner role by @forehalo in #9944
- refactor(server): use feature model by @forehalo in #9932
- chore(ios): rebuild ios graphql schema by @forehalo in #9935
- chore: bump up oxlint version to v0.15.9 by @renovate in #9922
- fix(admin): migrate tailwindcss config to v4 by @Brooooooklyn in #9940
- chore: bump up @capgo/inappbrowser version to v7 by @renovate in #9956
- fix(ios): can't connect to dev server by @CatsJuice in #9959
- perf(editor): use clipped section for worker bitmap cache by @doodlewind in #9957
- chore: bump up @vitest/browser version to v3.0.4 [SECURITY] by @renovate in #9937
- feat(i18n): introduce server error i18n by @forehalo in #9953
- fix(core): copilot client should throw right ai error by @donteatfriedrice in #9958
- fix(core): local blobs are not being deleted when gc in unused blobs settings by @pengx17 in #9960
- chore(server): stdout is enough for collecting server logging by @Brooooooklyn in #9964
- style: run clippy fix and fmt by @Brooooooklyn in #9965
- feat(native): bump deps by @Brooooooklyn in #9966
- fix(core): workspace storage rows are displayed unexpectedly by @JimmFly in #9539
- chore: bump up happy-dom version to v17 by @renovate in #9971
- refactor(editor): use model coord system in worker renderer by @doodlewind in #9969
- feat(server): doc model by @fengmk2 in #9834
- feat(server): userDoc model by @fengmk2 in #9835
- refactor(server): use userDoc model on PgUserspaceDocStorageAdapter by @fengmk2 in #9845
- fix(ios): add camera/photo library privacy description by @CatsJuice in #9954
- chore: Lock file maintenance by @renovate in #9654
- refactor(server): role actions definition by @forehalo in #9962
- chore: bump up all non-major dependencies by @renovate in #9810
- feat(server): align pro plan for free in selfhost by @forehalo in #9973
- chore: bump up oxlint version to v0.15.10 by @renovate in #9977
- fix(server): cannot revalidate licenses by @forehalo in #9982
- fix(electron): webpack dev server reloading issue by @pengx17 in #9978
- fix(editor): should focus the textarea will clicking the chat input box by @pengx17 in #9983
- fix(core): use divider component to replace height dividers by @pengx17 in #9986
- refactor(server): remove never used column in page permission by @forehalo in #9985
- fix(editor): some UI bugs of table block by @zzj3720 in #9987
- build(component): fix component storybook by @forehalo in #9990
- fix(electron): split view drag indicator tooltip by @pengx17 in #9979
- feat(editor): support delete in flat block proxy by @Saul-Mirone in #9994
- fix(ios): incorrect return of getBlob binding in ios by @L-Sun in #9995
- feat(server): allow to set default role in page by @Brooooooklyn in #9963
- feat(editor): show doc title in page block by @L-Sun in #9975
- feat(server): add request id on cluster event by @fengmk2 in #9998
- fix(core): remove suspense from image preview by @pengx17 in #9981
- feat(nbstore): use polling as ios websocket transport by @forehalo in #10001
- chore: bump up all non-major dependencies by @renovate in #9996
- fix(server): generate migration for workspace pages default role by @Brooooooklyn in #10002
- feat(core): add self host team plan by @JimmFly in #9569
- feat(server): add public user type by @forehalo in #10006
- feat(core): index table block types by @pengx17 in #9989
- feat(editor): support reusing bitmap cache when panning by @doodlewind in #10008
- fix(server): batch grant page roles by @forehalo in #10007
- feat(editor): add edgeless media entry by @Flrande in #9949
- refactor(editor): improve worker renderer code structure by @doodlewind in #10011
- chore(core): upload flaky test traces by @pengx17 in #9974
- fix(server): default page owner by @forehalo in #10015
- chore(core): adjust starter-bar badge size by @CatsJuice in #9976
- test(server): update page default role with non-exists workspace by @Brooooooklyn in #10012
- test(server): grant doc user roles by @Brooooooklyn in #10016
- feat(core): add deleted state for sidebar journal template by @CatsJuice in #9980
- chore(core): allow to rename and add multiple template property by @CatsJuice in #9972
- feat(mobile): create from template on mobile by @CatsJuice in #9968
- feat(core): optimize team workspace member management by @JimmFly in #9737
- feat(core): add tooltip for import dialog snapshot item by @donteatfriedrice in #10013
- chore: remove depracated package by @Brooooooklyn in #10018
- fix(core): typo by @donteatfriedrice in #10022
- feat(server): graceful shutdown for AI streams by @Brooooooklyn in #10025
- refactor: rename all page query to doc by @forehalo in #10019
- refactor(server): use doc model on PgWorkspaceDocStorageAdapter by @fengmk2 in #9852
- fix(editor): add missing zod schema for edgeless frame by @L-Sun in #10024
- feat(core): add doc grant feature to share menu by @JimmFly in #9672
- feat(server): implement doc service by @fengmk2 in #9961
- feat(editor): table block supports copy and paste in HTML format by @zzj3720 in #10020
- feat(server): use doc service by @fengmk2 in #9967
- chore: make DOC_SERVICE_ENDPOINT dynamic computed by @Brooooooklyn in #10029
- refactor(server): handle ConnectedAccount on user model by @fengmk2 in #10030
- fix(core): hide export tab on mobile by @EYHN in #10038
- feat(core): guard service by @EYHN in #9816
- fix(editor): workaround empty content in worker renderer by @doodlewind in #10043
- feat(editor): update edgeless media entry icon and anime by @Flrande in #10047
- test(server): utils by @forehalo in #10028
- ci: fix doc deployment container port by @Brooooooklyn in #10048
- feat(core): frame editor settings by @OlegDev1 in #9970
- fix(editor): workaround empty text in insertText by @doodlewind in #10049
- feat(editor): add animation for switching to edgeless mode firstly by @L-Sun in #10021
- fix(editor): typos on embed card modal by @fundon in #10046
- chore: update nolyfill list by @Brooooooklyn in #10027
- chore: bump up nestjs by @renovate in #10040
- refactor(server): use doc model on doc cron job by @fengmk2 in #10057
- fix: at menu toolip should always use the default color by @pengx17 in #10054
- fix(core): not using Internet search after user selects document or file by @akumatus in #10058
- refactor(editor): move embed-card-modal to components by @fundon in #10037
- fix(editor): wrap doc title by default by @L-Sun in #10052
- refactor(server): use user model on oauth plugin by @fengmk2 in #10031
- chore: bump up all non-major dependencies by @renovate in #10004
- chore: bump up nestjs by @renovate in #10059
- feat(editor): table block supports drag-and-drop sorting by @zzj3720 in #10065
- feat(core): make some tabs in sidebar persistent for all docs page by @CatsJuice in #10014
- feat: focus the create page item when query returns no result in at menu by @pengx17 in #10060
- refactor(editor): configurable page block title by @L-Sun in #10063
- refactor(editor): flat data for table block by @Saul-Mirone in #10010
- chore(editor): simplify legacy playground build config by @doodlewind in #10044
- fix(server): only handle doc.snapshot.updated event on renderer by @fengmk2 in #10062
- fix(core): adjust settings names by @pengx17 in #10061
- refactor(editor): switch worker renderer debug ui to tweakpane by @doodlewind in #10074
- feat(server): use x-cloud-trace-context instead of x-rpc-trace-id by @fengmk2 in #10068
- build: fix install homebrew error of abort "Don't run this as root!" by @tablebird in #10076
- chore: bump up esbuild version to ^0.25.0 [SECURITY] by @renovate in #10075
- chore: remove wrong hoistingLimits config for graphql package by @Brooooooklyn in #10077
- feat(core): center peek open doc should only load doc when idle by @pengx17 in #10023
- refactor(editor): move worker renderer to affine shared by @doodlewind in #10081
- feat(server): wrong context setting on doc publish by @fengmk2 in #10080
- chore: bump up all non-major dependencies by @renovate in #10066
- refactor(editor): remove global types in model by @Saul-Mirone in #10082
- fix(editor): table block cell width adjust by @zzj3720 in #10087
- fix(server): don't set the wrong context on logger by @fengmk2 in #10088
- feat(editor): ai panel supports displaying table blocks by @zzj3720 in #10091
- feat(server): basic context api by @darkskygit in #10056
- refactor(editor): remove block models global type by @Saul-Mirone in #10086
- chore: remove @affine/workers by @Brooooooklyn in #10084
- refactor(editor): migrate viewport renderer to extension by @doodlewind in #10094
- refactor(editor): remove global types in edgeless by @Saul-Mirone in #10092
- refactor(editor): reduce getService by @Saul-Mirone in #10100
- chore: bump up all non-major dependencies by @renovate in #10099
- refactor(core): remove the unused compareDate field from DocDisplayIconOptions by @L-Sun in #10095
- fix(core): input not automatically focused by @akumatus in #10050
- refactor(editor): mount worker renderer in editor host by @doodlewind in #10055
- fix(editor): only render emoji in page block header by @L-Sun in #10096
- fix(editor): collapsed page block visibility by @L-Sun in #10097
- fix(editor): set edgeless note style will override collapse state by @L-Sun in #10098
- fix(core): use patched preview spec builder in ai chat by @donteatfriedrice in #10090
- feat(server): self-hosted worker by @darkskygit in #10085
- test(server): avoid db deadlock on unittest by @fengmk2 in #10104
- feat(core): enable ai network search by @akumatus in #10110
- refactor(editor): add mock notes creator by @doodlewind in #10109
- chore: bump up @blocksuite/icons version to v2.2.3 by @renovate in #10114
- chore: bump up all non-major dependencies by @renovate in #10102
- fix(electron): split view indicator should show menu on click by @pengx17 in #10089
- feat(core): upgrade pplx models by @akumatus in #10115
- refactor(core): auth ui by @forehalo in #10101
- refactor(server): workspace doc query by @forehalo in #10042
- feat: add doc copilot context api by @akumatus in #10103
- chore(server): set script flavor instead of NODE_ENV by @forehalo in #10121
New Contributors
- @tablebird made their first contribution in #10076
Full Changelog: v0.20.0-canary.6...v0.20.0-canary.7