Update progress documents to reflect production readiness work completion.
Changes:
- 00-STATUS.md: Added PHASE 16 (Production Readiness) to phase table
- 01-CHANGELOG-WORK.md: Added production readiness section with runbook and TODO scan details
- Updated last updated dates to reflect completion
Production Readiness Status:
- Runbook: Complete with full mechanical checklist
- TODO Scan: Enhanced with core/docs split (0 core TODOs)
- Verification: All key anchors verified
- Status: Ready for production readiness verification
Complete TODO inventory and analysis of entire codebase.
Findings:
- 199 total markers (23 production code, 176 documentation)
- Zero high-priority production TODOs (all critical items resolved)
- 8 medium-priority Phase 2 enhancements
- 15 low-priority Phase 3/future work items
- TypeScript code has zero TODOs
Report includes:
- Detailed breakdown by file and priority
- Recommendations by timeframe
- Statistics and analysis
- Suggestions for scan script improvements
Files:
- docs/progress/TODO-REVIEW-REPORT.md (new, comprehensive analysis)
- docs/progress/00-STATUS.md (updated with review completion)
- docs/progress/01-CHANGELOG-WORK.md (updated with review entry)
- Mark Batch C as complete (6 methods refactored)
- Update 00-STATUS.md with Phase 11 completion
- Update changelog with total progress (28 methods across all batches)
- Add P2.1 refactoring to completed work section
Total P2.1 progress: 28 methods refactored, ~730+ lines moved to helpers.
Plugin class is now a thin adapter delegating to services.
Refs: docs/progress/P2.1-BATCH-C-STATE.md
- Refactor updateStarredPlans() to delegate to ScheduleHelper
- Refactor getSchedulesWithStatus() to delegate to ScheduleHelper
- Refactor scheduleUserNotification() to delegate to ScheduleHelper
- Refactor scheduleDailyNotification() to delegate to ScheduleHelper (largest refactor)
- Refactor scheduleDualNotification() to delegate to ScheduleHelper
- Document configure() for future TimeSafariIntegrationManager integration
Adds 5 helper methods to ScheduleHelper for orchestration logic.
Reduces plugin class by ~200+ lines of orchestration code.
Batch C complete: 6 methods refactored. Total P2.1 progress: 28 methods.
Refs: docs/progress/P2.1-BATCH-C-STATE.md
- Refactor checkStatus() to delegate to NotificationStatusChecker
- Refactor getNotificationStatus() to delegate to NotificationStatusChecker
- Refactor checkPermissionStatus() to delegate to PermissionManager
- Add service instance variables and initialization in load()
- Defer getExactAlarmStatus() (requires complex service initialization)
Reduces plugin class complexity by ~130 lines.
Services already exist - this is delegation, not extraction.
Refs: docs/progress/P2.1-BATCH-1.md
Updated:
- docs/progress/01-CHANGELOG-WORK.md: Added TypeScript error fix entry
- docs/progress/00-STATUS.md: Added TypeScript error fix to completed items
- docs/progress/03-TEST-RUNS.md: Added test run entry for TypeScript fix verification
All progress docs now reflect the successful resolution of the TypeScript
JSDoc parse error.
Moved legacy iOS test harness from ios/App/ to test-apps/ios-app-legacy/
Rationale:
- Test harness should not be in published package tree
- Active test app remains at test-apps/ios-test-app/
- Legacy test harness preserved for reference
Verification:
- Confirmed ios/App no longer appears in npm pack --dry-run
- Build passes successfully
- Package structure cleaner
Progress Docs:
- Updated 00-STATUS.md: marked P1.5b complete
- Updated 01-CHANGELOG-WORK.md: added P1.5b completion entry
P2.1: iOS Schema Versioning Strategy
- Added SCHEMA_VERSION constant and checkSchemaVersion() method in PersistenceController
- Version stored in NSPersistentStore metadata (observability contract, not migration gate)
- CoreData auto-migration remains authoritative; version mismatches logged, not blocked
- Documentation added to ios/Plugin/README.md with migration contract
P2.2: Combined Edge Case Tests
- Added 3 resilience test scenarios to DailyNotificationRecoveryTests.swift:
- test_combined_dst_boundary_duplicate_delivery_cold_start()
- test_combined_rollover_duplicate_delivery_cold_start()
- test_combined_schema_version_cold_start_recovery()
- All tests labeled with @resilience @combined-scenarios comments
- Tests verify idempotency and correctness under combined stressors
P2.3: Android Combined Tests Design
- Created P2.3-DESIGN.md with scope, invariants, and acceptance criteria
- Created P2.3-IMPLEMENTATION-CHECKLIST.md with step-by-step execution plan
- Design ready for implementation to achieve parity with iOS P2.2
Documentation Updates
- Fixed parity matrix: iOS invalid data handling now correctly shows "✅ Recovery tested" with test references
- Updated progress docs (00-STATUS.md, 01-CHANGELOG-WORK.md, 03-TEST-RUNS.md, 04-PARITY-MATRIX.md)
- Updated P2-DESIGN.md to reflect P2.3 scope (Android combined tests)
- Updated SYSTEM_INVARIANTS.md baseline tag references
Baseline Tag
- Created and pushed v1.0.11-p2-complete tag
- Tag represents P2.x completion (schema versioning + combined resilience tests)
All invariants preserved. CI passes. Tests runnable via xcodebuild on macOS.