Commit dcce266
committed
fix(webview): isolate parallel provider view state
Add view-local state loading and syncing for parallel ClineProvider instances,
with safe initialization and configuration listener handling for test/shim
environments.
Key changes:
- Add viewId property for unique provider instance identification
- Implement viewLocalState buffer to isolate mode, profile, and apiConfig per view
- Load view-local state after provider dependencies are initialized
- Merge viewLocalState in getState() with local apiConfiguration taking precedence
- Clear local overrides when saveViewState receives undefined or null values
- Sync mode/profile changes through saveViewState(), loadViewState(), and profile activation
- Preserve restored task mode in both global state and viewLocalState
- Guard global configuration listener setup when VS Code workspace events are unavailable
- Keep sticky-mode task restore compatible with view-local state isolation
Tests:
- Add 22 parallel mode cases covering viewId uniqueness, state isolation,
save/load behavior, merge precedence, local override clearing, config listener
handling, mode switching, profile activation, and multi-instance isolation
- Verify sticky-mode restore compatibility1 parent c39535e commit dcce266
2 files changed
Lines changed: 1385 additions & 94 deletions
0 commit comments