Expand description
Cocoon → Mountain notification atoms. One handler per file so the
dispatcher in MountainVinegRPCService::send_cocoon_notification
stays a thin match; each wire method lives at
Vine::Server::Notification::<Atom>::<Atom> for grep-friendly
navigation. See Notification/mod.rs for the contract.
Mountain-local Vine notification modules.
The dispatcher in MountainVinegRPCService::send_cocoon_notification
calls canonical Vine atoms directly via ::Vine::Server::Notification::X::X
for every handler except the two below that have Mountain-specific logic.
Support-UnregisterByHandlehelper called inline from the dispatcher for the six pure provider-unregistration arms.TerminalEnvCollection- Mountain-local env-collection registry (OnceLock<Mutex<HashMap<...>>>); no cross-crate trait exists for it.OutputChannelCoalesce- utility shim that constructs aTauriRendererEmitterbefore calling Vine’s coalescer; exposed so Mountain code outside the dispatcher can drive output-channel coalescing.
Modules§
- Output
Channel Coalesce - Mountain-side compat surface for the per-channel coalescing buffer.
The canonical implementation lives in
::Vine::Server::Notification::OutputChannelCoalesce. This thin delegator preserves the Mountain-pathTryEnqueuefor any historical caller; the Vine-side handler is the steady-state path. - Support
- Dispatcher calls ::Vine::Server::Notification::Support::* directly.
- Terminal
EnvCollection - Cocoon → Mountain
terminal.envCollection.<op>notifications. Eachop(replace/append/prepend/delete/clear/setPersistent/setDescription) mutates the in-memory env collection registry keyed by extension id. Mutations are picked up by every PTY spawn that runs after the notification arrives - no retro-active mutation of running terminals (matches VS Code semantics).