2026-05-02 on prod. Replaces the two divergent register UIs
(register.tsx, 1364 LOC; starter-register-client.tsx, 1543 LOC)
with a single shared <RegisterShell> driven by capability flags.
Pro and Starter now render the same chrome — capability differences (customer attach,
drafts, multi-register selector) gray out cleanly on Starter. Pro inherits Starter's
polish (per-line discount UI, image cards, category filter) by default. Starter joins
the lockable PIN-gated fullscreen mode (option b). Multi-shop nav and Kitchen Display
are gated to Pro per the 2026-05-01 pricing pitch.
18ed734 — new _components/ + _adapters/ trees; register.tsx + starter-register-client.tsx deleted; in-app page.tsx + starter-register-page.tsx + lockable shell rewired through ProRegisterMount / StarterRegisterMount.89db84a — extracted LockScreen + PreShiftScreen for reuse; new StarterLockableShell wires Starter through the same LOCKED → PRESHIFT → OPEN state machine. Tier dispatch in the route page.tsx.12ba760 — fetchProducts upgraded to pull image_128 + pos_categ_ids. Pro RegisterCapabilities flips productsHaveImages + productsHaveCategories to true.