Skip to content

Guide first-time Linq sign-in - #92

Merged
fmhall merged 2 commits into
mainfrom
mason/linq-sign-in-guidance
Aug 31, 2026
Merged

Guide first-time Linq sign-in#92
fmhall merged 2 commits into
mainfrom
mason/linq-sign-in-guidance

Conversation

@fmhall

@fmhall fmhall commented Aug 31, 2026

Copy link
Copy Markdown
Member

Summary

Desktop

Codex Image Aug 31, 2026, 05_51_40 PM

Mobile

Codex Image Aug 31, 2026, 05_51_46 PM

Make Linq's required first-time sign-in flow visible before a user requests an OTP.

  • show the three required steps: open Messages, send any message from the sign-in phone, then return and request a code
  • add a Text Linq in Messages button with an sms: deep link to the deployment's onboarding number
  • prefer the optional LINQ_PHONE_NUMBER override and otherwise resolve the number through Linq's V3 available_number endpoint
  • keep the instructions visible with a manual Vercel Connect/Linq dashboard fallback when number resolution is unavailable
  • distinguish recipient verification (2008) from sender authorization (2006) and no-eligible-line failures

Behavior and boundaries

The button opens the user's Messages client but does not send anything. The user still sends the first message explicitly. The lookup is app-scoped, bounded to three seconds, validated as E.164, and fails soft so Linq or Connect availability cannot prevent the sign-in form from rendering.

Local OTP bypass and deployments without a Linq connector retain their existing behavior.

Validation

  • pnpm exec vitest run src/auth/tests/linq.test.ts src/auth/tests/auth-linq.test.ts src/app/sign-in/_tests/phone-auth-form.test.ts — passed; 3 files and 19 tests
  • pnpm check — passed; 46 test files and 220 tests, plus lint, TypeScript, formatting, Knip, and package boundaries
  • pnpm exec turbo run build:app --force — passed after merging current main
  • production-like local browser smoke test — rendered the ordered flow, confirmed sms:+12025550123, and served /sign-in with HTTP 200 from a clean Next cache
  • independent review findings were remediated and the relevant checks rerun

Reviewer focus

  • fail-soft behavior and latency of the unauthenticated onboarding-number lookup
  • resolved-number, unresolved-number, unconfigured, and local-bypass render states
  • separation between recipient onboarding, connector line authorization, and line-health errors

No changeset is needed for this application repository.

@fmhall
fmhall merged commit 1683993 into main Aug 31, 2026
2 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