Todoist for VoiceOS
by BaskovicP
README.md
# Todoist for VoiceOS
[Croatian version](README.hr.md)
Say **“Show my tasks”** or **“Move selected tasks to tomorrow”**.
The task editing card currently uses Croatian labels. Its controls are:
- An action selector: complete tasks or change their due dates.
- A new due date field, initially set to tomorrow. Accepts `YYYY-MM-DD`,
`D.M.YYYY`, `tomorrow`, and `today`. Croatian date shortcuts are documented in
the [Croatian guide](README.hr.md). The date applies only to rescheduling.
- Task switches, initially off. Select tasks, scroll down, and press **Confirm**.
**Cancel** leaves Todoist unchanged.
The earlier **Task overview** result card is read-only. The agent calls
`today_tasks`, then passes `completion_selection` to `complete_selected_tasks`.
For a postponement request, it sets `action: "reschedule"` and the requested
`new_due_date` in `today_tasks`. For overdue-only requests, it uses `filter: "overdue"`.
The action tool keeps its original MCP name for compatibility but supports both actions.
Tomorrow is resolved to an explicit date using the Mac's local timezone before
showing the card. Rescheduling reads each selected task's latest due data, then
updates its date using the current `/api/v1/sync` `item_update` command. This
preserves the recurrence rule and local time without recording a completion.
Command status is checked individually; HTTP 200 alone is not sufficient.
Completion uses `/api/v1/tasks/{id}/close` and advances recurring tasks normally.
See the [Todoist API reference](https://developer.todoist.com/api/v1/)
and [due-date formats](https://developer.todoist.com/api/v1/#tag/Due-dates).
Each selection page contains up to 20 tasks. Ask for the next task page to
review more; the agent passes `selection_page` to `today_tasks`.
Task selections expire after 30 minutes or a server reload. Submitted lists
cannot be replayed. On partial failure, the error identifies confirmed changes,
the unconfirmed task and unattempted tasks. Request a fresh list before retrying.
## Development
- Edit `taskSelection.ts` and run `npm run build:confirmation` to regenerate
the manifest's native confirmation card.
- Keep runtime code inside `server.ts` and `widgetKit.ts`: Studio does not copy
arbitrary helper files into drafts. `taskSelection.ts` is build-time only.
- Run `npm test` for mocked API, native card bindings, and Studio packaging checks.
- The bulk tool declares background execution; a batch can take over 20 seconds.
- Refresh the integration in VoiceOS after code or manifest changes. Its installed
Actions list must include the task editing action and show **4 actions**. A Studio server restart
alone does not refresh the installed manifest cache.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues