Skip to content

Commit e78f5ce

Browse files
committed
Merge remote-tracking branch 'pr/1883'
# Conflicts: # docs/releases/unreleased.md # src/components/BatchContextMenu.ts # src/components/TaskContextMenu.ts # tests/services/TaskCalendarSyncService.test.ts
2 parents c66f8cc + ce93661 commit e78f5ce

12 files changed

Lines changed: 1619 additions & 142 deletions

docs/releases/unreleased.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Example:
8383
- ([#1374](https://github.com/callumalpass/tasknotes/issues/1374)) Recognized status and priority labels entered through Obsidian Properties or Bases as their configured TaskNotes values. Thanks to @phortx for reporting this.
8484
- ([#1373](https://github.com/callumalpass/tasknotes/issues/1373)) Parsed numeric natural-language dates with the configured calendar locale, so `en-GB` treats `11/06/2026` as 11 June instead of November 6, and `YYYY/MM/DD` works consistently. Thanks to @AleMunin for reporting this and @imsuck for the follow-up.
8585
- ([#1370](https://github.com/callumalpass/tasknotes/issues/1370)) Prevented recurring task series from being queued for auto-archive when their parent status uses auto-archive, so ongoing recurring tasks are not moved away after completing an occurrence. Thanks to @Jomo94 for reporting this and @martin-forge for the follow-up discussion.
86+
- ([#1367](https://github.com/callumalpass/tasknotes/issues/1367)) Made recurring task completion counts use the total expected instances for finite `COUNT` or `UNTIL` recurrences, and stopped showing a made-up percentage for unbounded recurrences. Thanks to @saurinni for reporting this.
8687
- Made TaskNotes Kanban drags show a lightweight held-card preview, so the dragged card remains easy to track while the source column opens the drop slot.
8788
- ([#1423](https://github.com/callumalpass/tasknotes/issues/1423)) Refreshed TaskNotes Bases views when subtasks are deleted, so expanded project cards drop removed subtasks and stop showing project controls when the last subtask is gone. Thanks to @normenmueller for reporting this.
8889
- ([#1419](https://github.com/callumalpass/tasknotes/issues/1419)) Kept custom user field name, key, and default-value edits in Task Properties settings when closing settings without first blurring the field. Thanks to @s33a for reporting this and @kacoroski for the follow-up.
@@ -200,3 +201,4 @@ Example:
200201
- Strengthened local CSS linting to catch unscoped selectors, unknown CSS, and fixed-position overlays before review.
201202
- Reduced false-positive plugin review warnings by making background auto-export and auto-archive schedulers non-overlapping and tightening type/string conversion paths.
202203
- ([#1882](https://github.com/callumalpass/tasknotes/pull/1882)) Made Google Calendar task descriptions use mobile-friendly plain text for Obsidian links and display labels for wiki-style project/context links. Thanks to @martin-forge for the contribution.
204+
- ([#1883](https://github.com/callumalpass/tasknotes/pull/1883)) Improved Google Calendar task sync recovery so failed deletions, offline sync requests, reconnects, and quick create/update races are retried more reliably. Thanks to @martin-forge for the contribution.

src/bootstrap/pluginBootstrap.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,10 +315,11 @@ export function initializeServicesLazily(plugin: TaskNotesPlugin): void {
315315
plugin.taskCalendarSyncService = new (
316316
await import("../services/TaskCalendarSyncService")
317317
).TaskCalendarSyncService(plugin, plugin.googleCalendarService);
318+
plugin.taskCalendarSyncService.startRecoveryQueueProcessor();
318319

319320
plugin.registerEvent(
320321
plugin.emitter.on("file-deleted", (data: FileDeletedEventData) => {
321-
if (!plugin.taskCalendarSyncService?.isEnabled()) {
322+
if (!plugin.taskCalendarSyncService) {
322323
return;
323324
}
324325

src/services/GoogleCalendarService.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,9 @@ export class GoogleCalendarService extends CalendarProvider {
649649

650650
// Build update payload
651651
const payload: GoogleCalendarEventPayload = { ...currentEvent };
652+
if (payload.status === "cancelled") {
653+
payload.status = "confirmed";
654+
}
652655

653656
// Support both 'title' and 'summary'
654657
if (updates.title !== undefined || updates.summary !== undefined) {

0 commit comments

Comments
 (0)