Commit Graph

1210 Commits

Author SHA1 Message Date
Samuel Newman 17c17b4543 migrate the preference read-modify-writes to sdk actions
The preferences hooks, nuxs, labeler subscriptions, list mute/block, post
interaction settings, interests and live event preferences move onto
@bsky.app/sdk actions. Preference reads and writes route through the pds
client because they live on the account's actor store, not behind the
appview proxy; the list mute writes stay on the appview client, which is
where that graph endpoint lives.

BskyAgent.getPreferences configured the agent's labelers as a side effect,
so a labeler subscription took effect on the next appview read. The sdk
action does not, so the query now calls configureLabelers explicitly.

Exported hook signatures, query keys and the usePreferencesQuery response
shape are unchanged: the sdk's BskyPreferences is field-for-field identical
to the legacy one apart from branded strings, so the response is cast at
that single seam and the muted-word and nux mutation inputs stay
legacy-typed with a cast into the action.
2026-08-13 22:13:46 +03:00
Samuel Newman a40c199523 migrate the signup and onboarding profile writes to sdk actions
The post-signup and onboarding writes (setPersonalDetails, upsertProfile,
overwriteSavedFeeds, setInterestsPref) move onto sdk actions over the pds
client, and the starter-pack and contact-import reads move to the lex
clients. Every upsertProfile call now writes a lex blob directly, so the
toLegacyBlobRef bridge has no remaining callers and is deleted.
2026-08-13 22:13:46 +03:00
Samuel Newman 7359700429 migrate the data export dialog and signup queue off raw transport
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 22:13:46 +03:00
Samuel Newman 483e79497b add refreshSession to the session api and migrate its callers
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 22:13:45 +03:00
Samuel Newman 83fdc95237 migrate the blob upload helper to the pds client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 22:13:45 +03:00
Samuel Newman 4c5294a1a2 migrate the status, germ declaration and block records to the pds client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 22:13:45 +03:00
Samuel Newman 3a970a7104 migrate the starter pack writes to the pds client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 22:13:45 +03:00
Samuel Newman 0c8cdba703 migrate the threadgate and postgate records to the pds client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 22:13:44 +03:00
Samuel Newman 74b0001335 migrate getAllListMembers to the appview client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 22:13:44 +03:00
Samuel Newman 2beb63fb2d migrate RichText to the SDK and resolve facets via the appview
The two RichText classes are not mutually assignable - `UnicodeString` has a
private field and the SDK brands `did`/`uri` as template literal types - so
every producer and consumer of a RichText instance has to move in one step.

`detectFacets` now takes a lex client instead of the legacy agent, which is
what removes the last hard agent dependency from these files. Handle
resolution is an appview job, so the appview client is threaded in: through
`useAppviewClient` in the hooks and dialogs, and through a new
`appviewClient` option on `apilib.post` (Composer already had the client to
hand). The rest of the post pipeline still writes through the agent.

Facet feature checks move from the `AppBskyRichtextFacet` validators to the
generated `#/lexicons` schemas, matching how the rest of the app narrows
lexicon types.

Display sinks still read facets off `@atproto/api` view types, which are the
same lexicon but typed with plain strings. `asSdkFacets` widens them at those
call sites and goes away once the view types come from the SDK too.
2026-08-13 21:50:54 +03:00
Samuel Newman abf8ba0993 route moderation reports through the appview client with per-call proxying
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:54 +03:00
Samuel Newman 09ca1307bc migrate the app password and update handle mutations to the pds client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:54 +03:00
Samuel Newman a92f28461b migrate the pre-auth service calls to the service client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:53 +03:00
Samuel Newman dc90f4ee37 migrate the account lifecycle dialogs to the pds and chat clients
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:53 +03:00
Samuel Newman 1a6bfd8a6a migrate the contact queries and phone verification to the appview client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:52 +03:00
Samuel Newman 72162c1544 classify migrated chat group errors with matchXrpcError
The lex client throws XrpcResponseError, which is not an XRPCError
subclass, so the per-method error classes generated by @atproto/api no
longer match. Those instanceof checks compile fine but silently stop
firing, degrading every typed group failure to the generic fallback
message. Narrow against the method schema instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:52 +03:00
Samuel Newman 85f2ff39a7 classify migrated chat convo errors with matchXrpcError
The lex client throws XrpcResponseError, which is not an XRPCError
subclass, so the old per-method error classes generated by @atproto/api
no longer match. Those instanceof checks compile fine but silently stop
firing, degrading every typed chat failure to the generic fallback
message. Narrow against the method schema instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:52 +03:00
Samuel Newman f3a2674b9b match xrpc errors against the method schema
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:50 +03:00
Samuel Newman 3d91143c80 drop direct lex-client dep, import from @atproto/lex
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:06 +03:00
Samuel Newman 1e6106e865 pin the matchXrpcError pattern for the lexicon codegen followup
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman 21d67da9a9 match lex errors with instanceof, drop getErrorName
`getErrorName` erased the typed error classes by flattening everything to a
string code. Anchor on the classes instead: `LexAuthFactorError` for the login
2FA branch, `XrpcResponseError` for the signup error codes.

