v1.4 — Response Shaping & Batch Processing
Added
- Response stripping — null/
[]/""/false/"none"auto-removed from entity fields;availabilityand envelope fields always preserved includeonlist_tasks/list_projects— add field groups to defaults:notes,metadata,hierarchy,time,*(projects also:review)onlyonlist_tasks/list_projects— return exactly named fields;idalways included; mutually exclusive withincludelimit: 0returns count-only:{items: [], total: N, hasMore: ...}- Batch processing —
add_tasks/edit_tasksaccept up to 50 items per call with per-itemstatus/warnings;add_tasksbest-effort,edit_tasksfail-fast actions.note.appendonedit_tasks— appends text with\nseparator; whitespace-only is a no-opactions.note.replaceonedit_tasks— replaces full note;nullor""clears
Changed
effective*→inherited*across all tool responses (6 fields: dueDate, deferDate, plannedDate, flagged, dropDate, completionDate) — breaking renameinherited*fields now only appear when truly inherited from an ancestor — self-values stripped; per-field aggregation: min (dueDate), max (deferDate), OR (flagged), first-found (others)- Top-level
noteremoved fromedit_tasksinput — useactions.note.append/actions.note.replace— breaking
Full CHANGELOG: https://github.com/HelloThisIsFlo/omnifocus-operator/blob/main/CHANGELOG.md