Skip to content
WARLOCKEnter the desktopSearch

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.

Intent, receipt and observation

An intent asks for an operation. A receipt reports its handling. Fresh observations establish facts such as geometry, activation and keyboard ownership. An accepted request alone does not prove the desktop changed.

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.