Improve local filetree view state and sidebar performance

This commit is contained in:
lix-2026
2026-05-27 11:31:12 +08:00
parent 58e2fdb5d8
commit 3ae33cc21d
56 changed files with 8614 additions and 461 deletions
@@ -0,0 +1,22 @@
CREATE TABLE IF NOT EXISTS sidebar_shortcuts (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
workspace_id TEXT NOT NULL,
kind TEXT NOT NULL,
source_kind TEXT NOT NULL DEFAULT 'local_folder',
target_id TEXT NOT NULL,
relative_path TEXT,
document_id TEXT,
title TEXT NOT NULL,
icon TEXT,
sort_order INTEGER NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'active',
metadata_json TEXT NOT NULL DEFAULT '{}',
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
revision INTEGER NOT NULL DEFAULT 1,
UNIQUE(user_id, workspace_id, kind, target_id)
);
CREATE INDEX IF NOT EXISTS idx_sidebar_shortcuts_user_workspace
ON sidebar_shortcuts(user_id, workspace_id, status, sort_order);
@@ -0,0 +1,21 @@
-- 004-user-ui-preferences.sql
-- User-scoped UI preferences for cross-browser page setting sync.
CREATE TABLE IF NOT EXISTS user_ui_preferences (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
workspace_id TEXT NOT NULL DEFAULT '',
source_kind TEXT NOT NULL DEFAULT '',
scope_kind TEXT NOT NULL,
scope_id TEXT NOT NULL,
key TEXT NOT NULL,
value_json TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'active',
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
revision INTEGER NOT NULL DEFAULT 1,
UNIQUE(user_id, workspace_id, source_kind, scope_kind, scope_id, key)
);
CREATE INDEX IF NOT EXISTS idx_user_ui_preferences_lookup
ON user_ui_preferences(user_id, workspace_id, source_kind, scope_kind, scope_id);
@@ -0,0 +1,8 @@
ALTER TABLE sidebar_shortcuts ADD COLUMN root_uri TEXT;
UPDATE sidebar_shortcuts
SET root_uri = COALESCE(
NULLIF(json_extract(metadata_json, '$.rootUri'), ''),
NULLIF(json_extract(metadata_json, '$.root_uri'), '')
)
WHERE root_uri IS NULL OR root_uri = '';