Skip to content

Harden sync engine, fix completion bug, remove Habitica#2

Merged
salaamdev merged 13 commits intomainfrom
deeq/solidify
Feb 7, 2026
Merged

Harden sync engine, fix completion bug, remove Habitica#2
salaamdev merged 13 commits intomainfrom
deeq/solidify

Conversation

@deeqdev
Copy link
Collaborator

@deeqdev deeqdev commented Feb 6, 2026

Summary

  • Fix completed-task data loss: Completing a task on one provider no longer deletes it from all providers. Completed status now syncs via field-level update, so the task remains visible as "completed" on both sides.
  • Remove Habitica: Stripped the Habitica provider, tests, config, env vars, and docs. Only Google Tasks and Microsoft To Do remain.
  • Server-side filtering: Google provider uses updatedMin, Microsoft uses $filter on lastModifiedDateTime — avoids fetching full task lists when only recent changes are needed.
  • Cleaner reports: Noop actions are counted but no longer emitted in the actions array, keeping sync reports concise.
  • Prior hardening (from earlier commits): delete-wins tombstone propagation, tombstone TTL pruning, lockfile, state backup, state versioning + migration, field-level conflict merge with canonical baseline, HTTP retry/backoff with 429 Retry-After, graceful degradation when a provider is down.

Test plan

  • All unit tests pass (11/11)
  • Typecheck clean
  • Lint clean
  • Build clean
  • E2E tested against live Google Tasks + Microsoft To Do APIs (36 assertions)
  • Manual testing: create/edit/complete/delete tasks and verify sync

salaamdev and others added 11 commits February 1, 2026 02:39
…mize providers

- Completed tasks now propagate status via field-level update instead of
  being tombstoned and hard-deleted from all providers (data loss bug)
- Remove Habitica provider entirely — only Google Tasks and Microsoft
  To Do remain
- Add server-side filtering: Google uses updatedMin, Microsoft uses
  $filter on lastModifiedDateTime to avoid fetching full task lists
- Noops no longer clutter the sync report actions array (still counted)
- Updated all tests, dev scripts, README, and env examples

Co-authored-by: Cursor <cursoragent@cursor.com>
@deeqdev deeqdev changed the title Harden sync engine (delete-wins, TTL tombstones, field-level merges, locking) Harden sync engine, fix completion bug, remove Habitica Feb 7, 2026
@salaamdev salaamdev merged commit 328c830 into main Feb 7, 2026
3 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

Comments