All notable changes to Mountain (Rust Backend) are documented here. Format: Keep a Changelog.
- 14 language feature provider methods in
FeatureMethods.rs(354 lines): renameEdits, documentSymbols, workspaceSymbols, signatureHelp, foldingRanges, selectionRanges, semanticTokensFull, inlayHints, typeHierarchySupertypes, typeHierarchySubtypes, callHierarchyIncoming, callHierarchyOutgoing, linkedEditingRanges, onTypeFormattingEdits - 18 CocoonService stub handlers replaced with Tauri event implementations
(
sky://patterns for progress, webview, terminal, tree view, SCM, debug, tasks, auth, config, external) - Extension registration notification handlers in MountainVinegRPCService:
window.showMessage,registerCommand, provider registration fallback - 5 ProviderType enum variants in Common: Task, Authentication, TreeView, SourceControl, DebugAdapter
- Startup extension activation trigger (
$activateByEvent("*")) after Cocoon handshake
dev_log!macro replacedlogcrate across 170 files (1,724 insertions, 1,699 deletions) with categorized tags: lifecycle, grpc, ipc, cocoon, extensions, config, model, storage, commands, output, terminal- Vine gRPC binding changed from IPv6
[::1]to IPv4127.0.0.1(Cocoon compatibility) - WindServiceHandlers split into 24 atomic domain modules under
IPC/WindServiceHandler/ - CocoonService split into 15 domain submodules under
RPC/CocoonService/ - MutexGuard Send fix in FeatureMethods (scope narrowing across
.await)
- TraceLog.rs syntax error, ConfigurationInitialize.rs broken imports
- AdvancedFeatures.rs + WindAdvancedSync.rs duplicate dev_log imports
- CompletionItem DTO missing
documentationfield - Tauri CSP updated to include
vscode-file:inconnect-src - node_modules path resolution in vscode-file scheme handler
- Cocoon connection retry intervals with race condition prevention
Source/Binary/modular startup system:Tray/— SwitchTrayIcon.rs, EnableTray.rsShutdown/— SchedulerShutdown.rs, RuntimeShutdown.rsService/— VineStart.rs (gRPC on 50051/50052), CocoonStart.rs, ConfigurationInitialize.rsRegister/— AdvancedFeaturesRegister.rs, IPCServerRegister.rs, StatusReporterRegister.rs, WindSyncRegister.rsInitialize/— RuntimeBuild.rs, StateBuild.rs, CLI argument parser, dynamic port selection
- 20+ Tauri commands exposed: WorkbenchConfigurationQuery, DesktopConfigurationQuery, UpdateSubscriptionEndpoint, TrayIconSwitch, IPCStatusQuery, PerformanceStatistics, MessageReceptionEndpoint, GenericIPCMethodInvocation, DocumentSynchronization, CollaborationSession, StatusHistory
- TreeView foundation: stub interaction handlers, state persistence skeleton, Tauri event propagation to Sky
- Hover command module:
Source/Command/Hover/with Interface.rs
- TreeView implementation: concrete
OnTreeNodeExpanded,OnTreeSelectionChangedwith ApplicationState locks and event propagation - TreeView badge support: Badge field in TreeViewStateDTO (max 2048 bytes)
- Hover feature:
Fn.rs(164 lines) with hover request handling
- Thread safety refactoring: replaced
static mutwithRwLockin Scheme.rs (829 lines), ServiceRegistry.rs (820 lines), CertificateManager.rs (395 lines), TlsCommands.rs (184 lines) - Cleaned 150+ unused imports across 40+ provider files
Source/ApplicationState/State/FeatureState/Debug/— DebugState.rs (155 lines) with DebugConfigurationProviderRegistration and DebugAdapterDescriptorFactoryRegistration- TreeView badge: SetBadge() method with length validation
- RPC error response: string → proper RpcError struct with JSON-RPC code -32601
- DTO deserialization: InputBoxOptionsDTO, OpenDialogOptionsDTO,
SaveDialogOptionsDTO corrected from
>(obj.clone())to>(Value::Object(obj.clone())) - Vine protobuf field name alignment: RegisterTreeViewProviderRequest display_name → extension_id, GitExecRequest repository/cwd → repository_path/args
gen/schemas/macOS-schema.json— platform-specific capabilities for tray, menu bar, dock integration
- actions/cache 4.3.0 → 5.0.1
- actions/checkout 5.0.0 → 6.0.1
- Regular
.github/Update.mdauto-increments
- Error handling standardized across SourceControlManagement, DocumentProvider, TerminalProvider
- Sidecar naming conventions consolidated
- Build artifacts renamed with "22NodeVersion" label for Node.js versioning
- Windows installer naming standardized across debug/release profiles
185 commits — the complete architecture implementation quarter.
Source/Command/— CommandRegistry, Keybinding, LanguageFeature, SourceControlManagement, TreeView, Bootstrap, HoverSource/Environment/— 14 provider implementations: ConfigurationProvider, DocumentProvider, FileSystemProvider, OutputProvider, SearchProvider, SecretProvider, StatusBarProvider, StorageProvider, TerminalProvider, TreeViewProvider, UserInterfaceProvider, WebviewProvider, WorkspaceProvider, UtilitySource/ProcessManagement/— CocoonManagement, InitializationDataSource/RunTime/— ApplicationRunTime executable lifecycleSource/Track/— DispatchLogic, EffectCreation (request routing and effect system)Source/Update/— UpdateServiceSource/Workspace/— WorkSpaceFileServiceSource/FileSystem/— FileExplorerViewProviderSource/Vine/Server/— MountainVinegRPCService, Initialize.rsSource/Vine/Generated/vine_ipc.rs— 1,714 lines auto-generated from Vine.proto- Node.js sidecar bundled (Target/debug/node.exe, Target/release/node.exe)
- Build artifacts: .exe, .msi Windows installers
- Error handling unified via CommonError + MapLockError pattern
- Module naming: handlers → Command, app_state → ApplicationState
- README rewritten with architecture overview (76 lines)
docs/Deep Dive.mdrewritten (182 lines)- License transitioned to CC0 1.0 Universal
Source/ApplicationState/reorganization:Internal/— Persistence, Recovery, TextProcessing, PathResolution, ExtensionScanner, SerializationDTO/— 12 DTO classes (DocumentStateDTO, TerminalStateDTO, TreeViewStateDTO, WindowStateDTO, etc.)State/— organized feature state classes
.github/workflows/Auto.yml(68 lines) — automated update/push CIKnowledge.dot+Knowledge.svg— module dependency graph (Graphviz)
- Deprecated
Source/app_state/→Source/ApplicationState/ - Cargo.toml: removed 45 redundant entries, added 17 new entries
gen/android/— full Android Gradle project scaffold:- AndroidManifest.xml, MainActivity.kt
- RustPlugin.kt, BuildTask.kt (Rust → Android cross-compilation)
- Resources: drawable, mipmap (hdpi through xxxhdpi), layout, values
gen/schemas/mobile-schema.json(11,162 lines)gen/schemas/android-schema.json(11,162 lines)- Cargo.toml feature flags: AirIntegration, ExtensionHostCocoon, MistNative, Debug, grove, cocoon, terminals, debug-protocol, scm-support, Telemetry
- Schema reduction: 8,467 → ~1,000 lines in ACL manifests (78% reduction)
- Removed bloated capabilities; kept only essential Tauri permissions
- Binary function refactoring:
Source/Fn/Binary.rs106 → ~20 lines - Added
Source/Fn/Binary/Notes.md(91 lines) architecture documentation
- Project relocated from
Editor/editor/src-tauri/to monorepo root Source/Library.rs— single Tauri entry pointtauri.conf.json(94 lines) — bundle targets: Windows NSIS, macOS DMG, debbuild.rs— Tauri build system integration.github/workflows/Rust.yml(78 lines),GitHub.yml(57 lines),dependabot.yml- App icons: PNG, ICNS, ICO, Windows tile assets
capabilities/— Tauri capabilities manifestgen/schemas/— desktop-schema.json, windows-schema.json
- Core: tauri, tokio, serde, serde_json, tonic (gRPC)
- Plugins: tauri-plugin-dialog, tauri-plugin-fs, tauri-plugin-localhost, tauri-plugin-log
- Serialization: prost (protobuf), bincode
- Crypto: sha2, md5, ring, rcgen, p256, x509-parser, rustls, pem
- Network: tokio-tungstenite, http, url
- Terminal: portable-pty
- Process: sysinfo, hostname