commits
Bye bye "fix: ensure `com.atproto.*` calls go through without proxying" "add deer custom-appview" "unproxy preferences" (ALSO removes the pdsAgent import added in "couple code error fixes" 3814f6b)
This reverts commits 69cf6f93b829d1d25e5fa37875d90070f68ef2ed, 6b305f2626cffa73b1989dec44a071ae7b4ba2b9, and 45584b9c28a5b657e3684b2d8f3cbea06668c116.
Open profile is replaced with View avatar when you're on a profile of a live user. (Could probably remove the rest of the lightbox TouchableWithoutFeedback element here in favor of Bluesky's official implementation upstream and just above on line :205?)
where did it go? we will never know 🤷 this makes the background and mentions fixed ✅ yay! omg git is so wacky sometimes (or maybe major VS Code merging conflicts skill issue, unsure)


Fix loading screen background color to a lovely very dark orange instead of blue! Also fixed the ProfileMenu highlight being circular instead of square when active.
http://witchsky.app/profile/did:plc:q7suwaz53ztc4mbiqyygbn43/post/3mcnu54wgks2x
http://localhost:19006/profile/did:plc:q7suwaz53ztc4mbiqyygbn43/post/3mcnu54wgks2x
on top of https://tangled.org/jollywhoppers.com/witchsky.app/pulls/41
on top of https://tangled.org/jollywhoppers.com/witchsky.app/pulls/40
on top of https://tangled.org/jollywhoppers.com/witchsky.app/pulls/39
still need to replace the loading screen with witchsky's color instead of bluesky, but it's back to being fixed! I should've listened to lewis when he said to not remove this! I should've known!
WARNING. WITCHSKY DOES NOT WORK IN THIS STATE. YOU CAN NOT GET PAST THE AGE ASSURANCE SCREEN. BEWARE.
* Add platform vars to env
* Replace /platform/detection with /env
* 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>
`atproto-proxy` behavior seems ambiguous right now, it's not really clear whether PDS implementors should interpret atproto-proxy *before* or *after* PDS' own route handlers. This PR ensures that `com.atproto.*` calls go through without a proxy set (with some exception)
* watermark posts in screenshots
* disable when app is backgrounded
* fix alignment
* show watermark even when there isn't a button
* unregister push - WIP
* create agent and submit push token revokation
* mock unregisterpush
* fix import
* Add proxy headers
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* prevent flash of wrong theme on startup
* move bg color to #root
* Update and use existing system
* Darken slightly, better contrast
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* add `loading="lazy"` to expo-image
* add `loading="lazy"` to embed cards, avatars
* get rid of useless image wrapper indirection
* move image components to components dir
* fix imports
* fix import
* Keep avis eager
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* fix: make logo show in qr code by absolutely positioning svg on top of it
* fix: remove log and add explanation comment
* fix: only apply qrcode fix to web
Co-authored-by: Elijah Seed-Arita <elijaharita@gmail.com>
* 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>
* 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
* Update config and gates
* Add allowed services
* Merge conflicts
* Fix gradient handling for nudge
* Only show nudge on your own profile
* Fix live avi overflow breakage
* Add TODO
* Feedback
* Update nux image
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* 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
* query fonts lazily
* use `lazy var`
* Add comprehensive CLAUDE.md development guide
Document the codebase architecture, styling system (ALF), component patterns
(Dialog, Menu, Button), i18n with Lingui, state management with TanStack Query,
and navigation patterns to help Claude work effectively in this codebase.
* Add footguns section to CLAUDE.md
Document critical pitfalls including:
- Dialog close callback pattern (control.close(() => ...)) for avoiding
race conditions with navigation, state updates, and opening other dialogs
- Controlled vs uncontrolled input guidance
- Platform-specific component behavior differences
* Add React Compiler note to footguns section
Document that useMemo/useCallback are unnecessary since React Compiler
handles memoization automatically. Only use them for specific cases like
effect dependencies or non-React library interop.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Do not render links if uri is invalid
* Update comment
Add conductor setup and run scripts that install dependencies and start the dev server with a dynamically allocated port.
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Bye bye "fix: ensure `com.atproto.*` calls go through without proxying" "add deer custom-appview" "unproxy preferences" (ALSO removes the pdsAgent import added in "couple code error fixes" 3814f6b)
This reverts commits 69cf6f93b829d1d25e5fa37875d90070f68ef2ed, 6b305f2626cffa73b1989dec44a071ae7b4ba2b9, and 45584b9c28a5b657e3684b2d8f3cbea06668c116.
* 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>
* 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>
* 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
* Update config and gates
* Add allowed services
* Merge conflicts
* Fix gradient handling for nudge
* Only show nudge on your own profile
* Fix live avi overflow breakage
* Add TODO
* Feedback
* Update nux image
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* 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
* Add comprehensive CLAUDE.md development guide
Document the codebase architecture, styling system (ALF), component patterns
(Dialog, Menu, Button), i18n with Lingui, state management with TanStack Query,
and navigation patterns to help Claude work effectively in this codebase.
* Add footguns section to CLAUDE.md
Document critical pitfalls including:
- Dialog close callback pattern (control.close(() => ...)) for avoiding
race conditions with navigation, state updates, and opening other dialogs
- Controlled vs uncontrolled input guidance
- Platform-specific component behavior differences
* Add React Compiler note to footguns section
Document that useMemo/useCallback are unnecessary since React Compiler
handles memoization automatically. Only use them for specific cases like
effect dependencies or non-React library interop.
---------
Co-authored-by: Claude <noreply@anthropic.com>