Repository navigation
v2.7.2
WinTUI v2.7.2 Release Notes
A small follow-up to v2.7.1 fixing two bugs that together prevented the
disk cache from being written and made the Health tab show "no cached
scan yet" right after a successful workspace scan.
Narrow-column upgrade tables now parse
When only one or two upgrades are pending and their package data is
short, winget renders the upgrade table with single-space gaps
between Version, Available, and Source instead of the usual ≥2-space
column padding:
Name Id Version Available Source
------------------------------------------------------
WireGuard WireGuard.WireGuard 1.0.1 1.1 winget
The v2.7.1 column-aware parser groups headers by runs of two-or-more
spaces, so it folded those three headers into a single cell
(Version Available Source), reported
winget output: 3-column upgrade table is not a known shape; first header was "Name"
and bailed out. As a downstream effect:
cache.setUpgradeablewas never called, so the in-memory upgrade
cache stayednil.saveToDiskLockedrequires both lists populated, socache.jsonwas
never written.- The Health tab showed
INFO Sources no cached scan yetand
INFO Updates no cached upgrade scan yeteven immediately after
the workspace tab had finished scanning successfully.
The header parser now subdivides any cell whose whitespace-separated
tokens all resolve through the locale dictionary, so tightly-packed
English upgrade tables parse correctly. Localized headers with
intentional internal spaces (Korean 장치 ID, 사용 가능, etc.) are
unaffected because their tokens don't individually resolve through the
dictionary.
winget list and winget upgrade no longer race
Cold-start scans previously ran winget list and winget upgrade in
parallel goroutines. winget serialises those subcommands on an internal
lock and one of them returns 0x8a150001 with empty output ~50% of the
time when called concurrently. The existing retry covered the empty
case, but on systems that hit the parser bug above, the retry's parsed
output was the same broken-shape failure and setUpgradeable was still
skipped.
fetchPackages and startBackgroundRefresh now run the two queries
sequentially. Cold start is ~1s slower; subsequent restarts are
unaffected because the disk cache covers them for 24h.
Notes
- No setting changes, no breaking changes, no new Win32 surface.
settings.jsonandcache.jsonformats are fully backward
compatible.- Regression coverage:
testdata/winget/upgrade_narrow_columns.txtexercises the
WireGuard-shaped header that triggered the bug end-to-end.
Verification
VirusTotal scans of the published artifacts for v2.7.2 (run 2026-05-08):
| Asset | SHA256 | Detections | Report |
|---|---|---|---|
wintui_2.7.2_windows_amd64.exe (6.8 MB) |
ae1e0601cea1… |
1/71 | VT report |
wintui_2.7.2_windows_amd64.zip (2.4 MB) |
32000162a2b2… |
0/68 | VT report |
wintui_2.7.2_windows_arm64.exe (6.3 MB) |
3d1663a19ffb… |
1/69 | VT report |
wintui_2.7.2_windows_arm64.zip (2.2 MB) |
ce29e78f7fbb… |
0/67 | VT report |
Detections at scan time were single-vendor low-signal ML/reputation noise. Microsoft Defender returned clean across all artifacts.
Full SHA256 hashes:
wintui_2.7.2_windows_amd64.exe:ae1e0601cea12a389cac5f4720bbf280f50a2f89151af6fd2f45fbe12b8c82bdwintui_2.7.2_windows_amd64.zip:32000162a2b2f988960490ad7df9965b8a06be8a42a135f34f0f1db89ac351c6wintui_2.7.2_windows_arm64.exe:3d1663a19ffbb1681d7af9021810722045b50ab2d0b3f3a0dde9b6daafe7ab4bwintui_2.7.2_windows_arm64.zip:ce29e78f7fbb9df937d16807c8cc62eded44afe3172a001e619502c2bebfb04f