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:
Matthew Raymer
2025-12-23 09:49:03 +00:00
parent b72d2e27e3
commit bad6452d81

151
docs/TODO-CLASSIFICATION.md Normal file
View 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