Commit Graph

3339 Commits

Author SHA1 Message Date
Innei aa386f6765
feat(ai-chat): integrate react flow to replace mermaid
- Added @xyflow/react as a dependency and integrated its flow chart functionality into the AI chat interface.
- Updated AIDisplay components to improve rendering and state management, ensuring a more responsive user experience.
- Refactored several display components for better readability and maintainability, including AIDisplayAnalyticsPart, AIDisplayEntriesPart, AIDisplayFeedsPart, and AIDisplaySubscriptionsPart.
- Introduced AIDisplayFlowPart for visualizing flow charts, enhancing the overall functionality of the chat interface.

These changes significantly improve the user experience and maintainability of the AI chat application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-06 01:15:56 +08:00
Innei 0a687b9fd8
feat(ai-chat): enhance AIMarkdownMessage and AIMessageParts for streaming support
- Introduced AIMarkdownStreamingMessage to handle streaming text updates, improving user experience during message processing.
- Updated AIMessageParts to conditionally render AIMarkdownStreamingMessage for assistant messages, ensuring proper display during streaming.
- Added safety checks and cleanup logic in useStreamingTextBuffer to prevent memory leaks and ensure robust handling of text updates.

These changes enhance the functionality and responsiveness of the AI chat interface during streaming scenarios.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-06 00:43:06 +08:00
Innei 1117841489
fix: adjust ai error fallback ui
- Replaced motion div with a standard div in AIErrorFallback for improved layout consistency.
- Updated button label from "Reload Chat" to "Reload Page" for clarity.
- Streamlined the ChatInterface component by removing unnecessary return statements, enhancing readability.

These changes improve the clarity and maintainability of the AI chat components.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-06 00:24:01 +08:00
Innei a8e7058ba2
feat(ai-chat): add AIErrorFallback component and integrate error handling in ChatInterface
- Introduced AIErrorFallback component to provide a user-friendly error display for AI chat errors.
- Wrapped ChatInterface in an ErrorBoundary to catch and handle errors gracefully, enhancing user experience during failures.
- Updated ChatInput rendering logic to improve layout responsiveness based on message presence.

These changes improve error management and user interaction within the AI chat interface.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-06 00:21:28 +08:00
Innei dc8ce1f902
fix(ai): edit previous message parse in rich editor
- Integrated ScrollArea for better message editing experience in the EditableMessage component.
- Updated initial editor state handling to streamline the setup process.
- Added MentionPlugin to support mentions within the editor, enhancing user interaction.
- Refactored LexicalRichEditor to utilize EditorRefPlugin for improved editor reference management.

These changes improve the usability and functionality of the message editing interface in the AI chat application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-06 00:00:38 +08:00
Innei 5f8988e792
refactor(ai-chat): streamline display components and enhance state handling
- Refactored AIDisplay components to utilize a new higher-order component for display state management, improving code clarity and reducing redundancy.
- Introduced DisplayCardWrapper for consistent card layout across display components.
- Removed unused ChartPlaceholder component and consolidated state handling logic.
- Updated AIDisplay components to enhance user experience by ensuring proper loading and error states.

These changes improve maintainability and user experience in the AI chat interface.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 23:33:29 +08:00
Innei 7a908ee0e3
fix: remove unused clearUISettings call from clearLocalPersistStoreData
- Eliminated the clearUISettings function call from clearLocalPersistStoreData, streamlining the data clearing process.
- This change improves code clarity and maintains the focus on database cleanup operations.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 22:51:20 +08:00
Innei 96d751f180
feat(ai-chat): enhance mention functionality to support CJK characters
- Updated MENTION_TRIGGER_PATTERN to include support for Chinese, Japanese, and Korean characters, improving the mention feature's accessibility for a broader audience.
- Refactored getMentionType to return both mention type and cleaned query for better handling in search functionalities.
- Adjusted mention search hooks and dropdown components to utilize the updated patterns and improve user experience during mention input.

These changes enhance the overall functionality and inclusivity of the mention feature in the chat interface.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 22:35:53 +08:00
Innei a91078af08
fix: update MentionNode fallback to improve rendering
- Changed the fallback in MentionNode from displaying the mention name to null, enhancing the rendering behavior during loading states.

This update improves the user experience by ensuring a cleaner interface while mentions are being processed.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 22:00:57 +08:00
Innei 8107caef2c
chore: cleanup export
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 01:49:09 +08:00
Innei 896988f445
fix: lint error
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 01:48:52 +08:00
Innei 8e0e921d1a
refactor(ai-chat): improve message rendering and styling
- Updated AIMarkdownMessage to conditionally apply rehypePlugins based on processing state, enhancing performance.
- Replaced preformatted JSON display in ToolInvocationComponent with JsonHighlighter for better readability and styling.
- Adjusted ShikiHighLighter component in FeedClaimModalContent to remove unnecessary padding, improving layout consistency.
- Wrapped claim button text in a span for better semantic structure.

These changes enhance the user experience by improving the rendering of messages and ensuring a more consistent UI across components.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 01:47:56 +08:00
Innei 5b2669e1b5
feat(ai): enhance chat interface with animated text and buffer improvements
- Introduced an animatedPlugin for enhanced text rendering in AIMarkdownMessage, adding a fade-in effect for words.
- Updated StreamingMessageBuffer to include a maximum buffer size to prevent out-of-memory issues.
- Improved the layout of ChatInput in ChatInterface for better spacing.
- Adjusted the PoweredByFooter link color for better visibility.
- Refactored parseMarkdown to support rehype plugins, allowing for more flexible markdown processing.

These changes enhance the user experience in the AI chat interface by improving text animations and performance during message rendering.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 01:31:47 +08:00
Innei 510f0b94e1
feat(ai): implement streaming message buffer and enhance thinking indicator
- Introduced a new StreamingMessageBuffer class for efficient text rendering during streaming, allowing for better state management and performance.
- Updated the AIMarkdownMessage component to utilize the streaming buffer for rendering text, improving responsiveness during processing.
- Enhanced the ThinkingIndicator component with a shimmering effect for a more visually appealing user experience.

These changes improve the overall performance and user interaction within the AI chat interface.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 01:10:11 +08:00
Innei fc11d0089f
chore: update dependencies and refactor ai-chat module structure
- Updated @follow-app/client-sdk to version 0.3.26 in pnpm-lock.yaml and pnpm-workspace.yaml.
- Upgraded ai package to version 5.0.2 across various package.json files.
- Refactored ai-chat components to use new store structure, moving types and hooks from __internal__ to store.
- Introduced new AIChatContext and hooks for better state management in the ai-chat module.

