Initial commit: PulseDock System Monitor

This commit is contained in:
Developer
2026-07-23 12:37:00 +02:00
commit 2cfe8fb858
57 changed files with 3495 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# Architecture & Technical Design PulseDock
## Overview
PulseDock is built on modern C# .NET 10 WPF architecture leveraging Dependency Injection, MVVM separation, and non-blocking background telemetry sampling.
```
┌─────────────────────────┐
│ App Bootstrapper │
│ (Microsoft.Extensions │
│ .DependencyInjection) │
└────────────┬────────────┘
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Hardware │ │ Settings & │ │ Theme & Position │
│ Monitoring │ │ Notifications │ │ Management │
│ Service │ │ Services │ │ Services │
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
│ │ │
└───────────────────────┼───────────────────────┘
┌───────────────────────┐
│ MainWidgetViewModel │
└───────────┬───────────┘
┌───────────────────────┐
│ MainWindow (WPF UI) │
│ Glassmorphism XAML │
└───────────────────────┘
```
## Key Architectural Principles
1. **Non-Blocking Telemetry Polling**:
- `HardwareMonitoringService` executes hardware polling on background tasks via `PeriodicTimer` and `CancellationToken`.
- Never blocks the WPF UI thread (`Dispatcher.InvokeAsync` marshals updates cleanly).
2. **Non-Elevated Safe Fallbacks**:
- Standard user mode startup.
- If `LibreHardwareMonitorLib` kernel driver access is denied without Admin rights, it automatically falls back to `PerformanceCounter`, WMI, `NetworkInterface`, and `System.Diagnostics` without crashing.
3. **Memory Optimization**:
- `CircularBuffer<T>` allocates fixed-size arrays for 60s/300s/900s history arrays.
- Zero endless GC allocations during long runtime sessions.
4. **Custom WPF Drawing Controls**:
- `SparklineControl` and `ProgressRingControl` derive directly from `FrameworkElement` using `DrawingContext`, bypassing heavy WPF layout trees for rendering.
+16
View File
@@ -0,0 +1,16 @@
# Changelog PulseDock
## [1.0.0] - 2026-07-23
### Added
- Initial production-ready release of PulseDock.
- .NET 10 WPF Application with MVVM architecture.
- Glassmorphic UI supporting Compact, Standard, and Expanded view modes.
- Telemetry services for CPU, RAM, GPU, Disks, Network, Battery, and Top Processes.
- Custom `SparklineControl` and `ProgressRingControl`.
- Non-admin fallback mechanism for LibreHardwareMonitor and WMI/PerformanceCounters.
- Configurable warning alerts with notifications & audio cues.
- Tray icon context menu & HKCU registry autostart manager.
- Multi-monitor DPI-aware position bounds clamping & position locking.
- Global Click-Through hotkey (`Ctrl + Shift + F12`).
- Complete xUnit test suite & self-contained Release x64 build configuration.
+9
View File
@@ -0,0 +1,9 @@
# Contributing to PulseDock
Thank you for your interest in contributing to PulseDock!
## Guidelines
1. Ensure all code targets **.NET 10** (`net10.0-windows`) with Nullable Reference Types enabled (`<Nullable>enable</Nullable>`).
2. Follow MVVM pattern and keep view code-behind minimal.
3. Add unit tests in `PulseDock.Tests` for any new utility formatting or calculation logic.
4. Run `dotnet test` and ensure zero build warnings before submitting code.