Client (C# / .NET 8 / WPF, MVVM via CommunityToolkit.Mvvm):
- PSLauncher.App: WPF UI dark theme (Epic-style sidebar + hero + big play button)
with UpdateAvailableDialog rendering Markdown release notes via Markdig.Wpf.
- PSLauncher.Core: services for installation registry (scans Proserve v{X.Y.Z}/),
process launcher, manifest fetch, SHA-256 integrity, HTTP download with
progress, ZIP install via .tmp + atomic rename, update orchestrator.
- PSLauncher.Models: RemoteManifest, InstalledVersion, LocalConfig DTOs.
Server (PHP 8 for OVH mutualisé, deployed under www/PS_Launcher/):
- Front controller + routes /manifest and /releasenotes/{version}.
- Static signed-manifest workflow with tools/sign-manifest.php CLI to
recompute SHA-256 and sizeBytes after each ZIP upload.
- .htaccess: HTTPS redirect, rewrite, security headers.
- config.example.php template; real config.php is gitignored.
Cohabiting versions: each release lives in its own Proserve v{version}/ folder
under installRoot. Old versions are never deleted automatically.
Roadmap: v0.3 = HTTP Range resume + Polly retry + state.json,
v0.4 = MySQL license + Ed25519 signatures + DPAPI, v0.5 = settings/UX polish.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
38 lines
466 B
Plaintext
38 lines
466 B
Plaintext
# Build outputs
|
|
bin/
|
|
obj/
|
|
out/
|
|
|
|
# Visual Studio
|
|
.vs/
|
|
*.user
|
|
*.suo
|
|
*.userosscache
|
|
*.sln.docstates
|
|
|
|
# JetBrains Rider
|
|
.idea/
|
|
|
|
# NuGet
|
|
*.nupkg
|
|
*.snupkg
|
|
packages/
|
|
|
|
# Logs / local state
|
|
*.log
|
|
*.tlog
|
|
|
|
# Local app data (testing)
|
|
*.local.json
|
|
|
|
# Large game build (sample only — should not be in repo)
|
|
ASTERION_VR/
|
|
|
|
# Server-side secrets — never commit (config.example.php sert de template)
|
|
server/api/config.php
|
|
server/builds/*
|
|
!server/builds/.gitkeep
|
|
|
|
# Plans
|
|
.claude/
|