These changes enhance the maintainability and performance of the ai-chat module while ensuring compatibility with updated dependencies.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-05 00:08:55 +08:00
Innei 635ca82c5d
chore: re-structure ai module file tree
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-04 23:31:54 +08:00
Innei 8214578b21
fix(ai): update grid layout for analytics and entries components
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-04 23:19:52 +08:00
Innei c4ac1b1875
feat(ai): add ai mention plugin (#4305)
* init

* refactor

* implement mention plugin for chat input

- Updated pnpm-lock.yaml and pnpm-workspace.yaml to include new versions of @floating-ui packages.
- Added MentionPlugin to the chat input component, enabling mention functionality.
- Created necessary components, hooks, and utilities for mention handling, including MentionNode, MentionDropdown, and related styles.
- Refactored existing code to integrate mention features seamlessly into the chat interface.

This update enhances the chat experience by allowing users to mention others easily, improving interactivity and engagement.

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

* Enhance mention functionality in chat editor

- Integrated MentionNode into AIRichTextMessage for improved mention handling.
- Updated MentionPlugin to utilize new hooks for mention search and insertion.
- Added useMentionIntegration and useMentionSearchService hooks for better mention management.
- Created contextBarSearchService and feedEntrySearchService for unified search functionality.
- Refactored LexicalRichEditor to support custom nodes from plugins.

This update improves the chat experience by streamlining mention interactions and enhancing search capabilities.

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

* Enhance mention integration and synchronization in chat editor

- Updated ChatInput layout for improved button positioning.
- Added select-none class to mention styles for better user experience.
- Refactored MentionDropdown to improve the display of mention types and content.
- Introduced useMentionBlockSync hook for bidirectional synchronization between mention nodes and context blocks.
- Enhanced useMentionIntegration to handle mention insertion with node key tracking.
- Implemented useMentionSearchService for streamlined mention search functionality.

These changes improve the overall mention handling and user interaction within the chat editor, making it more intuitive and efficient.

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

* Refactor ChatInput layout to include ScrollArea for improved scrolling experience

- Wrapped LexicalRichEditor in a ScrollArea component to enhance the input area’s usability.
- Adjusted styles in LexicalRichEditor for better layout consistency.

These changes aim to improve user interaction within the chat input by providing a more flexible scrolling interface.

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

* Remove deprecated mention functionality and update MentionNode for markdown export

- Deleted mention-related files and types as functionality has been moved to the desktop app.
- Updated MentionNode to change the text content format for markdown export.
- Refactored useMentionBlockSync to remove unused helper functions and streamline dependencies.
- Adjusted LexicalRichEditor placeholder styles for better alignment.

These changes clean up the codebase by removing obsolete mention features and enhancing the current mention handling in the chat editor.

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

* Implement AI chat message tracking functionality

- Added tracking for AI chat messages sent by integrating the tracker module into the ChatInterface component.
- Introduced a new tracker point for AIChatMessageSent in the TrackerMapper enum.
- Removed deprecated entry tracking methods to streamline the tracking process.

These changes enhance the analytics capabilities of the chat interface by monitoring AI interactions more effectively.

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

* Update VSCode settings for Tailwind CSS and i18n-ally configuration

- Streamlined the tailwindCSS.experimental.classRegex by removing unnecessary line breaks for better readability.
- Consolidated the tailwindCSS.experimental.configFile and i18n-ally settings into single-line arrays for consistency.
- Ensured proper formatting and alignment of settings to enhance maintainability.

These changes improve the clarity and organization of the VSCode settings file.

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

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-04 23:06:15 +08:00
Konv Suu e0ac4dd9de
fix(desktop): improve preview player style (#4238)
* fix(desktop): improve preview player style

* update
2025-08-04 16:15:13 +08:00
Konv Suu ae093ffab8
fix(desktop): make copy button center in markdown-link component (#4302) 2025-08-04 16:14:38 +08:00
Whitewater 3e04dc7291
refactor: upgrade FlashList to v2 (#4298)
* refactor: upgrade FlashList to v2

* chore: upgrade @shopify/flash-list to v2.0.0

* chore: update packageManager version to pnpm@10.14.0

* fix: revert packageManager version to pnpm@10.12.1

* chore: update ref type for TimelineSelectorMasonryList component
2025-08-03 13:56:39 +08:00
lawvs 7a4f5078e7 fix: set default view for FollowImpl 2025-08-02 19:59:57 +08:00
Innei 6de58e038e
fix: update FeedItem icon and enhance color constants
- Changed the icon in FeedItem component to a more appropriate representation.
- Updated color constants for various themes to improve contrast and visual appeal, ensuring better accessibility and aesthetics.

This update enhances the user interface by refining iconography and color usage across the application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-02 16:48:22 +08:00
Innei 44fe72bd92
feat(integration): add URL scheme support and enhance custom integration management
- Introduced URL scheme handling in the integration module, allowing users to define and execute URL schemes.
- Added validation for URL scheme templates to ensure correct format and required fields.
- Enhanced the CustomIntegrationManager to support both HTTP and URL scheme integrations.
- Implemented a preview feature for URL schemes in the CustomIntegrationModal.
- Updated UI components to accommodate new integration types and improve user experience.

This update expands the capabilities of custom integrations, enabling seamless interaction with external applications through URL schemes.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-02 16:41:54 +08:00
Whitewater 244aca2ad6
feat: implement audio seeking functionality (#4295)
* refactor: move timeStringToSeconds to utility function

* feat: add seekAudio functionality to bridge and implement timestamp handling in MarkdownLink

* feat: implement audio seeking functionality in EntryContentWebView

* feat: implement audio seeking functionality for iOS

* chore: clean code

* fix: audio seeking functionality for iOS
2025-08-01 23:43:30 +08:00
Konv Suu 4771c021a4
feat(desktop): optimize PeekModal loading experience (#4284) 2025-08-01 22:05:22 +08:00
Innei cf47ef442f
feat(ai): listen for user text selection add to ai block
- Added text selection capabilities to ShadowDOM, allowing for text selection events to be captured and handled.
- Introduced a new utility for managing text selection within ShadowDOM.
- Updated ArticleLayout to support text selection events and integrate with AI chat block actions.
- Refactored EntryContent components to improve error handling and streamline entry updates.
- Implemented a new AIEntryLayout for better integration of AI chat features within entry content.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-01 21:30:30 +08:00
Innei 6ca2ab1e2d
perf(ai): improve ai message streaming performance
- Updated ai package version from 5.0.0-beta.34 to 5.0.0.
- Added react-fast-compare package for improved memoization in chat components.
- Refactored AIDisplayAnalyticsPart and AIDisplaySubscriptionsPart to utilize toolMemo for performance optimization.
- Introduced a new utility function for throttled markdown parsing in AIMarkdownMessage component.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-01 17:37:54 +08:00
Innei 29b96118dd
refactor: ai module core
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-01 00:31:46 +08:00
Innei 74f73e2e6f
feat: enhance AIMarkdownMessage component with table support
Signed-off-by: Innei <tukon479@gmail.com>
2025-07-31 23:25:14 +08:00
Innei c5ff53aa20
refactor: optimize chat components and remove unused GridContainer
- Refactored ToolInvocationComponent to use React.memo for performance optimization.
- Updated AIDisplayAnalyticsPart, AIDisplayEntriesPart, AIDisplayFeedsPart, and AIDisplaySubscriptionsPart to utilize memoization.
- Replaced GridContainer with standard div elements for layout consistency.
- Removed unused GridContainer and StatisticsOverview components to streamline the codebase.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-31 23:12:51 +08:00
Innei 73a1e6eb6c
feat: integrate Lexical rich text editor and update chat components
- Added support for rich text messages in the chat interface using Lexical.
- Updated ChatInput and related components to handle EditorState and rich text formats.
- Introduced AIRichTextMessage component for rendering rich text messages.
- Removed legacy LexicalRichEditor component and adjusted database schema to drop richTextSchema.
- Updated dependencies to include Lexical packages at version 0.33.1.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-31 21:25:15 +08:00
Stephen Zhou 1be77deeb5
chore: simple event listener logic 2025-07-31 17:40:12 +08:00
Stephen Zhou 692cc6b4be
chore: load sqlite online faster 2025-07-31 17:22:49 +08:00
Stephen Zhou e9c8d0b39c
chore: integrate sqlite-online 2025-07-31 16:59:36 +08:00
Innei 4f78a8aa48
refactor: ai module and implement rich text (#4282) 2025-07-31 00:16:40 +08:00
Stephen Zhou 5d0ae8fd1c
fix(desktop): move hydrate database to first, drop dataPersist option 2025-07-30 17:52:23 +08:00
Stephen Zhou 6b32f3c6af
fix(desktop): missing shortcut for open in browser 2025-07-30 10:13:53 +08:00
Innei d1e448d602
fix(electron): hotfix update logic
- Added ky as a dependency to handle HTTP requests for file downloads.
- Implemented downloadFileWithProgress function to provide progress updates during downloads.
- Updated hot-updater to utilize the new download function, enhancing user experience with download status logging.
- Cleaned up and refactored related code for better maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-30 01:36:23 +08:00
Innei 680d7efc26
chore(dependencies): update nbump to version 2.1.5 across multiple packages
- Updated nbump version from 2.1.3 to 2.1.5 in pnpm-lock.yaml, package.json for desktop, mobile, and readability packages.
- Updated zx version from 8.6.1 to 8.7.2 in pnpm-lock.yaml.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-29 23:17:17 +08:00
Stephen Zhou 8ee47599af
fix(desktop): load entry not in the entry list 2025-07-29 22:48:27 +08:00
Innei 8cdb983d14
feat(bootstrap): implement CORS bypass for PostHog analytics
- Added a web request handler to bypass CORS restrictions for requests to 'us.i.posthog.com'.
- Configured response headers to allow all origins, methods, and credentials for analytics integration.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-29 21:07:31 +08:00
Innei d6e103ceb8
Merge pull request #4270 from RSSNext/sync/main-to-dev-20250729
Sync main branch to dev branch
2025-07-29 19:09:18 +08:00
Innei 42d39fdd22
feat(release): enhance version tagging and release extraction
- Updated the version setup action to handle new tag formats for desktop and mobile releases.
- Introduced a new script to extract release information from commit messages, improving the tagging process.
- Modified workflows to create tags in the format of `desktop/v1.2.3` and `mobile/v1.2.3`.
- Enhanced the updater logic to accommodate the new tagging structure and ensure proper release handling.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-29 19:04:09 +08:00
Innei ea33650db2
release(desktop): hotfix to release v0.6.4 2025-07-29 18:16:04 +08:00
Innei 82040138f7
fix(package.json): update bump and hotfix scripts to include minor and patch flags
Signed-off-by: Innei <tukon479@gmail.com>
2025-07-29 18:14:40 +08:00
Innei 8af27540c7
fix: react suspense boundary performance
Signed-off-by: Innei <tukon479@gmail.com>
2025-07-29 18:06:49 +08:00
Innei b0af343c8a
feat(settings): add option for independent content font size and presets
- Introduced `useDifferentFontSizeForContent` and `mobileContentFontSize` settings in UISettings.
- Updated Appearance screen to allow users to toggle and select content-specific font sizes.
- Added localization for new settings in English, Japanese, Simplified Chinese, and Traditional Chinese.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-29 17:52:43 +08:00
Innei 860722641b
Merge pull request #4268 from RSSNext/sync/main-to-dev-20250729
Sync main branch to dev branch
2025-07-29 16:10:33 +08:00
Stephen Zhou 336d1fec28
fix: web login redirect 2025-07-29 15:52:06 +08:00