Skip to content

feat(core): resolve ActiveSync task series master for instance updates#173

Merged
TDannhauer merged 1 commit into
FRAMEWORK_6_0from
fix/activesync-recurring-task-completion
Jun 24, 2026
Merged

feat(core): resolve ActiveSync task series master for instance updates#173
TDannhauer merged 1 commit into
FRAMEWORK_6_0from
fix/activesync-recurring-task-completion

Conversation

@TDannhauer

Copy link
Copy Markdown
Contributor

Summary

  • Bridge the ActiveSync importer to Nag so that duplicate dead-occurrence task Adds for a recurring series are applied to the series master instead of creating duplicate tasks.

Motivation

EAS clients (iOS Reminders, Outlook) complete a single occurrence of a recurring task by sending a dead-occurrence Add (often reusing a client id) plus a master Modify. Without a way to map such an Add back to the recurring master UID, the importer either ignored the change or created duplicate rows.

Changes

  • Horde_Core_ActiveSync_Connector::tasks_resolveSeriesMasterUid() — delegate to the tasks API resolver.
  • Horde_Core_ActiveSync_Driver::resolveTaskSeriesMasterUid() — expose the resolver to the ActiveSync importer.

Companion PRs

  • horde/activesync: importer uses resolveTaskSeriesMasterUid() and adds master-change detection.
  • horde/nag: implements resolveActiveSyncSeriesMasterUid() and the recurrence completion logic.

Test plan

  • Existing core test suite unaffected (additive API only).
  • Manual device test (iOS 16.1) via the nag/activesync companion changes: complete instance, uncomplete instance, complete whole series, reopen final instance — no duplicate rows.

Bridge the ActiveSync importer to Nag so duplicate dead-occurrence task
Adds are applied to the recurring series master instead of creating
duplicate tasks.

- Connector::tasks_resolveSeriesMasterUid(): delegate to the tasks API
- Driver::resolveTaskSeriesMasterUid(): expose the resolver to the
  ActiveSync importer
@TDannhauer TDannhauer requested a review from ralflang June 24, 2026 15:07
@TDannhauer TDannhauer merged commit 20a2b14 into FRAMEWORK_6_0 Jun 24, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants