Back to Freedom.Tech Back
All DAVx5 releasesAll versions
Release Sun, Sep 27, 2026 5 min read

DAVx5 4.5.20-ose

Original release notes

What's Changed

New features

  • [Debug info screen] Show links to helpful resources by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2684

Bug fixes

  • [jtx Board] Filter known properties from OTHER properties in VALARMs by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2716
  • Fix sync always-pending issue (again) by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2721
  • Update dav4jvm to fix Digest auth by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2735
  • Propagate Sync Cancellation and Exceptions Correctly by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2813
  • [Push] Add content-update trigger and content-encoding by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2860

CI/CD

  • [CI] Bump stefanzweifel/git-auto-commit-action from 5 to 7 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2714
  • [CI] Bump gradle/actions from 6 to 6.2.0 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2742
  • [CI] Bump gradle/actions from 6.2.0 to 6.3.0 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2793
  • Add workflow to mirror english original strings to davx5-translations by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2799
  • Test string mirror workflow by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2804
  • Cleanup test string by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2805
  • Update string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2819
  • Revert string update for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2822
  • Add string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2829
  • Delete string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2830
  • Use translations from the l10n submodule by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2831
  • Update error message for missing translations directory by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2845
  • Move update contributors logic to submodule by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2861
  • [CI] Bump actions/setup-java from 5 to 6 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2865
  • Disable Dependabot cooldown for l10n submodule by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2869
  • Consolidate CI test workflows into a single workflow file by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2896

Other changes

  • [Release notes] Remove refactoring category; include Dependabot again by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2713
  • Bump the app-dependencies group with 3 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2715
  • Update dav4jvm to 4.0.0, add Ktor deadlock test by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2712
  • [Coroutines] Check WebDAV package by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2703
  • Update JtxBoard min version to 2.17.00 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2711
  • AccountId refactoring (part 3) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2644
  • AccountId refactoring (part 4) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2722
  • AccountId refactoring (part 5) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2724
  • AccountId refactoring (part 6) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2725
  • [Sync] Take settings snapshot for synchronization by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2718
  • AccountId refactoring (part 7) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2727
  • Clean up applicationScope usage by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2723
  • AccountId refactoring (part 8) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2730
  • Unify DAO method naming and convert easy blocking calls by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2736
  • Simplify SyncException handling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2737
  • [UI] Debug info: clarify wording of 5xx "contact server support" message by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2733
  • Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2743
  • [SyncManager] Extract/reorganize some methods by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2744
  • AccountId refactoring (part 9) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2732
  • [SyncManager] Simplify localCollection argument by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2745
  • [SyncManager] Simplify SyncResult members by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2746
  • AccountId refactoring (part 10) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2748
  • Extract SyncPendingProvider from SyncFrameworkIntegration by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2754
  • AccountId refactoring (part 11) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2758
  • [SyncManager] Change syncRemote() to process Flow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2751
  • Create davCollection in Syncer instead of SyncManager by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2752
  • Introduce remote WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2757
  • [SyncManager] Move capability querying into WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2759
  • [SyncManager] Move querySyncState() responsibility to WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2764
  • [SyncManager] Move deleteMember to WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2767
  • [SyncManager] Move upload PUT logic into WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2773
  • AccountId refactoring (part 12) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2771
  • [SyncManager] Move multi-get into WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2777
  • [SyncManager] Rewrite syncRemote() as a flow pipeline by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2778
  • [SyncManager] Split syncRemote() into processListing() / processChanges() by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2779
  • [SyncManager] Extract listFilteredMembers() into WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2774
  • [SyncManager] Extract listChanges by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2781
  • [VCardParser] Clarify handling of invalid vCards by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2785
  • [SyncNotificationManager] Take notification tag ownership by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2787
  • AccountId refactoring (part 13) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2776
  • [DI] Inject AccountManager via Hilt by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2789
  • Fix LocalAddressBookStoreTest by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2795
  • [SyncManager] Extract SyncExceptionHandler to own sync error handling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2783
  • Update PR template for AI contributions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2798
  • Separate AccountSettings from actual storage by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2749
  • [SyncManager] Extract upload step into own method by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2800
  • AccountId refactoring (part 14) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2806
  • AccountId refactoring (part 15) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2807
  • AccountId refactoring (part 16) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2809
  • AccountId refactoring (part 17) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2810
  • Place calendar components after timezone definition by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2816
  • Allow to store AccountSettings in DB by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2803
  • Bump the app-dependencies group across 1 directory with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2818
  • Move Local* classes to resource.local package by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2832
  • Throw exception when retrying an upload by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2834
  • Bump com.squareup.okhttp3:okhttp from 5.4.0 to 5.5.0 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2836
  • Split AGENTS.md for core/synctools; add instructions for blocking/suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2840
  • Test all AccountSettingsStore implementations by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2835
  • Make LocalResource.clearDirty() suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2839
  • Make LocalResource.updateUid() suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2841
  • Make LocalCollection.markNotDirty() and forgetETags() suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2843
  • Make LocalResource.updateFlags() suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2844
  • Make LocalResource.updateSequence()/deleteLocal()/resetDeleted() suspend by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2846
  • Treat 502 (BadGateway) as soft error by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2858
  • Bump the app-dependencies group with 10 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2855
  • Only use dependencies label for dependabot submodule updates by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2864
  • Bump the app-dependencies group with 3 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2866
  • Move fastlane metadata to translations by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2863
  • [l10n] Bump l10n from b61ffc6 to 955f1e4 by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2854
  • Disable dependenciesInfo block for reproducible builds by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2871
  • Do not exclude at.bitfire.** from optimization/shrinking by @mbiebl in https://github.com/bitfireAT/davx5-ose/pull/2862
  • Bump the app-dependencies group across 1 directory with 4 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2874
  • Add debug signing config option for release builds by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2875
  • Distinguish empty path from literal slash in Url.lastSegment by @xhon-pelushi in https://github.com/bitfireAT/davx5-ose/pull/2797
  • Ensure Collection.url and HomeSet.url end with a slash by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2881
  • Bump org.slf4j:slf4j-jdk14 from 2.0.18 to 2.0.19 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2883
  • Wrap RemoteException when using BatchOperation by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2884
  • Improve failed resource detection page by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2885
  • Fix opaque log message for account configuration by @mbiebl in https://github.com/bitfireAT/davx5-ose/pull/2879
  • [l10n] Bump l10n from 955f1e4 to 5f723eb by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2894

New Contributors

  • @xhon-pelushi made their first contribution in https://github.com/bitfireAT/davx5-ose/pull/2797

Full Changelog: https://github.com/bitfireAT/davx5-ose/compare/v4.5.19-ose...v4.5.20-ose