Context
Mutation commands call rich.refreshAll(), which refreshes internal state and then calls _updateHtml(). That method is currently a no-op, while the actual provider renderer is separate.
Evidence:
vscode/src/extension.ts:9-16 wires mutation callbacks to refreshAll().
vscode/src/rich-extension.ts:1137-1144 updates state.
vscode/src/rich-extension.ts:1262 defines the no-op renderer.
vscode/src/rich-extension.ts:688 contains the working provider refresh path.
Task
Route state replacement through one update path that refreshes every affected registered provider.
Acceptance criteria
- Refresh, create, install, update, and remove immediately update visible panels.
- Hidden panels receive current state when shown again.
- No panel requires a hide/show cycle to reflect mutations.
- Tests cover each mutation callback and visible panel output.
Context
Mutation commands call
rich.refreshAll(), which refreshes internal state and then calls_updateHtml(). That method is currently a no-op, while the actual provider renderer is separate.Evidence:
vscode/src/extension.ts:9-16wires mutation callbacks torefreshAll().vscode/src/rich-extension.ts:1137-1144updates state.vscode/src/rich-extension.ts:1262defines the no-op renderer.vscode/src/rich-extension.ts:688contains the working provider refresh path.Task
Route state replacement through one update path that refreshes every affected registered provider.
Acceptance criteria