Skip to content

fix: report hidden reminders exactly like missing ones - #9

Merged
k3KAW8Pnf7mkmdSMPHz27 merged 1 commit into
mainfrom
fix/hidden-reminder-errors
Sep 23, 2026
Merged

k3KAW8Pnf7mkmdSMPHz27 merged 1 commit into
mainfrom
fix/hidden-reminder-errors

Conversation

@k3KAW8Pnf7mkmdSMPHz27

Copy link
Copy Markdown
Owner

Updating or deleting a reminder that exists but sits outside the allowed lists used to fail with a different message from a reminder that doesn't exist:

Case Message before Message now
Missing reminder Reminder not found: <id> Reminder not found: <id>
Reminder outside the allowed lists Reminder not found or not accessible Reminder not found: <id>

The different wording let a caller confirm that a guessed ID exists outside its allowed lists. b351a87 closed this for single-reminder lookups, which return nil either way, but not for update and delete. A code comment said the two messages must match, and they didn't. #1's description and the v2.0.0 draft notes both overstated the fix; the published v2.0.0 notes claim only that the list ID no longer leaks, which is true.

Change

  • reminderAccessDenied now carries the caller's reminder ID, and it shares one errorDescription arm with reminderNotFound. The messages are identical by construction rather than by a comment asking them to match.
  • The test now compares the two messages directly, for two ID shapes. The old test compared the denied message against a fixed string, which is how the difference got through.

Verification

  • The test catches the bug. With the old wording put back (under the new structure), the test fails for both IDs. With the fix, it passes.
  • Full suite. swift test passes all 165 tests (139 + 26) with complete strict-concurrency checking and warnings-as-errors.

Release

Merging this releases v2.0.1 automatically through semantic-release: a fix: title releases a patch. It will be the pipeline's first real release.

Updating or deleting a reminder outside the allowed lists failed with
"Reminder not found or not accessible", while a reminder that doesn't
exist failed with "Reminder not found: <id>". The different wording let a
caller confirm that a guessed ID exists outside its allowed lists.

reminderAccessDenied now carries the caller-supplied ID and shares one
errorDescription arm with reminderNotFound, so the two messages are
identical by construction. The test compares the two messages directly;
the old one checked the denied text against a fixed string, which is how
the difference got through.
@k3KAW8Pnf7mkmdSMPHz27
k3KAW8Pnf7mkmdSMPHz27 merged commit 50f212f into main Sep 23, 2026
3 checks passed
@eventkit-tap-bumper

Copy link
Copy Markdown

🎉 This PR is included in version 2.0.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@k3KAW8Pnf7mkmdSMPHz27
k3KAW8Pnf7mkmdSMPHz27 deleted the fix/hidden-reminder-errors branch October 6, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant