Conversation
fetch_complete compared fetched vCards with listed ones, so a failed addressbook listing (HTTP error, exception, broken XML) was never counted and still yielded complete=True. Unparseable birthdays were counted as fetched, and an empty contact list with a complete fetch deleted every birthday event. - Clear fetch_complete on any listing, download or parse failure; _parse_vcard now raises on unreadable data and returns None only when there is no BDAY. Listing PROPFIND gets a timeout. - Restore main_sync returning False when no contacts were found, so orphan delete never runs with an empty set. - Match orphans on name slug plus month/day, so a changed birthday replaces the old event instead of leaving a duplicate. - Share the UID slug between event creation, lookup and orphan delete. - The retry docstring blamed IPv6: urllib3 tries every resolved address and IPv4 sorts first, so ENETUNREACH is only the last error. Add test_sync.py covering each case. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Tag pushes publish 1.2.3 via type=semver, but Trivy looked for v1.2.3. Take the first tag from docker/metadata-action, which is already lowercased and sanitized. Pin trivy-action to the v0.36.0 commit instead of master, run the new unit tests in the PR job and bump setup-python to v5. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Orphan delete removes calendar data, so it is opt-in. Wired like the other BIRTHDAY_* settings: config, .env.template, docker-compose and README, and logged with the event configuration. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Owner
Author
|
Superseded: the fixes are on main (07b4572) and in anatosun#2. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to aed72ee (orphan delete).
fetch_complete. Before, a failed listing was never counted and still reported complete.main_syncreturnsFalseagain when no contacts were found.BIRTHDAY_DELETE_ORPHANSswitch, defaultfalse, wired like the otherBIRTHDAY_*settings.1.2.3, notv1.2.3), trivy-action pinned to v0.36.0, unit tests run in the PR job.Verified:
python -m unittest test_sync(9 tests, each failing on the previous code), and a dry run against the live iCloud data withdelete()replaced by a recorder: 72 contacts, fetch complete, 0 events would be deleted.🤖 Generated with Claude Code