Commit Graph

7961 Commits

Author SHA1 Message Date
Samuel Newman dc9741d8ba add the chat proxy service constant
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:50 +03:00
Samuel Newman 0d7dcfc5b0 add lexicon schema helpers to types/bsky
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:50 +03:00
Samuel Newman b02754f8b8 apply tweaked version of matthieu's suggestion 2026-08-13 21:50:50 +03:00
Samuel Newman 00af680341 document the public client labeler asymmetry
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:50 +03:00
Samuel Newman 1f3784fc7b migrate the trends query to the lex client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:50 +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 7fee516d4c add the lex client seam over the bridge agent
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:50:50 +03:00
Samuel Newman 90824d83c4 bump lex 2026-08-13 21:48:16 +03:00
Samuel Newman 8a119ecdb2 update latest lexicons 2026-08-13 21:41:06 +03:00
Samuel Newman 38367d2a5c update atproto deps 2026-08-13 21:41:06 +03:00
Samuel Newman 4bec37037e update, rm permission sets 2026-08-13 21:41:06 +03:00
Samuel Newman f8a5f8c2e2 resolve newly published lexicons from the network
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:06 +03:00
Samuel Newman 259a94cd24 Update pnpm-workspace.yaml 2026-08-13 21:41:06 +03:00
Samuel Newman 45c394f9a3 move lex install --ci out of postinstall into a lexicons:verify ci job
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:06 +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 a3243820c9 add lexicon codegen: vendored lexicons, lex cli and generation scripts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:06 +03:00
Samuel Newman a2129885c6 fix lockfile 2026-08-13 21:41:05 +03:00
Samuel Newman 7f6db6352d fix lockfile 2026-08-13 21:41:05 +03:00
Samuel Newman b1a7cc7998 fix lockfile 2026-08-13 21:41:05 +03:00
Samuel Newman 69101a9348 take named options in makeSessionHooks
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman 131d4815e6 keep the stored pds url when a refresh delivers no did doc
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman 517439abd6 expand session test coverage, fix abort-test contamination
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman fb494881de redact session debug logs, fix stale bundle read and render-phase ref write
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman 6df3986c2b surface lex error messages in cleanError
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman 5ffee15c4f reject no-op refreshes, mirror the inner session's pds routing
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman 374e1ba3de dispose the bundle and fail loudly when prep destroys the session
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:05 +03:00
Samuel Newman b96d85387d rm subpar comment 2026-08-13 21:41:05 +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 3e42c659c9 clean up migration-context comments
Comments should explain the code as it is, not narrate the change that produced
it. Drops "the old X" / "now" / "no longer" framing and a stale version pin in
favour of concrete names and the live constraints.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
Samuel Newman 9f381485dc dispose superseded bundles on aborted login and signup
`createAccount` and `login` abandoned the factory's returned bundle when a
newer task had already aborted them. The factories return an ARMED bundle, so
that session kept auto-refreshing and rotating refresh tokens server-side for
an account the app was no longer tracking; for signup the void-fired
post-signup writes kept its agent live too. Dispose in both abort branches,
matching `resumeSession`.

Also document why disposal of a replaced bundle is deferred to the post-commit
effect rather than done inline.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +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
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
Samuel Newman 9f40ba0a0b add the passwordsession bridge agent
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
Samuel Newman 427b98e154 extract session-data, network, and expiry-rescue modules
Session-account conversion, the network-aware fetch wrapper, and the
expiry-rescue candidate picker were tangled into agent.ts and util.ts.
Pulling them into agent-agnostic modules lets the upcoming session
layer share them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
Samuel Newman 045f3965ec move labeler cache to mmkv, make moderation config sync
The per-account labeler cache was the only async dependency in
configureModerationForAccount. MMKV-backed sync reads let session
setup apply labelers in the same tick. No AsyncStorage backfill: the
cache is rewritten on every preferences fetch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
Samuel Newman e79d8e8e52 add persisted.readLatest for cross-tab session reads
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
Samuel Newman 65faee2836 add @atproto/lex-password-session and lex-client
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 21:41:04 +03:00
DS Boyce 22b31c52bb Update image in deploy-ota.md (#11462) 2026-08-13 10:50:16 -07: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
Samuel Newman da93da4191 Fix display of link cards in DMs (#11458) 2026-08-13 05:48:56 -07:00
pfrazee 419a49019d Nightly source-language update 2026-08-13 03:00:24 +00:00
DS Boyce aafcb2eeff Remove workaround for iOS text clipping (#11455) 2026-08-12 14:55:25 -07:00
Spence Pope f5f980e58e APP-1645: Improve video upload progress indicator (#11248) 2026-08-12 17:14:06 -04:00
Michael Black 3d736c76b7 APP-2829 Update video lexicon and beta features for 10-minute uploads (#11445) 2026-08-12 14:48:23 -05: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
DS Boyce 4ed34cb242 Fix frozen unknown device ID for new accounts (#11449) 2026-08-12 08:54:01 -07:00
Samuel Newman 34274647f2 Separate landing illustrations from splash assets (#11453) 2026-08-12 06:47:03 -07:00