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
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
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
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
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
0ccc029716
Allow feature-gated 10-minute video uploads ( #11388 )
2026-08-05 10:15:06 -04: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
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
Tomasz Zawadzki
2b9deeeb6a
Migrate runOnUI/runOnJS to scheduleOnUI/scheduleOnRN ( #11249 )
2026-07-26 12:00:35 -07:00
Samuel Newman
63b284030a
Fix Maestro E2E regressions on iOS and Android ( #11258 )
2026-07-24 03:48:03 -07:00
Oleksii Bulenok
8d64ab9d4b
React Native New Arch ( #10980 )
2026-07-23 18:25:40 +03:00
DS Boyce
1803de03a4
Lighten blue (link) text for dim and dark themes ( #11164 )
2026-07-20 09:29:58 -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
DS Boyce
4778142ee8
Create primary tooltip variant ( #11140 )
2026-07-14 05:57:11 -07: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
Spence Pope
4f5119fac0
fix camera roll gif selection hanging on ios ( #11074 )
2026-07-06 17:53:37 -04:00
Samuel Newman
0adf500edf
Use RNKC for composer keyboard avoiding view ( #10997 )
...
Co-authored-by: Eric Bailey <git@esb.lol >
2026-06-30 16:15:50 -05:00
Samuel Newman
ade5d2b783
Cull unused files ( #11029 )
2026-06-30 19:41:35 +03:00
Spence Pope
95726c6c6b
Replace react-native-compressor video path with native expo-bluesky-video-compress module [APP-2428] ( #10954 )
...
Co-authored-by: Eric Bailey <git@esb.lol >
2026-06-30 11:59:59 -04:00
Spence Pope
c5b3810229
Fail video duration check before compression ( #10999 )
2026-06-26 17:39:15 -05:00
Spence Pope
fcf17a482f
Add video upload telemetry events ( #10991 )
2026-06-25 18:14:05 -04:00
Spence Pope
c753c94969
Process videos on web with WebCodecs ( #10955 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-06-23 11:33:23 -04:00
Samuel Newman
1b5242c1d6
Rip out Modal system completely ( #9903 )
2026-06-17 02:45:01 -07:00
DS Boyce
c8634105c1
Run codemod for replacing BskyAgent with AtpAgent ( #10862 )
2026-06-11 08:46:01 -07:00
DS Boyce
d3f8e740de
Log when a chat invite is posted or messaged ( #10858 )
2026-06-10 14:44:36 -07:00
DS Boyce
871e9506df
Add new analytics events for group chats ( #10830 )
2026-06-10 13:56:39 -07:00
Samuel Newman
b3985bfad5
Add indication of total number of images in ComposerReplyTo ( #10836 )
...
Co-authored-by: Eric Bailey <git@esb.lol >
2026-06-10 11:49:52 -07:00
DS Boyce
c52231a449
Update handling of join link previews ( #10798 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-06-09 07:23:33 -07:00
Spence Pope
bc94c8c07b
Fix composer horizontal swipe triggering browser back/forward ( #10812 )
2026-06-09 10:11:21 -04:00
DS Boyce
5c0429a3f7
Block posting of invalid chat invites ( #10757 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-06-08 05:28:24 -07:00
Eric Bailey
7577933378
Fix draft image pres with 4+ images ( #10765 )
2026-06-06 09:55:39 -05:00
surfdude29
a253e877fc
Add plural formatting for error toast ( #10756 )
2026-06-05 17:57:57 -05:00
Eric Bailey
11dd259716
[Drafts] Always write embedGallery for image embeds ( #10761 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-05 17:56:08 -05:00
Spence Pope
144ba30ea6
Add gallery embed type support (display + compose) ( #10707 )
2026-06-04 17:22:40 -04:00
Samuel Newman
ded2ca3744
[Chat] Add chat invite as message embed type ( #10728 )
2026-06-04 13:11:03 -07:00
Eric Bailey
795d493dea
Apply per-use-case image size configs ( #10690 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 11:23:04 -05:00
DS Boyce
08cd4e58b0
Add group chat join links to supported embed types ( #10454 )
2026-06-04 08:11:50 -07:00
Samuel Newman
153772b760
expo-image tweaks (#10710 )
2026-06-04 01:03:11 +03:00
DS Boyce
84d1785e12
Enable ESLint errors and suppress existing violations ( #10490 )
2026-06-03 11:27:44 -07:00