Releases: dlamanna/DesktopShell
v2026.04.01
Fixes
Screen detection resilience (VR headset / multi-monitor)
- Area-based screen matching: Saves each screen's WorkingArea geometry to
settings.ini. When screen indices shift (e.g., VR headset connect/disconnect), matches by geometry instead of index to find the correct physical monitor. - Boot-time retry with fallback: If no trigger rects created at startup, retries every 5s for 30s then falls back to primary screen.
- Matching order: index-based → area-based → retry → primary screen fallback.
Test fix
- Fixed
HandleClaudex_Step3ReceivesBothResponsestest — was checking stdin (null) instead of-pargument where Step 3 actually passes data.
CI fix
- Added
.nojekyllto prevent Jekyll Liquid syntax errors on GitHub Pages builds.
Full Changelog: v2026.03.31...v2026.04.01
Full Changelog: v2026.03.31...v2026.04.01
v2026.03.31
Fixes
- Thread-safe logging:
Log()now uses a lock to serialize concurrent writes from different threads (TCP handler, UI, retry timer). Previously, simultaneous calls would throwIOExceptiondue toFileShare.Read. Changed toFileShare.ReadWriteand addedIOExceptionto the catch filter. - Boot-time screen retry (from v2026.03.29): retry screen detection every 5s for up to 2 minutes when no trigger rects are created at startup.
Full Changelog: v2026.03.29...v2026.03.31
Full Changelog: v2026.03.29...v2026.03.31
v2026.03.29
Fix: boot-time screen detection retry
When DesktopShell starts before all monitors are enumerated (e.g. at boot with a VR headset plugged in), it could end up with zero trigger rects — making the shell invisible and unresponsive.
Changes:
- If no trigger rects are created at startup, retry every 5 seconds for up to 2 minutes
- Handle extra detected screens gracefully (treat as disabled) instead of bailing out entirely
- Add diagnostic logging to
InitDropDownRects(detected/settings counts, zero-rect warning) - Fix
Console.WriteLine→GlobalVar.Log()so screen mismatches appear in the log file
Full Changelog: v2026.03.22...v2026.03.29
Full Changelog: v2026.03.22.1...v2026.03.29
v2026.03.22.1
Fix: handle extra screens (e.g. VR headset) gracefully instead of silently failing
When Windows detects more screens than settings.ini has entries for, InitDropDownRects was bailing out entirely — creating no trigger rects and making the app invisible/unresponsive. Now treats extra screens as disabled and proceeds normally.
Also fixed Console.WriteLine → GlobalVar.Log() so screen mismatches are visible in the log file.
Full Changelog: v2026.03.22...v2026.03.22.1
Full Changelog: v2026.03.22...v2026.03.22.1
v2026.03.22
Full Changelog: v2026.02.17...v2026.03.22
Full Changelog: v2026.02.17...v2026.03.22
Release v2026.02.17
Changes
- Migrated to .NET 10 (net10.0-windows10.0.26100.0)
- Updated Microsoft.Windows.Compatibility to 10.0.0
- Removed packages now inbox in .NET 10 (Microsoft.CSharp, System.Data.DataSetExtensions, System.Net.Sockets)
- Updated test packages (MSTest 3.8.3, FluentAssertions 7.2.0)
- Fixed single-file publish: added RuntimeIdentifier and SatelliteResourceLanguages to produce a clean single-exe output
- Fixed obsolete WinForms API usage (Form.Closed → FormClosed, X509Certificate2 constructor → X509CertificateLoader)
Full Changelog: v2026.02.16...v2026.02.17
v2026.02.16
Full Changelog: v2026.02.11...v2026.02.16
v2026.02.11
Full Changelog: v2026.02.01.1...v2026.02.11
v2026.02.01.1
Full Changelog: v2026.02.01...v2026.02.01.1