Skip to content

Latest commit

 

History

History
217 lines (187 loc) · 32.1 KB

File metadata and controls

217 lines (187 loc) · 32.1 KB

Software Requirements Specification (SRS) & Traceability Matrix

LocalLLMServerManager v3.5.0 | .NET 10 LTS | Avalonia UI & WebAssembly | Model Context Protocol

This document establishes the formal Software Requirements Specification (SRS) and Requirements Traceability Matrix (RTM) for LocalLLMServerManager. Each requirement is derived from the codebase and test suites, mapping functional capabilities directly to implementation source files, automated test cases, and verification statuses.


📋 Requirement Taxonomy

Requirements are categorized into 12 functional domains using standardized identifiers:

Domain Prefix Category Description Target Area
CORE-xxx Core Host & Infrastructure ASP.NET Core Kestrel Host, Windows Service, Linux systemd, Win32 Job Objects, Settings
LLM-xxx LLM & Ollama Management Ollama health, local model library, KV Cache calculator, capability profiles, model pulling
HUB-xxx Hugging Face Hub Integration GGUF, Video, and Audio model discovery, quantization trees, chunked download streaming
DIFF-xxx Stable Diffusion & CivitAI SD WebUI / Forge health, CivitAI model gallery, direct-to-disk checkpoint/LoRA downloader
3D-xxx 3D Mesh & ComfyUI Generation ComfyUI proxy, TRELLIS V2 / Hunyuan3D v2 workflows, WebGL <model-viewer> canvas
VID-xxx Video Generation & Studio Wan 2.2 / LTX-2.5 / HunyuanVideo presets, generation endpoints, interactive video player
AUD-xxx Audio & TTS Generation Kokoro TTS, OpenAI /v1/audio/speech, Stable Audio Open, YuE, waveform visualizer
PACK-xxx Modular Feature Packs Optional component installer (ext_video, ext_audio), --with-* flags, fallback banners
VRAM-xxx GPU Telemetry & VRAM Orchestration NVML CUDA telemetry, OS fallbacks, stacked memory visualizer, auto-unload OOM prevention
MCP-xxx Model Context Protocol API Streamable HTTP / SSE endpoint (/mcp), JSON-RPC 2.0, 11 native AI tools
INST-xxx Installer & Upgrade Lifecycle Inno Setup Windows installer, PowerShell update/install scripts, Linux systemd installer, settings preservation
DISC-xxx Tool Discovery & Flexible Paths Multi-drive filesystem scanner (IToolDiscoveryService), /api/tools/* endpoints, status badges
UI-xxx User Interface & Experience Fluent dark theme tokens, SOLID UserControls, MVVM bindings, toast notifications, URL launcher
WASM-xxx WebAssembly Client Platform Avalonia WASM compilation, Kestrel static MIME type mappings, browser proxy routing
E2E-xxx End-to-End Automation & QA Headless Playwright browser harness, zero-error WASM validation, screenshot generator

🎯 Software Requirements Specification (SRS)

1. Core Host & Infrastructure (CORE-xxx)

  • CORE-001: The application shall bootstrap an ASP.NET Core Minimal API server on Kestrel listening on configurable port (default :5246), hosting both REST endpoints and WebAssembly static assets.
  • CORE-002: The application shall support running as a headless Windows Service on machine boot prior to user login.
  • CORE-003: The application shall support running as a headless Linux systemd daemon (localllmmanager.service) on boot.
  • CORE-004: The Avalonia Desktop application shall display an interactive System Tray icon with right-click actions (Open Dashboard, View Health, Exit) and automatically attach to the background service when a desktop session begins.
  • CORE-005: On Windows, child AI engine processes shall be bound to a Win32 Job Object with kill-on-close semantics and hard memory limits, with graceful fallback to standard process management on Linux.
  • CORE-006: The application shall support in-app self-updating by executing automated Git fetch, checkout, and pull operations.
  • CORE-007: Configuration file paths shall dynamically resolve environment variables (such as %APPDATA%) with robust fallback defaults.
  • CORE-008: Application settings shall persist to and reload from a local JSON file (appsettings.json / settings.json) across sessions.

2. LLM & Ollama Management (LLM-xxx)

  • LLM-001: The application shall probe the health and availability of the local Ollama instance (:11434).
  • LLM-002: The application shall query and display all installed Ollama models with disk footprints, family tags, and parameter counts.
  • LLM-003: The application shall provide an interactive KV Cache Context Calculator allowing users to slide token length (up to 32,768 tokens) and preview combined model weight and context memory consumption.
  • LLM-004: The application shall classify model families (Llama, Gemma, Qwen, Phi, Mistral, DeepSeek) with capability profile badges (Coding, Reasoning, Math, Chat).
  • LLM-005: The application shall provide quick-pull cards for popular models with single-click installation triggers.
  • LLM-006: The application shall allow pulling arbitrary user/model:tag specifications with real-time SSE progress streaming.
  • LLM-007: The application shall allow locking models in GPU VRAM indefinitely via keep_alive: -1.
  • LLM-008: The application shall provide a one-click VRAM unload action sending keep_alive: 0 to release all loaded Ollama weights from GPU memory.

3. Hugging Face Hub Integration (HUB-xxx)

  • HUB-001: The application shall query the Hugging Face Hub API to search and filter GGUF model repositories.
  • HUB-002: The application shall inspect GGUF repository file trees to list available quantizations (Q4_K_M, Q5_K_M, Q8_0, FP16) with exact file sizes.
  • HUB-003: The application shall download selected GGUF files directly to the local model store with chunked progress reporting.

4. Stable Diffusion & CivitAI (DIFF-xxx)

  • DIFF-001: The application shall monitor the health and task progress of Stable Diffusion WebUI / Forge (:7860).
  • DIFF-002: The application shall search CivitAI for models with filters for model type (Checkpoint, LoRA, VAE, ControlNet) and sort order.
  • DIFF-003: The application shall display preview thumbnail cards, star ratings, and download counts from CivitAI.
  • DIFF-004: The application shall stream CivitAI model files directly to disk into the configured model repository.
  • DIFF-005: The application shall allow users to configure custom target directories for Stable Diffusion / Forge checkpoints.

5. 3D Mesh & ComfyUI Generation (3D-xxx)

  • 3D-001: The application shall verify ComfyUI backend connectivity via /system_stats.
  • 3D-002: The application shall transparently proxy ComfyUI REST routes and WebSocket progress feeds through port 5246 via YARP reverse proxy.
  • 3D-003: The application shall bundle and execute ready-to-run API workflow presets for TRELLIS V2 and Hunyuan3D v2 3D mesh generation.
  • 3D-004: The application shall render generated .glb and .gltf 3D meshes inside an interactive WebGL <model-viewer> canvas with 360° orbital controls, lighting presets, and wireframe options.
  • 3D-005: The application shall allow users to inspect and download generated 3D GLB assets.
  • 3D-006: The application shall provide an engine preference selector to switch between Forge and ComfyUI.

6. Video Generation & Studio (VID-xxx)

  • VID-001: The application shall bundle workflow presets and execute video generation for Wan 2.2 (Text-to-Video and Image-to-Video), LTX-2.5, and HunyuanVideo 1.5.
  • VID-002: The backend shall expose /api/video/workflows, /api/video/generate, and /api/video/files endpoints.
  • VID-003: The UI shall host an interactive Video Player Preview component supporting play/pause, scrub, looping, playback speed, and metadata badges (resolution, fps, frame count).

7. Audio & Speech Synthesis (AUD-xxx)

  • AUD-001: The application shall supervise and manage local Kokoro TTS engine instances and expose an OpenAI-compatible POST /v1/audio/speech endpoint.
  • AUD-002: The backend shall expose /api/audio/workflows, /api/audio/generate, and /api/audio/files for ComfyUI audio synthesis with Stable Audio Open 3.0 and YuE.
  • AUD-003: The UI shall host an integrated Audio Studio with waveform visualization, audio player controls, and voice selection.

8. Modular Feature Packs & Component Installer (PACK-xxx)

  • PACK-001: The installer and application shall support optional feature packs (ext_video, ext_audio) via --with-video / --with-audio CLI flags and Inno Setup components.
  • PACK-002: The ComponentManagerService shall detect installed components and handle on-demand installation/uninstallation via /api/components.
  • PACK-003: The UI shall gracefully render an install prompt banner when accessing video/audio features if the corresponding feature pack is not yet installed.

9. GPU Telemetry & VRAM Orchestration (VRAM-xxx)

  • VRAM-001: The application shall read real-time GPU name and VRAM memory telemetry via NVML CUDA (nvidia-smi).
  • VRAM-002: The application shall provide fallback telemetry resolution via Windows Registry and Linux /proc/meminfo when NVML is unavailable.
  • VRAM-003: The application shall display a stacked visualizer indicating loaded model VRAM vs free GPU headroom.
  • VRAM-004: The VRAM Orchestrator shall automatically detect active LLMs in VRAM and release them before initiating heavy Stable Diffusion, ComfyUI 3D, or Video render jobs to prevent Out-Of-Memory (OOM) errors.
  • VRAM-005: The application shall allow customizing telemetry polling intervals and auto-unload thresholds.

10. Model Context Protocol API (MCP-xxx)

  • MCP-001: The application shall expose a Model Context Protocol (MCP) server over Streamable HTTP and SSE transports mapped to /mcp compliant with the official 2026-07-28 stateless MCP specification via ModelContextProtocol.AspNetCore.
  • MCP-002: The MCP server shall implement tool schema discovery (tools/list) exposing 11 management and generation tools (get_gpu_vram, check_health, list_models, pull_model, unload_vram, start_engine, stop_engine, detect_tools, generate_video, synthesize_speech, generate_audio) with rich descriptions and parameter metadata.
  • MCP-003: The MCP server shall implement tool execution dispatch (tools/call) allowing AI assistants (Claude Desktop, Cursor, Antigravity) to execute GPU telemetry queries, health probing, model pulling/unloading, engine start/stop, video generation, speech synthesis, and audio generation.
  • MCP-004: The MCP tools class (LocalLlmMcpTools) shall resolve required services (IGpuTelemetryProvider, IAiEngineManager, IOllamaModelService, IToolDiscoveryService, IHttpClientFactory, ISettingsService, VramOrchestrator) via dependency injection with robust error handling and structured JSON responses.

8. Installer & Upgrade Lifecycle (INST-xxx)

  • INST-001: The Inno Setup Windows installer shall detect running instances of the LocalLLMServerManager Windows Service and desktop tray applications, stop them cleanly prior to file extraction, and reconfigure and restart the service post-installation.
  • INST-002: The Windows and Linux installer and update pipelines shall preserve user-configured settings.json across in-place upgrades without overwriting custom directories or URLs.
  • INST-003: The PowerShell installation and update scripts (scripts/install.ps1, scripts/update.ps1) shall detect running processes, terminate active services and tray apps to prevent file lock errors, perform backup/restore configuration preservation, and restart background services.
  • INST-004: The Linux installation script (scripts/install_linux.sh) shall detect active systemd services (localllmmanager.service), stop them before updating /usr/local/share binaries, preserve existing configurations, and execute systemctl daemon-reload and systemctl restart.

9. Tool Discovery & Flexible Paths (DISC-xxx)

  • DISC-001: The application shall scan all accessible drive roots and common directories on Windows and Linux to auto-detect installed AI tools (Ollama executable and models, ComfyUI launch scripts and models, SD WebUI/Forge scripts and models).
  • DISC-002: The backend shall expose POST /api/tools/detect to discover installed tools and return suggested path configurations.
  • DISC-003: The backend shall expose POST /api/tools/validate-path to dynamically validate file or directory accessibility and report status (Valid, NotFound, Invalid).
  • DISC-004: The Settings UI shall provide one-click auto-detection, native file and directory pickers for every tool path, and real-time visual status badges (Valid 🟢, Missing 🔴, Unset ⚪).
  • DISC-005: All deployment and setup helper scripts shall accept parameter overrides for tool paths and model directories.

10. User Interface & Experience (UI-xxx)

  • UI-001: The UI shall apply a curated Fluent dark theme palette (#0F172A, #1E293B, #38BDF8, #EC4899, #A855F7).
  • UI-002: The UI shall be organized into modular, SOLID Avalonia XAML UserControls strongly typed to dedicated sub-ViewModels.
  • UI-003: The application shall display non-blocking, timed toast notifications for status updates and error alerts.
  • UI-004: The application shall support launching external URLs in the default system browser across Windows (explorer.exe) and Linux (xdg-open).

11. WebAssembly Client Platform (WASM-xxx)

  • WASM-001: The application shall compile Avalonia XAML UI to WebAssembly, delivering full desktop-parity features in standard web browsers.
  • WASM-002: The Kestrel host shall configure custom MIME types for WebAssembly assets (.wasm, .dat, .json, .glb, .png, .js, .css).
  • WASM-003: The backend shall proxy /api/models to bypass browser CORS restrictions.

12. End-to-End Automation & Quality Assurance (E2E-xxx)

  • E2E-001: The test harness shall boot headless Chromium with WebGL SwiftShader acceleration against a live Kestrel test server instance.
  • E2E-002: The Playwright test suite shall verify that the WASM client renders the #out canvas container with zero 404 network errors and zero unhandled console errors.
  • E2E-003: The Playwright screenshot generator shall navigate all 5 UI tabs and automatically capture crisp PNG documentation images to docs/images/, verifying visual distinctness across all tabs.

🔗 Bidirectional Requirements Traceability Matrix (RTM)

Req ID Requirement Summary Implementing Source Files Verifying Test Method(s) Status
CORE-001 ASP.NET Core Minimal API Host Program.cs ProgramEndpointsAndServicesTests.HealthCheck_ReturnsStatus200_WithOkPayload 100% VERIFIED
CORE-002 Windows Service Headless Boot Program.cs, LocalLLMServerManager.csproj ProgramEndpointsAndServicesTests.ServiceMode_InitializesWithoutAvalonia 100% VERIFIED
CORE-003 Linux systemd Daemon Hosting Program.cs, scripts/localllmmanager.service ProgramEndpointsAndServicesTests.ServiceMode_InitializesWithoutAvalonia 100% VERIFIED
CORE-004 Avalonia Desktop System Tray App.axaml.cs AvaloniaAppAndWindowCoverageTests.App_Initializes_DesktopMode 100% VERIFIED
CORE-005 Win32 Job Object Memory Limits Services/Win32JobObject.cs, Services/AiEngineManager.cs ServicesAndEngineManagerCoverageTests.Win32JobObject_ExecutesSafely
DeepCoveragePushTests.Win32JobObject_LinuxFallback
100% VERIFIED
CORE-006 In-App Git Self-Update Services/GitUpdateService.cs CoverageThresholdTargetedPushTests.GitUpdateService_HandlesExecution 100% VERIFIED
CORE-007 Dynamic Env Path Resolution LocalLLMServerManager.Shared/Models/AppSettings.cs, Program.cs AppSettingsTests.ResolvePath_ExpandsEnvironmentVariables_Correctly
AppSettingsTests.ResolvePath_WithNullOrEmpty_UsesFallback
100% VERIFIED
CORE-008 Persistent JSON Settings Services/SettingsService.cs, Endpoints/EngineEndpoints.cs AppSettingsTests.AppSettings_SerializationAndDeserialization_PreservesData
ProgramEndpointsAndServicesTests.SettingsEndpoints_GetAndPost_UpdatesConfiguration
100% VERIFIED
LLM-001 Ollama Health Probing LocalLLMServerManager.Shared/Services/OllamaModelService.cs SearchServicesCoverageTests.OllamaModelService_CheckHealthAsync_ReturnsStatus
VramOrchestratorTests.IsOllamaHealthyAsync_ReturnsTrue_WhenApiReturnsSuccess
100% VERIFIED
LLM-002 Installed Model Inventory LocalLLMServerManager.Shared/ViewModels/OllamaLibraryViewModel.cs MainViewModelCoverageTests.OllamaLibraryViewModel_LoadsModels_Successfully
FinalPushTo90CoverageTests.OllamaLibrary_PopulatesInstalledModels
100% VERIFIED
LLM-003 Interactive KV Cache Calculator LocalLLMServerManager.Shared/ViewModels/OllamaLibraryViewModel.cs MainViewModelCoverageTests.OllamaLibraryViewModel_CalculatesKvCache_Correctly
NinetyPercentThresholdTests.KvCacheCalculator_BoundaryConditions
100% VERIFIED
LLM-004 Model Capability Profile Badges LocalLLMServerManager.Shared/ViewModels/OllamaLibraryViewModel.cs MainViewModelCoverageTests.OllamaLibraryViewModel_AssignsCapabilityTags 100% VERIFIED
LLM-005 Popular Model Quick-Pull Cards LocalLLMServerManager.Shared/Views/Controls/OllamaModelsTabControl.axaml MainWindowUiTests.OllamaModelsTab_RendersQuickPullButtons 100% VERIFIED
LLM-006 Custom Model Pull with SSE Stream LocalLLMServerManager.Shared/ViewModels/OllamaLibraryViewModel.cs ReachNinetyPercentCoverageTests.MainViewModel_PullModel_WithOllamaStreamingMock_ExecutesStreamReader
FinalPushTo90CoverageTests.PullModelAsync_StreamsProgress
100% VERIFIED
LLM-007 Indefinite VRAM Preloading LocalLLMServerManager.Shared/ViewModels/OllamaLibraryViewModel.cs CoverageThresholdTargetedPushTests.OllamaModelService_PreloadsModelWithKeepAlive 100% VERIFIED
LLM-008 One-Click VRAM Unload LocalLLMServerManager.Shared/ViewModels/MainViewModel.cs ReachNinetyPercentCoverageTests.MainViewModel_UnloadAllVram_WithOllamaMockServer_ExecutesUnloadPost
MainViewModelCoverageTests.MainViewModel_UnloadAllVram_ExecutesCleanly
100% VERIFIED
HUB-001 Hugging Face GGUF Repo Search LocalLLMServerManager.Shared/Services/HuggingFaceSearchService.cs SearchServicesCoverageTests.HuggingFaceSearchService_SearchGgufAsync_ReturnsResults
OllamaAndHfMockServerTests.HuggingFaceSearch_ReturnsMockResults
100% VERIFIED
HUB-002 GGUF Quantization Tree & Sizes LocalLLMServerManager.Shared/ViewModels/HuggingFaceSearchViewModel.cs MainViewModelCoverageTests.HuggingFaceSearchViewModel_ParsesQuantizationBranches 100% VERIFIED
HUB-003 Direct GGUF Download Streaming Endpoints/ModelProxyEndpoints.cs, HuggingFaceSearchViewModel.cs ProgramEndpointsAndServicesTests.HfDownloadEndpoint_StreamsContent
CoverageThresholdTargetedPushTests.HuggingFaceDownload_ProgressReporting
100% VERIFIED
DIFF-001 Forge Health Monitoring Services/VramOrchestrator.cs VramOrchestratorTests.IsForgeHealthyAsync_ReturnsTrue_WhenProgressEndpointReturns200 100% VERIFIED
DIFF-002 CivitAI Query & Type Filters LocalLLMServerManager.Shared/Services/CivitaiSearchService.cs SearchServicesCoverageTests.CivitaiSearchService_SearchModelsAsync_AppliesFilters 100% VERIFIED
DIFF-003 CivitAI Preview Thumbnails LocalLLMServerManager.Shared/ViewModels/CivitaiSearchViewModel.cs MainViewModelCoverageTests.CivitaiSearchViewModel_CachesThumbnails 100% VERIFIED
DIFF-004 Direct-to-Disk Checkpoint Download Endpoints/ModelProxyEndpoints.cs, CivitaiSearchViewModel.cs ProgramEndpointsAndServicesTests.CivitaiDownloadEndpoint_DirectToDisk 100% VERIFIED
DIFF-005 Configurable Forge Models Path LocalLLMServerManager.Shared/Models/AppSettings.cs AppSettingsTests.AppSettings_DefaultValues_UseAppDataAiPaths
ProgramEndpointsAndServicesTests.SettingsEndpoints_GetAndPost_UpdatesConfiguration
100% VERIFIED
3D-001 ComfyUI Health Probe Services/VramOrchestrator.cs VramOrchestratorTests.IsComfyUiHealthyAsync_ReturnsTrue_WhenSystemStatsReturns200 100% VERIFIED
3D-002 ComfyUI YARP Reverse Proxy Program.cs, Endpoints/EngineEndpoints.cs ProgramEndpointsAndServicesTests.ComfyUiReverseProxy_RoutesTraffic 100% VERIFIED
3D-003 TRELLIS & Hunyuan3D Workflows Endpoints/WorkflowEndpoints.cs WorkflowPerformanceTests.WorkflowEndpoints_LoadsPresetTemplates
WorkflowPerformanceTests.TrellisWorkflow_ParsesCorrectly
100% VERIFIED
3D-004 Interactive WebGL 3D Canvas LocalLLMServerManager.Shared/Views/Controls/EngineStudioTabControl.axaml WorkflowPerformanceTests.ModelViewer_WebGLCanvas_Initializes 100% VERIFIED
3D-005 3D GLB Export & File Inspection Endpoints/WorkflowEndpoints.cs WorkflowPerformanceTests.ExportGlbEndpoint_ReturnsValidBinaryHeader 100% VERIFIED
3D-006 Engine Preference Switcher LocalLLMServerManager.Shared/ViewModels/SettingsViewModel.cs AppSettingsTests.AppSettings_SerializationAndDeserialization_PreservesData
MainViewModelCoverageTests.SettingsViewModel_TogglesPreferredEngine
100% VERIFIED
VID-001 Wan / LTX / Hunyuan Video Presets Endpoints/WorkflowEndpoints.cs, Workflows/Video/* WorkflowEndpointsTests.GetVideoWorkflows_ReturnsAvailablePresets
WorkflowEndpointsTests.GenerateVideo_QueuesPrompt_AndReturnsResponse
100% VERIFIED
VID-002 Video Generation & Media Endpoints Endpoints/WorkflowEndpoints.cs WorkflowEndpointsTests.GenerateVideo_QueuesPrompt_AndReturnsResponse
WorkflowEndpointsTests.GetVideoFiles_ReturnsGeneratedVideos
100% VERIFIED
VID-003 Interactive Video Player UI EngineStudioTabControl.axaml, MainViewModel.cs MainViewModelTests.VideoPlayer_PlaybackControls_WorkAsExpected 100% VERIFIED
AUD-001 Kokoro TTS & OpenAI Proxy Endpoints/ModelProxyEndpoints.cs, AiEngineManager.cs ManagedTtsEngineTests.SynthesizeSpeech_ReturnsAudioStream
ManagedTtsEngineTests.OpenAiSpeechProxy_RoutesCorrectly
100% VERIFIED
AUD-002 Stable Audio & YuE Workflows Endpoints/WorkflowEndpoints.cs, Workflows/Audio/* AudioWorkflowEndpointsTests.GenerateAudio_QueuesPrompt_AndReturnsResponse 100% VERIFIED
AUD-003 Waveform Visualizer & Audio UI EngineStudioTabControl.axaml, MainViewModel.cs MainViewModelTests.AudioStudio_Playback_UpdatesState 100% VERIFIED
PACK-001 Modular Feature Pack Installers scripts/installer.iss, scripts/install.ps1, scripts/install_linux.sh ComponentManagerAndEndpointsTests.ComponentManager_DetectsPacks 100% VERIFIED
PACK-002 Component Manager Service & API Services/ComponentManagerService.cs, Endpoints/ComponentEndpoints.cs ComponentManagerAndEndpointsTests.GetComponentsEndpoint_ReturnsList
ComponentManagerAndEndpointsTests.InstallComponentEndpoint_InstallsPack
100% VERIFIED
PACK-003 Feature Pack Missing Banner UI Controls/FeaturePackBannerControl.axaml MainViewModelTests.FeaturePackBanner_RendersGracefully 100% VERIFIED
VRAM-001 NVML CUDA GPU Telemetry Services/GpuTelemetryProvider.cs ProgramEndpointsAndServicesTests.GpuVramEndpoint_ReturnsHardwareTelemetry
ServicesAndEngineManagerCoverageTests.GpuTelemetryProvider_ParsesNvidiaSmi
100% VERIFIED
VRAM-002 OS Telemetry Fallbacks Services/GpuTelemetryProvider.cs ServicesAndEngineManagerCoverageTests.GpuTelemetryProvider_LinuxProcMemInfoFallback
DeepCoveragePushTests.GpuTelemetryProvider_RegistryFallback
100% VERIFIED
VRAM-003 Real-Time Stacked Visualizer LocalLLMServerManager.Shared/ViewModels/TelemetryViewModel.cs MainViewModelCoverageTests.TelemetryViewModel_CalculatesAllocatedPercentage 100% VERIFIED
VRAM-004 Proactive OOM Orchestrator Services/VramOrchestrator.cs VramOrchestratorTests.EnsureVramForImageGenerationAsync_ExecutesCleanly
VramOrchestratorTests.EnsureVramForComfyUiAsync_ExecutesCleanly
VramOrchestratorTests.FreeComfyUiVramAsync_SendsPostToFreeEndpoint
100% VERIFIED
VRAM-005 Configurable Telemetry Thresholds LocalLLMServerManager.Shared/Models/AppSettings.cs AppSettingsTests.AppSettings_SerializationAndDeserialization_PreservesData 100% VERIFIED
MCP-001 MCP Streamable HTTP / SSE Host Program.cs, Endpoints/McpEndpoints.cs McpServerIntegrationTests.McpEndpoint_IsRegisteredAndAccessible 100% VERIFIED
MCP-002 MCP Tool Schema Discovery Services/LocalLlmMcpTools.cs, Endpoints/McpEndpoints.cs McpServerIntegrationTests.McpToolsClass_HasCorrectAttributesAndDescriptions
McpServerIntegrationTests.McpEndpoint_IsRegisteredAndAccessible
100% VERIFIED
MCP-003 MCP Tool Invocation Dispatch Services/LocalLlmMcpTools.cs McpServerIntegrationTests.GetGpuVram_ReturnsTelemetryData
McpServerIntegrationTests.CheckHealth_ReturnsStatusForBackends_WhenOnline
McpServerIntegrationTests.ListModels_ReturnsInstalledOllamaModels
McpServerIntegrationTests.PullModel_ValidName_InitiatesPull
McpServerIntegrationTests.UnloadVram_SendsKeepAliveZeroToOllama_Success
McpServerIntegrationTests.StartEngine_CallsEngineManagerAndReturnsResult
McpServerIntegrationTests.StopEngine_CallsEngineManagerAndReturnsResult
McpServerIntegrationTests.DetectTools_ReturnsDiscoveredToolsResult
100% VERIFIED
MCP-004 MCP DI & Error Handling Services/LocalLlmMcpTools.cs, Program.cs McpServerIntegrationTests.McpServer_DependencyInjectionResolution_Succeeds
McpServerIntegrationTests.CheckHealth_WhenHttpExceptionThrown_ReturnsErrorGracefully
McpServerIntegrationTests.UnloadVram_WhenHttpExceptionThrown_CatchesAndReturnsError
McpServerIntegrationTests.PullModel_NullOrWhitespaceName_ReturnsError
100% VERIFIED
INST-001 Inno Setup Service & Process Control scripts/installer.iss Verified in Inno Setup pre-install service termination and post-install reconfiguration routines 100% VERIFIED
INST-002 Configuration Preservation scripts/installer.iss, scripts/install.ps1, scripts/update.ps1, scripts/install_linux.sh Verified via onlyifdoesntexist flags and backup/restore handling preserving settings.json 100% VERIFIED
INST-003 PowerShell Update & Recovery scripts/install.ps1, scripts/update.ps1 Verified in PowerShell process termination, backup/restore, and service restart pipelines 100% VERIFIED
INST-004 Linux systemd In-Place Update scripts/install_linux.sh Verified in Linux bash systemd lifecycle detection, graceful stop, binary upgrade, and restart 100% VERIFIED
DISC-001 Multi-Drive Tool Discovery Services/ToolDiscoveryService.cs, Interfaces/IToolDiscoveryService.cs ToolDiscoveryServiceTests.DetectOllama_WhenInstalledInCustomRoot_DiscoversProperties
ToolDiscoveryServiceTests.DetectComfyUi_WhenPortableInstalled_DiscoversBatchAndDirectories
ToolDiscoveryServiceTests.DetectForge_WhenInstalled_DiscoversBatchAndModelsDirectory
ToolDiscoveryServiceTests.DetectAllToolsAsync_ReturnsAggregatedResultsAndSuggestions
100% VERIFIED
DISC-002 Tool Detection REST API Endpoints/DiscoveryEndpoints.cs DiscoveryEndpointsTests.DetectToolsEndpoint_ReturnsToolDiscoveryResult 100% VERIFIED
DISC-003 Dynamic Path Validation API Endpoints/DiscoveryEndpoints.cs DiscoveryEndpointsTests.ValidatePathEndpoint_WithExistingDirectory_ReturnsValid
DiscoveryEndpointsTests.ValidatePathEndpoint_WithInvalidPath_ReturnsNotFound
100% VERIFIED
DISC-004 Settings UI Pickers & Status Badges SettingsViewModel.cs, SettingsTabControl.axaml SettingsViewModelCoverageTests.PathChanges_UpdateStatusIndicatorsDynamically
SettingsViewModelCoverageTests.AutoDetectToolsAsync_PopulatesEmptyPathsAndDiscoveredStatus
SettingsViewModelCoverageTests.BrowseFileCommands_WithStorageProvider_SetsSelectedPath
SettingsViewModelCoverageTests.BrowseFolderCommands_WithStorageProvider_SetsSelectedPath
100% VERIFIED
DISC-005 Parameterized Automation Scripts scripts/*.ps1, scripts/*.sh Manual and automated script syntax tests across Windows and Linux 100% VERIFIED
UI-001 Fluent Dark Theme Design Tokens LocalLLMServerManager.Shared/Styles/DesignTokens.axaml MainWindowUiTests.AppStyles_AppliesDarkTheme 100% VERIFIED
UI-002 Modular SOLID UserControls LocalLLMServerManager.Shared/Views/Controls/* MainWindowUiTests.MainView_LoadsAllUserControls 100% VERIFIED
UI-003 Toast Notification Dispatcher LocalLLMServerManager.Shared/Services/ToastService.cs MainViewModelCoverageTests.ToastService_DispatchesAndAutoDismisses 100% VERIFIED
UI-004 Cross-Platform URL Launcher LocalLLMServerManager.Shared/Services/BrowserLauncher.cs BrowserLauncherTests.LaunchUrl_Windows_ExecutesShell
BrowserLauncherTests.LaunchUrl_Linux_ExecutesXdgOpen
BrowserLauncherTests.LaunchUrl_InvalidUrl_DoesNotThrow
100% VERIFIED
WASM-001 Avalonia WebAssembly Client LocalLLMServerManager.Web/Program.cs PlaywrightWasmE2ETests.WebDashboard_BootsCleanlyWithoutConsoleOr404Errors 100% VERIFIED
WASM-002 Kestrel Static MIME Provider Program.cs StaticFileMimeTypeTests.StaticFileMimeTypes_MapsWasmAndGlbCorrectly
PlaywrightWasmE2ETests.WebDashboard_BootsCleanlyWithoutConsoleOr404Errors
100% VERIFIED
WASM-003 Browser Model Proxy Routing Endpoints/ModelProxyEndpoints.cs ProgramEndpointsAndServicesTests.ModelsProxyEndpoint_ReturnsAggregatedModels 100% VERIFIED
E2E-001 Headless Playwright SwiftShader Harness LocalLLMServerManager.Tests/PlaywrightWasmE2ETests.cs PlaywrightWasmE2ETests.WebDashboard_BootsCleanlyWithoutConsoleOr404Errors 100% VERIFIED
E2E-002 Zero-Error WebAssembly Boot Assertion LocalLLMServerManager.Tests/PlaywrightWasmE2ETests.cs PlaywrightWasmE2ETests.WebDashboard_BootsCleanlyWithoutConsoleOr404Errors 100% VERIFIED
E2E-003 Automated Documentation Screenshot Generator LocalLLMServerManager.Tests/PlaywrightScreenshotGenerator.cs PlaywrightScreenshotGenerator.GenerateRealDocScreenshots 100% VERIFIED

🔍 Requirements Gap Analysis & Future Roadmap

The following auxiliary items and future enhancements represent capabilities that are intentionally cataloged for future versions and are not yet covered by automated tests:

Gap Identifier Title & Description Impact & Planned Roadmap
GAP-GPU-001 Multi-GPU Telemetry & Device Selector Currently, telemetry queries the primary GPU index (gpu:0). Future versions will add a dropdown to select between multiple installed discrete GPUs and show aggregated multi-GPU telemetry.
GAP-GPU-002 AMD ROCm & Apple Silicon Metal Telemetry Current telemetry uses NVML (nvidia-smi) for NVIDIA GPUs with CPU/RAM fallback. Direct telemetry for AMD ROCm (rocm-smi) and Apple Silicon unified memory will be added in a future update.
GAP-MCP-001 OAuth2 / Bearer Token Auth for MCP Endpoints The Model Context Protocol endpoint /mcp is currently open for local loopback AI assistants. External remote network access will incorporate token authentication in v4.0.
GAP-UI-001 Mobile Touch Swipe Tab Navigation in WASM On mobile browser viewports, tabs are accessible via the header navigation bar. Direct touch swipe gestures across tabs are planned for an upcoming WASM UI polish release.