v3.2.14
Internal: post-ship verification hygiene (no user-facing change)
A second adversarial verification swarm (3 topic pairs, Sonnet + Opus, read-only) on the v3.2.13 DPI rebuild confirmed the shipped binary correct and the self-update security paths byte-identical, and surfaced four source-hygiene items — all behavior-neutral, all closed here:
- Removed dead code.
DpiScale.SizeFitFieldswas ported from EQSwitch's CardLayout but its call site was never wired (zero callers). Deleted the class + its now-unusedSystem.Globalizationusing, and corrected a SettingsForm comment that falsely claimed the method ran (the fixed 80px startup-delay field holds its 4-digit max at any DPI via AutoScaleMode). - Hardened
CardStack.SetFooteragainst a double-call that would nest two root panels (latent footgun; no current caller hits it). - Strengthened the DPI regression test to also assert
AutoScaleDimensions == 96×96— dropping that baseline while keepingAutoScaleMode.Dpisilently re-introduces double-scaling, which the prior test wouldn't have caught.
No runtime behavior changed; the v3.2.13 and v3.2.14 binaries are functionally identical. This release exists to keep main and the published release in lockstep.
What's underneath
SyncthingPause/CardLayout.cs— deleted the unusedDpiScaleclass +System.Globalizationusing; added aFooter != nullguard toSetFooter.SyncthingPause/SettingsForm.cs— corrected the startup-delay field comment.SyncthingPause.Tests/DpiLayoutRegressionTests.cs— addedAutoScaleDimensionsassertions.SyncthingPause.csproj— 3.2.13 → 3.2.14.
Verifier coverage
Build clean (0/0). 94/94 tests pass (the regression guard now also pins the 96-DPI baseline). Two adversarial swarms + five real-150% renders + CI asset-verification stand behind the shipped layout.
Full Changelog: v3.2.13...v3.2.14