Referenced by3
Labels2

Referencing ideas

IdeaStatusTagsSummaryKatz
persistence_tiersdoneThree persistence tiers — pick the shallowest that matches lifetime: 1. `acquireVsCodeApi().getState` / `setState` — ephemeral webview session ( pane expand / heights, active tab ). 2. `ExtensionContext.workspaceState` — durable UI prefs shared across reloads ( graph / table UI keys under `reqlan.ideasSummary.*`, optionally per-base ). Normalize + default on read ( `normalizeGraphUiState` / table defaults ); never trust raw JSON shape. 3. `ExtensionContext.globalState` — install / user-level flags ( e. g. onboarding ), not pane view-models. Debounce persist posts ( ~ 200 – 250 ms ) when UI controls churn. Related: [webview_app_state].0.050
postmessage_clone_safetydoneBefore `postMessage` from a Svelte webview, JSON-clone payloads ( `JSON.parse(JSON.stringify(...))` ) so `$state` proxies remain structured-clone safe. Shared helpers live in each webview's `lib/vscode.ts`.0.040
scopeTypeScript package standards for `packages/extension` ( npm `reqlan-extension` ), especially UI state. Complements [development_core.rust_mindset] and [extension_architecture.state_machine_mindset]. Webview inventory: [webview_doc.webview]. Package role: [core_architecture.extension_package].0.040

Reference labels

"../../packages/extension/webviews/activity-bar/lib/vscode.ts", ../../packages/extension/webviews/activity-bar/lib/vscode.ts