Commit Graph

75 Commits

Author SHA1 Message Date
李华桥 eff344a9c1 Merge branch 'canary' into stable 2023-12-12 16:45:47 +08:00
Flrande 9aa33d0228 feat: bump blocksuite (#5267)
Change history: https://github.com/toeverything/blocksuite/compare/2b5bb47...2b3d2ba
2023-12-12 06:18:30 +00:00
李华桥 42383dbd29 Merge branch 'canary' into stable 2023-12-10 21:04:15 +08:00
Joooye_34 c1bb467013 refactor(core): use debug log replace console when command registry (#5237) 2023-12-09 07:42:04 +00:00
LongYinan feed400462 chore: bump up vite version to v5 (#5203)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev) ([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) | [`^4.4.11` -> `^5.0.0`](https://renovatebot.com/diffs/npm/vite/4.5.1/5.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.5.1/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.5.1/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

### [`v5.0.6`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small506-2023-12-06-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.5...v5.0.6)

-   perf: in-memory public files check ([#&#8203;15195](https://togithub.com/vitejs/vite/issues/15195)) ([0f9e1bf](https://togithub.com/vitejs/vite/commit/0f9e1bf)), closes [#&#8203;15195](https://togithub.com/vitejs/vite/issues/15195)
-   chore: remove unneccessary eslint-disable-next-line regexp/no-unused-capturing-group ([#&#8203;15247](https://togithub.com/vitejs/vite/issues/15247)) ([35a5bcf](https://togithub.com/vitejs/vite/commit/35a5bcf)), closes [#&#8203;15247](https://togithub.com/vitejs/vite/issues/15247)

### [`v5.0.5`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small505-2023-12-04-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.4...v5.0.5)

-   fix: emit `vite:preloadError` for chunks without deps ([#&#8203;15203](https://togithub.com/vitejs/vite/issues/15203)) ([d8001c5](https://togithub.com/vitejs/vite/commit/d8001c5)), closes [#&#8203;15203](https://togithub.com/vitejs/vite/issues/15203)
-   fix: esbuild glob import resolve error ([#&#8203;15140](https://togithub.com/vitejs/vite/issues/15140)) ([676804d](https://togithub.com/vitejs/vite/commit/676804d)), closes [#&#8203;15140](https://togithub.com/vitejs/vite/issues/15140)
-   fix: json error with position ([#&#8203;15225](https://togithub.com/vitejs/vite/issues/15225)) ([14be75f](https://togithub.com/vitejs/vite/commit/14be75f)), closes [#&#8203;15225](https://togithub.com/vitejs/vite/issues/15225)
-   fix: proxy html path should be encoded ([#&#8203;15223](https://togithub.com/vitejs/vite/issues/15223)) ([5b85040](https://togithub.com/vitejs/vite/commit/5b85040)), closes [#&#8203;15223](https://togithub.com/vitejs/vite/issues/15223)
-   fix(deps): update all non-major dependencies ([#&#8203;15233](https://togithub.com/vitejs/vite/issues/15233)) ([ad3adda](https://togithub.com/vitejs/vite/commit/ad3adda)), closes [#&#8203;15233](https://togithub.com/vitejs/vite/issues/15233)
-   fix(hmr): don't consider CSS dep as a circular dep ([#&#8203;15229](https://togithub.com/vitejs/vite/issues/15229)) ([5f2cdec](https://togithub.com/vitejs/vite/commit/5f2cdec)), closes [#&#8203;15229](https://togithub.com/vitejs/vite/issues/15229)
-   feat: add '\*.mov' to client.d.ts ([#&#8203;15189](https://togithub.com/vitejs/vite/issues/15189)) ([d93a211](https://togithub.com/vitejs/vite/commit/d93a211)), closes [#&#8203;15189](https://togithub.com/vitejs/vite/issues/15189)
-   feat(server): allow disabling built-in shortcuts ([#&#8203;15218](https://togithub.com/vitejs/vite/issues/15218)) ([7fd7c6c](https://togithub.com/vitejs/vite/commit/7fd7c6c)), closes [#&#8203;15218](https://togithub.com/vitejs/vite/issues/15218)
-   chore: replace 'some' with 'includes' in resolveEnvPrefix ([#&#8203;15220](https://togithub.com/vitejs/vite/issues/15220)) ([ee12f30](https://togithub.com/vitejs/vite/commit/ee12f30)), closes [#&#8203;15220](https://togithub.com/vitejs/vite/issues/15220)
-   chore: update the website url for homepage in package.json ([#&#8203;15181](https://togithub.com/vitejs/vite/issues/15181)) ([282bd8f](https://togithub.com/vitejs/vite/commit/282bd8f)), closes [#&#8203;15181](https://togithub.com/vitejs/vite/issues/15181)
-   chore: update vitest to 1.0.0-beta.6 ([#&#8203;15194](https://togithub.com/vitejs/vite/issues/15194)) ([2fce647](https://togithub.com/vitejs/vite/commit/2fce647)), closes [#&#8203;15194](https://togithub.com/vitejs/vite/issues/15194)
-   refactor: make HMR agnostic to environment ([#&#8203;15179](https://togithub.com/vitejs/vite/issues/15179)) ([0571b7c](https://togithub.com/vitejs/vite/commit/0571b7c)), closes [#&#8203;15179](https://togithub.com/vitejs/vite/issues/15179)
-   refactor: use dedicated regex methods ([#&#8203;15228](https://togithub.com/vitejs/vite/issues/15228)) ([0348137](https://togithub.com/vitejs/vite/commit/0348137)), closes [#&#8203;15228](https://togithub.com/vitejs/vite/issues/15228)
-   perf: remove debug only prettifyUrl call ([#&#8203;15204](https://togithub.com/vitejs/vite/issues/15204)) ([73e971f](https://togithub.com/vitejs/vite/commit/73e971f)), closes [#&#8203;15204](https://togithub.com/vitejs/vite/issues/15204)
-   perf: skip computing sourceRoot in injectSourcesContent ([#&#8203;15207](https://togithub.com/vitejs/vite/issues/15207)) ([1df1fd1](https://togithub.com/vitejs/vite/commit/1df1fd1)), closes [#&#8203;15207](https://togithub.com/vitejs/vite/issues/15207)

### [`v5.0.4`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small504-2023-11-29-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.3...v5.0.4)

-   fix: bindCLIShortcuts to proper server ([#&#8203;15162](https://togithub.com/vitejs/vite/issues/15162)) ([67ac572](https://togithub.com/vitejs/vite/commit/67ac572)), closes [#&#8203;15162](https://togithub.com/vitejs/vite/issues/15162)
-   fix: revert "fix: js fallback sourcemap content should be using original content ([#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135))" ([#&#8203;15178](https://togithub.com/vitejs/vite/issues/15178)) ([d2a2493](https://togithub.com/vitejs/vite/commit/d2a2493)), closes [#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135) [#&#8203;15178](https://togithub.com/vitejs/vite/issues/15178)
-   fix(define): allow define process.env ([#&#8203;15173](https://togithub.com/vitejs/vite/issues/15173)) ([ec401da](https://togithub.com/vitejs/vite/commit/ec401da)), closes [#&#8203;15173](https://togithub.com/vitejs/vite/issues/15173)
-   fix(resolve): respect order of browser in mainFields when resolving ([#&#8203;15137](https://togithub.com/vitejs/vite/issues/15137)) ([4a111aa](https://togithub.com/vitejs/vite/commit/4a111aa)), closes [#&#8203;15137](https://togithub.com/vitejs/vite/issues/15137)
-   feat: preserve vite.middlewares connect instance after restarts ([#&#8203;15166](https://togithub.com/vitejs/vite/issues/15166)) ([9474c4b](https://togithub.com/vitejs/vite/commit/9474c4b)), closes [#&#8203;15166](https://togithub.com/vitejs/vite/issues/15166)
-   refactor: align with Promise.withResolvers() ([#&#8203;15171](https://togithub.com/vitejs/vite/issues/15171)) ([642f9bc](https://togithub.com/vitejs/vite/commit/642f9bc)), closes [#&#8203;15171](https://togithub.com/vitejs/vite/issues/15171)

### [`v5.0.3`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small503-2023-11-28-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.2...v5.0.3)

-   fix: `generateCodeFrame` infinite loop ([#&#8203;15093](https://togithub.com/vitejs/vite/issues/15093)) ([6619de7](https://togithub.com/vitejs/vite/commit/6619de7)), closes [#&#8203;15093](https://togithub.com/vitejs/vite/issues/15093)
-   fix: js fallback sourcemap content should be using original content ([#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135)) ([227d56d](https://togithub.com/vitejs/vite/commit/227d56d)), closes [#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135)
-   fix(css): render correct asset url when CSS chunk name is nested ([#&#8203;15154](https://togithub.com/vitejs/vite/issues/15154)) ([ef403c0](https://togithub.com/vitejs/vite/commit/ef403c0)), closes [#&#8203;15154](https://togithub.com/vitejs/vite/issues/15154)
-   fix(css): use non-nested chunk name if facadeModule is not CSS file ([#&#8203;15155](https://togithub.com/vitejs/vite/issues/15155)) ([811e392](https://togithub.com/vitejs/vite/commit/811e392)), closes [#&#8203;15155](https://togithub.com/vitejs/vite/issues/15155)
-   fix(dev): bind plugin context functions ([#&#8203;14569](https://togithub.com/vitejs/vite/issues/14569)) ([cb3243c](https://togithub.com/vitejs/vite/commit/cb3243c)), closes [#&#8203;14569](https://togithub.com/vitejs/vite/issues/14569)
-   chore(deps): update all non-major dependencies ([#&#8203;15145](https://togithub.com/vitejs/vite/issues/15145)) ([7ff2c0a](https://togithub.com/vitejs/vite/commit/7ff2c0a)), closes [#&#8203;15145](https://togithub.com/vitejs/vite/issues/15145)
-   build: handle latest json-stable-stringify replacement ([#&#8203;15049](https://togithub.com/vitejs/vite/issues/15049)) ([bcc4a61](https://togithub.com/vitejs/vite/commit/bcc4a61)), closes [#&#8203;15049](https://togithub.com/vitejs/vite/issues/15049)

### [`v5.0.2`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small502-2023-11-21-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.1...v5.0.2)

-   fix: make htmlFallback more permissive ([#&#8203;15059](https://togithub.com/vitejs/vite/issues/15059)) ([6fcceeb](https://togithub.com/vitejs/vite/commit/6fcceeb)), closes [#&#8203;15059](https://togithub.com/vitejs/vite/issues/15059)

### [`v5.0.1`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small501-2023-11-21-small)

-   test: avoid read check when running as root ([#&#8203;14884](https://togithub.com/vitejs/vite/issues/14884)) ([1d9516c](https://togithub.com/vitejs/vite/commit/1d9516c)), closes [#&#8203;14884](https://togithub.com/vitejs/vite/issues/14884)
-   perf(hmr): skip traversed modules when checking circular imports ([#&#8203;15034](https://togithub.com/vitejs/vite/issues/15034)) ([41e437f](https://togithub.com/vitejs/vite/commit/41e437f)), closes [#&#8203;15034](https://togithub.com/vitejs/vite/issues/15034)
-   fix: run htmlFallbackMiddleware for no accept header requests ([#&#8203;15025](https://togithub.com/vitejs/vite/issues/15025)) ([b93dfe3](https://togithub.com/vitejs/vite/commit/b93dfe3)), closes [#&#8203;15025](https://togithub.com/vitejs/vite/issues/15025)
-   fix: update type CSSModulesOptions interface ([#&#8203;14987](https://togithub.com/vitejs/vite/issues/14987)) ([d0b2153](https://togithub.com/vitejs/vite/commit/d0b2153)), closes [#&#8203;14987](https://togithub.com/vitejs/vite/issues/14987)
-   fix(legacy): error in build with --watch and manifest enabled ([#&#8203;14450](https://togithub.com/vitejs/vite/issues/14450)) ([b9ee620](https://togithub.com/vitejs/vite/commit/b9ee620)), closes [#&#8203;14450](https://togithub.com/vitejs/vite/issues/14450)
-   chore: add comment about crossorigin attribute for script module ([#&#8203;15040](https://togithub.com/vitejs/vite/issues/15040)) ([03c371e](https://togithub.com/vitejs/vite/commit/03c371e)), closes [#&#8203;15040](https://togithub.com/vitejs/vite/issues/15040)
-   chore: cleanup v5 beta changelog ([#&#8203;14694](https://togithub.com/vitejs/vite/issues/14694)) ([531d3cb](https://togithub.com/vitejs/vite/commit/531d3cb)), closes [#&#8203;14694](https://togithub.com/vitejs/vite/issues/14694)

### [`v5.0.0`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#500-2023-11-16)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-08 09:57:11 +00:00
Peng Xiao fcd43033fe fix(electron): sync settings from localStorage -> atom -> electron (#5020)
- moved `appSettingAtom` to infra since we now have different packages that depends on it. There is no better place to fit in for now
- use atomEffect to sync setting changes to updater related configs to Electron side
- refactored how Electron reacts to updater config changes.
2023-12-08 03:20:02 +00:00
Yifeng Wang d507c24570 feat: bump blocksuite (#5228) 2023-12-07 19:28:49 +08:00
Yifeng Wang 819f0243d5 feat: bump blocksuite (#5218)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2023-12-07 18:24:23 +08:00
Yifeng Wang 6cbf5b2a92 feat: bump blocksuite (#5194)
Co-authored-by: AyushAgrawal-A2 <ayushagl06@gmail.com>
2023-12-06 18:15:03 +08:00
Flrande a2784c352f chore: bump blocksuite (#5138) 2023-12-04 12:02:35 +00:00
李华桥 120e7397ba Merge branch 'canary' into stable 2023-12-01 16:12:17 +08:00
Joooye_34 eb7d293aaa fix(core): implement editor timeout and report error from boundary (#5105) (#5151)
fix(core): implement editor timeout and report error from boundary (#5105)

ci: add sentry env when frontend assets build (#5131)

fix(core): expose catched editor load error (#5133)

fix(infra): use blocksuite api to check compatibility (#5137)

fix(infra): compatibility logic follow blocksuite (#5143)

fix(core): rerender error boundary when route change and improve sentry report (#5147)
2023-12-01 07:25:08 +00:00
李华桥 24123ad01c Revert "Revert "Merge remote-tracking branch 'origin/canary' into stable""
This reverts commit 89197bacef.
2023-12-01 13:29:43 +08:00
李华桥 ad50320391 v0.10.3 2023-12-01 12:52:15 +08:00
李华桥 eb21a60dda v0.10.3-beta.7 2023-12-01 12:12:20 +08:00
李华桥 09d3b72358 v0.10.3-beta.6 2023-11-30 23:02:26 +08:00
Joooye_34 246e16c6c0 fix(infra): compatibility logic follow blocksuite (#5143) 2023-11-30 23:01:38 +08:00
李华桥 dc279d062b v0.10.3-beta.5 2023-11-30 16:49:55 +08:00
Joooye_34 47d5f9e1c2 fix(infra): use blocksuite api to check compatibility (#5137) 2023-11-30 08:48:13 +00:00
JimmFly 23518cae16 feat(core): add manual check for updates (#4957)
work for #4523

add `appBuildType` to `runtimeConfig`
add `useAppUpdater` to manage client updates

<!--
copilot:summary
-->
### <samp>🤖[[deprecated]](https://githubnext.com/copilot-for-prs-sunset) Generated by Copilot at cdd012c</samp>

This pull request refactors and enhances the update functionality for the frontend. It introduces a new custom hook `useAppUpdater` that simplifies the update logic and state management, and uses it in various components and commands. It also adds more options and feedback for the user to control and monitor the update process, such as manual download, auto-check, and auto-download toggles, and update status and progress indicators. It also updates the `AboutAffine` component to show the app icon, version, and build type. It also adds new translations, dependencies, types, and schemas related to the update functionality.

<img width="1073" alt="image" src="https://github.com/toeverything/AFFiNE/assets/102217452/16ae7a6a-0035-4e57-902b-6b8f63169501">
2023-11-29 13:31:25 +00:00
李华桥 1d0bcc80a0 v0.10.3-beta.4 2023-11-29 16:14:06 +08:00
LongYinan 7a7cbc45d7 fix: add prefer-readonly rule (#5122) 2023-11-29 15:19:00 +08:00
LongYinan 923844f302 fix: add eqeqeq lint rule (#5106) 2023-11-29 04:43:31 +00:00
李华桥 89197bacef Revert "Merge remote-tracking branch 'origin/canary' into stable"
This reverts commit 992ed89a89, reversing
changes made to d272d7922d.
2023-11-29 11:18:45 +08:00
LongYinan 992ed89a89 Merge remote-tracking branch 'origin/canary' into stable 2023-11-28 15:12:52 +08:00
Peng Xiao 71d6b730f7 chore: bump blocksuite (#5051)
https://github.com/toeverything/blocksuite/pull/5337
2023-11-27 04:46:23 +00:00
李华桥 d272d7922d v0.10.3-beta.2 2023-11-25 23:50:40 +08:00
李华桥 b20e91bee0 v0.10.3-beta.1 2023-11-25 14:14:40 +08:00
李华桥 2019838ae7 v0.10.3-beta.0 2023-11-24 11:39:23 +08:00
Joooye_34 317ca7f4e7 ci: fix storybook publish problem (#5047) 2023-11-23 23:38:09 +08:00
李华桥 8742f28148 Merge branch 'canary' into stable 2023-11-23 21:31:42 +08:00
LongYinan 25eda22af6 v0.10.3-canary.2 2023-11-23 16:47:40 +08:00
Peng Xiao 7463e87742 fix(electron): clone db file when enable cloud for desktop (#5028)
At the moment on desktop the user's local blob data will be lost after enable cloud.
This is because blob data is only synced from old idb to new idb, but not sync into sqlitedb.

This pr will simply clone the db file for desktop app. It should also speed up the time when enabling cloud for a large local workspace.
2023-11-23 07:23:16 +00:00
李华桥 9ded6afb4b chore: v0.10.3-canary.1 2023-11-23 14:39:55 +08:00
LongYinan 3499dbbb7f feat: upgrade dependencies and lockfile (#5016)
- Close https://github.com/toeverything/AFFiNE/security/dependabot/47
2023-11-23 05:18:05 +00:00
Joooye_34 4c8d54b3a7 refactor(core): use manual upgrade to replace auto migration when web setup (#5022)
1. Split logic in `packages/common/infra/src/blocksuite/index.ts` to multiple single files
2. Move migration logic from setup to upgrade module, to prevent auto migration problems and loading problem
2023-11-23 02:26:06 +00:00
Flrande d7d47853fe chore: bump blocksuite (#5030) 2023-11-22 20:51:35 +08:00
Flrande a3d880daa3 chore: bump blocksuite (#5026) 2023-11-22 20:12:52 +08:00
李华桥 00c11d40cf v0.10.3-canary.0 2023-11-21 10:02:46 +08:00
李华桥 0f6b28fd06 c0.11.0-canary.0 2023-11-20 23:53:50 +08:00
Flrande 8b2c3d4c41 chore: bump blocksuite (#4958) 2023-11-16 22:01:03 +08:00
Peng Xiao 791eb75ca8 fix(infra): page id compat fix for page ids in workspace.meta (#4950)
since we strip `page:` in keys of workspacedoc.spaces, we should also strip the prefix in meta.pages as well.
2023-11-16 21:57:17 +08:00
Joooye_34 00c940f7df chore: bump affine version to 0.10.2 (#4959) 2023-11-16 15:48:37 +08:00
Flrande 931b459fbd chore: bump blocksuite (#4958) 2023-11-16 14:27:39 +08:00
Peng Xiao 9b631f2328 fix(infra): page id compat fix for page ids in workspace.meta (#4950)
since we strip `page:` in keys of workspacedoc.spaces, we should also strip the prefix in meta.pages as well.
2023-11-15 17:36:08 +08:00
Joooye_34 ea4f5ffc83 fix(infra): workspace migration without blockVersions (#4936) 2023-11-14 23:03:40 +08:00
Joooye_34 0177ab5c87 fix(infra): workspace migration without blockVersions (#4936) 2023-11-14 14:38:11 +01:00
Peng Xiao 16488d594c fix(infra): compatibility fix for space prefix (#4912)
It seems there are some cases that [this upstream PR](https://github.com/toeverything/blocksuite/pull/4747) will cause data loss.

Because of some historical reasons, the page id could be different with its doc id.
It might be caused by subdoc migration in the following (not 100% sure if all white screen issue is caused by it) https://github.com/toeverything/AFFiNE/blob/0714c12703ff8840acc180633e5489c755ddfba3/packages/common/infra/src/blocksuite/index.ts#L538-L540

In version 0.10, page id in spaces no longer has prefix "space:"
The data flow for fetching a doc's updates is:
- page id in `meta.pages` -> find `${page-id}` in `doc.spaces` -> `doc` -> `doc.guid`
if `doc` is not found in `doc.spaces`, a new doc will be created and its `doc.guid` is the same with its pageId
- because of guid logic change, the doc that previously prefixed with `space:` will not be found in `doc.spaces`
- when fetching the rows of this doc using the doc id === page id,
  it will return EMPTY since there is no updates associated with the page id

The provided fix in the PR will patch the `spaces` field of the root doc so that after 0.10 the page doc can still be found in the `spaces` map. It shall apply to both of the idb & sqlite datasources.

Special thanks to @lawvs 's db file for investigation!
2023-11-14 14:39:50 +08:00
李华桥 6f18ddbe85 v0.10.1 2023-11-13 19:49:26 +08:00
Peng Xiao bd9f66fbc7 fix(infra): compatibility fix for space prefix (#4912)
It seems there are some cases that [this upstream PR](https://github.com/toeverything/blocksuite/pull/4747) will cause data loss.

Because of some historical reasons, the page id could be different with its doc id.
It might be caused by subdoc migration in the following (not 100% sure if all white screen issue is caused by it) https://github.com/toeverything/AFFiNE/blob/0714c12703ff8840acc180633e5489c755ddfba3/packages/common/infra/src/blocksuite/index.ts#L538-L540

In version 0.10, page id in spaces no longer has prefix "space:"
The data flow for fetching a doc's updates is:
- page id in `meta.pages` -> find `${page-id}` in `doc.spaces` -> `doc` -> `doc.guid`
if `doc` is not found in `doc.spaces`, a new doc will be created and its `doc.guid` is the same with its pageId
- because of guid logic change, the doc that previously prefixed with `space:` will not be found in `doc.spaces`
- when fetching the rows of this doc using the doc id === page id,
  it will return EMPTY since there is no updates associated with the page id

The provided fix in the PR will patch the `spaces` field of the root doc so that after 0.10 the page doc can still be found in the `spaces` map. It shall apply to both of the idb & sqlite datasources.

Special thanks to @lawvs 's db file for investigation!
2023-11-13 17:57:56 +08:00