docs(todo): Complete TODO classification and inventory
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 ✅
This commit is contained in:
151
docs/TODO-CLASSIFICATION.md
Normal file
151
docs/TODO-CLASSIFICATION.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# 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:
|
||||
|
||||
1. **`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
|
||||
|
||||
2. **`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
|
||||
|
||||
3. **`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
|
||||
|
||||
4. **`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
|
||||
|
||||
5. **`ios/Plugin/DailyNotificationDatabase.swift:218`** - `// TODO: Implement database persistence`
|
||||
- **Impact:** Database persistence not implemented
|
||||
- **Priority:** CRITICAL - Core functionality missing
|
||||
- **Action:** Create issue, implement persistence
|
||||
|
||||
6. **`ios/Plugin/DailyNotificationDatabase.swift:229`** - `// TODO: Implement database deletion`
|
||||
- **Impact:** Database deletion not implemented
|
||||
- **Priority:** HIGH - Core functionality missing
|
||||
- **Action:** Create issue, implement deletion
|
||||
|
||||
7. **`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:
|
||||
|
||||
1. **`ios/Plugin/DailyNotificationPerformanceOptimizer.swift:179`** - `// TODO: Phase 2 - Implement database statistics`
|
||||
- **Impact:** Missing performance diagnostics
|
||||
- **Priority:** LOW - Diagnostic feature
|
||||
- **Action:** Add to backlog
|
||||
|
||||
2. **`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:
|
||||
|
||||
1. **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
|
||||
|
||||
2. **Phase 2 Fetcher Integration (3 items):**
|
||||
- `fetcher.scheduleFetch(fetchTime)`
|
||||
- `fetcher.scheduleImmediateFetch()`
|
||||
- Fetcher instance addition
|
||||
|
||||
3. **Phase 2 State Management (3 items):**
|
||||
- Rolling window maintenance
|
||||
- TTL validation (in StateActor)
|
||||
- TTL enforcer validation call
|
||||
|
||||
4. **Phase 3 Features (2 items):**
|
||||
- ActiveDidIntegration configuration
|
||||
- JWT-signed fetcher replacement
|
||||
|
||||
5. **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):
|
||||
|
||||
1. **`ios/Plugin/index.ts:26`** - `// TODO: Implement iOS-specific initialization`
|
||||
2. **`ios/Plugin/index.ts:37`** - `// TODO: Implement iOS-specific permission check`
|
||||
3. **`ios/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
|
||||
|
||||
1. ✅ Complete TODO inventory scan
|
||||
2. ✅ Classify each TODO into one of the three categories
|
||||
3. **Create GitHub issues for "Must Ship" items** (7 issues needed)
|
||||
4. **Move "Phase 2" items to planning docs** or behind feature flags
|
||||
5. **Update code comments** to reflect classification and link to issues
|
||||
6. **Document Phase 2 features** in a dedicated planning document
|
||||
|
||||
---
|
||||
|
||||
**See also:**
|
||||
- [Feedback Response Plan](./FEEDBACK-RESPONSE-PLAN.md) — Overall action plan
|
||||
- [System Invariants](../SYSTEM_INVARIANTS.md) — Enforced invariants
|
||||
|
||||
Reference in New Issue
Block a user