Skip to content

PhotoReview 2.0.203

Choose a tag to compare

@github-actions github-actions released this 27 Sep 12:51
· 342 commits to master since this release
abbc056

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_LOG to 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 -Check fails 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