RemCTL 1.1.1 adds early macOS 27 Golden Gate support and fixes parent-reminder list moves when subtasks are attached.
Features and compatibility:
- Adds early compatibility hardening for macOS 27 Golden Gate Reminders database changes.
- Exposes optional Groceries cache and predefined-section metadata when those columns exist.
- Falls back to the normalized
ZREMCDDUEDATEDELTAALERTtable for Early Reminder readback/removal if the older reminder blob is absent. - Documents the macOS 27 schema review and local compatibility findings.
Fixes:
- Fixes #13: moving a parent reminder with subtasks to another list no longer fails with
com.apple.reminderkit error -3002. - Ordinary reminders still move through the existing EventKit bridge path.
- Parent reminders with subtasks now use a verified ReminderKit clone-delete fallback: RemCTL clones the parent and child reminders into the destination list, verifies the cloned subtask count, then deletes the original.
- JSON output for that fallback includes the new numeric
id,oldId,method: "clone-delete", andsubtasksMovedso scripts can continue with the returned ID. - Mixed “move plus other edits” on parent reminders with subtasks is rejected before writing; move first, then edit the returned cloned reminder ID.
Verified with:
python3 -m unittest discover -s tests(202 tests)python3 -m py_compile remctlclang -fobjc-arc -O -F/System/Library/PrivateFrameworks -framework Foundation -framework AppKit -framework ReminderKit -o /tmp/remctl-private-test remctl-private.m- Live reproduction of #13 with disposable source/target lists and a parent reminder with two subtasks
- Live ordinary reminder list-move smoke test
- Live macOS 27 EventKit edit matrix
- Live macOS 27 private ReminderKit matrix
./install.sh --doctor- installed
remctl --version->1.1.1 - installed-file comparison for
/Users/viticci/bin/remctl