How solis-syst/solis-app-v4 works
Solis is an Avalonia desktop chess-browser assistant: users authenticate, open chess sites in browser tabs, and receive board-aware engine and opening-book analysis, with configurable coaching and move assistance. The native WebView bridge connects the desktop UI to a locally hosted chess runtime; the runtime includes board integration, engine workers, and bundled models. Authentication and session persistence are visible in sampled source. Runtime paths and several documented capabilities are represented from the tree, but their internal wiring is not fully sampled, so uncertain links are omitted.
Main entry points: WebViewBridgeService.cs WebView bridge · MainWindow.axaml.cs Chess browser · SupabaseAuthService.cs Supabase auth · App.axaml.cs App lifecycle
Components 29
Desktop app
- App lifecycle
App.axaml.cs - Chess browser
Views/MainWindow.axaml.cs - Login view
Views/LoginWindow.axaml.cs - Login state
ViewModels/LoginViewModel.cs - Assistant state
ViewModels/LiveAssistantViewModel.cs - Velopack updater
App.axaml.cs
Authentication
- Supabase auth
Services/SupabaseAuthService.cs - Session persistence
Services/SupabaseAuthService.cs - URI activation
Services/SingleInstanceActivationService.cs
Browser bridge
- WebView bridge
Services/WebViewBridgeService.cs - Local runtime host
Services/LocalRuntimeHost.cs
Chess runtime
- Page bridge
ChessRuntime/page-bridge.js - Runtime loader
ChessRuntime/bridge-loader.js - Chess board UI
ChessRuntime/board.html - Board logic
ChessRuntime/board.js - Runtime content
ChessRuntime/refactored-content.js - Coach controller
ChessRuntime/refactored-coach-controller.js - Engine worker
ChessRuntime/refactored-engine-worker.js - Bundled engines
ChessRuntime/lib - Maia model
ChessRuntime/lib/maia3 - Opening book data
ChessRuntime/book/book.bin
Analysis services
- Opening book service
Services/PolyglotBookService.cs - Engine and coach catalog
Services/ChessConfigurationCatalog.cs - Engine settings model
Models/EngineDefinition.cs
Other components
- Chess user
- Supabase
- System browser
- Chess site tabs
- GitHub Releases
Connections 26
- Chess user → Login view: signs in
- Login view → Login state: binds input
- Login state → Supabase auth: requests auth
- Supabase auth → Supabase: authenticates
- Supabase auth → Session persistence: persists session
- System browser → URI activation: returns callback
- URI activation → App lifecycle: dispatches URI
- App lifecycle → Supabase auth: initializes
- App lifecycle → Chess browser: opens after auth
- Chess user → Chess browser: uses browser
- Chess browser → WebView bridge: attaches WebView
- Chess browser → Assistant state: presents state
- WebView bridge → Assistant state: updates analysis
- WebView bridge → Opening book service: requests lookup
- Opening book service → Opening book data: reads book
- WebView bridge → Local runtime host: serves runtime
- Chess site tabs → Page bridge: hosts integration
- Runtime loader → Runtime content: loads runtime
- Runtime content → Chess board UI: provides board
- Chess board UI → Board logic: runs board logic
- Runtime content → Coach controller: coordinates coaching
- Engine worker → Bundled engines: loads engine assets
- Engine worker → Maia model: loads model data
- Assistant state → Engine and coach catalog: exposes choices
- Engine and coach catalog → Engine settings model: uses definitions
- Velopack updater → GitHub Releases: checks updates