WinPulse Studio - Utility Windows (Disk/CVE/RAM/Privacy/Update)
- C# 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
IPC Server (PipeElevatedDispatcher): - Named Pipe server with restrictive PipeSecurity (current user SID only) - Crypto-random pipe name (256-bit) + secret (256-bit) - Constant-time proof comparison (CryptographicOperations.FixedTimeEquals) - PID verification, strict AuthOk check, line-level try/catch - Max line length (1MB), connection timeout (60s), request timeout (300s) - UAC prompt via ProcessStartInfo Verb=runas, error 1223 handling Worker (AdminWorker) hardened: - pipeName regex validation, secret min length 64 hex - AuthOk strict check (not just !AuthFail) - Line-level try/catch for JSON deserialization - No pipeName/secret in logs, oversized line rejection - Graceful cancellation + crash logging Packaging: - Inno Setup script (build/WinPulse.iss) — Program Files, shortcuts, Add/Remove Programs - Settings preservation prompt on uninstall, cache/logs always cleaned - CI: iscc compilation step, Inno Setup artifact upload, forgejo-release - Release script (build/release.ps1): SemVer bump + CHANGELOG update + tag + push Tests: - FakeElevatedDispatcher in WinPulse.Testing (shared test double) - IPC handshake tests (HMAC determinism, different nonce/key → different output) - Privacy tests switched to FakeElevatedDispatcher DI: PipeElevatedDispatcher registered (replaces stub) UI: Removed obsolete InternalsVisibleTo for Privacy.Tests |
||
| .forgejo/workflows | ||
| src | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| Directory.Build.props | ||
| Directory.Packages.props | ||
| HANDOFF.md | ||
| README.md | ||
| WinPulse.sln | ||
WinPulse Studio
Utilitaire Windows tout-en-un : analyse disque, scanner CVE, optimiseur RAM/CPU, vie privée, Windows Update.
Modules
| Module | Description |
|---|---|
| 💾 Espace Disque | Scan ultra-rapide (P/Invoke), Treemap squarified, détection doublons, nettoyeur 9 catégories |
| 🛡️ Sécurité | Inventaire apps (Registre + Winget), scan CVE via OSV.dev, mise à jour 1-clic |
| ⚡ Performance | Jauges CPU/RAM temps réel, purge Standby List, gestion programmes démarrage |
| 🔐 Vie Privée | Désinstallation bloatwares Win11, tweaks registre, points restauration |
| 🔄 MàJ Windows | WUA scan/install/uninstall, rollback, historique, heures actives |
Téléchargement
Télécharger la dernière version
- Installeur :
WinPulse-Setup-X.Y.Z.exe(Inno Setup) - Portable :
WinPulse-Portable-X.Y.Z.zip
Prérequis
- Windows 10 22H2+ / Windows 11
- 64-bit (x64)
- .NET 10 Desktop Runtime (inclus en mode self-contained)
Développement
# Prérequis : .NET 10 SDK + Windows Desktop workload
git clone https://git.simlab.cc/simonl/winpulse.git
cd winpulse
dotnet build
dotnet run --project src/WinPulse.Ui
CI
contracts.yml— runner Linux : tests unitaires, validation schemaswindows.yml— runner Windows auto-hébergé : build, signature, packaging, release
Licence
MIT