Date: 2026-06-17
- ConfigurationEditor: Sensitive fields are now stored encrypted in the config file using field type
P: per-postbox fields ImapPassword, AzureClientSecret, DvApiPassword, and DvApiSessionGuid, plus the global fields SmtpPassword and ActiveDirectoryPassword. Existing plain-text values are migrated automatically on the next start; values that were already manually encrypted are detected and left untouched.
- ConfigurationEditor: Password fields now show a show/hide toggle button directly in the field grid.
- ConfigurationEditor: Built-in documentation site — the Help button opens a rendered Markdown docs site covering all components.
- ConfigurationEditor: The config file dialog is always shown on startup with a pre-populated path suggestion, making first-time setup clearer.
- Release workflow:
Release.ps1 now automatically pushes the release commit and creates a GitHub Release, using the matching release note as the release body.
- GraphSync: Improved logging in exception handlers; added null guards to prevent silent failures during folder synchronization.
- EMailArchiver: Duplicate error filenames are now detected and deduplicated to avoid overwriting earlier error records.
- EMailArchiver: Config is validated on load; invalid entries are logged rather than silently ignored.
- EMailArchiver: IMAP exceptions are now logged with full detail.
- ADSync: Input validation added to sync operations; improved log messages for easier diagnostics.
- EMailArchiver: Fixed docuvita session invalidation in
ReadProxyAddressesFromDocuvita that caused intermittent upload failures.
- EMailArchiver: Fixed a flag that prevented the config file from being saved correctly after a migration; config migration is now wrapped in a try-catch to prevent service startup failures.
- EMailArchiver: Fixed several critical and high-severity issues from code review: null reference exceptions, resource handle leaks, and error propagation in the EWS/Exchange path.
- ADSync: Fixed null reference exceptions in multiple sync operations; exception stack traces are now preserved when re-thrown.
- ADSync: Fixed race conditions and resource leaks in
ActiveDirectoryObjectReader and docuvitaHost.
- ConfigurationEditor: Fixed config file path discovery in Release builds and corrected the backup file save path.
- Maintainer: Fixed resource leaks and exception handling in Maintainer.Worker; fixed a CS0012 compiler error in the disposal pattern.
- log4net upgraded 3.0.0 → 3.3.0 (fixes CVE-2026-40021).
- MailKit / MimeKit upgraded 4.7.x → 4.16.0 (fixes CVE-2026-30227 and CVE-2026-41319).
- OpenMcdf / MsgReader upgraded to current versions (fixes CVE-2026-45785).
- All assemblies now use CalVer
yy.MM.dd.nn versioning (e.g. 26.06.17.01) via a shared SharedAssemblyVersion.cs; version is set once per solution and consistent across all services.
- Installer: Added missing DLLs (
dvs.Common.Configuration.dll, GraphHelper dependencies) to the EMailArchiver MSI; fixed a duplicate component GUID.
- Installer (ADSync): Fixed source paths and removed the obsolete
dvs.configuration.dll component.
- Release workflow:
Release.ps1 now commits the matching docs/release-notes/{version}.md together with the version bump, so every release in git has its note attached.
- Maintainer.Config migrated from WinForms to WPF with full MVVM pattern.
WpfConfigurationEditor renamed to ConfigurationEditor throughout.
- ConfigurationEditor refactored:
SetTrackedCollection helper, ExpanderItem decoupled from view model, improved error handling.
- log4net migrated from a local DLL reference to the official NuGet package;
fd.tools DLLs moved to the shared C:\git\bin\Managed staging area.
- Debug output paths isolated per project to prevent DLL version conflicts during local development.
- 112 new pure-logic unit tests added (168 total); legacy integration tests requiring live endpoints quarantined.
- Unused NuGet packages removed; unmanaged resources audited and disposed correctly.