The page the CLI's printed link opens. It must show the developer exactly what they are approving — which deploy public key is about to be attached to which handle — and let them approve or reject.
apps/web/app/(dashboard)/components/sign-in-gate.tsx already gates dashboard surfaces on a Sign-In With Stellar session and can be reused.
Why it matters: this is the human consent step. A link flow that attaches a wallet without showing the developer the key and the handle is an approval in name only.
Acceptance: /link?code=… requires a valid session, renders the deploy public key and target handle, offers approve and reject, refuses an expired or malformed code with a clear message, and never renders a code it cannot verify.
The page the CLI's printed link opens. It must show the developer exactly what they are approving — which deploy public key is about to be attached to which handle — and let them approve or reject.
apps/web/app/(dashboard)/components/sign-in-gate.tsxalready gates dashboard surfaces on a Sign-In With Stellar session and can be reused.Why it matters: this is the human consent step. A link flow that attaches a wallet without showing the developer the key and the handle is an approval in name only.
Acceptance:
/link?code=…requires a valid session, renders the deploy public key and target handle, offers approve and reject, refuses an expired or malformed code with a clear message, and never renders a code it cannot verify.