* 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.
* 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
Wrap new URL() constructor in try-catch to gracefully handle malformed URL strings that start with 'http' but are invalid. Returns null instead of throwing.
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
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.
* refactor: remove entry tags support
* fix: remove remaining tags references from entry selectors
Follow-up to 9ea61dbfd - these files were missed in the entry tags removal.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
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>
- Wrapped SortByUnreadFeedList in memo for performance optimization.
- Utilized useCallback for the sortedList computation to prevent unnecessary re-renders.
- Enhanced the handling of onboarding and regular categories by ensuring a copy of ids is used.
- Minor adjustments in SubscriptionList and hooks for consistency and clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced new atom hooks for managing discover search data, improving state handling in UnifiedDiscoverForm.
- Replaced direct atom usage with custom hooks for better abstraction and maintainability.
- Updated related components to utilize the new state management approach, enhancing overall code clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a responsive select component to filter feeds by type (All, RSSHub).
- Implemented logic to count and display RSSHub feeds.
- Updated feed selection and sorting functionality to respect the selected filter.
- Enhanced localization files to include new filter labels in English, Japanese, Simplified Chinese, and Traditional Chinese.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced DiscoveryContent and UnifiedDiscoverForm components for better organization and functionality in the discover module.
- Updated existing components to remove unnecessary max-width constraints for improved responsiveness.
- Enhanced the Trending component with a view selector and improved layout handling.
- Updated localization files to include new tool descriptions and tips for user guidance.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced attribution tracking by capturing UTM parameters from the URL.
- Implemented functions to save and retrieve attribution data from local storage.
- Enhanced analytics initialization to include attribution data as user properties.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated layout and styling for the LoginModalContent component to improve visual hierarchy and user experience.
- Added new benefits and subtitles to the login interface, enhancing clarity for users.
- Introduced a quick start hint for new users and a demo view button for better engagement.
- Updated localization files for English, Japanese, Simplified Chinese, and Traditional Chinese to reflect new content.
Signed-off-by: Innei <tukon479@gmail.com>
- Added MobileTimelineLayout component to handle mobile-specific rendering.
- Integrated useMobile hook for responsive behavior in AIEnhancedTimelineLayout.
- Updated layout logic to conditionally render components based on mobile view.
- Enhanced dropdown and context menu styles for better visual feedback.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a renderValue function to the LanguageSelector for improved display of selected language names.
- Updated layout component to support responsive behavior based on viewport width.
- Refactored setting sync to utilize useMobile hook for better mobile detection.
- Enhanced withResponsiveComponent to accept a breakpoint function for more flexible responsive layouts.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed conditional class application for feedIcon in EntryListHeader to simplify styling.
- Added functionality to the FeedItem context menu to allow users to switch views, integrating a new menu item for changing to another view based on the current subscription.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the layout of TagEntriesModal for better responsiveness and visual clarity.
- Removed unnecessary loading state handling for the refresh button.
- Enhanced the key generation for mapped items to avoid potential duplication.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a segment control to allow users to toggle between viewing entries from the current feed or all feeds.
- Integrated translation support for the new segment labels in English, Japanese, Simplified Chinese, and Traditional Chinese.
- Updated the useEntryTagsQuery hook to enable fetching based on the selected feed scope.
Signed-off-by: Innei <tukon479@gmail.com>
- Eliminated the EntryTags component from the ListItem template to streamline the rendering process.
- This change may improve performance and reduce unnecessary rendering in the entry column.
Signed-off-by: Innei <tukon479@gmail.com>