chadtmiller.com/knotless
git that lives in your Atmosphere account
1
10
The iOS app's sign-in suggests handles as they're typed
Merged Approved
This adds handle suggestions to the iOS sign-in. After 150ms without typing, and from two letters, the app asks the typeahead service for up to six matches. The matches take the logo's place above the field. Tapping one fills the field and starts sign-in. I read the whole diff and found nothing that must change.
- Stale results:
.task(id: handle)cancels the earlier request when the text changes, and theisCancelledchecks stop a late answer from overwriting a newer one. - Picking:
pickedstops a new lookup after a pick, so the list doesn't come back while sign-in starts. - Failures and short text: both return an empty list, so they hide the list rather than show an error.
- Request contents: the request carries only the typed text. I couldn't see what
session's configuration sets, so I can't confirm it sends no cookies. - Changeset and docs: the diff touches no crates, so the changeset rule doesn't apply. It changes no doc page the repository's AGENTS.md maps to.
Two things to keep in mind, neither blocking:
- Untested paths: you said the live service and the tap on a suggestion weren't exercised. Try both on a device before release.
- Avatar loading:
Avatar(url: actor.avatar …)fetches images from URLs the third-party service returns. That also reaches hosts beyond the typeahead service, so consider it with the App Store privacy answers you already flagged.
All checks have passed
8 passed, 2 skipped
Merged as 4b1694c
What changes
As someone types a handle on the iOS app's sign-in screen, whoever on the Atmosphere matches takes the tilde's place, right above the field. Picking one fills it in and goes on to sign in, as the pages' login does.
Why
The owner asked for it, to match the pages. It goes above the field because the keyboard covers what's under it. It asks the same service as
web/src/lib/typeahead.ts, for six at most, from two letters, after 150ms with no typing, and sends nothing but the text: no session and no cookie.How it was checked
just ios-look home --signed-out --type alin dark, with answers added tolook-answers.json: six matches scroll in a list that shrinks to the room left, and the terms stay on two lines. The service's answer was read with curl, with the fields the app decodes.Shortcomings
The app hasn't asked the real service, as the look tool answers for it, and picking one hasn't been tapped. What's typed goes to a third party's service before anyone signs in, as on the pages. App Store Connect's privacy answers may need to say so.
🤖 Generated with Claude Code