Commit Graph

9 Commits

Author SHA1 Message Date
Peter Steinberger
49026a5d54 chore(release): v0.1.1 2026-01-11 10:22:21 +00:00
Peter Steinberger
ce8556df82
Merge pull request #3 from daveonkels/fix/swift6-concurrency-violation
Fix Swift 6 strict concurrency violation in fetchReminders
2026-01-11 10:19:33 +00:00
Dave Onkels
7c902d083b Fix Swift 6 strict concurrency violation in fetchReminders
This fixes the "Incorrect actor executor assumption" error that occurred
when running `remindctl list`.

## Problem
The `fetchReminders` method was calling the actor-isolated `item(from:)`
method from inside a non-isolated EventKit completion handler. Additionally,
`EKReminder` objects are not `Sendable`, which violates Swift 6's strict
concurrency checking.

## Solution
Restructured `fetchReminders` to:
1. Extract all needed data from `EKReminder` objects inside the callback
   (where it's safe to access them)
2. Store that data in a local `Sendable` struct (`ReminderData`)
3. Pass the Sendable data across the concurrency boundary
4. Convert to `ReminderItem` on the actor using the safe data

This ensures all actor-isolated code runs on the correct executor and
all data crossing concurrency boundaries is Sendable.

## Testing
- Built successfully with Swift 6.0
- All commands tested: list, show, status
- JSON output verified
2026-01-05 22:55:55 -08:00
Peter Steinberger
9258c16278 docs: add release process and notarization script 2026-01-04 01:53:56 +01:00
Peter Steinberger
d88c59321d docs: add manual test note and tagline 2026-01-03 15:39:05 +01:00
Peter Steinberger
5582c26016 feat: add permissions commands and dev tasks 2026-01-03 13:20:56 +01:00
Peter Steinberger
beb10cebcd ci: use macos-15 runner 2026-01-03 07:17:52 +01:00
Peter Steinberger
d8f9510112 feat: initial remindctl cli 2026-01-03 07:14:56 +01:00
Peter Steinberger
e8a3d14f52
Initial commit 2026-01-03 07:14:05 +01:00