How mayday-wpf/snow-app works
Snow App is an Electron desktop workspace for AI-assisted software development. The main user flow begins in the React chat interface, crosses the preload and Electron IPC boundary, and reaches Rust conversation/AI services, which stream responses from configured model providers and persist conversation state. The product also exposes developer tools and remote access. The README documents these capabilities; sampled source confirms selected UI, bridge, browser-state, and storage behavior, but not every subsystem’s internal call wiring.
Main entry points: mod.rs Conversation runtime · ChatContent.tsx Chat interface · useChatInputController.ts Chat composer · index.ts Preload API
Components 22
User interface
- Chat interface
src/renderer/components/mainContent/ChatContent.tsx - Chat composer
src/renderer/components/mainContent/chatInput/useChatInputController.ts
Desktop services
- Preload API
src/preload/index.ts - IPC handlers
src/main/ipc/registerIpcHandlers.ts - Native bridge
src/main/native/nativeBridge.ts - Terminal sessions
src/main/pty/ptyManager.ts - SSH management
src/main/ssh/sshManager.ts - Git tooling
native/src/storage/services/git/mod.rs - Browser panel
src/main/browser/browserWindow.ts - Configuration
src/main/settings/apiConfigs.ts
AI and tools
- Conversation runtime
native/src/api/conversation/mod.rs - Provider adapters
native/src/api/mod.rs - MCP tools
native/src/mcp/service.rs - Prompt modes
native/src/prompt/mod.rs - Lifecycle hooks
native/src/hooks/mod.rs - Codebase search
native/src/exports/codebase/mod.rs - Image generation
native/src/mcp/servers/imagegen/mod.rs
Persistence
- SQLite storage
native/src/storage/database.rs
Remote access
- Remote control
native/src/remote_control/mod.rs - Mobile controls
src/mobile/main.ts
Other components
- Developer
- AI provider
Connections 22
- Developer → Chat interface: uses
- Chat interface → Chat composer: composes
- Chat composer → Preload API: submits through
- Preload API → IPC handlers: invokes
- IPC handlers → Native bridge: calls
- Native bridge → Conversation runtime: dispatches
- Conversation runtime → Provider adapters: requests completion
- Provider adapters → AI provider: streams requests
- Conversation runtime → SQLite storage: persists conversations
- Conversation runtime → Prompt modes: uses prompts
- Conversation runtime → MCP tools: dispatches tools
- Conversation runtime → Lifecycle hooks: runs lifecycle hooks
- Developer → Terminal sessions: runs commands
- Developer → SSH management: connects remotely
- Developer → Git tooling: manages repositories
- Developer → Browser panel: browses
- Developer → Codebase search: searches code
- Developer → Image generation: generates images
- Developer → Mobile controls: controls session
- Mobile controls → Remote control: sends actions
- Remote control → Conversation runtime: relays conversation actions
- Configuration → SQLite storage: configures providers