feat(core): improve mobile perf (#15317)

#### PR Dependency Tree


* **PR #15317** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Virtualized mobile navigation with shell navigation and interactive
swipe menus; coordinated mobile back handling with interactive
phases/state restoration.
* Added shared auth request proxy and message-port based token handling
across mobile and worker flows.
* **Bug Fixes**
  * Hydrated remote worker error stacks for calls and observable errors.
* Improved SQLite FTS/indexer and nbstore optional text handling;
refined docs-search ref parsing and notification loading/retry.
* **Refactor / UX**
* Modal focus-preservation and pointer behavior updates; improved mobile
menu controls and back gesture plugins.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-07-23 00:23:21 +08:00
committed by GitHub
parent 02e75862cc
commit 1d36e2e4b2
160 changed files with 6660 additions and 1890 deletions
+2 -3
View File
@@ -13,9 +13,8 @@ export const test = baseTest.extend<{
}>({
page: async ({ page }, use) => {
await page.goto('/');
await expect(
page.locator('.affine-page-viewport[data-mode="page"]')
).toBeVisible({
const editor = page.locator('.affine-page-viewport[data-mode="page"]');
await expect(editor).toBeVisible({
timeout: 30 * 1000,
});
await page.goto('/');
+4 -3
View File
@@ -31,8 +31,9 @@ export async function createLocalWorkspace(
// }, []);
// input workspace name
await page.getByPlaceholder('Set a Workspace name').click();
await page.getByPlaceholder('Set a Workspace name').fill(params.name);
const workspaceName = page.getByTestId('create-workspace-input');
await workspaceName.click();
await workspaceName.fill(params.name);
await page.getByTestId('server-selector-trigger').click();
const serverSelectorList = page.getByTestId('server-selector-list');
@@ -45,7 +46,7 @@ export async function createLocalWorkspace(
await expect(
page.getByTestId('create-workspace-create-button')
).not.toBeAttached();
).not.toBeAttached({ timeout: 30 * 1000 });
await waitForEditorLoad(page);
await expect(page.getByTestId('workspace-name')).toHaveText(params.name);