Skip to content

Core Systems

Ownership Model

Core systems define the canonical event lifecycle. If ownership is unclear, the default is: EventCache governs transitions, EventStore governs indexed retrieval, and enhancers/engines transform without becoming state authorities.

System Contracts

System Owns Guarantees
EventCache Canonical event state and mutation workflow. Single source of truth, consistent publish semantics, rollback-capable mutation path.
EventStore In-memory indexed event persistence. Fast retrieval by key and metadata relations with stable lookup behavior.
EventEnhancer Normalization and write-path preparation. Category/timezone-safe transformations and consistent shape before persistence/render.
TimeEngine Temporal occurrence horizon and tick state. Predictable upcoming-state computation for reminders and time-aware UI.
ViewEnhancer + WorkspaceManager Presentation shaping and workspace policies. UI-facing filtering/overrides without leaking business logic into components.

Non-Negotiable Invariants

Event mutations must route through EventCache. Provider adapters must not become alternate state stores. Presentation modules can filter and annotate but cannot redefine core ownership semantics.

Code Anchors

Event lifecycle: src/core/EventCache.ts
Indexed storage: src/core/EventStore.ts
Normalization pipeline: src/core/EventEnhancer.ts
Temporal engine: src/core/TimeEngine.ts
View shaping: src/core/ViewEnhancer.ts
Workspace policy: src/features/workspaces/WorkspaceManager.ts