Created comprehensive TODO classification document: - Classified 34 TODOs into Must Ship (7), Nice-to-Have (2), Future (19), Stubs (3) - Identified critical items: rolling window logic, TTL validation, database operations - Documented Phase 2/3 deferred features - All TODOs are in iOS code (Android has 0) Next steps: - Create GitHub issues for 7 Must Ship items - Document Phase 2 features in planning doc - Update code comments with issue links Verification: - All 34 TODOs classified ✅ - Critical items identified ✅
5.7 KiB
TODO Classification
Purpose: Classify all TODOs/FIXMEs/HACKs into actionable categories
Owner: Development Team
Last Updated: 2025-12-23
Status: active
Classification Categories
Must Ship (Critical)
Definition: Items that affect correctness, rate-limits, TTL, scheduling, or core functionality. Must be completed before production release.
Action: Create GitHub issues, assign milestones, prioritize in sprint planning.
Nice-to-Have (Enhancement)
Definition: Performance metrics, statistics, diagnostics, or quality-of-life improvements. Non-blocking for core functionality.
Action: Add to backlog, prioritize based on user feedback and metrics.
Future (Phase 2)
Definition: Planned features or architectural improvements that are explicitly deferred. Not wired into current runtime code paths.
Action: Move behind feature flags, document in planning docs, or clearly mark as "not implemented yet".
TODO Inventory
Total TODOs Found: 34
Must Ship (Critical) - 6 items
These affect correctness, rate-limits, TTL, or core functionality:
-
ios/Plugin/DailyNotificationRollingWindow.swift:299-return 0 // TODO: Implement actual counting logic- Impact: Rolling window rate limiting not functional
- Priority: HIGH - Affects rate limiting correctness
- Action: Create issue, implement counting logic
-
ios/Plugin/DailyNotificationRollingWindow.swift:317-return 0 // TODO: Implement actual counting logic- Impact: Rolling window rate limiting not functional
- Priority: HIGH - Affects rate limiting correctness
- Action: Create issue, implement counting logic
-
ios/Plugin/DailyNotificationRollingWindow.swift:335-return [] // TODO: Implement actual retrieval logic- Impact: Rolling window retrieval not functional
- Priority: HIGH - Affects rate limiting correctness
- Action: Create issue, implement retrieval logic
-
ios/Plugin/DailyNotificationScheduler.swift:148-// TODO: Implement TTL validation- Impact: TTL validation missing, could cause stale content delivery
- Priority: HIGH - Affects content freshness
- Action: Create issue, implement TTL validation
-
ios/Plugin/DailyNotificationDatabase.swift:218-// TODO: Implement database persistence- Impact: Database persistence not implemented
- Priority: CRITICAL - Core functionality missing
- Action: Create issue, implement persistence
-
ios/Plugin/DailyNotificationDatabase.swift:229-// TODO: Implement database deletion- Impact: Database deletion not implemented
- Priority: HIGH - Core functionality missing
- Action: Create issue, implement deletion
-
ios/Plugin/DailyNotificationDatabase.swift:237-// TODO: Implement database clearing- Impact: Database clearing not implemented
- Priority: MEDIUM - Utility functionality
- Action: Create issue, implement clearing
Nice-to-Have (Enhancement) - 2 items
Performance metrics, statistics, diagnostics:
-
ios/Plugin/DailyNotificationPerformanceOptimizer.swift:179-// TODO: Phase 2 - Implement database statistics- Impact: Missing performance diagnostics
- Priority: LOW - Diagnostic feature
- Action: Add to backlog
-
ios/Plugin/DailyNotificationPerformanceOptimizer.swift:187-// TODO: Phase 2 - Implement metrics recording- Impact: Missing performance metrics
- Priority: LOW - Diagnostic feature
- Action: Add to backlog
Future (Phase 2/3) - 19 items
Explicitly deferred features, not wired into current runtime:
-
Phase 2 CoreData Integration (8 items):
- History with CoreData
- Callback system with CoreData
- Callback registration/unregistration/retrieval
- Content cache retrieval/clearing
- History retrieval
- Health status
-
Phase 2 Fetcher Integration (3 items):
fetcher.scheduleFetch(fetchTime)fetcher.scheduleImmediateFetch()- Fetcher instance addition
-
Phase 2 State Management (3 items):
- Rolling window maintenance
- TTL validation (in StateActor)
- TTL enforcer validation call
-
Phase 3 Features (2 items):
- ActiveDidIntegration configuration
- JWT-signed fetcher replacement
-
Other Phase 2 (3 items):
- DeliveryStatus property addition
- LastDeliveryAttempt property addition
- Track notify execution
TypeScript Stubs - 3 items
iOS-specific initialization stubs (expected, not critical):
ios/Plugin/index.ts:26-// TODO: Implement iOS-specific initializationios/Plugin/index.ts:37-// TODO: Implement iOS-specific permission checkios/Plugin/index.ts:52-// TODO: Implement iOS-specific permission request
Note: These are in TypeScript stub files and may be intentional placeholders.
Summary
- Must Ship: 7 items (rolling window logic, TTL validation, database operations)
- Nice-to-Have: 2 items (performance metrics/statistics)
- Future (Phase 2/3): 19 items (explicitly deferred features)
- TypeScript Stubs: 3 items (iOS-specific stubs, may be intentional)
- Android: 0 items found (all TODOs are in iOS code)
Next Steps
- ✅ Complete TODO inventory scan
- ✅ Classify each TODO into one of the three categories
- Create GitHub issues for "Must Ship" items (7 issues needed)
- Move "Phase 2" items to planning docs or behind feature flags
- Update code comments to reflect classification and link to issues
- Document Phase 2 features in a dedicated planning document
See also:
- Feedback Response Plan — Overall action plan
- System Invariants — Enforced invariants