Skip to content

YSM Installer v1.1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 May 16:01
c70b4c7

Big one. Full Material You redesign, native 7-Zip extraction, multi-part archive support, taskbar progress, single-instance guard, and a pile of installer hardening.

Highlights

  • Material You / Material 3 redesign — borderless window with custom chrome, inline state machine, new option cards, Platinum monochrome theme, custom-drawn scroll panels.
  • Native 7-Zip extraction — bundled 7z.dll with hand-rolled COM interop replaces SharpCompress; one solid-block decode pass instead of per-entry, big speedup on .7z/.rar archives.
  • Multi-part archives — installer can now download split releases (download_url_parts in the catalog) and the manual-install picker accepts .7z.001 / .zip.001 / .rar.001 via a virtual concat stream (no temp file, zero extra disk usage).
  • Manual install — install from a local folder or archive you already have, with proper Config.ini validation.

Added

  • Native 7-Zip integration via bundled 7z.dll (LGPL notices included)
  • Multi-part archive download with per-chunk retry + atomic rename on success
  • .7z.001 / .zip.001 / .rar.001 accepted in manual install picker (virtual concat — no temp file)
  • Manual install from a local folder or archive (folder picker + archive picker)
  • Google Drive URL support in the catalog (auto-normalized to direct download)
  • Windows taskbar progress bar with green-on-complete beacon while backgrounded
  • Single-instance guard — a second copy hands off to the existing window instead of racing against it
  • Low disk space confirmation dialog before extract
  • In-memory cache for GitHub API responses and size probes
  • Release notes preview in the update prompt
  • Material You design tokens, Platinum monochrome theme, MaterialScrollPanel, borderless Material window chrome
  • Apache 2.0 license, third-party notices, structured GitHub issue templates

Improved

  • Network path: parallel HEAD probes, 80 KB stream buffers, gzip on catalog, ConfigureAwait(false) on hot paths, TLS 1.2 floor, connection cap raised
  • Auto-update cancellation propagates cleanly when the form closes
  • Catalog validation skips only invalid entries instead of dropping the whole game version
  • Install / scan flow with conditional Steam guidance and clearer stage labels
  • Clearer manual-install card copy

Fixed

  • Config.ini written atomically via .tmp + File.Replace — a crash or BSOD mid-finalize can no longer leave WARNO's settings file empty or partial
  • 7-Zip extraction hardening — cancellation, oversized-size guard, HRESULT checks, write-error capture, idempotent Dispose, deferred-rethrow with original stack traces
  • TaskbarProgress COM lifecycle + handle-access races
  • SoftLabel truncation (GDI vs GDI+ width mismatch wrapping text to an invisible second line)
  • HttpClient reuse across connectivity probes (no more TIME_WAIT socket leak)
  • _chooseBuildCts / _autoUpdateCts properly cancelled and disposed on form close — no more lingering HEAD probes after teardown
  • Atomic .tmp + rename on every download path
  • Bitmap leak on install-complete badge
  • async void Form1_Load now catches OCE and exceptions

Notes

  • Bundled 7z.dll is LGPL — see THIRD-PARTY-NOTICES.md.
  • Single-instance lock is per-login session (Local\) — does not block another user on the same machine.