Helcim sandbox harness

Vanilla port of assets/components/useHelcimPay.ts. Verdicts come from the skill's own verifyConfirmedTransaction; everything labelled diagnostic is harness-side explanation only.

Runbook checks driven from this page: 1 (accented name hash), 5 (default card), 6 (modal lifecycle).

Start a checkout

idle outcome: —

Check 1: pick purchase, type the cardholder name José Añejo-Œrsted in the Helcim modal, then repeat with a plain-ASCII name.
Check 5: pick verify, reuse the customerCode from check 3, tick setAsDefaultPaymentMethod, then run npx tsx api.ts get-customer <code>.
Check 6: start a checkout and close the modal (expect aborted, idle, clean teardown); then pay with a declined test card (expect declined, not "cancelled", no red).

Log — copy raw responses from here into the runbook results table

(nothing yet)