- ReadingRuntimeAdapter: clearExportedEvents is void, return count separately
- ActivityViewModel: FocusItemServicing.list→listAll, add days/type? params
- ActivityViewModelTests: update mocks to match new protocol signatures
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add 5 service protocols (ActivityServicing, FocusItemServicing,
ReadingContinueServicing, LearningStatusServicing)
- ViewModel init supports DI with defaults to .shared
- Mock services for all 10 parallel calls in loadAll/refresh
- 20 tests: initial state, summary/focus/heatmap/streak/trends/recos,
learningSummary/readingTrend/continueReading/recentRecords,
errorMessage on nil summary, refresh clears error
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>