github viticci/remctl v1.1.1
RemCTL 1.1.1

latest releases: v2.5.0, v2.4.0, v2.3.1...
5 months ago

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 ZREMCDDUEDATEDELTAALERT table 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", and subtasksMoved so 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 remctl
  • clang -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

Don't miss a new remctl release

NewReleases is sending notifications on new releases.