From ce603bdc521711ef3721f3adb1abe925a6cdb54b Mon Sep 17 00:00:00 2001 From: digua Date: Thu, 23 Jul 2026 23:00:10 +0800 Subject: [PATCH] fix(web): support multi-tab workspace access --- apps/web-wasm/src/App.vue | 27 +- apps/web-wasm/src/main.ts | 41 ++- apps/web-wasm/src/pages/SessionDetailPage.vue | 18 +- apps/web-wasm/src/session-sync.test.ts | 77 ++++++ apps/web-wasm/src/session-sync.ts | 51 ++++ apps/web-wasm/src/workspace-lock.test.ts | 71 ----- apps/web-wasm/src/workspace-lock.ts | 75 ----- packages/web-runtime/src/index.ts | 1 + packages/web-runtime/src/rpc/client.test.ts | 84 ++++++ packages/web-runtime/src/rpc/client.ts | 37 +++ packages/web-runtime/src/rpc/protocol.ts | 5 + .../web-runtime/src/sqlite/adapter.test.ts | 23 ++ packages/web-runtime/src/sqlite/adapter.ts | 14 +- .../src/sqlite/database-runtime.test.ts | 138 ++++++++++ .../src/sqlite/database-runtime.ts | 257 ++++++++++++------ .../src/sqlite/workspace-lease.test.ts | 60 ++++ .../web-runtime/src/sqlite/workspace-lease.ts | 49 ++++ .../src/storage/workspace-database.ts | 7 + .../web-runtime/src/worker/controller.test.ts | 7 + packages/web-runtime/src/worker/controller.ts | 39 ++- src/i18n/locales/en-US/common.json | 2 +- src/i18n/locales/ja-JP/common.json | 2 +- src/i18n/locales/zh-CN/common.json | 2 +- src/i18n/locales/zh-TW/common.json | 2 +- src/services/browser-runtime/register.test.ts | 4 + src/services/browser-runtime/register.ts | 10 +- 26 files changed, 834 insertions(+), 269 deletions(-) create mode 100644 apps/web-wasm/src/session-sync.test.ts create mode 100644 apps/web-wasm/src/session-sync.ts delete mode 100644 apps/web-wasm/src/workspace-lock.test.ts delete mode 100644 apps/web-wasm/src/workspace-lock.ts create mode 100644 packages/web-runtime/src/sqlite/workspace-lease.test.ts create mode 100644 packages/web-runtime/src/sqlite/workspace-lease.ts diff --git a/apps/web-wasm/src/App.vue b/apps/web-wasm/src/App.vue index 08c310fe..f9a8560b 100644 --- a/apps/web-wasm/src/App.vue +++ b/apps/web-wasm/src/App.vue @@ -1,5 +1,5 @@