Commit Graph

1306 Commits

Author SHA1 Message Date
DIYgod b465ec1463 fix: harden external protocol handling and unblock dev:electron (#4863)
* fix(desktop): harden external protocol handling

* fix(build): avoid optional peer resolution in dev
2026-02-20 21:36:23 +08:00
DIYgod 8963930f29 fix(web): resolve ai onboarding typecheck regressions (#4862) 2026-02-19 16:59:10 +08:00
DIYgod d386c00ebd fix: clean up renderer lint issues and refresh lockfile (#4860) 2026-02-19 16:38:40 +08:00
DIYgod b548f5a39c Merge remote-tracking branch 'origin/mobile-main' into release/mobile/0.3.0
# Conflicts:
#	apps/desktop/layer/main/src/updater/custom-github-provider.ts
#	apps/desktop/layer/renderer/src/modules/achievement/AchievementModalContent.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/EntrySubscriptionItem.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/components/EntryPlaneToolbar.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/components/EntrySubscriptionSkeleton.tsx
#	apps/desktop/layer/renderer/src/modules/entry-content/EntryContent.legacy.tsx
#	apps/desktop/layer/renderer/src/modules/new-user-guide/guide-modal-content.tsx
#	apps/desktop/layer/renderer/src/modules/settings/tabs/invitations.tsx
#	apps/desktop/layer/renderer/src/modules/settings/tabs/referral.tsx
#	apps/desktop/layer/renderer/src/modules/wallet/level.tsx
#	apps/mobile/src/modules/login/referral.tsx
#	apps/mobile/src/modules/settings/routes/Invitations.tsx
#	apps/mobile/src/modules/settings/routes/Referral.tsx
#	apps/mobile/src/screens/(modal)/InvitationScreen.tsx
2026-02-18 23:53:40 +08:00
DIYgod 0da9f2098e feat: migrate desktop/mobile error tracking to posthog (#4858)
* 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.
2026-02-18 23:16:00 +08:00
DIYgod 01da257c90 feat(i18n): merge #4597/#4774 and complete localization audit (#4839)
* 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>
2026-02-13 09:25:08 +00:00
DIYgod 0859f56ad4 chore: update workspace dependencies and lockfile (#4838)
* 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
2026-02-13 16:04:13 +08:00
DIYgod 2290ec7f3c fix: preserve session when switching API domain (#4833)
* feat(auth): migrate session across API domain switch

* fix(auth): address PR review on migration flow

* fix(ci): avoid package.json mutation during renderer build
2026-02-12 20:58:03 +08:00
DIYgod 62efdd29b2 fix: handle invalid URL parsing in useFeedSafeUrl hook (#4823)
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>
2026-01-30 13:48:23 +08:00
DIYgod c0ce04453f refactor: remove checkNew timeline update detection logic (#4817)
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.
2026-01-21 13:31:54 +08:00
DIYgod 2bba6a9032 refactor: remove entry tags support (#4813)
* 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>
2026-01-18 17:37:16 +08:00
DIYgod 95b0da87a4 refactor: remove deprecated features (referral, invitations, memory, wallet) (#4812)
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>
2026-01-18 16:22:10 +08:00
XLor f03e81b8fc feat: markdown link supports open share feed link directly (#4811)
* feat: markdown link supports open share feed link directly

* docs: update changelog

* fix: revert stopPropagation

* fix: revert stopPropagation

* fix: revert stopPropagation
2026-01-16 21:35:54 +08:00
DIYgod 8970d4d1d9 fix: mainHash 2026-01-02 19:23:03 +08:00
DIYgod a86b2c6383 feat: optimize Stripe subscription management UI (#4793)
* 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>
2026-01-01 19:15:34 +08:00
DIYgod f39bcb97d8 fix: align ai-chat message types (#4792) 2026-01-01 16:45:54 +08:00
DIYgod 3d21eab3f0 chore: update ai sdk to v6.0.5 (#4790) 2026-01-01 15:52:02 +08:00
DIYgod 211bd6e67e Revert "feat: apple iap in electron (#4757)"
This reverts commit edf417fe81.
2026-01-01 14:52:34 +08:00
DIYgod 7d7723f04f chore: update license 2025-12-28 18:27:30 +08:00
DIYgod c9b0e65182 Revert "fix(headers): set app origin for OPTIONS requests"
This reverts commit dbff42baca.
2025-12-24 16:22:31 +08:00
DIYgod dbff42baca fix(headers): set app origin for OPTIONS requests 2025-12-24 12:18:38 +08:00
Stephen Zhou edf417fe81 feat: apple iap in electron (#4757)
* feat: apple iap in electron

* update
2025-12-24 10:26:49 +08:00
DIYgod 1f0902177c fix(translation): refresh cache on mode changes 2025-12-22 13:51:47 +08:00
DIYgod 688cfceab9 feat: upgrade ai sdk 2025-12-18 12:07:27 +08:00
DIYgod 1b7d88275a feat: remove unused login benefits and not logged in notice 2025-12-15 13:09:49 +08:00
DIYgod 45568d010f chore: remove list power pricing ui 2025-12-15 12:58:39 +08:00
DIYgod 899eb7309f feat(entry-content): integrate AI translation support in EntryContent component 2025-12-15 12:55:44 +08:00
Innei 3bab2a5595 fix(discover): correct atom key reference in UnifiedDiscoverForm to ensure proper data retrieval
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-27 23:19:35 +08:00
Innei d7bc90ba0a refactor: optimize SortByUnreadFeedList component and improve state handling
- 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>
2025-11-27 22:51:05 +08:00
Stephen Zhou 1aa8b63305 fix: stable unread sort 2025-11-27 22:40:37 +08:00
Konv Suu 07acce799e fix(discover): prevent empty results when keyword changes without search (#4759)
Co-authored-by: Innei <i@innei.in>
2025-11-27 01:09:36 +08:00
Innei 844b5f490f feat: refactor discover module state management
- 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>
2025-11-27 01:08:01 +08:00
Innei 519d0ba110 feat: enhance feed management with filtering options
- 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>
2025-11-26 17:35:24 +08:00
Innei f7460fd7ce style: adjust unify setting item margin
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-26 17:17:12 +08:00
Innei 431a32345d feat: redesign discover layout
- 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>
2025-11-25 22:44:14 +08:00
Innei 0ee37eec61 perf: sync with streamdown logic
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-25 19:42:15 +08:00
Stephen Zhou 03e99f55c6 chore: try remove workbox preaching 2025-11-25 14:48:54 +08:00
Stephen Zhou 51d39f6f6f fix: youtube embed 2025-11-25 12:05:33 +08:00
Innei 0e441f6075 feat: add attribution tracking for analytics
- 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>
2025-11-25 01:37:28 +08:00
Innei b1a1caa002 chore: modify copy to increase conversion
- 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>
2025-11-25 01:17:36 +08:00
Innei f178f486f8 feat: implement mobile layout for AIEnhancedTimeline
- 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>
2025-11-24 16:41:25 +08:00
Innei ad8575d737 feat: narrowed responsive layout handling, closed #4370
- 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>
2025-11-24 16:02:17 +08:00
Innei 452bb941a9 fix: entry 404 rendered error, closed #4729
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 15:26:44 +08:00
Innei a52c0473f0 fix: update EntryListHeader styling and enhance FeedItem context menu
- 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>
2025-11-24 15:18:49 +08:00
Stephen Zhou 8087bebfee chore: lint 2025-11-21 16:48:18 +08:00
Stephen Zhou 5e0f2a09b5 fix: stable image proxy utils 2025-11-21 16:43:21 +08:00
Innei 4b482fc78e refactor: simplify TagEntriesModal layout and improve loading state handling
- 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>
2025-11-21 16:29:42 +08:00
Innei 8afbb47caa feat: enhance TagEntriesModal with feed selection options
- 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>
2025-11-21 16:27:02 +08:00
Stephen Zhou df82ac45c9 fix: do not register notification when there are no user 2025-11-21 16:02:41 +08:00
Innei dc70a241bf fix: remove EntryTags component from ListItem template
- 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>
2025-11-21 15:50:27 +08:00