What's Changed
- refactor(editor): extract frame title widget by @Saul-Mirone in #9458
- test(editor): remove jsx snapshot by @Saul-Mirone in #9463
- fix(editor): wrong style of mindmap in dark mode by @fundon in #9462
- refactor(core): remove abort event error on init by @doodlewind in #9465
- fix(editor): too many digits after decimal point in table calculations by @OlegDev1 in #9471
- chore: remove unused methods on slot by @Saul-Mirone in #9472
- chore(editor): disable legacy validation by @Saul-Mirone in #9473
- feat(infra): add not-condition to orm by @forehalo in #9466
- fix(native): round trip timestamp to millis by @forehalo in #9468
- refactor(editor): set readonly by @Saul-Mirone in #9475
- refactor(editor): move crud to doc by @Saul-Mirone in #9479
- chore: bump up all non-major dependencies by @renovate in #9434
- fix(editor): replace checkVisibility by @Flrande in #9481
- feat(ios): implement chat function by @Lakr233 in #9482
- fix(server): fail to load custom config by @forehalo in #9485
- refactor(core): add all docs properties api by @EYHN in #9484
- refactor(editor): job should not rely on doc collection directly by @Saul-Mirone in #9488
- chore(editor): remove @types/dompurify dependency by @Saul-Mirone in #9490
- refactor(editor): merge docCreated and docAdded slot by @Saul-Mirone in #9489
- chore: bump up apollographql/apollo-ios version to from: "1.15.3" by @renovate in #9486
- chore: bump up oxlint version to v0.15.5 by @renovate in #9491
- refactor(editor): reduce dependency to doc collection by @Saul-Mirone in #9492
- fix(editor): blur in edgeless content zooming by @doodlewind in #9496
- refactor(editor): move mini mindmap to ai module by @Saul-Mirone in #9497
- feat: add shortcut of zooming to selection by @doouding in #9447
- chore(editor): move helper to playground by @Saul-Mirone in #9498
- feat: add scroll wheel zoom setting by @doouding in #9476
- refactor(editor): should not rely on doc collection type by @Saul-Mirone in #9501
- refactor(core): move workspace implementation to affine by @Saul-Mirone in #9504
- chore(editor): move legacy doc collection to test workspace by @Saul-Mirone in #9507
- fix(editor): surface ref find element error by @Saul-Mirone in #9508
- fix(editor): block selection error when unloaded by @Saul-Mirone in #9511
- fix(editor): at menu position in split view by @Flrande in #9500
- refactor(editor): rename doc to blocks by @Saul-Mirone in #9510
- chore(i18n): sync translations by @github-actions in #9499
- chore(i18n): sync translations by @github-actions in #9513
- refactor(core): move block collection to affine and implement as doc by @Saul-Mirone in #9514
- chore(i18n): i18n auto codegen by @EYHN in #9516
- refactor(editor): rename store api by @Saul-Mirone in #9518
- chore(i18n): sync translations by @github-actions in #9520
- refactor(editor): remove legacy blocksuite doc by @Saul-Mirone in #9521
- refactor(editor): move workspace meta to affine by @Saul-Mirone in #9524
- refactor(editor): reorg code structure of store package by @Saul-Mirone in #9525
- chore(editor): remove common utils in surface block by @Saul-Mirone in #9527
- chore: bump icons with new design source by @CatsJuice in #9529
- feat(i18n): i18n Localization and translations for Farsi (fa) 🇮🇷 by @EYHN in #9533
- refactor(editor): remove selection global types by @Saul-Mirone in #9532
- fix(core): should focus when clicking sidebar button by @donteatfriedrice in #9339
- Update README.md by @donqu1xotevincent in #9542
- feat(ios): add apis for native by @EYHN in #9536
- fix(editor): remote selection refresh rate by @Saul-Mirone in #9543
- feat(i18n): add uk i18n by @EYHN in #9530
- feat(nbstore): improve nbstore by @EYHN in #9512
- refactor(editor): move extension to store by @Saul-Mirone in #9552
- refactor(editor): add native clipboard extension by @fundon in #9502
- refactor(editor): extract mix-text adapter to shared by @donteatfriedrice in #9559
- refactor(editor): surface markdown adapter extensionalize by @donteatfriedrice in #9560
- fix(editor): add childElementIds to ai generated frame by @L-Sun in #9537
- chore(editor): revert padding and layout of code block toolbar by @L-Sun in #9562
- ci: fix android build by @Brooooooklyn in #9558
- chore: move page not found error out of constants by @Saul-Mirone in #9547
- chore: remove awareness sync since it's not used by @Saul-Mirone in #9563
- ci: pin xcode-version to 16.1 by @Brooooooklyn in #9564
- fix(editor): remove ts ignore by @Saul-Mirone in #9567
- chore(server): setup winston logger by @Brooooooklyn in #9561
- refactor(editor): refactor page note empty checker by @L-Sun in #9570
- fix(editor): enumerate ancestors by @fourdim in #9540
- ci: fix android release pipeline by @Brooooooklyn in #9574
- chore: standardize tsconfig by @forehalo in #9568
- feat(core): drop doc onto split view by @pengx17 in #9487
- fix(electron): filename escape by @forehalo in #9583
- feat(editor): add editor store by @Saul-Mirone in #9584
- feat(mobile): mobile toc menu by @L-Sun in #9582
- feat(editor): merge store and blocks by @Saul-Mirone in #9591
- fix(server): disable winston in seflhost instance by @Brooooooklyn in #9585
- feat(editor): add feature flag service by @Saul-Mirone in #9592
- chore: bump up all non-major dependencies by @renovate in #9494
- refactor(editor): playground doc collection typing migration by @doodlewind in #9593
- refactor(editor): remove legacy console formatter by @doodlewind in #9599
- feat(core): support ai network search by @akumatus in #9357
- chore(editor): rename std.doc to std.store by @Saul-Mirone in #9596
- refactor(editor): remove readonly in awareness by @Saul-Mirone in #9597
- refactor(editor): remove default entry by @doodlewind in #9600
- fix(editor): component name for the mobile menu is incorrect by @zzj3720 in #9604
- chore(editor): fix playground vscode tsc warning by @doodlewind in #9603
- feat(editor): add more open doc options to editor toolbar by @pengx17 in #9588
- fix(editor): prototype-polluting assignment by @zzj3720 in #9606
- fix(server): missing perplexity secret by @darkskygit in #9607
- feat(server): user model by @forehalo in #9608
- style: add @typescript-eslint/return-await rule by @Brooooooklyn in #9612
- chore(server): not allow to update action's prompt by @darkskygit in #9615
- fix(core): split view should only be dragged by the handle by @pengx17 in #9610
- fix(core): update chat session after session created or reused by @akumatus in #9613
- feat(editor): selection as store extension by @Saul-Mirone in #9605
- fix(editor): exisiting slice import should be move instead of add by @Saul-Mirone in #9616
- feat(editor): support pasting Excel data into database block by @zzj3720 in #9618
- chore(server): move server tests folder by @forehalo in #9614
- chore: bump up rustc version to v1.84.0 by @renovate in #9623
- feat(editor): remove chat-cards and Open AI Chat menu item by @akumatus in #9626
- fix(core): dependency cycle by @fundon in #9628
- fix(core): fix menu not close when click outside by @EYHN in #9535
- perf(editor): optimize the search for the closest element by @fundon in #9587
- test(server): should await throwsAsync assert by @fengmk2 in #9631
- feat(electron): close inactive views when switching workspace by @pengx17 in #9601
- feat(editor): improve group title display for checkbox columns by @zzj3720 in #9622
- feat(editor): support linked-doc in rich-text column by @zzj3720 in #9634
- chore: bump up all non-major dependencies by @renovate in #9598
- fix(editor): drag indicator flickering by @fundon in #9636
- refactor(editor): rename job to transformer by @Saul-Mirone in #9639
- chore(editor): remove unused awareness slot by @Saul-Mirone in #9640
- ci: fix server build job by @Brooooooklyn in #9649
- chore: bump up Rust crate notify to v8 by @renovate in #9635
- chore: Lock file maintenance by @renovate in #9418
- feat(editor): support text highlight html adapter by @donteatfriedrice in #9632
- fix(tools): always use posix for path resolving by @forehalo in #9627
- chore(i18n): sync translations by @github-actions in #9534
- chore: bump up oxlint version to v0.15.6 by @renovate in #9659
- style: use typescript resolver for eslint import plugin by @Brooooooklyn in #9662
- fix(editor): add shift middleware for tag select panel by @zzj3720 in #9664
- chore(editor): update default colors of shape by @fundon in #9633
- fix(editor): should not update table selection after table is destroyed by @zzj3720 in #9665
- fix(editor): migrate basic playground examples by @doodlewind in #9669
- feat(core): new template doc property by @CatsJuice in #9538
- feat(core): template-doc settings for user-worksapce scope by @CatsJuice in #9566
- feat(core): template doc setting ui by @CatsJuice in #9658
- feat(server): session model by @fengmk2 in #9652
- feat(server): verificationToken model by @fengmk2 in #9655
- refactor(server): use verificationToken model instead of tokenService by @fengmk2 in #9657
- refactor(server): use session model in auth service by @fengmk2 in #9660
- chore: bump up all non-major dependencies by @renovate in #9651
- test: playwright cloud import prisma by @forehalo in #9677
- fix(tools): make cli available even conficts exist by @forehalo in #9678
- fix(core): workspace selector on the upgrade to team page overflows by @JimmFly in #9586
- fix(core): add ai send button test by @akumatus in #9685
- fix(editor): adapters panel type by @donteatfriedrice in #9690
- refactor(editor): enable the noUncheckedIndexedAccess rule for the block-database package by @zzj3720 in #9691
- feat(core): template doc list empty ui by @CatsJuice in #9675
- feat(core): sidebar template doc entrance by @CatsJuice in #9676
- fix(editor): init default theme observer value according to data-theme by @donteatfriedrice in #9698
- fix(core): dependency cycle by @fourdim in #9704
- feat(core): remove workspace selectors in settings by @pengx17 in #9705
- fix(editor): avoid drag and drag over updating drag indicator at the same time by @fundon in #9656
- fix(editor): text highlighting by @fundon in #9708
- feat(core): sidebar journal panel template onboarding and setting by @CatsJuice in #9680
- feat(core): start with edgeless for empty page by @CatsJuice in #9699
- feat(editor): edgeless page block toolbar by @L-Sun in #9707
- chore(core): update tooltip of mode switcher by @L-Sun in #9711
- refactor(core): move setting dialog to workspace scope by @pengx17 in #9706
- fix(core): some dnd perf issues by @pengx17 in #9661
- test(core): add basic tests for template doc setting by @CatsJuice in #9702
- chore: bump up @blocksuite/icons version to v2.2.2 by @renovate in #9684
- chore: bump up all non-major dependencies by @renovate in #9689
- chore(debug): add vscode debug launch setting by @L-Sun in #9725
- fix(editor): stop paste-copy event bubbling on bookmark modal by @fundon in #9713
- feat(electron): more desktop app related shortcuts by @pengx17 in #9724
- chore: bump up changelogithub version to v13 by @renovate in #9723
- chore: bump up @sentry/webpack-plugin version to v3 by @renovate in #9721
- fix(editor): playground font inconsistency by @doodlewind in #9728
- fix(editor): reactive heading icon by @L-Sun in #9729
- fix(core): downward arrow is visible when message panel is not scrollable by @akumatus in #9670
- perf(editor): fix autoUpdate being continuously added when updating selections by @fundon in #9727
- chore: bump up @sentry/esbuild-plugin version to v3 by @renovate in #9720
- feat(server): feature model by @forehalo in #9709
- chore: bump up electron version to v34 by @renovate in #9694
- chore: bump up file-type version to v20 by @renovate in #9731
- fix(server): disable checksum check for r2 storage when using aws-s3 sdk by @forehalo in #9735
- refactor: rewrite blocksuite dnd by @doouding in #9595
- feat(core): add new bs dnd adapter by @pengx17 in #9717
- feat(core): new worker workspace engine by @EYHN in #9257
- refactor(editor): enable toc dragging in page mode by @L-Sun in #9736
- feat(server): add model base by @forehalo in #9734
- refactor(core): adjust merbers module apis by @EYHN in #9695
- fix: legacy e2e test debug by @doouding in #9746
- chore: bump up eslint-config-prettier version to v10 by @renovate in #9671
- feat(server): workspace model by @fengmk2 in #9714
- feat(server): page model by @fengmk2 in #9715
- refactor(server): use workspace model on user model by @fengmk2 in #9726
- feat(server): use user model by @forehalo in #9710
- chore(i18n): sync translations by @github-actions in #9741
- fix(nbstore): userdata id converter by @forehalo in #9748
- test: mobile e2e by @forehalo in #9753
- chore: bump up Node.js to v22 by @renovate in #8625
- refactor(editor): move database selection into the corresponding view by @zzj3720 in #9752
- chore: bump theme by @CatsJuice in #9732
- feat(editor): add affine inline footnote by @donteatfriedrice in #9745
- fix(editor): close embed edit modal on editor unmount by @L-Sun in #9765
- refactor(server): enhance the Logger usage by @Brooooooklyn in #9763
- feat(editor): add sidebar service by @L-Sun in #9761
- refactor(editor): remove database-service by @zzj3720 in #9769
- chore: bump up katex version to v0.16.21 [SECURITY] by @renovate in #9771
- feat(core): support chat panel chips and suggest current doc for embedding by @akumatus in #9747
- fix(core): improve doc title and icon display by @fundon in #9755
- feat(electron): move @blocksuite/affine to peer dependences for package speed on windows by @pengx17 in #9756
- chore: bump up vitest monorepo to v3 (major) by @renovate in #9739
- fix(core): open template doc on sidebar template entrance by @CatsJuice in #9766
- feat(core): add template mark on detail page header by @CatsJuice in #9764
- feat(editor): append note to page button by @L-Sun in #9762
- fix(core): move openinapp guard to workspace scope by @pengx17 in #9751
- feat(core): track template doc events by @CatsJuice in #9775
- chore: bump up all non-major dependencies by @renovate in #9730
- chore: bump up Rust crate serde_json to v1.0.137 by @renovate in #9781
- feat(core): add copy link button to local share menu by @JimmFly in #9271
- fix(core): center peek and history dialog does not display custom fonts by @JimmFly in #9274
- chore(core): update fill color of shape by @fundon in #9674
- fix(core): fix ios sync by @EYHN in #9782
- refactor(editor): refactor linkPreviewer as an extension and remove bookmark service by @donteatfriedrice in #9754
- fix(core): make journal template selector fixed at bottom in sidebar by @CatsJuice in #9783
- fix(editor): view recorded in storage may not exist by @zzj3720 in #9788
- fix: remove global, store and std in affine packages by @Saul-Mirone in #9785
- chore: bump up oxlint version to v0.15.7 by @renovate in #9774
- refactor(editor): do not create a tag column by default anymore by @zzj3720 in #9789
- fix(electron): export and import by @forehalo in #9767
- fix: drag embed block preview by @doouding in #9791
- fix: remove bs shared and components in affine by @Saul-Mirone in #9792
- feat(server): enable cls plugin to store request id by @fengmk2 in #9758
- feat(editor): add canvas worker renderer dev entry by @doodlewind in #9719
- chore: bump up all non-major dependencies by @renovate in #9786
- chore(web): bump theme by @doodlewind in #9801
- fix(editor): remove pointer event handlers in root block by @Saul-Mirone in #9802
- chore: bump up all non-major dependencies by @renovate in #9800
- refactor(editor): remove deprecated dangerouslyRenderModel method by @Saul-Mirone in #9803
- fix(editor): inline latex editor should not be shown when doc is readonly by @donteatfriedrice in #9794
- chore: bump up all non-major dependencies by @renovate in #9804
- fix(infra): asynclock deadlock by @pengx17 in #9808
- fix(ios): fix ios http and ws by @EYHN in #9805
- feat(server): add requestId to all error response by @fengmk2 in #9790
- fix(core): avoid multiple append right sidebar tab lit component by @L-Sun in #9806
- refactor(editor): add schema on block model by @Saul-Mirone in #9815
- build: wrong keep classnames options by @forehalo in #9750
- feat(server): supplement team email remind by @darkskygit in #9483
- chore(core): replace add icon of section in sidebar by @CatsJuice in #9787
- fix(native): possible deadlock when batching read/write by @forehalo in #9817
- refactor(server): use @nestjs-cls/transactional to impl database transaction by @fengmk2 in #9759
- chore: bump up @capacitor/app version to v7 by @renovate in #9811
- refactor(editor): highlight selected cards of TOC based on signal by @L-Sun in #9807
- fix(editor): y reactive deep watch by @Saul-Mirone in #9818
- chore: bump up @capacitor/browser version to v7 by @renovate in #9812
- chore: bump up @capacitor/haptics version to v7 by @renovate in #9821
- chore: bump up @capacitor/keyboard version to v7 by @renovate in #9826
- test(editor): add tests for heading toggle by @Flrande in #9820
- fix(server): set reqeust-id on ClsModule setup by @fengmk2 in #9829
- chore: bump up check-password-strength version to v3 by @renovate in #9827
- chore(electron): increase retry times by @pengx17 in #9814
- chore(core): replace outlined template icon by @CatsJuice in #9784
- feat(core): support ai doc search panel by @akumatus in #9831
- fix(core): peek view backgroud by @pengx17 in #9825
- test(editor): move tests of toc to affine by @L-Sun in #9833
- chore: bump up capacitor monorepo to v7 (major) by @renovate in #9809
- chore: bump up shiki version to v2 by @renovate in #9793
- fix(electron): split view reorder shaking by @pengx17 in #9828
- feat(editor): add start-with-ai button for empty doc by @L-Sun in #9836
- fix(core): set state isLoading to false after email changing is confirmed by @UNIDY2002 in #9824
- feat(server): new email template by @darkskygit in #9528
- feat(core): reorg workspace settings by @pengx17 in #9718
- chore: bump up nestjs-cls version to v5 by @renovate in #9840
- chore: bump up nestjs by @renovate in #9839
- fix(infra): increase eventemitter listener count by @pengx17 in #9799
- fix(editor): ref on click slots should not be global by @pengx17 in #9830
- chore: remove deprecated dependencies by @Brooooooklyn in #9837
- chore(i18n): sync translations by @github-actions in #9842
- feat(editor): support footnote adapter by @donteatfriedrice in #9844
- feat(core): support one time password by @forehalo in #9798
- chore(core): update oauth icons by @CatsJuice in #9796
- fix(server): react email deps by @forehalo in #9850
- chore(i18n): sync translations by @github-actions in #9846
- fix(core): linkpreview and imageproxy url should be prefixed with server url by @pengx17 in #9838
- test(editor): fix font style in preset tests by @doodlewind in #9847
- feat(server): support selfhost licenses by @forehalo in #8947
- feat(server): user feature model by @forehalo in #9843
- feat: use footnote for perplexity search results by @akumatus in #9851
- feat(electron): backup panel by @pengx17 in #9738
- refactor(editor): shadowless TOC with valilla extract css by @L-Sun in #9856
- chore: bump up @nestjs/throttler version to v6.4.0 by @renovate in #9860
- feat(core): make sidebar others collapsible by @CatsJuice in #9862
- fix(android): fix android nbstore provider by @EYHN in #9865
- refactor(server): print magic link on local dev env by @fengmk2 in #9864
- fix(server): use ClsInterceptor on websocket by @fengmk2 in #9859
- feat(core): unused blob management in settings by @pengx17 in #9795
- 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
- fix(editor): figma ui issues by @Flrande in #10123
- test: enable chat block e2e test by @donteatfriedrice in #10111
- fix(core): wrap code in ai chat by @donteatfriedrice in #10108
- fix(server): get doc diff from doc service by @fengmk2 in #10067
- fix(editor): shadowless element should remove style element correctly by @donteatfriedrice in #10128
- chore: bump up all non-major dependencies by @renovate in #10116
- feat(android): implement capacitor/keyboard plugin by @aki-chang-dev in #10125
- refactor(editor): remove service global type by @Saul-Mirone in #10129
- chore(i18n): sync translations by @github-actions in #10026
- fix(server): allow to checkout selfhost team in canary by @forehalo in #10130
- feat: edgeless dnd by @doouding in #9988
- feat: edgeless dnd preview by @doouding in #10117
- refactor(editor): move worker renderer to presets with basic test by @doodlewind in #10127
- feat: dragged blocks should set opacity by @doouding in #10119
- fix: embed block style when dragging doc from sidebar doc list to edgeless by @doouding in #10122
- fix(editor): wrong position of remote selection and at menu in edgeless by @L-Sun in #10137
- refactor(server): add debug info on global exception log by @fengmk2 in #10118
- feat(electron): app tabs width styles by @pengx17 in #10131
- fix: database cross doc dragging by @doouding in #10126
- fix: drop indicator in center peek by @doouding in #10136
- refactor(editor): remove redundant getOptional for gfx by @doodlewind in #10142
- feat(core): add with your docs label to ai answer by @akumatus in #10124
- chore: bump up vite-plugin-istanbul version to v7 by @renovate in #10106
- chore(server): migrate depracated opentelemetry usage by @Brooooooklyn in #10140
- fix(editor): hide collpased content during dragging note by @L-Sun in #10133
- fix(edtiro): hide toc drag indicator on edgeless note by @L-Sun in #10135
- refactor(editor): remove global types in config by @Saul-Mirone in #10143
- feat(core): persist right-sidebar open state and resize width by @CatsJuice in #10120
- feat(core): hide starter-bar for template by @CatsJuice in #10112
- chore(core): use fadeBottom animation for center peek by @CatsJuice in #10072
- fix(core): do not show starter bar for doc in history modal by @CatsJuice in #10107
- fix(core): ai context gql file by @akumatus in #10145
- fix(android): fix status bar style by @aki-chang-dev in #10147
- fix(server): wrong affine pro endpoint by @forehalo in #10144
- fix(core): show self hosted license seats by @JimmFly in #10146
- fix(server): selfhost subscription customer portal creation by @forehalo in #10149
- ci: split server tests by @Brooooooklyn in #10141
- fix(component): loading in button should be white for primary variant by @CatsJuice in #10073
- chore(core): add feature flag for ios AI button by @CatsJuice in #10150
- fix(core): edgeless text ai action should generate image correctly by @donteatfriedrice in #10158
- fix(editor): overflow of dragging preview of note card in ToC by @L-Sun in #10160
- feat: better error handle for sse endpoint by @darkskygit in #10155
- refactor(server): auto print full stack on logger.error by @fengmk2 in #10161
- feat(core): move context docs to user prompt by @akumatus in #10162
- chore(server): enhance log context and messages by @Brooooooklyn in #10151
- chore(editor): adjust min width of edgeless note by @L-Sun in #10153
- fix(editor): figma block ui issues by @Flrande in #10167
- fix(editor): support more divider markdown shortcut by @abesmon in #10139
- feat(core): attach a pdf by @OlegDev1 in #10039
- fix(server): should fallback to doc role permission if not specified by @forehalo in #10166
- feat(electron): split view drag indicator bg by @pengx17 in #10175
- refactor(editor): remove redundant edgeless icons by @L-Sun in #10169
- fix(editor): edgeless mindmap text button layer inder by @Flrande in #10179
- feat(electron): show a warning for drop folder to split view by @pengx17 in #10178
- refactor(core): get copilot sessions api by @akumatus in #10168
- feat(server): worker improve by @darkskygit in #10176
- chore(electron): remove offline mode by @forehalo in #10152
- fix(core): adjust the redirection path for retrying payments when self-hosting by @JimmFly in #10181
- fix(core): adjust share menu by @JimmFly in #10164
- fix(editor): increase edgeless text init min width by @Flrande in #10051
- feat(editor): add WidgetViewExtension by @Saul-Mirone in #10180
- feat: filter out session create request for root doc by @darkskygit in #10187
- fix(server): event handler bindings by @forehalo in #10165
- chore(editor): adjust margin of edgeless page block title by @L-Sun in #10188
- fix(editor): extra line breaks and spaces when parsing table from html by @zzj3720 in #10190
- feat(core): support network search in chat block center peek by @donteatfriedrice in #10186
- fix(core): copy more button style by @donteatfriedrice in #10196
- refactor(core): lazy create copilot session and context by @akumatus in #10170
- feat: dnd image preview && edgeless dnd preview issue by @doouding in #10177
- chore(core): disallow closing auth modal for clicking outside and escape by @CatsJuice in #10156
- fix(core): prevent text wrapping in starter bar badge by @CatsJuice in #10157
- refactor(editor): simplify worker renderer message and canvas transfer by @doodlewind in #10199
- chore(editor): add telemetry track to display mode of note by @L-Sun in #10192
- feat(core): auto collapse ai chips by @akumatus in #10209
- fix(core): fix the permission check in peek view by @EYHN in #10213
- feat(editor): support to copy in preview root block by @donteatfriedrice in #10214
- chore(editor): no need to cache attachment embed config map by @fundon in #10197
- fix(android): edge to edge compatibility for capacitor7 by @aki-chang-dev in #10191
- fix(editor): make std stable in affine-link and affine-reference by @fundon in #10207
- refactor(server): dont convert graphql bad request into internal server error by @fengmk2 in #10203
- feat(core): add link to template tutorial by @CatsJuice in #10189
- fix(editor): video style in edgeless by @fundon in #10198
- fix(core): handle unexpected hits to paywalls by @JimmFly in #10215
- fix(editor): table block readonly support by @zzj3720 in #10224
- fix(editor): width and height of embed block by @Flrande in #10223
- fix: mindmap ai preview by @doouding in #10222
- fix(core): unable to explain image when network search is active by @akumatus in #10228
- feat(core): add 100k tokens limit for the docs context by @akumatus in #10211
- fix(server): log error on gcloud by @fengmk2 in #10235
- chore(core): adjust selfhost sign in ui by @forehalo in #10226
- fix(server): default workspace avatar size by @forehalo in #10229
- fix(core): copy more button group style by @donteatfriedrice in #10240
- test(server): fix flaky cache tests by @forehalo in #10238
- refactor(editor): move export manager to surface block extensions by @Saul-Mirone in #10231
- fix(editor): edgeless toolbar basket not visible in firefox by @CatsJuice in #10232
- feat(server): job system by @forehalo in #10134
- feat(server): use job system by @forehalo in #10218
- fix(server): pagination input parser by @forehalo in #10245
New Contributors
- @OlegDev1 made their first contribution in #9471
- @Lakr233 made their first contribution in #9482
- @fengmk2 made their first contribution in #9631
- @UNIDY2002 made their first contribution in #9824
- @tablebird made their first contribution in #10076
- @abesmon made their first contribution in #10139
Full Changelog: v0.19.6...v0.20.0-beta.1