Interaction
The Elm Architecture keeps user intent and observed desktop facts distinct.
Current TEA verification boundary
Source-bound TEA acceptance vs. open subscription & native gates: Whole ELM-TEA-001, ELM-TEA-002, and ELM-DEL-010 hold historical source-bound acceptance within the 6e6ad828c (2026-11-02) ledger snapshot of 19 of 242 whole EARS requirements and 42 of 417 scenarios, alongside published Store / Catalog / PinStore foundation a327c8f7f and persistent custody component 6e6ad828c (focused --custody and r19 --backend component checks pass while full r18 remains a retained failed batch at 36/37 suites). Whole ELM-TEA-004 (subscription lifecycle and single-root observer coverage across every Elm root, HTTP wrapper full-model/effect replay, and PreviewPaintGate scoped Realm cleanup) remains unaccepted, and native Wayland input, focus, IME, assistive-technology, and release gates remain unaccepted.
Model, view and update
The Model holds admitted state. The view renders that state; a Msg reaches update, which produces the next Model and commands. Cmd and Sub ports connect to the Haskell runtime and native observations.
Stable targets
Keyed controls preserve identity as content updates. A held pointer target stays bound to its original item, and focus remains attached to a meaningful control.
Input composition
Search and path inputs preserve composition events. Intermediate input from an input method is not treated as a completed query or activation.
Pending, refused and unknown
Pending uses waiting wording. Refused gives a reason when available. Unknown remains unconfirmed and never automatically retries a mutation. Submitted does not imply completion.
Refresh and recovery
Refresh requests current facts without replaying an uncertain operation. Reconnection restores observation before further state is represented as known. Try status and recovery.