Skip to content

Release: preprod → main (stuck-loading auth fixes)#283

Merged
QSchlegel merged 4 commits into
mainfrom
preprod
Jun 13, 2026
Merged

Release: preprod → main (stuck-loading auth fixes)#283
QSchlegel merged 4 commits into
mainfrom
preprod

Conversation

@QSchlegel

Copy link
Copy Markdown
Collaborator

Promotes preprod → main. Small, focused release — the wallet auth stuck-"Loading…" fixes.

Included

Notes

Test plan

  • npx tsc --noEmit clean; unit + trpc tests pass; Vercel preview built.
  • Post-deploy: connect wallet on the site → resolves to "Connected" (no stuck "Loading…", no hex getUserByAddress calls).

🤖 Generated with Claude Code

QSchlegel and others added 4 commits June 13, 2026 08:46
…er gets a session

When a wallet connects but authorization doesn't complete (auto-authorize
failed/cancelled — common when multiple Cardano extensions fight over
window.cardano), layout sets hasCheckedSession=true and never reopens the
auth modal. createUser stays 403 (no session), `user` stays null, and the
Connect button spins "Loading…" forever with no recovery path.

- Relabel that state: connected + user-query-resolved-empty now shows an
  actionable "Authorize" instead of an infinite "Loading…" spinner.
- Add an "Authorize wallet" item to the connect dropdown (shown when
  connected but unauthorized) that bumps a new reauthNonce signal.
- layout watches reauthNonce, clears the hasCheckedSession latch, and
  refetches the session so the existing session-check effect reopens the
  (now signData-fixed) WalletAuthModal.

Additive and manual-trigger only — no change to connect/sign/session logic,
no auto-retry loop.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix(auth): recover from stuck "Loading…" when wallet has no session
…ck "Loading…")

THE root-cause fix for the stuck "Loading…": layout fed userAddress / the
session check / createUser from hex-encoded addresses (react-2.0 useAddress()
and raw CIP-30 getUsedAddresses/getUnusedAddresses), but user records and
sessions are keyed by bech32 — so getUserByAddress(hex) returned null and the
app hung. Confirmed live on preprod: getUserByAddress(addr1qyvgdy2…) finds the
user; getUserByAddress(0118869144…) → null (same wallet).

- Normalize `address` once at the useAddress() source so every consumer
  (store sync, walletAddressForSession/Check, createUser) uses bech32.
- Normalize the getUsedAddresses()/getUnusedAddresses() setUserAddress sites.

(The equivalent change was authored alongside #281 but merged after that PR
was already squashed, so it never reached preprod — this carries it, plus the
session/createUser hardening, with the required import.)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix(auth): normalize all userAddress sources in layout to bech32 (stuck "Loading…")
@vercel

vercel Bot commented Jun 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
multisig Ready Ready Preview, Comment Jun 13, 2026 8:05am

Request Review

@QSchlegel QSchlegel merged commit 0349635 into main Jun 13, 2026
12 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant