Move Reminders reads to EventKit#105
Conversation
Expose a deterministic metadata-only provider registry through JSON and text output, covering every current Apple-data command family with maturity, source, permission, sensitivity, capability, and polling declarations. Document the v1 compatibility policy.\n\nCloses #89.
Use bounded, permission-aware EventKit reads by default while retaining the schema-checked private store as an explicit degraded fallback. Document the separate future mutation boundary and its rollback limits.
Hermes-omt
left a comment
There was a problem hiding this comment.
Blocking: the current head cannot merge current main. Live GitHub reports mergeable=false, mergeable_state=dirty, and rebaseable=false; a Hermes local merge simulation against main d7f88dc conflicts in Sources/ICloudCLICore/CommandLine.swift and Sources/ICloudCLICore/CommandRunner.swift. Rebase/merge current main, resolve both command paths while retaining this PR's providers list/EventKit changes and main's providers external-manifest changes, then push and wait for fresh CI before requesting rereview. The exact current head passes macOS swift test --disable-sandbox (111 tests), but that does not validate the conflicted integration. Public metadata shows no submitted reviews or inline review comments; auto-merge is enabled.
d8751c5 to
f420392
Compare
Hermes-omt
left a comment
There was a problem hiding this comment.
Blocking: --limit is documented and parsed for both reminders list and reminders lists, but it is only forwarded on the EventKit path. In CommandRunner.swift:115-126, the --degraded-private-store branches call LocalSQLiteInventoryReader.reminders(...) and .reminderLists() without applying options.limit, so either command can return an unbounded result despite an explicit limit. Apply the requested bound after the fallback reader result (or add a limit parameter there) for both commands, and add regression coverage using a fallback SQLite fixture with more than N entries.
Summary
--degraded-private-storeGoverning Issue
Closes #91
Validation
CI GateValidation performed:
swift test --disable-sandbox(111 tests passed)bash scripts/ci/run-fast-checks.sh(passed; 87.78% source line coverage)./.build/debug/icloud-cli reminders authorization --format json(exit 0,not-determined, did not request access)No checks skipped.
Bootstrap Governance
CONTRIBUTING.md,.github/PULL_REQUEST_TEMPLATE.md, anddocs/bootstrap/onboarding.mdwhen applicableNo contributor or PR guidance changed. Auto-merge will be enabled once this stacked PR is ready.
Flow Contract
Flow Merge Readiness
Next actor: an independent reviewer after the provider-manifest dependency merges.
Merge Automation
gh pr merge --auto --squash, or the reason it is unavailable/unsafe is noted belowThis PR contains the issue #89 provider-manifest commit and should remain draft until #101 merges, after which it can be rebased and auto-merge enabled.
Notes