diff --git a/.github/releases/v0.11.0.md b/.github/releases/v0.11.0.md new file mode 100644 index 00000000..8402a833 --- /dev/null +++ b/.github/releases/v0.11.0.md @@ -0,0 +1,28 @@ +## `things-cli` v0.11.0 — smaller JSON for agents + +JSON listings are now sized for agents, and there is a new `things doctor` for checking database access. Most of the rest is a refactor of the write and import code, with no change in behaviour, plus a set of fixes to how `--when` times are sent and checked. + +### Behaviour changes + +- **`-j` listings print a default set of fields.** `list` views, `search` and `projects` used to print every field of every row. They now print the fields an agent needs to pick an item and act on it: uuid, title, type, status, start, startBucket, dates, reminder, project, area and heading titles, tags, repeating and checklist progress. Notes, parent uuids, sort indexes and the creation date are left out. On a 94-task list the output drops from 90 KB to 29 KB. `--fields all` prints the full record exactly as before, and `things show -j` is unchanged. (#454) +- **`--fields` (`-f`) picks the keys yourself.** `things anytime -j --fields uuid,title,deadline` prints only those keys, in that order. Unknown names are refused with the `unknown field` token and the list of valid names. (#451, #459) +- **Weekdays and evening times are sent and checked.** `friday` and `friday@9pm` are sent as the date Things gives them (the next such day after today, so `saturday@9pm` on a Saturday is next week) and read back. `evening@6pm` is sent as `evening@18:00` and checked to be in This Evening today. `import` accepts and resolves them too. (#458) +- **A `--when` the CLI cannot check is reported as not confirmed.** An abbreviation such as `fri` or a phrase such as `next friday` that Things understood used to print the item as if confirmed. `add`, `project add`, `edit` and `import` now report it as `not confirmed (when not checked)` (JSON `confirmed: false, reason: when`), exit 0. (#453, #458) +- **Dated `--when` times are sent as a date.** `today@6pm`, `tomorrow@9am` and `@