Skip to content

fix(edit): treat a --when or empty notes append Things ignores as applied - #382

Merged
ryanlewis merged 2 commits into
mainfrom
fix/377-noop-edit
Oct 4, 2026
Merged

ryanlewis merged 2 commits into
mainfrom
fix/377-noop-edit

Conversation

@ryanlewis

Copy link
Copy Markdown
Owner

Fixes #377

An edit whose value already matches the item, such as --when someday on a Someday item, made Things record no change. edit and project edit then waited the full read-back budget and failed with "edit did not apply". This change compares those flags with the item before waiting, the same way #372 does for moves. If every flag already matches, the item prints at once with exit 0. If only some match, the edit still waits for the ones that change.

What Things does. I tested this against Things 3 on to-dos and projects and checked whether userModificationDate moved:

  • No change recorded: --when anytime or an empty --when on an undated Anytime item, --when someday on an undated Someday item, --when today / evening on an item already in that part of today, today's date on either part of today, and --when tomorrow or a later date on an item already scheduled for that day. An empty --append-notes or --prepend-notes also records no change.
  • Changes: an empty --when on an Inbox or Someday item (it moves to Anytime), and --when someday or anytime on a dated item.
  • Reminders: --when today, evening or today's date clears a reminder, so on an item with a reminder it counts as a change. A later day keeps the reminder. The CLI didn't read reminders before, so I added HasReminder. It runs only for those values.
  • --title, --notes, --tags, --add-tags and --deadline already had this check.

Flags this leaves alone. A --when with a time (18:00, date@time, RFC3339) still waits, because the CLI doesn't read the reminder time. A natural-language phrase still waits too, and so does a date already in the past.

Docs (commands.md, agents.md) and the bundled skill are updated to match.

…lied

An edit whose --when, --append-notes or --prepend-notes leaves the item as
it is made Things record no change, so edit and project edit waited the
full read-back budget and failed with "edit did not apply". Compare those
flags with the item before waiting, as moves already do. Checked against
Things 3 on to-dos and projects; --when today, evening or today's date
clears a reminder, so the reminder is read before calling those a no-op.

Fixes #377
@ryanlewis
ryanlewis merged commit 63a3f9a into main Oct 4, 2026
10 checks passed
@ryanlewis
ryanlewis deleted the fix/377-noop-edit branch October 4, 2026 12:32
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.

edit: a no-op --when or notes edit waits the full budget and fails

1 participant