Repository navigation
feat(mobile): a routine calendar on Home (MOCA-191) - #2235
Conversation
The desktop has a calendar of routine runs; the phone only had a list in Settings. Home now has a calendar button beside Settings that opens a week strip, the way Calendar does it on iPhone, over the chosen day's runs in time order: what ran and how it went, and what is coming. RoutineCalendar (CompanionCore) is a port of the desktop's projectedRoutineItems: receipts for past and active runs (finished history trimmed to 12 per routine, active runs always kept), and projections from each enabled routine's schedule — daily at its time on its weekdays (not before it was created), one-time at its moment, and interval or newer kinds (cron) at the scheduler's persisted next run only. A receipt replaces its projection. Weeks start on Monday, like the desktop's. Tapping a past run opens the thread its results went to; tapping one still to come opens its routine in the existing editor, which is now shared with the Threads & Routines screen. "+" makes a new routine; a sideways swipe turns the week. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Port of the iOS calendar. Home has a calendar button beside Settings that opens a week strip over the chosen day's runs in time order, from the same rules as the desktop's calendar. RoutineCalendar (core) is the java.time port of RoutineCalendar.swift / projectedRoutineItems: receipts for past and active runs (finished history trimmed to 12 per routine), daily projections on their weekdays at their time (not before the routine existed), one-time at its moment, and interval or newer kinds at the scheduler's next run only; a receipt replaces its projection. Weeks start on Monday. Tapping a past run opens its results thread through the notification resolver; one still to come opens the routine editor. "+" makes a new routine, a sideways swipe turns the week. Destination.Calendar survives the saved navigation stack. New strings carry Simplified and Traditional Chinese; the run-status icon and tint are now shared with Threads & Routines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (2)
📒 Files selected for processing (17)
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 6 remain after this review. 📝 WalkthroughWalkthroughRoutine calendar calculations and browsing interfaces are added for Android and iOS. The calendars display scheduled routines and run history, with controls for browsing days and weeks. ChangesRoutine Calendar
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
actor User
participant RoutineCalendarView
participant RoutineCalendar
User->>RoutineCalendarView: Select a day
RoutineCalendarView->>RoutineCalendar: Calculate items for the selected day
RoutineCalendar-->>RoutineCalendarView: Return calendar items
RoutineCalendarView-->>User: Display the selected day's items
Suggested reviewers: Merge Risk: ⚪ Minimal · up to This change adds a routine calendar on Android and iOS Home screens. No merge-blocking issue was found. The author reports passing unit tests on both platforms, though the Android screen has not been opened on a real device or emulator. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The calendar reuses existing access and editing permissions rather than granting new authority. Remaining uncertainty concerns interrupted loading and actions during a change of connected computer. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 22.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 50 functions across 13 files. (4 skipped: 4 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Fixes MOCA-191
Problem
The desktop has a calendar of routine runs. The phones only had a list of routines in Settings, so there was no way to see what ran on a given day, how it went, or what is coming.
Change
Home has a calendar button beside Settings. It opens a week strip, the way Calendar does on iPhone, over the chosen day's runs in time order.
RoutineCalendar(iOSCompanionCore, Androidcore) is a port of the desktop'sprojectedRoutineItems.RoutineCalendarScreenandDestination.Calendar, which survives the saved navigation stack. The run-status icon and tint are now shared with Threads & Routines. New strings carry Simplified and Traditional Chinese.Merge note
This PR and the MOCA-155 PR (#2234) both add strings to
ios/App/Localizable.xcstrings. Whichever merges second needs that catalog re-merged.Test plan
swift testpasses, 861 tests, including the newRoutineCalendartests.:core:test(766 tests) and:app:testDebugUnitTest(1129 tests) pass, including the updatedNavigationTest. The app compiles.Platforms
RoutineCalendarPage); this ports its rules🤖 Generated with Claude Code
Summary by CodeRabbit