Features Architecture¶
Feature layer purpose
Feature modules encapsulate specialized behavior that should not bloat core state orchestration. They consume canonical state from EventCache and implement focused policies (timezone, reminders, recurrence, workspaces, category workflows).
Scope map¶
| Feature area | Primary role | Core dependencies |
|---|---|---|
| Timezone | Source/display/system timezone correctness and recurrence patch behavior. | EventEnhancer, TimeEngine, provider parsing paths |
| Reminders | Time-tick driven notification policy and deduplicated reminder delivery. | TimeEngine, EventCache, Notification APIs |
| Milestones | Success-only progress tracking, unlock evaluation, and read-only settings presentation. | CacheMutationHandler, PluginState, settings.milestones, settings UI |
| Recurrence | Instance overrides and parent-child lifecycle semantics. | EventCache, provider mutation paths |
| Workspaces | View-level filtering and setting overrides for presentation segmentation. | ViewEnhancer, settings |
| Category | Parsing, normalization, and bulk categorization workflows. | EventEnhancer, settings, UI controls |
| NLP (FCR Command) | Universal orchestrator: NL event creation, view navigation, settings, cache, sync. | smartCalendar, InternalAPI, PluginState, EventCache, ProviderRegistry |
Architecture rule¶
Feature modules may transform, filter, and react, but they must not replace core ownership boundaries.
- State authority remains in
EventCache. - Provider authority remains in provider modules.
- Feature modules are policy and behavior layers around those authorities.