feat(sync): selective push, remote deletion detection, and gcal fix
Problem: `push_pass` updated all remote-linked tasks unconditionally, causing unnecessary API calls and potential clobbering of remote edits made between syncs. `pull`/`sync` never noticed when a task disappeared from remote. `update_event` omitted `transparency` that `create_event` set. Failure counts were absent from sync log summaries. Solution: Introduce `_gtasks_synced_at` in `_extra` — stamped after every successful push/pull create or update — so `push_pass` skips tasks unchanged since last sync. Add `detect_remote_deletions` to unlink local tasks whose remote entry disappeared from a successfully fetched list. Surface failures as `!N` in all sync logs and `unlinked: N` for pull/sync. Add `transparency = 'transparent'` to `update_event`. Cover new behaviour with 7 tests in `gtasks_spec.lua`.
This commit is contained in:
parent
e1923ff2e4
commit
3795999f3d
3 changed files with 280 additions and 17 deletions
|
|
@ -97,6 +97,7 @@ local function update_event(access_token, calendar_id, event_id, task)
|
|||
summary = task.description,
|
||||
start = { date = task.due },
|
||||
['end'] = { date = next_day(task.due or '') },
|
||||
transparency = 'transparent',
|
||||
}
|
||||
local _, err = oauth.curl_request(
|
||||
'PATCH',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue