- Shipped
- September 17, 2026 at 4:31 AM UTC
- Author
- Kamo
- Commit
- 0e14d46
The org CalDAV/CardDAV tab sent all four server fields on every save of an Apple or custom server. The fields never show what is stored, so they were empty, and saving a sync switch overwrote the stored address, username and password with blanks. It now sends only non-empty fields (trimmed, except the password). The service merges them into what it holds (emailservice, same change set). The Contacts page's source dialog could not edit the credentials of a source it creates: only the old spellings (APPLE_ICLOUD, GENERIC_CALDAV/CARDDAV/BOTH) were editable, not APPLE or GENERIC_DAV. Both are now editable, and the edit still sends only what was typed. A stored password is bound to the server and account it was saved for, and the service refuses to reuse it for a new one. So when credentials are on file and a new address or username is typed without the password, both forms mark the password field required (the existing common.validation.required) and disable Save. ContactIntegration gains the hasCredentials flag the service already returns. No new strings. **************** and **************** pin each case; all five fail against the previous components.