Conditionally build `chainProviders` so empty `urls` arrays are never passed downstream. Replace hardcoded "Chain ticker: " with `capitalize(t('chain_ticker'))` and add the translation key to all locales. Remove the duplicate `isWebRuntime` in `media-hosting-settings.tsx` in favor of the shared implementation in `show-upload-controls`. Add `aria-label` to the directory codes input in `TopbarEditModal`.
Removes avatar-settings component, avatar-visibility store, and all
avatar rendering from posts. Strips avatar from account JSON, renames
NFT gateway label to media IPFS gateway, removes Polygon RPC and
hide-avatars toggle. Deletes 6 avatar-related translation keys.
Obsolete with pseudonymity mode (user IDs randomized per board) and custom boards
requiring explicit search/subscribe. Unsubscribe suffices for boards.
Add Random/Preferred/None modes, preferred provider selection, and provider-order fallback. Catbox/Imgur/PostImages on Android via WebView; Electron CDP automation for Imgur/PostImages. Hide upload controls on web runtime.
Replace sync setState-in-effect with keyed remount and render-derived patterns in app, error-display, topbar-edit-modal, catalog-filters; use useCurrentTime() instead of Date.now() in hot paths; fix conditional hooks, passive scroll listeners, lodash path imports.
Replaced `import _ from 'lodash'` with specific named imports (`capitalize`, `lowerCase`, `debounce`, `startCase`) across 18 files. This reduces bundle size and improves tree-shaking efficiency.
Refactor avatar settings to match crypto wallets UI structure and styling. Use flexbox layout for consistent spacing, align input widths, use ErrorDisplay component for errors, and add delete avatar functionality with translations.
- delete the anon mode hook/store and stop wiring publish flows through alternate signers
- strip the settings UI, avatar warning, reply indicators, and FAQ text that referenced the toggle
- drop the anon mode translation keys via scripts/update-translations.js