Files
daily-notification-plugin/docs/TODO-CLASSIFICATION.md
Matthew Raymer bad6452d81 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 
2025-12-23 09:49:03 +00:00

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:

  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: