Skip to main content

Module Notification

Module Notification 

Source
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 - UnregisterByHandle helper 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 a TauriRendererEmitter before calling Vine’s coalescer; exposed so Mountain code outside the dispatcher can drive output-channel coalescing.

Modules§

OutputChannelCoalesce
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-path TryEnqueue for any historical caller; the Vine-side handler is the steady-state path.
Support
Dispatcher calls ::Vine::Server::Notification::Support::* directly.
TerminalEnvCollection
Cocoon → Mountain terminal.envCollection.<op> notifications. Each op (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).