Skip to content

feat: Add Todoist sync, matugen theming, and fix the todo list loader - #4

Merged
zaeemali272 merged 2 commits into
zaeemali272:mainfrom
ZENOVA-WEB:main
Aug 17, 2026
Merged

feat: Add Todoist sync, matugen theming, and fix the todo list loader#4
zaeemali272 merged 2 commits into
zaeemali272:mainfrom
ZENOVA-WEB:main

Conversation

@ZENOVA-WEB

Copy link
Copy Markdown
Contributor

No description provided.

zaeemali272 and others added 2 commits August 17, 2026 18:59
Todoist
- New TodoistService + scripts/todoist_sync.py: offline-first two-way sync
  against Todoist API v1 (rest/v2 and sync/v9 are both 410 Gone). Work done
  offline is queued and replayed; Todoist wins on conflict.
- Fix the todo list rendering empty: the loader used SplitParser, which
  delivers one line per callback, so a pretty-printed todo.json made the
  first callback receive "[", JSON.parse throw, and the list fall back to an
  empty "General" tab while the data sat intact on disk. Uses StdioCollector
  now, and a corrupt file keeps what is on screen rather than blanking it.
- Fix task identity being lost: rows were rebuilt as bare {task, completed},
  dropping todoist_id, so one checkbox click would have made the next sync
  push a duplicate of the whole tab. Deletes now leave a tombstone (without
  one the next pull resurrects the task) and edits mark themselves dirty.
- Keep locally-completed tasks that Todoist has closed: /tasks returns active
  tasks only, so "absent" would otherwise read as "deleted".

Theming
- matugen generates the palette to ~/.cache/zenith/colors.json; Colors.qml
  watches it, so the bar and menus recolour in place with no restart.
- zenith-theme.sh generates its own matugen config (the missing
  ~/.config/matugen/config.toml was why theming silently did nothing), and
  stages -> validates -> installs so a bad template can no longer leave
  Hyprland with an unparseable scheme.

Repo hygiene
- Untrack app_usage.json and events.json; .gitignore alone never untracks.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@zaeemali272
zaeemali272 merged commit fad49fa into zaeemali272:main Aug 17, 2026
1 check failed
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