Expose completedDate on tasks #8

Closed
opened 2026-08-09 19:53:08 -05:00 by mcp-gateway · 0 comments
Member

Filed from halfst/mpx-engine #120.

What's needed

A completed_date (or equivalent) on task payloads — when a task or card was marked done.

status already indicates completion (0 unchecked, 2 completed), but there is no timestamp for when it happened.

Why

Sync Operating Spec §4.3 defines the Done-column archive on a three-month clock measured from completion:

Three months after a project completes: prepend a bullet — scope · outcome · people · completion date (newest first) — then delete that project's card from Done.

Two things there need the date: the clock that decides eligibility, and the archive bullet itself, which records the completion date as content.

§10 already lists this as a known blocker:

completedDate for the archive clock (§4.3) — needs a field written when a card moves to Done.

The vault-side workaround would be for the sync to stamp its own completedDate the first run it observes a card in Done. That is strictly worse: it dates the observation, not the completion, so a card completed the day after a sync outage is dated wrong, and the whole thing breaks if the vault record is ever rebuilt.

Acceptance

  • A completion timestamp on tasks and notes where the API exposes one.
  • Present in list and single-get responses.
  • Null/absent for incomplete items rather than zero-valued, so "not done" is distinguishable from "done at the epoch."

Unblocks

Sync Spec §4.3 archive hygiene, and closes a §10 open item.

Filed from `halfst/mpx-engine` #120. ## What's needed A `completed_date` (or equivalent) on task payloads — when a task or card was marked done. `status` already indicates completion (`0` unchecked, `2` completed), but there is no timestamp for *when* it happened. ## Why `Sync Operating Spec` §4.3 defines the Done-column archive on a three-month clock measured from completion: > **Three months after a project completes:** prepend a bullet — scope · outcome · people · completion date (newest first) — then **delete that project's card from Done.** Two things there need the date: the clock that decides eligibility, and the archive bullet itself, which records the completion date as content. §10 already lists this as a known blocker: > **`completedDate` for the archive clock (§4.3)** — needs a field written when a card moves to Done. The vault-side workaround would be for the sync to stamp its own `completedDate` the first run it observes a card in Done. That is strictly worse: it dates the *observation*, not the completion, so a card completed the day after a sync outage is dated wrong, and the whole thing breaks if the vault record is ever rebuilt. ## Acceptance - [ ] A completion timestamp on tasks and notes where the API exposes one. - [ ] Present in list and single-get responses. - [ ] Null/absent for incomplete items rather than zero-valued, so "not done" is distinguishable from "done at the epoch." ## Unblocks Sync Spec §4.3 archive hygiene, and closes a §10 open item.
ethan closed this issue 2026-08-09 20:07:57 -05:00
ethan referenced this issue from a commit 2026-08-09 20:37:52 -05:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
halfst/ticktick-mcp#8
No description provided.