Shipped binding. React Native (react-native-tvos), the same code as the Apple TV app. No Compose for TV: no M3 components, no focus scale; focus is a --component-bg-active fill.
A stored token is verified before Home mounts
On launch auth.tsx reads the stored token. With one, it replaces itself with auth-with-token, which verifies the token and shows this screen; with none, or on failure, it goes to the device-code screen.
Verifying a stored tokenThe native Android spinner in --yellow-solid, drawn at twice its size. Success replaces the stack with Home; failure replaces it with sign-in by code.
routeauth → auth/with-token → Home, or → auth/with-code on error
copyLogging you in, shipped string. The web contract says “Sign in”; the TV string is not aligned yet
spinnerReact Native ActivityIndicator, large, scaled 2x on Android: about 96px, --yellow-solid arc, no track
layoutcentred column: heading 64 medium, 32 to the spinner. No header: navigation does not exist yet
focusnone
Do not show a Cancel button or a code here: nothing is being asked of the user. If verification fails, the device-code screen is the recovery.