refactor: consolidate reminder and list rendering - #84
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 13, 2026, 2:33 AM ET / 06:33 UTC (Revision 2). ClawSweeper reviewWhat this changesShares reminder row formatting and output dispatch, combines identical format cases, and moves list rendering into a separate extension while preserving CLI output. Merge readiness✅ Ready for maintainer review This remains a useful, focused cleanup absent from current main. No actionable correctness or security defect was found, and the collaborator-authored PR is protected from automatic closure. Priority: P3 Review scores
Verification
How this fits togetherremindctl reads Apple Reminders through EventKit and passes reminder records and list summaries to its CLI renderer. The renderer converts those records into readable text, tables, tab-separated output, JSON, or counts. flowchart LR
A[Apple Reminders] --> B[Command handlers]
C[Output flags] --> D[Format selection]
B --> E[Reminder and list renderer]
D --> E
E --> F[Terminal text or structured output]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Keep a shared reminder-row formatter and separate list-rendering extension while retaining the existing CLI output contract. Do we have a high-confidence way to reproduce the issue? Not applicable: this refactor addresses duplicated implementation rather than a reported runtime failure; the duplication is directly visible on main. Is this the best way to solve the issue? Yes: extracting the identical row expression and reusing existing dispatch is a narrow solution that preserves each format's established behavior. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against 1b71fb003087. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
Reminder and search rendering duplicated the same row formatting, while one large renderer needed a SwiftLint type-length suppression. Share the row formatter and non-standard dispatch, group identical format cases, and move list rendering into its own extension.
Validation: isolated Codex autoreview is scoped-clean through P2; strict Swift/shell/workflow lint and all 92 tests pass; RemindCore coverage remains 93.8% (898/957); release build passes. The local Homebrew Bash stalled preparing the coverage script's Python heredoc; the unchanged script passed with
/bin/bash.Live proof: built before/after binaries produced 40 byte-identical outputs against the same disposable synthetic EventKit list: show, search, info, export, repeated list creation, status, and link across standard/table/plain/JSON/quiet, plus help/version/bash/zsh completion. The fixture included timed/repeating and completed reminders, priority, notes, and URL. All synthetic data was removed.
Exact independent head:
462ee9c9659b357aad322e106b115258a43bee99. CI. The identical reviewed patch was rebased onto main without the other cleanup commits (stable patch ID unchanged), then local gates and live binary comparisons were repeated. Isolated Codex autoreview is scoped-clean through P2.