* origin/main: (31 commits)
Add group chat join links to supported embed types (#10454)
Disable overscroll on Android to fix settle discrepancy (#10717)
Fix labeller highlight when selected on bottom bar (#10716)
Use correct `Plural` macro in InviteLinkDialog (#10723)
Fix invalid `zero` plural category and add plural formatting (#10722)
Nightly source-language update
`expo-image` tweaks (#10710)
Make extra sure the drawer gesture doesn't accidentally trigger on Android (#10713)
Fix image peek in carousels for quote posts (#10688)
Compile i18n before running lint (#10711)
[Android] Fix horizontal swipes being cancelled when leaving bounds (#10712)
Enable ESLint errors and suppress existing violations (#10490)
Hide accept button for locked chats (#10696)
Mount message dialogs once at the list level (#10435)
Fix alt text selection in lightbox on Android (and iOS) (#10698)
Mention default `<Text>` style in CLAUDE.md (#10705)
Use square icons for labellers in Automation Label preview card (#10701)
[ALF] Set text to `leading_snug` by default (#10627)
Nightly source-language update
Transpile `@atproto/api` package for older browser support (#10700)
...
IMAGE_SIZE_CONFIG_POSTS (4000px/2MB) and IMAGE_SIZE_CONFIG_2K_1MB
(2000px/1MB), replacing POST_IMG_MAX_SIZE and PROFILE_IMAGES_MAX_SIZE.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
POST_IMG_MAX no longer described post images, so rename it to the
semantically accurate pair: POST_IMG_MAX_SIZE (4000px/2MB, post images
and pasted URLs) and PROFILE_IMAGES_MAX_SIZE (2000px/1MB, avatars,
banners, onboarding, link thumbnails).
Drop the constant defaults from compressImage, compressIfNeeded, and
getResizedDimensions; callers now pass the appropriate max config object
directly so the size policy lives at the call site. Web avatar/banner
edits now use PROFILE_IMAGES_MAX_SIZE, matching the native profile path.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the hardcoded POST_IMG_MAX limits baked into the resize helpers
with explicit per-caller maxDimension/maxBytes parameters. Pasted image
URLs now pre-shrink at the high-res 4000px/2MB post limits instead of
2000px/1MB, removing a quality bottleneck before compressImage runs.
Avatar/banner/onboarding and link thumbnails keep their 2000px/1MB
limits.
Also bring web doResize to parity with native by clamping dimensions via
a shared getResizedDimensions (hoisted into media/util.ts), and shadow
the mutated maxDimension param in compressImage as a local.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>