`@atproto/lex-client` stays a direct dependency because `XrpcResponseError` is
used at runtime for `instanceof`. It is already in the runtime graph via
`@atproto/lex-password-session`, so the direct declaration adds no bundle
weight; it makes the import legal under pnpm's strict layout and pins the
version so both packages share one `LexError` identity.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
Samuel Newman 1d279dc894 adapt error classification and email state to the lex session core
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
DS Boyce aafcb2eeff Remove workaround for iOS text clipping (#11455) 2026-08-12 14:55:25 -07:00
Samuel Newman 9b0adcb55f Fix starter pack icon in profile menu (#11452) 2026-08-12 19:03:54 +03:00
DS Boyce bd5e56ce25 Include user's handle in beta features feedback (#11432) 2026-08-12 08:59:21 -07:00
Alex Benzer 34a7bc72a9 Client events for beta features settings page (#11439) 2026-08-12 08:54:29 -07:00
Samuel Newman 1f3c619dd2 Add asset licensing notices (#11397)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2026-08-12 05:49:31 -07:00
DS Boyce b801a24ef2 Fix layout jog when rendering post numbers (#11447) 2026-08-11 13:57:48 -07:00
DS Boyce 82db01fc60 Prevent last line of post text from being clipped on Android (#11433) 2026-08-11 13:57:18 -07:00
DS Boyce 8c54f01b3e Fix appearance of post numbers on image posts (#11446) 2026-08-11 12:21:05 -07:00
Samuel Newman 98b9f1c21d Work around reanimated bug in sign up screen (#11411) 2026-08-07 09:09:37 -07:00
RetroSunstar cc3b9ac0d9 Fix chat info panel not using square icons for labellers (#11415) 2026-08-07 07:40:14 -07:00
Samuel Newman d727be8c1a Fix profile icon on custom feeds (#11408)
Co-authored-by: DS Boyce <260543580+ds-boyce@users.noreply.github.com>
2026-08-06 16:37:21 -07:00
DS Boyce 1e6725c0a1 Fix post numbers being clipped in some cases (#11413) 2026-08-06 16:34:49 -07:00
DS Boyce 1c349ad7da Add timestamp field to video report dialog (#11339) 2026-08-06 12:11:05 -07:00
Eric Bailey 724013df1b Add repost-only mutes (#11223)
Co-authored-by: DS Boyce <260543580+ds-boyce@users.noreply.github.com>
2026-08-06 11:53:02 -07:00
Eric Bailey b79908ecea Add canonical OP thread numbering (#11184)
Co-authored-by: DS Boyce <260543580+ds-boyce@users.noreply.github.com>
2026-08-05 10:20:43 -07:00
Alex Benzer 5494f7deb5 Test requiring at least one interest in onboarding (#11391)
Co-authored-by: DS Boyce <260543580+ds-boyce@users.noreply.github.com>
2026-08-04 14:57:43 -07:00
smileyhead ec49988fa7 Add unique context to ‘People I follow’ in FromDropdown.tsx (#11275)
Co-authored-by: Byte <byte@coreyja.com>
2026-08-04 10:47:31 -07:00
Samuel Newman ce28129674 Add nicer loading screen while OTA is loading (#9499) 2026-07-31 09:39:26 -07:00
Oleksii Bulenok 87a177bbe8 Fix profile badge sometimes displayed below on Android (#11337) 2026-07-31 08:55:08 -07:00
DS Boyce 0be8b1dd93 Add a dialog for debugging feature flags to developer settings (#10988) 2026-07-29 16:49:32 -07:00
DS Boyce 91517af01c Log rank and parent index with trending topic events (#11331) 2026-07-29 16:14:44 -07:00
DS Boyce 15c6c7955d Get number of trending topics for Explore from GrowthBook (#11324) 2026-07-29 12:12:15 -07:00
DS Boyce e375ceb5b8 Update empty state for starter pack search (#11325) 2026-07-29 10:59:01 -07:00
DS Boyce 45bdba5dfa Let trending topic names wrap to two lines (#11323) 2026-07-29 10:58:08 -07:00
Samuel Newman de348db116 Show a non-standard OTA channel notice in the drawer (#11288)
Co-authored-by: Claude <noreply@anthropic.com>
2026-07-28 06:59:17 -07:00
DS Boyce e4ba1b4378 Add trendingTopic:seen metric (#11309) 2026-07-27 17:06:10 -07:00
DS Boyce a5f0e8839a Update trending topics UI (#11304) 2026-07-27 16:34:15 -07:00
Samuel Newman 691619f297 fix: stop grouping all signup failures into one sentry issue (#11278)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 07:50:40 -07:00