Expand description
UI-layer IPC handlers grouped by domain, one file per domain. Before
the 2026-04-23 split this was a single UI.rs (~670 LoC, 32 handler
fns); now each domain lives in its own file so grep pub async fn
against one file tells you exactly which wire methods it owns.
Domains:
Theme- colour-theme get/list/setDecoration- URI → badge/tooltip/colourKeybinding- dynamic keybinding registryNotification- toast messages + notification-scoped progressProgress- window/status-bar progress indicatorsQuickInput- QuickPick + InputBox dialogsWorkspace- workspace folder lifecycleLifecycle- app-phase get/wait/shutdownWorkingCopy- dirty-state tracking
Modules§
- Decoration
- File decoration handlers (URI → badge / tooltip / colour) backing
vscode.window.registerFileDecorationProvider. Mountain’sApplicationState::Feature::Decorationsowns the map keyed on URI string; handlers here just read / mutate that store. - Keybinding
- Dynamic keybinding handlers. Extensions’
package.json > contributes. keybindingsis a declarative registry; this surface is for the imperativekeybindings:add/remove/lookup/getAllIPC path Wind uses for RunTime registrations (e.g. palette-installed commands). - Lifecycle
- Lifecycle handlers: phase get / wait / shutdown. Tracks Mountain’s four-phase startup (Starting / Ready / Restored / Eventually) so Sky can gate UI installation on lifecycle progress.
- Notification
- Notification toast handlers. Both the plain-message and the
progress-bar variants go through here; each emits on an
SkyEvent::Notification*channel so Sky’s toast stack renders without a round-trip back through Mountain. - Progress
- Progress indicator handlers (
progress:begin/report/end). Distinct from the notification-scoped progress surface inUI::Notification- these drive window-level / status-bar progress viaSkyEvent::Progress*. - Quick
Input - QuickPick / InputBox dialog handlers. Routes through
UserInterfaceProviderso the actual dialog rendering stays platform-agnostic (Tauri-webview on desktop; extensible to a future browser preview). - Theme
- Theme IPC handlers.
themes:getActive/themes:list/themes:setdrive the workbench’s colour-theme picker and the RunTime theme swap. - Working
Copy - Working-copy (dirty-state) handlers. Tracks whether an open URI has unsaved changes; Sky queries this to paint the tab’s dot-indicator, gate exit dialogs, and drive “Save All” affordances.
- Workspace
- Workspace folder handlers: get / add / remove / get-name. Thin
wrappers over
ApplicationState::Workspacethat re-broadcast viaUpdateWorkspaceFoldersAndNotifyso Wind + Sky pick up the new folder list on thesky://workspace/*channels.