What's Changed
✨ New features
🪲 Bug fixes
- Run garbage collection when ical4j's
ZoneIdPoolruns empty by @cketti in #2526 - Remove duplicate ez-vcard version from product ID by @rfc2822 in #2534
HTTP-dateparsing error: add regression test, fix by updating dav4jvm by @rfc2822 in #2541- Ignore unsupported recurring task exceptions by @rfc2822 in #2554
🛠️ Refactoring
- [jtx rewrite] Add
AttachmentsBuilderby @cketti in #2506 - [jtx rewrite] Implement unknown properties handler by @sunkup in #2500
- Reduce storage layer API surface: use iterate pattern instead of returning lists by @rfc2822 in #2509
- [Contacts rewrite] Move photo access to AndroidAddressBook by @rfc2822 in #2512
- [jtx rewrite] Implement date handlers by @ArnyminerZ in #2476
- [Contacts rewrite] Create CRUD for raw contacts and groups by @rfc2822 in #2515
- Add RecurrenceFieldsHandler with tests by @sunkup in #2502
- [jtx rewrite] Deduplicate in the handlers by @sunkup in #2522
- [jtx rewrite] Add remaining builders to
JtxObjectBuilderby @sunkup in #2521 - [jtx rewrite] Add
AttachmentsHandlerby @cketti in #2516 - [jtx rewrite] Implement Completed PercentComplete and Priority handlers by @ArnyminerZ in #2514
- [jtx rewrite] Add all handlers into
JtxObjectHandler.entityHandlersby @ArnyminerZ in #2528 - [jtx rewrite] Update
JtxSyncManagerto use new jtx board API by @cketti in #2529 - Migrate WebDAV file access to Ktor by @rfc2822 in #2540
- [Service detection] Add LogCapture for bounded log capture by @rfc2822 in #2543
- Use FileLoggerFactory for service detection logging by @rfc2822 in #2546
- [jtx rewrite] Remove old jtx code by @cketti in #2536
- [ical4j] Use system
ZoneIds for system-known TZIDs by @rfc2822 in #2539 - [jtx rewrite] Implement reminders handler by @ArnyminerZ in #2538
- Migrate service detection to Ktor by @rfc2822 in #2544
- [Ktor] Use Ktor for WebDAV mount creation by @cketti in #2565
- [Ktor] Use Ktor for synchronization by @ArnyminerZ in #2561
- Replace OkHttp cookie handling with Ktor's HttpCookies plugin by @sunkup in #2570
- Update DavException and HttpException imports from okhttp to ktor by @sunkup in #2574
- Migrate HTTP client config from OkHttp to Ktor by @sunkup in #2577
- [ktor] Clean up okhttp in DB, helpers etc by @cketti in #2575
- SyncManager: Don't load all changed objects into memory at once by @cketti in #2581
- Make
LoginValidatorandSyncValidatoruse suspending functions by @cketti in #2578 - Update ical4j to 4.3.0 by @ArnyminerZ in #2583
- Remove OkHttp client builder by @sunkup in #2584
- Migrate many iterate callbacks to Flow by @rfc2822 in #2588
- [.sync] Replace runBlocking with suspend functions by @rfc2822 in #2590
- [Ktor] Remove duplicate OkHttp logging and compression interceptors by @rfc2822 in #2593
- [Ktor] Add User-Agent header via Ktor plugin by @rfc2822 in #2592
- [Ktor] Migrate socket timeout and proxy configuration by @rfc2822 in #2594
✏️ Other changes
- Add Claude Code GitHub Workflow by @rfc2822 in #2530
- [DmfsTask] Fix UID generation by @cketti in #2532
- Update dependencies & bump version to 4.5.16-rc.1 by @rfc2822 in #2597
- Translations update from Hosted Weblate by @weblate in #2598
Full Changelog: v4.5.15-ose...v4.5.16-ose