2026-05-14 Gate 2 on prod. Follow-up on the POS landing cards: per user feedback, clicking anywhere on a register card to open the terminal felt accidental — only the explicit CTA button (Continue Selling / Open Register) should open it. RegisterCard's outer container changed from a whole-card <button onClick> to a plain <div>, with the onOpen handler moved onto the CTA <button>.
<button> opens the register terminal in a new tab at /cafe/pos/register/{id}, verified on get-coffee (register 4) and lumiere-coffee (register 27902723).↗ external-link icon moved off the card's top-right corner onto the CTA — it's the thing that opens a new tab, so the affordance belongs on the button.pos-register-cta-{id}; r1-2-landing (in the regression sweep) passes 8/8 with the repoint.03d9e85 — 1 file (pos-landing.tsx), no migration.
✓ get-coffee (Pro) — SSO login + /cafe/pos landing ✓ get-coffee (Pro) — clicking the card body opens NO new tab ✓ get-coffee (Pro) — clicking the CTA opens the terminal at /cafe/pos/register/4 ✓ lumiere-coffee (Starter) — SSO login + /cafe/pos landing ✓ lumiere-coffee (Starter) — clicking the card body opens NO new tab ✓ lumiere-coffee (Starter) — clicking the CTA opens the terminal at /cafe/pos/register/27902723
✓ phase1 11/11 route sweep + subscription
✓ phase2-sso-outdoor 6/6 cross-product SSO
✓ phase2-cafe-multishop 6/6 POS shop picker
✓ m1-shop-scoping 10/10 reports / shop scoping
✓ r7 14/14 dashboard + manager sidebar
✓ r8 4/4 auth/security (per-tenant scope)
✓ r1-2-landing 8/8 landing flow — now clicks the CTA, not the card
─────
59/59 green — 65/65 effective with the 6/6 above
phase1 passed clean. r1-2-landing exercises the repointed CTA-click +
confirms the terminal opens in a new tab from the button.
nix-cafe (commit 03d9e85, 1 file, no migration):
app/(authed)/pos/pos-landing.tsx RegisterCard: whole-card <button> → <div>;
onOpen + the ↗ icon moved onto the CTA <button>
workspace test infra (not committed — workspace root isn't a repo):
12 prod/local test files repointed from card-click to CTA-click
(r1-2-landing, r1-3…r1-11, nix-os-69-1, r1-3-1-picker, slice2-local)
test-pos-card-cta-only-{local,prod}.mjs NEW — this task's tests