Added
- Added app theme switching with system, light, and dark display modes.
- Added window state memory so Picser can preserve window size and sidebar visibility after reopening.
Changed
- Improved language switching so settings, keyboard shortcuts, and related interface text refresh immediately after changing the app language.
- Improved the subscription dialog by restoring the native close button and restructuring the “Restore Purchase / Refresh Receipt” area for clearer actions.
- Improved purchase information display so subscription and lifetime purchase names are easier to distinguish.
- Updated the Terms of Use and Privacy Policy links to the official website URLs.
Fixed
- Fixed the About page not refreshing its text after switching languages.
- Fixed unstable window reuse and foreground activation when opening external files, with Picser now trying to reuse the current main window.
- Fixed deletion retries not preserving the previous deletion mode and orphan tag handling options after a batch deletion failure.
- Fixed tag database migration stability when migrations run repeatedly or are interrupted, reducing upgrade failure risk.
Performance
- Optimized image zoom container refreshes by quantizing viewport size changes, reducing unnecessary view updates and improving large-image browsing smoothness.
- Optimized concurrent drag-and-drop opening and ordering recovery to reduce data races and improve batch import stability.
- Optimized image disk cache metadata writes to reduce background overhead.
- Optimized purchase entitlement persistence and keychain writes to reduce unnecessary state churn.