* feat: migrate desktop and mobile error tracking to PostHog
* fix(mobile): remove unsupported tab bar minimize API
* Revert "fix(mobile): remove unsupported tab bar minimize API"
This reverts commit e234dda512.
* fix(mobile): complete full mobile audit improvements
* chore: remove mobile audit planning artifacts
* fix(mobile): stabilize editable row keys in settings actions
- Replace deprecated Swipeable (old API) with ReanimatedSwipeable (new API with Reanimated integration)
- Migrate from React Native Animated to react-native-reanimated for animations
- Extract LeftActionItem component to properly use useAnimatedStyle hook
- Update renderRightActions to use SharedValue translation for detecting swipe-right-to-call-action
- Replace RN Animated.AnimatedInterpolation with Reanimated's interpolate function
- Use useAnimatedReaction to monitor translation.value and trigger haptic feedback
- Upgrade react-native-css-interop from 0.1.22 to 0.2.1 (removes outdated React 19 compatibility issue)
Fixes React 19 + React Native 0.81 compatibility issues with gesture handler and animation APIs.
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* chore: Update Japanese translations for new features and errors
Added and updated multiple Japanese locale strings across AI, app, errors, external, settings, and shortcuts modules. Changes include new labels, descriptions, error messages, and UI text for features such as scheduling, token usage, inbox management, toolbar customization, and quick search.
* Add Japanese README documentation
Introduces README-ja.md with comprehensive information about Folo, including features, installation instructions, community links, contribution guidelines, code signing policies, and license details for Japanese-speaking users.
* Update formatting in Japanese README
Corrected the admonition marker from '[!重要]' to '[!IMPORTANT]' for consistency and made minor formatting adjustments in the README-ja.md file.
* Update community section in Japanese README
Revised wording and formatting in the community participation section of README-ja.md for improved clarity and consistency.
* Remove Japanese README file
Deleted README-ja.md to reduce duplication or outdated documentation. All relevant information should now be referenced from the main README or other documentation files.
* feat: add French (fr-FR) localization
* fix: sort imports in default-resource.ts to resolve lint error
* feat: add missing French translations for mobile/default, native, and external locales
* feat: add French language filter to discovery/recommended feeds
* docs: update changelog for French localization
* feat(i18n): merge PR #4597/#4774 and finish localization audit
---------
Co-authored-by: dai <dosada@gmail.com>
Co-authored-by: Anthony Mahé <snpepito@gmail.com>
Co-authored-by: Anthony Mahé <104373430+AnthonyMahe@users.noreply.github.com>
* chore: update workspace dependencies
- bump dependencies across desktop, mobile, ssr, and internal packages
- refresh pnpm lockfile
- apply type compatibility fixes required by upgraded packages
* fix(ssr): prevent tsdown CI warning from failing build
- set inlineOnly to false in tsdown config
* style: format files for CI prettier check
- apply prettier formatting to files reported by format:check
* fix(mobile): downgrade reanimated for rn 0.79 ios build
Remove the checkNew query and related state management that periodically checked for new entries in the timeline. The hasUpdate state and related UI indication (refresh button highlighting) have been removed while preserving fetchedTime for mark-all-read filtering.
Remove the following modules and features:
- Referral/invitation system across desktop, mobile, and SSR
- AI memory management (SaveMemoryCard, ManageMemoryCard, UserMemorySection)
- Daily reward claim and reward description modal
- Activity points and level display in wallet
- Related query files and imports
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* feat: optimize Stripe subscription management UI
- Replace static billing portal link with dynamic Stripe Billing Portal Session API
- Allow canceled subscriptions to display status and expiration date
- Show subscription status indicator with color coding (green/blue/yellow)
- Move status info above manage button for better layout
- Update UI for both desktop and mobile platforms
- Add translations for subscription status messages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* fix: use authenticated API client for billing portal on mobile
Replace raw fetch with followClient.request() to properly inject
authentication cookie and required headers on React Native.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Refactored translation prefetching logic across multiple components to utilize the new isFreeRole function. This change ensures that users with Free roles do not trigger translation prefetching, optimizing performance and enhancing user experience. Updated relevant imports and conditions in EntryItemImpl, useEntryContent, and various EntryList components.
Signed-off-by: Innei <tukon479@gmail.com>
Enhanced translation prefetching logic across multiple components by incorporating user role checks. Users with the Free role will no longer trigger translation prefetching, optimizing performance and resource usage. Updated relevant hooks and components to utilize the new logic for improved user experience.
Signed-off-by: Innei <tukon479@gmail.com>
Added functionality to suggest an upgrade when payment-related errors occur in the AI summary component. Introduced a new UpgradeRequiredDialog for user prompts and integrated it with existing error handling. Updated localization for upgrade messages in multiple languages. Refactored related components to improve clarity and maintainability.
Signed-off-by: Innei <tukon479@gmail.com>
Deleted the api-fetch module and the ActivationModalContent component, streamlining the codebase. Updated references to use the new UpgradePlanModalContent where necessary. Adjusted response interceptors in the api-client to remove unused router references and error handling logic.
Signed-off-by: Innei <tukon479@gmail.com>
Introduced a new SubscriptionScreen for managing user subscriptions, replacing the previous PlanScreen references. Updated navigation links in SettingsList to reflect this change, ensuring proper routing. Enhanced localization files to include new subscription-related strings for multiple languages.
Signed-off-by: Innei <tukon479@gmail.com>
Updated the header and user banner components to conditionally adjust styles based on modal presentation state. The header now accounts for modal visibility when setting padding, and the user banner adjusts its margin and padding accordingly to enhance layout consistency in modal views.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: new payment
* update
* update
* update
* update
* feat: enhance plan feature formatting and update localization strings
* update
* update
* update
* update
* refactor: remove NeedActivationToast and related activation modal logic
* update
* feat(settings): guard paid settings
Centralized paid-level metadata in @follow/shared and exposed the SettingNamespace union.
Updated the builder helpers and every settings tab to pull paid badges from that shared map.
Hardened the atoms helper to block writes and surface default values when a user lacks the required role.
Added the necessary workspace dependencies for the atoms package.
* fix: types
* feat(rate-limit-notice): update error messaging and add upgrade prompt
* feat(settings): integrate review checks into settings components
* update
* fix(plan): correct priority calculation in setting page data
* feat(ai-summary): add upgrade suggestion for AI summary when plan is insufficient
* feat(settings): enhance PaidBadge component to conditionally render based on MAS review status
---------
Co-authored-by: DIYgod <i@diygod.me>
- Replaced `[text-autospace:auto]` with `autospace-normal` class in ListItem, EntryTitle, and ArticleLayout components to standardize text spacing.
- Added a new utility class `autospace-normal` in tailwind.css to ensure consistent text rendering across the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Added `[text-autospace:auto]` class to the `className` property in both ArticleLayout and HTML components to enhance text rendering and improve readability.
- This change ensures better handling of text spacing across different content types.
Signed-off-by: Innei <tukon479@gmail.com>