Skip to content

Add vicinae-todo extension#296

Open
UpayanChatterjee wants to merge 4 commits into
vicinaehq:mainfrom
UpayanChatterjee:add-vicinae-todo
Open

Add vicinae-todo extension#296
UpayanChatterjee wants to merge 4 commits into
vicinaehq:mainfrom
UpayanChatterjee:add-vicinae-todo

Conversation

@UpayanChatterjee

Copy link
Copy Markdown

New extension: Todo List (vicinae-todo)

A todo-list extension with natural-language quick add and optional two-way Google Tasks sync.

Commands

  • Manage Todos (view) — tasks grouped into Overdue / Today / Upcoming / No Date / Completed sections, with subtasks, snooze actions (tomorrow / next week), inline edit form, and search.
  • Add Todo (no-view, one text argument) — natural-language quick add: buy milk tomorrow, pay rent on jun 20, finish slides by monday. Date phrases are parsed with chrono-node and stripped from the title.

Google Tasks sync (optional)

  • Fully opt-in: the extension is local-first (LocalStorage) and works without any setup.
  • Users bring their own Google Cloud OAuth Desktop app credential (step-by-step setup in the README); credentials are entered via an in-app form and stored in extension LocalStorage.
  • Auth is the standard OAuth 2.0 PKCE flow for desktop apps with a temporary loopback redirect server on 127.0.0.1. Network access is limited to accounts.google.com, oauth2.googleapis.com and tasks.googleapis.com — no third-party services, no binary downloads.
  • Sync is two-way (last write wins), against a dedicated task list, with tombstone-based deletion propagation and native subtask mapping.

Checks

  • npx vici lint passes, tsc --noEmit clean, builds with npx vici build
  • npm ci verified against the committed package-lock.json
  • Sync engine covered by an integration test against an in-memory fake of the Google Tasks REST API (push/pull/deletes/subtasks/idempotency)
  • Errors surface as toasts (sync failures, missing configuration, OAuth timeouts)

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.

1 participant