Expand description
Wind Service Handlers - dispatcher for every MountainIPCInvoke Tauri
call from Wind/Output/Sky. The mod.rs inside is the central match
that routes wire strings to per-domain atoms or handler files. Atoms
live under WindServiceHandlers/<Domain>/<Atom>.rs following the
one-export-per-file convention.
The previous WindServiceHandler (singular) sibling was merged here
on 2026-04-23: of its 24 files, only 3 functions were live
(extensions install/uninstall, nativeHost showOpenDialog) and those
now live as atoms under WindServiceHandlers/Extension/ and
WindServiceHandlers/NativeDialog/. The remaining 21 files were
dead-code duplicates of plural-side implementations.
Wind Service Handlers - dispatcher and sub-module aggregator.
Domain files handle the individual handler implementations.
Modules§
- Cocoon
- Cocoon bridge atoms - renderer→Cocoon gRPC forwarding.
- Commands
- Command registry handlers - execute and list all registered commands.
- Configuration
- Configuration, environment, and workbench-configuration handlers.
- Encryption
- Encryption handlers for VS Code’s
IEncryptionServicechannel.encryption:encryptandencryption:decryptare called by the workbench to store and retrieve secrets (extension secrets, auth tokens, GitHub Copilot key, etc.). We use AES-256-GCM via theringcrate; the 256-bit key is derived once per process from the machine’s hardware UUID (macOSIOPlatformExpertDevice/ Linux/etc/machine-id/ WindowsMachineGuid) so ciphertext is stable across restarts but unreadable on a different machine without the original key. - Extension
- Extension-management IPC handler atoms. One
pub async fnper file; file name mirrors the exported function name. Dispatcher inWindServiceHandlers/mod.rsroutesextensions:installandextensions:uninstallinto these atoms. - Extension
Host - ExtensionHost atoms - VS Code extension-host lifecycle handlers.
- Extensions
- Extension management handlers
- File
System - FileSystem atoms - two tiers:
- Git
- Local Git subprocess handlers
- Model
- Text Model registry + TextFile handlers
- Native
Dialog - Native dialog (open / save) handler atoms.
- Native
Host - NativeHost atoms - native OS-layer handlers.
- Navigation
- Navigation history + URI labels
- Output
- Output channel handlers
- Search
- Search handlers - find in files, find files by glob.
- Sky
- Sky bridge atoms - Mountain→Sky event replay handlers.
- Storage
- Persistent Storage handlers
- Terminal
- Terminal handlers
- Tree
View - TreeView atoms - renderer-side tree-view RPC handlers.
- UI
- 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 sogrep pub async fnagainst one file tells you exactly which wire methods it owns. - Update
- Update service atoms -
update:*channel stubs. Land has no update server; all methods return idle/true/null so the workbench shows “up to date” and doesn’t retry. - Utilities
- Utilities for Wind handlers, grouped by purpose. Sub-module helpers
(
hex_digit,percent_decode,normalize_uri_path, etc.) stay co- located with their single public entry point - splitting by strict one- fn-per-file would fragment tightly coupled internals for no readability gain.
Functions§
- mountain_
ipc_ invoke - Internal dispatcher for the single front-end Tauri command
MountainIPCInvoke(registered inBinary/Main/Entry.rs::invoke_handler!, implemented inBinary/IPC/InvokeCommand.rs). The outer Tauri command receives(method: String, params: Value), unwrapsparamsinto aVec<Value>, then delegates here. - register_
wind_ ipc_ handlers