Repository navigation
PhotoReview 2.0.203
·
342 commits
to master
since this release
Requires Windows 10/11 x64 and the .NET 10 Windows Desktop Runtime. Unzip and run PhotoReview.App.exe.
SHA256 of PhotoReview-v2.0.203-win-x64.zip: FBA5A436C2FE888F1F3795939BFCC02D12C8D43D4232B728AAFED1AF622D5692
SHA256 of PhotoReview.App.exe: D055367AE187588CE3E0BDE6B463D78BE697D6505E8E3B5B08DCAA64B8F0ABF6
Changes since v2.0.137
Features
- Zoom card in Settings and Fit / Zoom-to-level in the right-click menu (#134)
- Keyboard zoom anchors at the pointer; arrow keys glide (#177)
- Fit width / Fit height modes, new initial zoom presets, keep zoom across images (#178)
- Optional fade transition when changing photo (#181)
- Redesigned right-click context menu (#183)
PHOTOREVIEW_DIAG_FORCE_LOGto enable AppLog for debugging without config edit (#179)- Change default sort mode, kinetic pan and keyboard zoom anchor (#186)
Fixes
- Unique temp file for window placement save (#145)
- BenchmarkWindow no longer logs a fake Fail row when closed mid-run (F-WIN-8) (#149)
- tools/CI review backlog: timing regex, temp zip, link check, culture (#144)
- Refuse Recycle when the drive's Recycle Bin is off or too small (F-WIN-2) (#154)
- Script audit fixes (idx 29, 38, 39, 48, 66) (#158)
- Late-navigation preload gap, SourceBytesCache evict race, comment drift (#164)
- FileActionController failure status, Copy leaves reads alone, undo restores order position (idx 43, 45, 52) (#168)
- docs-budget
-Checkfails closed (#138) - Undo drops dead Move entries; Diagnostics shows Explorer order; remove legacy Delete combo item (#147)
- Treat any damaged disk-cache entry as a miss; a faulting thumbnail no longer fails the image (#150)
- Readability probe result survives StopForAction (#146)
- Close-during-ownership race and localized folder-open failure (#142)
- LRU touch on disk cache hit; capacity 0 disables preview disk cache (#148)
- Survive unwritable default config on first run; migrate unversioned legacy config (#162)
- A partial user language override keeps shipped nativeName and plural rule (#163)
- Settings live-language refresh, benchmark logging restore, instance re-claim, Process disposal (#165)
- Keep Undo/Permanent flags when retrying a failed journal entry (#161)
- Dispose waits for a write the timer thread already drained (#166)
- IWICBitmapSourceTransform vtable order (F-IMG-6) (#143)
- Benchmark.Cli audit fixes (idx 5, 6, 40) (#157)
- Duplicate batch status survives reload; evict recycled files from RAM caches (idx 2, 14) (#169)
- Shutter text, toggle auto-repeat, drive-root title (idx 3, 33, 64 partial) (#170)
- Report TimedOut, not Canceled, when only the timeout fired (#174)
- Duplicate-check hashing streams oversized files, fewer redundant fades, close cancels hashing (#159)
- Close TOCTOU race in DarkScrollBarRenderingTests' Application creation (#180)
- Resolve unresolved merge-conflict markers left in master by #178 (#182)
- Recovery-dismiss race and stale glide-stop flag (#192)
- Queue rapid Move/Delete/Copy presses instead of dropping them (Q-T1 reversed) (#190)
Performance
- Skip hashing unremovable duplicate size groups; ReviewCatalog.Remove keeps the path index (#167)
- Measure and address UI-thread metadata I/O in navigation/compare/file-actions (#191)
- Measure preload contention and startup sweep cost (#195)
- Benchmark concurrency, preview-cache queue bound, benchmark-dialog enumeration; instance-forward evidence test (#194)
- Measure R15-R18 whole-project review findings (no fix needed) (#199)
Tests
- Arrow-pan step validation and click-zoom level tests (#137)
- Zoom context menu and Settings zoom shortcut summary (#141)
- Unit tests for KeyboardPan.Step with stepFraction parameter (#140)
- Fix flaky InfoOverlayFaultTests.SiblingSearchFault_* (#153)
- Isolate window placement file and caches from the real data dir (#156)
- Fix slow PreviewImageServiceDiskCacheTests (never-persisted 64px fixture) (#152)
- Tighten weak shortcut-validation asserts, cover ManagedIStream (#151)
- Replace source-text tests with behavioral tests (F-TEST-1, option B) (#155)
- Deterministic SourceBytesCache file-changed-while-reading test (#173)
- Make weak tests fail on real breakage (idx 56, 57, 7, 37) (#171)
- Make weak tests fail on real breakage (idx 20, 67, 74) (#172)
- Fix two PerfTraceTests fixtures too small to trigger the downscale path (#188)
- Categorize UI/STA tests, add parallel local test runner (#184)
Docs
- Prune stale archive and refresh status (#136)
- Docs and config audit fixes (idx 19, 59, 60, 73, 77) (#160)
- Never edit, commit or pull in the master checkout (#175)
- Consolidate GUI-check rows; all five PRs merged (#187)
- Carve out a fast-forward-pull exception for Release builds (#189)
- Whole-project review and optimization proposals (#185)
- Correct handoff after review PR merged (#196)
- Split decisions/perf logs into fragment files; stop routine PRs editing shared hub docs (#198)
- Deep-review 289 needs-deep-review ledger rows, fix 2 findings (#200)
- Fix stale doc-comment links; pin/fix navigation notification count (#193)
CI / Tooling
- Release notes list changes since the previous published release (#135)
- Require a green CI check on the tagged commit (#139)
- Run docs/i18n checks in a parallel repo-checks job (#176)
Full Changelog: v2.0.137...v2.0.203