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
8f6181495e
migrate the notification say-hello action to the chat client
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 21:50:53 +03:00
Samuel Newman
8a87a5fdea
migrate the bookmark and draft queries to the appview client
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 21:50:52 +03:00
Samuel Newman
c0aafe4ffd
migrate the actor search and autocomplete queries to the appview client
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 21:50:52 +03:00
Samuel Newman
6ef3628155
cast branded params with the dedicated syntax types
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 21:50:51 +03:00
Samuel Newman
935935518a
migrate service config and composer thread reads to the appview client
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 21:50:51 +03:00
Samuel Newman
abdf1abf4b
rebuild the session lifecycle on passwordsession
...
Replace the AtpAgent-owned session lifecycle with PasswordSession-backed
bundles, dispatched through the bridge agent. The provider, reducer and
factories now hold a `{session, agent, service}` bundle whose identity gates
session events, so a stale session can no longer log out the current account
or restore its tokens after a switch.
Behavioural changes that come with the new auth core:
- token rotation is read from the hook payload (PasswordSession fires before
committing its live getter), so refreshes persist the new tokens
- replaced bundles are disposed rather than mutated, since PasswordSession has
no in-place patch; cross-tab syncs rebuild instead
- the expiry rescue path prefers a newer persisted generation over logging
every tab out
Post-signup writes keep main's agent.* call style; createAccount synthesizes
the email/active fields the thinner lex output omits.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 21:41:04 +03:00
Darrin Loeliger
2f0d417417
Updated Media Icons ( #11457 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 05:49:05 -07:00
Spence Pope
f5f980e58e
APP-1645: Improve video upload progress indicator ( #11248 )
2026-08-12 17:14:06 -04:00
Samuel Newman
9b0adcb55f
Fix starter pack icon in profile menu ( #11452 )
2026-08-12 19:03:54 +03:00
Samuel Newman
34274647f2
Separate landing illustrations from splash assets ( #11453 )
2026-08-12 06:47:03 -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
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
surfdude29
78a5c222bf
Tweak strings ( #11407 )
2026-08-06 05:18:38 -07:00
Spence Pope
8cb6c7babe
display backend-driven upload failure messages ( #11329 )
2026-08-05 12:12:03 -04:00
Spence Pope
32ec5330b0
Enrich fatal HLS errors in Sentry ( #11359 )
2026-08-05 10:15:26 -04:00
Spence Pope
0ccc029716
Allow feature-gated 10-minute video uploads ( #11388 )
2026-08-05 10:15:06 -04:00
Samuel Newman
e99e04a458
Simplify inline badge presentation, fix alignment ( #11352 )
2026-08-03 06:26:06 -07:00
Samuel Newman
c2ceb8057f
Handle camera cancellation ( #11322 )
2026-08-03 06:25:42 -07:00
Oleksii Bulenok
cc3c01267d
Fix alt text input field not growing more than 3 lines ( #11328 )
2026-07-30 12:53:09 +02:00
DS Boyce
91517af01c
Log rank and parent index with trending topic events ( #11331 )
2026-07-29 16:14:44 -07:00
DS Boyce
b4bad1187a
Indicate if someone followed you via a starter pack ( #11320 )
2026-07-29 12:11:28 -07:00
DS Boyce
196e81eb0c
Get trending section indices from GrowthBook ( #11319 )
2026-07-29 10:24:50 -07:00
Spence Pope
a35c4ac4ba
APP-2670: add multipart video upload transport ( #11222 )
2026-07-29 12:54:03 -04:00
Samuel Newman
0751420a29
Drop react-native-progress fork ( #11312 )
2026-07-28 19:47:56 +03:00
Oleksii Bulenok
8263175a03
Fix caret misplaced upon pressing Return when using Japanese symbols … ( #11316 )
2026-07-28 17:17:29 +02:00
DS Boyce
a5f0e8839a
Update trending topics UI ( #11304 )
2026-07-27 16:34:15 -07:00
Tomasz Zawadzki
2b9deeeb6a
Migrate runOnUI/runOnJS to scheduleOnUI/scheduleOnRN ( #11249 )
2026-07-26 12:00:35 -07:00
Samuel Newman
19b0d89313
Update react-native-uitextview ( #11264 )
2026-07-24 07:40:46 -07:00
Samuel Newman
63b284030a
Fix Maestro E2E regressions on iOS and Android ( #11258 )
2026-07-24 03:48:03 -07:00
DS Boyce
10b027c35b
Sort follows and following behind gate ( #11237 )
2026-07-23 09:02:35 -07:00
Oleksii Bulenok
8d64ab9d4b
React Native New Arch ( #10980 )
2026-07-23 18:25:40 +03:00
DS Boyce
8ca8176eb1
Update presentation of trending feeds ( #11206 )
2026-07-22 14:35:45 -07:00
DS Boyce
c71a4f8360
Create new trending feeds interstitial ( #11207 )
2026-07-22 14:23:01 -07:00
DS Boyce
1803de03a4
Lighten blue (link) text for dim and dark themes ( #11164 )
2026-07-20 09:29:58 -07:00
Samuel Newman
0fb7251c64
Add nightly Maestro E2E workflow ( #11181 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 07:42:53 -07:00
Samuel Newman
007c21fa8e
Add moduleSuffixes to tsconfig ( #11146 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-07-16 12:47:53 -07:00
Samuel Newman
406fb5425c
Add Japan-gated custom logo ( #11161 )
2026-07-16 04:26:05 -07:00
Abdelrahman Youssef
83a791d7c8
Fix invisible bidi characters copied with handles on web ( #11066 )
2026-07-15 17:56:34 -05:00
Spence Pope
f42a325f49
fix web feed footer clearing the bottom bar ( #11151 )
2026-07-14 10:15:28 -07:00
DS Boyce
4778142ee8
Create primary tooltip variant ( #11140 )
2026-07-14 05:57:11 -07:00
Austin McKinley
b4dfa3cc22
Collapse label appeal flow into ModerationDetailsDialog ( #11091 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2026-07-10 18:26:10 -05:00
Samuel Newman
ffd4172a64
Replace @tiptap/html generateJSON with native DOMParser equivalent ( #11098 )
2026-07-10 00:37:05 +03:00
Spence Pope
6dce96881c
use source file for web video compression ( #11090 )
2026-07-08 15:07:52 -04:00
Samuel Newman
b41624edea
Lazy-load mediabunny on web ( #11094 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-08 06:21:16 -07:00
Spence Pope
f9b1200404
fix web video preview error aborting upload ( #11079 )
2026-07-07 05:34:46 -07:00
Alex Benzer
882a5573af
Clean up feature gate for follow buttons in expanded notifications ( #11068 )
2026-07-07 04:22:42 -07:00
Samuel Newman
9ff248528b
Automatically resolve hosting provider from handle ( #11053 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2026-07-07 04:21:58 -07:00
Spence Pope
4f5119fac0
fix camera roll gif selection hanging on ios ( #11074 )
2026-07-06 17:53:37 -04:00