Releases: pozitronik/CloudMailRu
Releases Β· pozitronik/CloudMailRu
Release list
v23022026
Added
- VK ID authorization support.
Changes
- Chores
- Minor bugfixes
Full Changelog: v21022026...v23022026
v21022026
v19022026
New Features
- Directory listing cache β disk-based TTL cache for directory listings, reducing API calls on repeated folder navigations. Configurable TTL and max size via new Cache tab in settings.
- File content cache β disk-based cache for downloaded files, keyed by content hash. Unchanged files are served from local cache instead of re-downloading. Configurable TTL and max size independently from directory cache.
Bug Fixes
- Dialog centering on multi-monitor setups β plugin dialogs (settings, password prompts, etc.) now correctly center relative to the Total Commander window on secondary monitors with different DPI scaling. Previously, forms were shifted proportionally to the DPI
difference between primary and secondary monitors. - Dialog position after cross-monitor drag β fixed forms jumping back to their initial monitor position when Windows fires a DPI change event during cross-display transitions.
Full Changelog: v13022026...v19022026
v13022026
- Changed: extracted shared metadata sync lifecycle into TBaseRemoteMetadataSyncManager using Template Method + Adapter pattern, eliminating code duplication between description and timestamp sync managers.
- Changed: unified timestamp settings into a single TimestampMode enum (Disabled / CloudTime / FullSync), replacing 4 overlapping boolean options. Settings dialog simplified accordingly.
- Added: metadata file visibility and download settings -- descript.ion and .cloud_timestamps files can now be shown in file listings and copied to local disk. Controlled per-file-type via new options in account settings.
- Added: self-contained integration test infrastructure -- tests auto-start/stop the mock server, create accounts, and set up public shares from a single TuchaPath setting. No manual server management required.
- Fixed: timestamp metadata stored local time instead of UTC, causing synchronization errors on DST transitions and timezone changes.
- Fixed: downloaded files now write back actual cloud modification time to metadata, enabling conflict detection on subsequent downloads.
- Fixed: metadata file naming logic and consistency across description and timestamp subsystems.
- Fixed: dialog controls positions and anchors.
Full Changelog: v13022026...v13022026
v1022026
- Added: file version history tab in file properties dialog. View file versions, restore a previous version as a copy, or rollback to it. Paid accounts show hash for each version; free accounts show date/size only. Controlled by a new "Show file history" global setting. Closes #251
- Added: stale-mark connection invalidation after settings dialog closes - settings are now applied immediately without requiring plugin reconnect.
- Fixed: missing timestamp metadata cleanup when a downloaded file was deleted as part of a move operation.
- Fixed: dialog forms positioning and DPI scaling - forms no longer shift after appearing on high-DPI displays.
- Fixed: forms controls anchors and sizes across all dialog forms.
Full Changelog: v09022026...v10022026
v09022026
- Changed: moved file splitting settings from global to per-account with 2GB validation for unpaid accounts. Thus simplifies workflow, makes it clear for the user.
- Fixed #322
Full Changelog: v07022026...v09022026
v07022026
Changes
- Cross-server file transfer: Copy/move files between accounts on different servers via memory stream. Previously, cross-account operations between different servers failed silently because server-side hash dedup and weblink cloning don't work across server boundaries. Now files are downloaded from source and uploaded to destination through an in-memory stream - no temp files, clean progress reporting.
- Encryption logic finally implemented (#5) as it mentioned to be: clean and explicit way.
- Download Links feature removed entirely. Mail.ru API returns time-limited URLs that expire quickly (410 Gone / 403 Forbidden), making permanent direct download links impossible.
Full Changelog: v06022026...v07022026
v06022026
New features
- File timestamp preservation (issue #222) - plugin now stores and restores original file modification times on upload/download via metadata files (.cloud_timestamps) in each cloud directory.
- OpenSSL 3.x support - new SSL backend via IndySecOpenSSL library with TLS 1.3 support.
- Account test buttons - "Test account" and "Test share" buttons in account settings to verify credentials and public share URLs before saving.
- Self-hosted server support improvements - arbitrary logins without @ are now accepted.
Fixes
- Authentication error details are now surfaced on login failure instead of being discarded (previously AuthorizationError stayed empty).
- Form control sizes and positions corrected across multiple dialogs.
Full Changelog: v05022026...v06022026
v05022026
New Features
- Custom Server Support: tucha self-hosted implementation
- Full i18n support via .lng files with TranslationManager (English and Russian translations included)
- Hash File Format: block comments and inline comments after closing quote (Closes #315)
- Debugging: LOG_LEVEL_HTTP (64) bitmask for HTTP request/response tracing
Bug Fixes
- Fixed: possible memory leak in CreateRemoveDirSkippedPath when called twice for the same thread
- Fixed: normalize shard/endpoint URLs with IncludeSlash before path concatenation
- Fixed: assume http:// scheme for server URLs entered without protocol prefix
- Fixed: ServerProfileManager reads from wrong config file, custom server endpoints never resolved
- Fixed: store server profiles in the global INI file, not the accounts INI
Code Quality
- Extended test coverage across multiple modules (ConnectionManager, CloudHTTP, FileStreamExecutor, CloudFileDownloader, CloudFileUploader, TCHandler, PluginSettingsManager, OpenSSL, CipherProfile)
- Removed redundant nil checks
- Added IfEmpty coalesce helper to StringHelper
Full Changelog: v03022026...v05022026