Commit Graph

6476 Commits

Author SHA1 Message Date
Innei 7797b7b8fd
feat: implement selected text functionality in AI chat editor, resolves FOL-2800
- Introduced a new SelectedTextNode to handle selected text within the AI chat editor.
- Added a TextSelectionToolbar for user interaction with selected text, including copy and AI query options.
- Updated the editor plugins to include the SelectedTextPlugin for managing selected text insertion.
- Enhanced text selection event handling to capture and process selected text with associated metadata.
- Refactored related components and styles for improved user experience and integration.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 22:39:31 +08:00
DIYgod c17957f98e
fix: update AI timeline loading overlay styles for improved visibility and aesthetics 2025-11-19 22:36:15 +08:00
DIYgod 6a64f53de6
feat: implement AI timeline loading overlay with animations and localization support 2025-11-19 22:36:15 +08:00
DIYgod 26c842751a
feat: add AI timeline sorting feature with customizable prompt settings 2025-11-19 22:36:15 +08:00
Stephen Zhou 043b5a02c4
fix: mark as read on top for list context menu 2025-11-19 22:01:07 +08:00
Stephen Zhou f207cc328d
feat: secure image proxy in plan 2025-11-19 21:54:29 +08:00
Innei 8c655f2a2f
feat: enhance audio player with slider functionality
- Integrated a slider component for audio progress control using @radix-ui/react-slider.
- Added state management for dragging and value tracking during playback.
- Updated UI elements for improved interaction and visual feedback.
- Refactored progress handling to accommodate new slider functionality.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 18:50:05 +08:00
Innei 55720885cf
fix: add metadata backfill check in AIChatSessionService, improves message loading logic
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 18:20:06 +08:00
Innei 64a4e20faf
fix: add metadata handling in AIPersistServiceStatic, resolves FOL-2809
- Updated AIPersistServiceStatic to include metadata in the message construction from the database.
- Enhanced type imports to include BizUIMetadata for improved type safety.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 17:03:09 +08:00
Innei 5cbfb50df0
fix: chat session delete loading state
- Updated session deletion logic in ChatHistoryDropdown and TaskReportDropdown to use an options object for event handling and pre-delete actions.
- Refactored ChatInterface to streamline focus handling and error logging, introducing new hooks for managing chat input focus and logging errors.
- Enhanced chat scroller functionality to better manage content height and scrolling behavior.
- Introduced utility hooks for managing chat drafts and rate limit information.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 16:40:26 +08:00
Innei 01042643ed
fix: enhance token usage display and rate limit messaging for free users, resolves FOL-2808
- Updated TokenUsagePill to conditionally render token details based on user role.
- Modified computeRateLimitMessage to include an option for hiding reset details.
- Adjusted ChatInterface to utilize user role for displaying reset details in rate limit messages.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 16:16:41 +08:00
Innei 1281e8ebb4
fix: conditionally render close button in LoginModalContent for non-Electron environments
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 16:06:03 +08:00
Innei 44a0a40572
fix: update innerGlow styles for dropdown-menu, context-menu, and tooltip components
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 16:03:48 +08:00
Whitewater 8ba1bef397
fix: correct jsonEscape logic and trim headers in fetch template processing (#4736)
* fix: correct jsonEscape logic in fetch template processing

* fix: trim processed headers keys and values in fetch template processing
2025-11-19 16:00:41 +08:00
Whitewater 9a638b509c
fix: update command type handling in entry actions (#4737)
Refactor commandId type to ensure proper type usage and remove unnecessary string handling for custom integrations.
2025-11-19 16:00:10 +08:00
Stephen Zhou 41271111fe
fix: start free trial notice for upgrade plan 2025-11-19 14:48:42 +08:00
Stephen Zhou fc866b0222
fix: api header for ai chat 2025-11-19 13:49:45 +08:00
DIYgod e3ed2f8122
Merge pull request #4732 from RSSNext/sync/main-to-dev-20251119
Sync main branch to dev branch
2025-11-19 10:07:20 +08:00
DIYgod f2a3b9994e
Merge pull request #4731 from RSSNext/hotfix/1.1.7
chore(desktop): Release v1.1.7 for hotfix
2025-11-19 10:05:28 +08:00
DIYgod 940c95f4d1
fix: update UserProBadge styles for role display 2025-11-19 10:04:27 +08:00
Stephen Zhou e64db7ba23
fix: missing locales for plan 2025-11-19 09:53:45 +08:00
Stephen Zhou 30bae3b73e
fix: disable magic link in electron 2025-11-19 09:38:13 +08:00
Stephen Zhou b8a89e667c
fix: allow close login modal in electron 2025-11-19 09:37:54 +08:00
DIYgod a3d0fbe573
release(desktop): hotfix to release v1.1.7 2025-11-19 09:11:57 +08:00
DIYgod 7735d03579
feat: revert layer main changes 2025-11-19 09:10:02 +08:00
Innei e6be4ac275
chore: update changelog with new features and improvements
- Redesigned the onboarding flow for a better user experience.
- Enhanced AI features: added BYOK support and improved AI Memory tool for updating past memories.
- Improved the design system of various UI components for consistency and aesthetics.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 00:28:24 +08:00
Innei add03d787b
refactor: simplify dependency array in SettingItemButtonImpl component
- Removed unused dependencies from the effect hook in the SettingItemButtonImpl component for cleaner code and improved readability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 00:14:45 +08:00
Innei 38d0571460
refactor: update FeedItem component to conditionally render actions based on onboarding state
- Added a check for onboarding feed to conditionally render the follow button or unread number.
- Improved the structure of the component for better readability and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 00:01:50 +08:00
Innei 1f869115d2
refactor: improve entry actions and feed URL handling
- Removed unused AI summary hooks from useEntryActions for cleaner logic.
- Updated useFeedSafeUrl to return null for invalid URLs, enhancing safety.
- Integrated useFeedSafeUrl in EntryItemWrapper and EntryTitle for better URL handling.
- Added onboarding feed tooltip in FeedItem for improved user guidance.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 23:56:33 +08:00
Innei 09825fb7d1
refactor: restructure app tip components and enhance onboarding experience
- Removed the AppTip component and its controller, consolidating functionality into AppTipModalContent.
- Updated MainDesktopLayout to utilize the new modal for onboarding tips.
- Enhanced the modal presentation with animation and improved layout for better user experience.
- Cleaned up unused imports and streamlined the app tip logic for clarity and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 23:26:01 +08:00
DIYgod ef06b48c44
feat: update heading in recommendations section to RSSHub 2025-11-18 22:17:18 +08:00
Whitewater 6d808df3e6
fix(integration): escaping content for json body in custom integrations (#4728)
* fix: add jsonEscape option for placeholder replacement

Enhance the replacePlaceholders method to support JSON escaping of values when specified in options. This improves handling of JSON strings in templates.

* fix(integration): add default Content-Type header for non-GET methods
2025-11-18 20:17:19 +08:00
Stephen Zhou 387a342665
build: fix magic link client type 2025-11-18 19:17:23 +08:00
Stephen Zhou 6644f5a59d
feat: magic link support 2025-11-18 19:06:10 +08:00
Innei 92f3bf7ff4
refactor: enhance UI components with improved styling and layout
- Introduced gradient backgrounds and box shadows for dropdown menus and context menus for a more modern appearance.
- Updated modal styles to include backdrop blur and inner glow effects for better visual depth.
- Adjusted component layouts for consistency and improved user experience across modals and context menus.
- Refined keyboard component styles for better interaction feedback.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 17:16:54 +08:00
Stephen Zhou 818e36090c
fix: use route view for all view only 2025-11-18 17:04:34 +08:00
Innei 52a0a75983
refactor: update UI components for improved styling and functionality
- Replaced hardcoded color values with CSS variables for better maintainability in AGENTS.md.
- Enhanced the Subscription Feeds section with a sticky action bar and improved layout in feeds.tsx.
- Updated the Personalize Prompt section to use a more visually appealing design with a backdrop blur effect.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 16:50:33 +08:00
Innei fdd7d5adf8
refactor: update notifications settings UI for improved layout and accessibility
- Removed unused imports and components to streamline the code.
- Enhanced the notifications section layout with improved spacing and styling.
- Updated the display of notification channels to use a more accessible design.
- Added loading and empty state indicators for better user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 16:29:14 +08:00
Innei 36193abdc0
chore: update package versions and add ManageMemoryCard component
- Updated versions for '@follow-app/client-sdk' to 0.3.89 and '@folo-services/ai-tools' to 0.2.61 in pnpm-lock.yaml and pnpm-workspace.yaml.
- Introduced ManageMemoryCard component for managing user memory in AI chat.
- Enhanced AIMessageParts to include ManageMemoryCard and updated related translations for memory actions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 16:15:50 +08:00
Stephen Zhou 3130eb0c2b
fix: support youtube short link in transform 2025-11-18 16:15:04 +08:00
Innei 662be3a251
chore: remove lottie
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 16:03:40 +08:00
Innei 7c06ca6d84
feat: implement BYOK (Bring Your Own Key) feature for AI providers (#4727)
* feat: implement BYOK (Bring Your Own Key) feature for AI providers

- Added BYOK section in AI settings to manage custom API keys.
- Introduced components for adding, editing, and deleting BYOK providers.
- Updated translations for BYOK-related UI elements.
- Modified existing components to support new BYOK functionality.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: enhance BYOK provider support and update UI elements

- Added support for the "OpenRouter" BYOK provider in relevant components.
- Updated translations for security-related UI elements to reflect new descriptions.
- Adjusted styling in settings components for improved visual consistency.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: refine BYOK provider management and enhance UI

- Introduced a new constants file for BYOK provider options.
- Updated the ByokProviderModalContent to filter available providers based on configured ones.
- Enhanced the ByokSection to manage provider addition and editing more effectively.
- Adjusted table styling in the PlanComparisonTable for improved readability.
- Added new translation keys for "AI Bring Your Own Key" in multiple languages.

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 15:52:54 +08:00
Stephen Zhou 042cbdd2fa
feat: manage subscription on stripe 2025-11-18 15:42:00 +08:00
DIYgod 0ee62fa042
feat: remove onboarding feed references and update settings 2025-11-18 14:14:33 +08:00
Stephen Zhou 958e0a6d41
refactor: remove onetime payment 2025-11-18 12:31:44 +08:00
Stephen Zhou 849c18ce8c
fix(plan): new or upgrade 2025-11-18 11:44:25 +08:00
Stephen Zhou b29bf9f90c
fix: button text and discount desc 2025-11-18 09:57:22 +08:00
DIYgod 1e282048e1
fix: ensure first timeline is not ROUTE_VIEW_ALL when available 2025-11-18 09:17:07 +08:00
Kieran Cui 576c92acf6
fix(desktop): Discover page shakes when switching tabs (#4724) 2025-11-18 01:17:14 +08:00
Innei c7d0165eb8
feat: refine onboarding (#4708)
* feat(ai-onboarding): implement AI onboarding modal and related components

- Added AI onboarding modal with step-by-step guidance for new users.
- Introduced components for feed selection, import steps, and chat interface.
- Integrated animations and user interactions for a smoother onboarding experience.
- Updated localization files to support new onboarding dialog texts.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance onboarding experience with next step functionality

- Added 'hasNextStep' prop to AppTip and AppTipDialog components to manage step navigation.
- Updated button actions to reflect the new step logic, allowing users to proceed or finish the onboarding.
- Introduced new localization strings for onboarding descriptions and actions in multiple languages.
- Added a button in the settings about tab to trigger the AI onboarding experience.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(app-tip): remove video placeholder and related constants for a cleaner onboarding experience

- Eliminated video placeholder text and associated constants from AppTipMediaPreview and constants.ts.
- Updated useAppTipController to remove media references, streamlining the onboarding steps.
- Revised localization strings to reflect the new onboarding narrative without video references.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(ai-onboarding): streamline onboarding flow and enhance UI components

- Removed the DiscoverImportStep and PreFinish components to simplify the onboarding process.
- Updated step management in the onboarding modal to focus on essential steps.
- Enhanced the AIChatPane and FeedsSelectionList components with improved layout and animations.
- Introduced new localization strings for empty feed selection scenarios.
- Updated modal transitions for a smoother user experience.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance media preview component to support image and video types

- Added support for distinguishing between video and image media types in AppTipMediaPreview.
- Updated rendering logic to conditionally display video or image elements based on media type.
- Introduced a fallback icon for error handling based on media type.
- Enhanced state management for video playback and replay functionality.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(renderer): add support for Markdown rendering in ArticleLayout

- Introduced EntryContentMarkdownRenderer for handling Markdown content.
- Updated ArticleLayout to conditionally render HTML or Markdown based on entry type.
- Refactored EntryContentHTMLRenderer to use a shared props type for better type safety.
- Added types for entry content renderer props to improve code clarity.

This enhancement allows for more flexible content rendering in the application.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(entry-actions): integrate onboarding entry checks into action configurations

- Added `isOnboardingEntryUrl` utility to identify onboarding entries based on their URL.
- Updated `useEntryActions` to disable specific actions when the entry is an onboarding entry.
- Enhanced `MoreActions` and `HeaderActions` components to support the disabled state for actions based on onboarding status.
- Refactored `ArticleLayout` to utilize the new onboarding entry check for rendering logic.

This update improves user experience by preventing certain actions on onboarding entries.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance onboarding experience with new user guide state management

- Introduced `useNewUserGuideState` for managing the state of the new user onboarding guide.
- Added `APP_TIP_DISMISS_EVENT` constant for handling dismissal events.
- Refactored `useAppTipController` to utilize the new state management, improving clarity and functionality.
- Updated `EntryColumnContent` to integrate new user guide navigation logic.

This update streamlines the onboarding process and enhances user experience by providing better state management for onboarding tips.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance media rendering in AppTipDialog and introduce OpmlAbstractGraphic

- Updated AppTipDialog to conditionally render a custom React node for media previews.
- Added reactNode property to AppTipStepMedia type for improved media handling.
- Introduced OpmlAbstractGraphic component for enhanced visual representation in onboarding tips.
- Updated useAppTipController to utilize the new OpmlAbstractGraphic in onboarding media.

These changes improve the onboarding experience by providing more dynamic media content.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(OpmlAbstractGraphic): implement animated paths and dynamic rendering

- Added a new OpmlAbstractGraphic component to visually represent RSS readers with animated paths.
- Introduced deterministic pseudo-random path generation for smoother animations.
- Enhanced component responsiveness with layout effects and resize handling.
- Implemented hand-drawn style connector lines to improve visual appeal.

These changes enhance the onboarding experience by providing a more engaging and dynamic visual representation of RSS readers.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): add extra content support in AppTipDialog and enhance useAppTipController

- Updated AppTipDialog to render additional content through the new `extra` property in AppTipStep.
- Modified AppTipStep type to include an optional `extra` field for custom React nodes.
- Introduced AiSplineIndicatorToggle component in useAppTipController for toggling AI settings.

These changes improve the flexibility of the AppTipDialog and enhance the onboarding experience by allowing for dynamic content rendering.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): implement useAppTipController for enhanced onboarding experience

- Introduced useAppTipController to manage the onboarding flow and user guide interactions.
- Added state management for active steps, dismissal handling, and AI guide toggling.
- Integrated AiSplineIndicatorToggle for dynamic AI settings within the onboarding process.
- Enhanced event handling for debugging onboarding steps through custom events.

These changes improve the onboarding experience by providing a structured and interactive guide for new users.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): introduce AICopilotMedia component for enhanced AI interaction

- Added AICopilotMedia component to facilitate dynamic AI-driven conversations and recommendations.
- Integrated chat script for user-assistant interactions, showcasing AI capabilities in real-time.
- Updated useAppTipController to include AICopilotMedia in the onboarding flow, enhancing user engagement.

These changes improve the onboarding experience by providing interactive AI content that guides users through relevant information and resources.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: update hoverMarkUnread setting to false for consistency

* feat: implement onboarding feed and entry detection

- Added utility functions to identify onboarding feeds and entries.
- Updated various components to display onboarding feeds distinctly.
- Enhanced sorting logic to prioritize onboarding feeds in lists.
- Added localization strings for onboarding feed messages.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: add OverviewMedia component for enhanced onboarding visuals

- Introduced a new OverviewMedia component to display animated connections between onboarding elements.
- Integrated OverviewMedia into the app tip controller to enrich the new user dialog experience.
- Implemented responsive path calculations and animations for a dynamic visual presentation.

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: DIYgod <i@diygod.me>
2025-11-18 01:16:40 +08:00