Eric Bailey
c005e02713
WIP
2026-01-19 17:32:59 -06:00
Samuel Newman
a4f173d008
Bump version to 1.115.0 ( #9726 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-18 20:03:45 +02:00
Samuel Newman
bd510d8468
Upgrade ESLint to v9 with flat config ( #9680 )
...
* Upgrade ESLint to v9 with flat config
- Upgrade eslint from v8 to v9.18.0
- Migrate from .eslintrc.js to eslint.config.mjs (flat config)
- Upgrade typescript-eslint to v8.20.0 (unified package)
- Replace eslint-plugin-import with eslint-plugin-import-x for flat config support
- Add globals package for environment globals
- Update eslint-plugin-bsky-internal with proper meta objects for ESLint v9
- Fix deprecated context.getScope() API usage
- Update bskyembed to use flat config
- Remove deprecated --ext flag from lint scripts
- Configure rules to maintain previous behavior while using new ESLint version
* Fix varsIgnorePattern to require character after underscore
Restore the original pattern `^_.+` instead of `^_` so that lingui's
`const { _ } = useLingui()` will still be flagged when unused.
* Update ESLint rule tests for flat config format
- Update RuleTester to use flat config languageOptions instead of
eslintrc parser format
- Remove duplicate test case that ESLint v9 now detects
- Add Jest globals for test files
* update eslint package versions
* lint android a11y
* enable typechecked rules, switch them to warn
* fix yarn lock ci
* Fix CI failure
* Remove unused globals?
* Organize a bit, add quiet to main lint command
* Allow ternary
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2026-01-16 16:24:28 -06:00
Samuel Newman
ab85b509c0
Watermark posts in screenshots ( #9637 )
...
* watermark posts in screenshots
* disable when app is backgrounded
* fix alignment
* show watermark even when there isn't a button
2026-01-14 21:03:13 -06:00
Samuel Newman
26aa7c0d9a
Add cashtag support for stock ticker discussions ( #9689 )
...
* Add cashtag support for stock ticker discussions
Display cashtags ($TICKER format) as clickable links with dedicated menu actions and search feed, alongside hashtags. Includes composer highlighting and proper formatting.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
* Fix cashtag search query to use # prefix
Cashtags need to be searched as "#$BTC" rather than just "$BTC" to work
with the search API.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
* Update @atproto/api to 0.18.14 with cashtag support
The updated package includes native CASHTAG_REGEX detection for stock
ticker symbols like $AAPL and $BTC.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
* Fix todo, remove redundant validation
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2026-01-14 19:03:48 -06:00
Eric Bailey
5922c6622f
[APP-1767] Live event feeds ( #9696 )
...
* Update env config for new worker setup
* Add liveEvents context
* Add live event feed card to Explore
* Add Discover banner/trending handling, device storage
* Add prefs methods, hook up to Discover banner
* Add settings toggle
* Fix up metrics and mutations
* Simplify undo logic
* Handle previews
* Update overlay color and text color handling
* Update metrics
* Handle live event in feed card
* Show multiple feeds on Explore for bsky team
* Fix dev/preview handling bug
* Add sidebar cards, update types
* Fix type error
* Fix type error
* Feedback
* Blurhash fix
* Copy update
* Dev only debug hook
2026-01-14 15:09:01 -06:00
Samuel Newman
cb6e65e313
pin AsyncStorage to v2.2.0 ( #9656 )
2026-01-14 11:16:49 -08:00
Eric Bailey
edb19dd6cf
[APP-1750] Add the ability to report livestreams ( #9654 )
...
* Add report dialog to LiveStatus dialog
* Mr Worldwide™
* Bug fix bug fix
* Copy update
* Simplify parsing
* Bump api sdk
* update dev-env
* Update yarn.lock
* Bump api sdk
* Refactor useActorStatus, add disablement and appeal dialog
* Fix types
* Guard against chat profile views
* Go live (disabled)
* Fix types
* Status reports should only go to bsky
* Ah yeah let's not override types
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-01-09 10:19:47 -06:00
Eric Bailey
b3f775d1d8
[AAv2] Improve minimum age handling ( #9650 )
...
* Improve miminum age handling
* Update api sdk
* Fix bad import
2026-01-08 15:36:26 -06:00
Samuel Newman
dae03312c9
Bump version to v1.114 ( #9661 )
2026-01-08 11:35:42 -08:00
Samuel Newman
2efc047f64
bump version to v1.113.1 ( #9652 )
2026-01-07 13:15:55 -08:00
Samuel Newman
493bd6dcf6
update crop tool, use new package name ( #9642 )
2026-01-06 18:29:37 +02:00
Samuel Newman
9743149c26
Replace graphemer with unicode-segmenter ( #9526 )
...
* replace graphemer with unicode-segmenter
* use grapheme entrypoint
* force resolution of unicode-segmenter
2025-12-30 03:39:09 -08:00
Samuel Newman
82877a096d
Manually update source languages ( #9611 )
...
* manually update source langs
* add `intl:push-sources` script
2025-12-30 02:08:26 -08:00
Samuel Newman
12dc38c5fc
replace lodash.isequal with fast-deep-equal ( #9529 )
2025-12-30 01:47:29 -08:00
Samuel Newman
893dd78a00
remove unused dep ( #9606 )
2025-12-30 01:23:48 -08:00
Samuel Newman
caa02db87b
Update react native screens, remove patch ( #9210 )
...
* update react native screens
* bump rns
* see if nightly works
* update nightly
* yay it's out
* update react-nav
* update drawer layout and remove patch
* Update createNativeStackNavigatorWithAuth.tsx
* render drawer as "layout" component
* rm react-nav/drawer (unused)
* restore drawer layout patch
2025-12-29 10:16:49 -08:00
Eric Bailey
f50b70e2b4
Bump to v1.113.0 ( #9569 )
2025-12-17 17:03:16 -06:00
Samuel Newman
ad7d49ef8f
[Contacts] Contacts matching flow ( #9486 )
...
* add expo-contacts
* add expo-sms
* update copy
* add basic settings screen
* state machine, flow screen
* phone input screen
* otp screen
* tweak spacing
* resend code logic
* add layoutanimationconfig
* check availablility in settings screen
* get contacts
* matches screen
* search, temp setup for matches UI
* add a bunch of number parsing logic with libphonenumber
* cast to looser type
* rename sync to find
FCF (Find Contacts Flow)
* update geolocation hook
* nicer design for settings screen
* add completed state
* up border contrast
* update expo deps
* add pending spinner
* add country whitelist
* add empty state screen
* drop add more functionality
* upload -> import
* fix typo
* fix permission string
* copy updates
* rm envelope icon
* update sms copy
* add inviteinfo component
* woke is back
* [Contacts] NUXes (#9515 )
* add a bunch of number parsing logic with libphonenumber
* add banner nux
* add announcement nux
* native only nux
* rm shitty animation
* move isNative check
* [Contacts] Onboarding step (#9489 )
* add a bunch of number parsing logic with libphonenumber
* restructure onboarding to better support dynamic screens
* integrate existing flow into onboarding
* add intro step
* lift state up to allow going back freely
* gate onboarding by geo if unsupported country
* add done button to standalone flow
* [Contacts] Add `contact-match` notification type to feed (#9519 )
* add a bunch of number parsing logic with libphonenumber
* add contact-joined notif type
* update string, api package
* Update NotificationFeedItem.tsx
* Update NotificationFeedItem.tsx
* Delete SyncContactsFlow.web.tsx
* fix follow back btn for this case
* [Contacts] API integration (#9487 )
* api integration for flow
* copy tweak
* tweaks after running it
* wire up status page
* rename toast
* use api lib
* rm temp code
* maybe fix otp error
* clear code on error/resend
* add 1s delay to verify success
* update package versions
* Delete SyncContactsFlow.web.tsx
* try and fix yarn.lock lint
* even woker
* fix uppercase friends
* surfdude feedback
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* rm log
* allow resend on invalid code
* Update GetContacts.tsx
* overwrite country code if possible
* fix Apple's Best Feature
* devenv latest
* disable bounces
* interactive keyboard dismiss
* copy changes
* national format
* allow resending immediately
* move success state down a bit
* Update FindContactsSettings.tsx
* [Contacts] More onboarding changes (#9491 )
* integrate existing flow into onboarding
* refreshed onboarding styles, rm stepper
* center content on web
* Add back dismiss button for internal onboarding
* Import sort
---------
Co-authored-by: Eric Bailey <git@esb.lol >
* add matches query to shadow
* add clockwise arrow
* update status design, fix dismiss, fix queries
* add metrics
* add more comments
* Update metrics.ts
* refetch both queries on PTR
* fix shadow state in matches page
* reduce empty space at bottom
* show contact info on matches
* filter out contacts without numbers at an earlier stage
* Error handling ✨
* get notifs working
* filter out businesses
* rm log
* remove TODO from learn more links
* try and exclude from web bundle
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2025-12-12 10:32:06 -08:00
Samuel Newman
6ccda945e5
Telephone country code select ( #9473 )
...
* add telephone code select
* add flags
* run svgo on flags
* get it somewhat working on web
* get web closed state working
* verify country code we get from geo
* trim down names to shorter common versions
* add labels to other selects
* make international tel codes a static object
* add component to storybook
* Update src/lib/international-telephone-codes.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* update to new geo hook
* use Intl.DisplayNames, add polyfill
* use in rather than keys().includes()
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
2025-12-10 12:12:30 -08:00
Samuel Newman
07e1b3a0b6
update jest-expo ( #9520 )
2025-12-10 09:10:37 -08:00
Eric Bailey
b47f5f023e
[APP-1674] Add bday fallback for app passwords ( #9513 )
...
* Add bday fallback for app passwords
* Update birthdate copy, add isAppPassword handling on NoAccessScreen
* Update copy
* Update usage
* Bump API package
* HmmMMMmmm
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* s/a/your
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Say hello
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
2025-12-09 16:42:41 -06:00
Samuel Newman
4d50555e56
Update package.json ( #9507 )
2025-12-09 01:38:26 -08:00
Eric Bailey
d16c8aedfb
Prep v1.111.0 e2e ( #9494 )
...
* Add e2e debug support for AA
* Remove dup tap call
* Update dev-env
2025-12-05 16:34:08 -06:00
Eric Bailey
c4aef9f668
Age Assurance V2 ( #9479 )
...
* Age Assurance V2
* Tighten up test
* Add todos for sdk migration
* Align RQ versions
* Use useEffect for side effect
* Improve effects, memoize
* Standarize on birthdate
* Copy feedback
* Copilot
* Add support link
* Reove double ..
* Cleanup
* Remove redirect dialog
* Cleanup todos, add comments
* Update splash in main template too
* Mock some stuff
* Exhaustive checks
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
* Exhaustive checks
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
* Small fix to bday handling
* Add comment
* onboarding style tweak
sneaking this in sorry!
* rm unreachable breaks
* Put useIntentHandler back on web
* Remove misleading success set
* Align on birthdate
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2025-12-04 15:20:00 -06:00
Samuel Newman
8b00b8f945
Split React Native patches into individual patches ( #9429 )
2025-11-22 23:49:57 +02:00
Samuel Newman
af13c70444
bump version to v1.111 ( #9431 )
2025-11-21 22:56:49 +02:00
Samuel Newman
2faf62c7f7
Update version to v1.110.1 ( #9416 )
2025-11-19 13:21:56 -08:00
Samuel Newman
7a8ab551e3
update crop tool to latest, adjust to API changes ( #9389 )
2025-11-14 11:05:31 -08:00
Eric Bailey
7bf00424c4
Clean up getPostThreadV2 settings/params in prep for future work ( #9179 )
...
* Deprecate prioritizeFollowedUsers
* Bump API package
2025-11-06 10:42:08 -06:00
Samuel Newman
16b14b9d13
Restore await to dismissBrowser in intent handler ( #9326 )
2025-11-04 16:57:52 +02:00
Eric Bailey
339f3320c6
[TS-147] Add internal debug field display ( #9302 )
...
* Add internal debug field display
* Update title
2025-10-29 11:21:19 -05:00
Samuel Newman
5cff45bdc8
Update expo and related dependencies ( #9291 )
...
* update expo + deps
* reanimated patch right version
* Update yarn.lock
* update other rn packages
2025-10-28 06:44:16 -07:00
Samuel Newman
206f52fb13
Bump version to 1.110.0 ( #9284 )
2025-10-27 21:55:55 +02:00
Samuel Newman
a482dae936
[Release prep] 1.109.0 E2E fixes ( #9216 )
...
* list tests
* fix create account
* get onboarding e2e tests working
* get curate list test working
* Update thread-muting.yml
2025-10-16 07:31:11 -07:00
Samuel Newman
b56d0c419b
add sort import suggestions plugin ( #8335 )
2025-10-15 09:37:07 -07:00
Samuel Newman
1127e50248
[Onboarding] Add starterpacks step ( #9007 )
...
* add onboarding starterpacks step
* tweak starter pack cards
* fix web styling
* use new API
* add screen transitions to onboarding
* skip host account
* bump limit to 6
* tweak font weight
* rm commented out code
* fix yarn.lock
* limit starter packs experiment to english speakers
2025-10-15 07:32:38 -07:00
Eric Bailey
995808e816
Bump alf package to include new colors ( #9187 )
2025-10-10 14:30:15 -05:00
Samuel Newman
c928d6b14a
Keep the screen awake on the video feed ( #9146 )
2025-10-10 11:33:09 -05:00
Samuel Newman
54f70a576a
[16KB] use 16kb-compatible fork of react-native-mmkv ( #9150 )
...
* use 16kb-compatible fork of react-native-mmkv
* avoid using package alias
* specify ndk version
* Revert "specify ndk version"
This reverts commit 577393518e .
* add compiler flags to mmkv build (bump version)
* move fork to bsky repo/npm org
2025-10-07 08:06:29 -07:00
dan
1354fd2661
[Fix Logouts] Remove buggy hackfix ( #9108 )
...
* Rip out the network hack in favor of bluesky-social/atproto#4238
* Bump api pkg
* Debug code
* Revert "Debug code"
This reverts commit 38445f31f4 .
---------
Co-authored-by: Eric Bailey <git@esb.lol >
2025-10-02 14:01:10 -05:00
Samuel Newman
77bf49f212
Tighten up eslint rule to catch unused const {_} = useLingui() ( #9122 )
...
* tighten eslint config to catch unused `useLingui`s
* fix now-invalid uses of _
* remove unused function that produces a ton of eslint warnings
* upgrade react compiler plugin
2025-10-02 09:59:05 -07:00
Samuel Newman
031fa95715
remove root sibling library ( #9097 )
2025-09-29 14:31:55 -05:00
Eric Bailey
bd17f04810
Migrate to @bsky.app/alf package ( #9030 )
...
* Add storybook shortcut in dev
* Migrate to alg pkg
* Migrate font_bold to new font_semi_bold
* Migrate font_heavy to font_bold
* Fix old theme refs
* Remove leading util
* Bump
* Revert "Add storybook shortcut in dev"
This reverts commit 7a86195c77fb5d449c7782e64ebabb6addfab919.
* Remove alf script
* Adjust font scale
* Bump
* Bump pkg
* Migrate values from conflicts
* Create default themes outside react
* Use built-in alf utils
* Migrate old font styles
* Remove unused tokens
* Move theme creation to more appropriate file
* Update button colors
* Adjust TextField colors, line heights
2025-09-24 11:47:08 -05:00
Samuel Newman
5211b26903
Expo 54 ( #8931 )
...
* update deps
* update patches
* fix new arch optout
* build from source, disable new arch
* update to preview.14
* upgrade off of preview to release
* fix lockfile lint
* update patches
* add back expo-location
* downgrade reanimated
* downgrade pagerview
* use expo-file-system/legacy
* try and upgrade types/react-dom
* fix type of uint8array
* rm @types/react resolution from bad rebase
* more type errors
* fix mock
* bump rn-compressor
* add patch of https://github.com/bluesky-social/react-native-paste-input/pull/5
* delete NativeDropdown & remove Zeego
* `import React` in expo modules
* bump cocoapods
* rm unused picker lib
* add speculative react-native-mmkv patch
* revert patch, add temp debug info to error
* bring back speculative patch, patch built JS code instead of source
* revert patch, just do debugging part
* dep update
* update resolutions, dynamic-app-icon
* bump node version in eas.json
* update build instructions
* rm atob from docs
* Delete react-native-mmkv+2.12.2.patch
* bump expo which might include fix
* update expo patch version
* bump expo patch version
* wrong version oops
* update expo to latest
* update react-native-compressor, rm patch
2025-09-22 08:52:07 -07:00
Samuel Newman
bb30b592d7
Remove atob polyfill ( #9000 )
...
* remove atob polyfill
* remove base64-js as a dependency
2025-09-09 08:33:41 -07:00
Samuel Newman
3e2c181c40
Upgrade @types/react to 19 and run codemod (attempt 2) ( #8918 )
...
* update dependencies
* rm `import type React from 'react'`
* run codemods
* patch discord types
* update types/react-dom
* Update yarn.lock
2025-09-09 08:09:10 -07:00
Samuel Newman
5ec6db5297
bump version ( #9008 )
2025-09-08 11:31:14 -07:00
Samuel Newman
457cd3d0fb
E2E fixes ( #8980 )
...
* update dev-env
* hide nux after onboarding
* use getter/setter for proxy header
2025-09-05 09:27:18 -05:00
Eric Bailey
535d4d6cf7
📓 Bookmarks ( #8976 )
...
* Add button to controls, respace
* Hook up shadow and mutation
* Add Bookmarks screen
* Build out Bookmarks screen
* Handle removals via shadow
* Use truncateAndInvalidate strategy
* Add empty state
* Add toasts
* Add undo buttons to toasts
* Stage NUX, needs image
* Finesse post controls
* New reply icon
* Use curvier variant of repost icon
* Prevent layout shift with align_start
* Update api pkg
* Swap in new image
* Limit spacing on desktop
* Rm decimals over 10k
* Better optimistic adding/removing
* Add metrics
* Comment
* Remove unused code block
* Remove debug limit
* Fork shadow for web/native
* Tweak alt
* add preventExpansion: true
* Refine hitslop
* Add count to anchor
* Reduce space in compact mode
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2025-09-04 17:30:15 -05:00