* 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>
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>
- 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>
- 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 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>
- 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>
* 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>
- Introduced a new NotLoggedInNotice component to prompt users to log in for syncing subscriptions.
- Updated English, Japanese, and Chinese localization files to include the new notice message.
- Removed commented-out code related to data prefetching in SubscriptionList component for cleaner code.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced the warning icon with a sad face emoji for better visual representation.
- Removed unnecessary commented-out code in the subscription limit warning.
- Cleaned up the localization message by removing the emoji from the string.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the subscription limit warning to use the Trans component for better localization support.
- Modified the warning message in the localization file to include HTML elements for improved readability.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced CategoryUnsubscribeDialogContent for unsubscribing from feeds within a category.
- Added RenameCategoryForm for renaming categories.
- Updated FeedCategory to include options for unsubscribing and renaming categories in the context menu.
- Enhanced localization files to support new dialog messages for unsubscribe and rename actions.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new method to open external URLs in the app.
- Enhanced the updater to check for distribution updates and notify users.
- Updated the updater status types to include distribution updates.
- Refactored the update notice component to handle distribution store updates.
- Added localization for distribution update notifications.
This update improves the user experience by allowing seamless updates from distribution stores and providing clear notifications for available updates.
Signed-off-by: Innei <tukon479@gmail.com>
Updated the AISummaryCardBase component to suggest an upgrade when encountering a payment-related error. Refactored error handling to utilize the FollowAPIError class. Improved localization for upgrade prompts in English, Japanese, and Chinese. Adjusted related components to pass error objects instead of error codes for better clarity.
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>
* feat: add image-only view setting and related UI updates
- Introduced a new setting for image-only view mode.
- Updated components to conditionally render based on the new setting.
- Added translations for the new feature in multiple languages.
* fix: changelog
- Updated various description strings in the locales to ensure they end with appropriate punctuation, enhancing consistency and readability.
- Adjusted entries in English, Japanese, Simplified Chinese, and Traditional Chinese locales to follow sentence case and proper punctuation rules.
These changes aim to improve the overall user experience by providing clearer and more professional text presentation across the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Added form validation schema to the DiscoverForm for better input handling.
- Refactored keyword handling in DiscoverForm to improve performance using startTransition.
- Updated InboxTable to display a message when no inboxes are available, enhancing user feedback.
- Added localization for the new no inbox message.
This update improves user experience and input validation in the discover module.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the modal's close logic to call `readyToClose()` before proceeding with the close action, ensuring that the animation state is properly managed.
- This change enhances the user experience by preventing premature closure of the modal during animations.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the GlassButton component to allow optional onClick handler and improved hover shadow effects for better user feedback.
- Replaced Accordion with CollapseCss in AIReasoningPart for a more streamlined display of reasoning content, enhancing the user experience during streaming.
- Modified AIChatContextBar button styles for consistency with the new material design, improving visual coherence across the application.
- Introduced a new ChatPageHeader component to encapsulate chat header functionalities, enhancing code organization and maintainability.
These changes collectively improve the UI/UX of the AI chat interface, providing clearer interactions and a more cohesive design.
Signed-off-by: Innei <tukon479@gmail.com>
- Add i18n support for "Scroll up to exit" text in 3 languages
- Create first-time user tutorial with animated SVG demonstration
- Show tutorial only once using atom-based storage persistence
- Add visual hover feedback and click-to-dismiss interaction
- Auto-dismiss tutorial when user actually uses scroll gesture
- Improve SVG animation with clearer mouse/trackpad metaphor
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added a new "smooth-bounce" animation to improve visual feedback when scrolling.
- Integrated AnimatePresence for smoother transitions in the SubscriptionColumn and AIEntryLayout components.
- Updated text prompts for returning to the timeline, enhancing clarity and user experience.
- Improved multi-language support for new exit hints in English, Japanese, and Chinese.
These changes collectively enhance the user experience by providing clearer navigation cues and smoother animations.
When viewing entry details in wide mode, a semi-transparent overlay is now displayed over the subscription list area. This overlay includes:
- Visual indication with semi-transparent background and blur effect
- Exit hint with arrow icon and text prompting users to click to return
- Click anywhere on the overlay to navigate back to the entry list
- Multi-language support (EN, ZH-CN, JA)
This improves UX by providing a clear and intuitive way to exit the detail view.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* chore: update ja.json
* chore: update 6 ja.json files
chore: update and bump 6 ja.json files.
* chore: update error/ja.json
fix locale/error/ja.json
* chore: auto-fix linting and formatting issues
* chore: update app/ja.json
* chore: update ja.json
* chore: update ja.json
* chore: update ja.json and tested local.
* chore: update ja.json
update settings/ja.json
* feat(i18n): update Japanese locale files with new error messages and dialog options
* chore(vscode): set default formatter for JSON and JSONC files
* Remove JSON and JSONC formatter settings
so sorry, @hyoban 😢
Perhaps my local settings are in. I have restored it to the original. Thanks for your kindness.
You have always been a great help.
* chore: auto-fix linting and formatting issues
* chore: update ja.json
sync and update settings/ja.json
* chore: update Japanese translations for clarity and consistency
* chore: update some ja.json
* chore(locales): update Japanese translations with new entry actions and settings
* fix: update Japanese translations for user actions and login prompts
* feat(locales): add Japanese translations for login and registration features
* feat(locales): update Japanese translations for RSSHub and related settings
* chore: auto-fix linting and formatting issues
* feat(i18n): update Japanese locale with new toolbar customization and profile link social fields
* feat(locales): update Japanese translations for search results and two-factor authentication
* feat: 日本語ローカライズの更新
* Add and update Japanese locale translations
Added new Japanese translations for AI features in locales/ai/ja.json. Updated various Japanese locale files with new keys and improved existing translations for app features, error messages, external integrations, mobile UI, settings, and shortcuts. Also fixed typos and enhanced descriptions for better clarity and consistency.
* Update zh-CN.json
---------
Co-authored-by: dai <dai@users.noreply.github.com>
Co-authored-by: Innei <i@innei.in>
Co-authored-by: Innei <Innei@users.noreply.github.com>
* feat: ai panel
* feat: ai settings
* feat: ai entrances
* feat: shortcuts setting
* refactor: rename ai dialogue
* feat: merge dialogue input and shortcuts
* feat: textarea autoheight
* feat: ai dialogue input auto shrink
* feat: ai dialogue
* feat: ai icon
* feat: split text
* feat: mockDialogues
* feat: scrollable shortcuts
* fix
* feat: use vercel ai
* feat: rename
* feat: ai tool
* refactor: update font settings and layout adjustments
- Changed default font from "SN Pro" to "system-ui" in multiple components for consistency.
- Updated layout styles by removing unnecessary class names to streamline the design.
- Added a new translation key for "Follow System" to enhance localization support.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: reorganize dependencies and remove unused components
- Moved several dependencies from the main package.json to the layer renderer's package.json for better modularity.
- Removed the SplitText component and its associated files to streamline the codebase.
- Added new utility animations in the Tailwind CSS configuration for enhanced UI effects.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: implement AI chat components and context management
- Added AIChatInput, AIChatPanel, AIChatRoot, AIMessageList, and AIChatShortcuts components to facilitate user interaction with AI chat functionality.
- Introduced AIChatContext for managing chat state and interactions.
- Updated entry content to integrate the new AI chat components, enhancing user experience with chat features.
- Removed the legacy panel.tsx file to streamline the codebase.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: add AIChat hotkey scope and integrate Focusable component
- Introduced a new hotkey scope for AIChat in the constants file to support keyboard interactions.
- Wrapped the AIChatContext in a Focusable component within AIChatRoot to enhance accessibility and focus management.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update AIChatInput and AIChatPanel components
- Replaced the Button component with a span in AIChatInput for improved styling consistency.
- Removed commented-out code in AIChatPanel to clean up the component structure.
- Adjusted layout in AIChatPanel for better organization of chat input and help sections.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: remove deprecated useGlobalFocusableScope hook and update TextArea styles
- Removed the deprecated `useGlobalFocusableScope` hook in favor of `useGlobalFocusableScopeSelector` for improved performance.
- Updated TextArea component styles to enhance visual consistency with new class names.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: add SettingTextArea component and integrate into AI settings
- Introduced a new SettingTextArea component for improved text input handling.
- Updated the AI settings tab to utilize SettingTextArea for personalized prompts, enhancing user experience.
- Refactored existing SettingInput usage for better layout and consistency.
Signed-off-by: Innei <tukon479@gmail.com>
* fix: import path
* feat: optimzie ai displayFeeds
* feat: enhance AIChatPanel with tooltips and improved suggestion display
- Added tooltips for the "New Chat", "History", and "Personalize" buttons for better user guidance.
- Updated suggestion display logic to show a limited number of suggestions initially, with an option to expand for more.
- Changed icons in suggestions to use a consistent format and improved styling for better visual appeal.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: integrate AIPanelRefsContext for improved reference management
- Introduced AIPanelRefsContext to manage references for the chat input and panel components.
- Updated AIChatInput to utilize the new context for textarea reference.
- Modified AIChatPanel to use the panel reference from the context.
- Enhanced AIChatRoot to provide the context with memoized references for better performance.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: add EntryContentAccessories component for enhanced entry features
- Introduced EntryContentAccessories to encapsulate the ContainerToc and EntryAIChatInput components.
- Updated EntryContent to utilize EntryContentAccessories for improved layout and functionality.
- Added new ContainerToc and AIChatInput components to support table of contents and AI chat features.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update imports for useSettingModal and clean up unused components
- Changed import path for useSettingModal to use a new hack version.
- Removed the unused ContainerToc component.
- Updated EntryContent to include AISmartSidebar.
- Commented out the EntryAIChatInput in EntryContentAccessories.
- Minor adjustments in use-register-hotkey for better readability.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): implement AI chat components including message input, display, and demo functionality
- Added AIChatContainer for managing chat messages and displaying a welcome screen.
- Introduced AIChatInput for user message input with auto-resizing functionality.
- Created AIChatMessage for rendering individual chat messages with formatting support.
- Integrated AIChatDemo to showcase the chat functionality within the AIChatSidePanel.
- Added a new SVG icon for the send button.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): enhance chat functionality with auto-scroll and message formatting
- Integrated auto-scroll feature in AIChatContainer to improve user experience during message updates.
- Added AIChatTypingIndicator to display typing status in chat.
- Updated AIChatMessage to support markdown parsing for better message formatting.
- Enhanced AIChatInput to manage empty state and disable send button accordingly.
- Refactored AIChat component structure for clarity and improved functionality.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): add sending message animation and enhance chat input
- Introduced SendingMessageOverlay component for animated feedback when sending messages.
- Updated AIChatInput to trigger sending animation and manage input state.
- Enhanced AIChatMessage with animation effects for message display.
- Improved auto-scroll logic to handle programmatic scrolling more effectively.
- Added new SVG icons for chat functionalities.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): improve chat input and message handling with enhanced animations
- Updated AIChatContainer to refine sending message animations and manage input states.
- Enhanced AIChatInput to include a stop button for ongoing processing and improved message sending logic.
- Refactored AIChatMessage to maintain animation consistency during message display.
- Improved comments for clarity and code maintainability.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): enhance AI chat context management and input handling
- Introduced AIChatContextInfo for managing context information in AI chat.
- Updated AIChatInput to utilize context for default selection and improved user experience.
- Refactored AIChatRoot to manage context state and provide context information to child components.
- Enhanced AIChatContainer with a welcome message and improved message handling logic.
- Added EntryAIContext for managing entry-specific AI context, improving integration with chat functionalities.
Signed-off-by: Innei <tukon479@gmail.com>
* chore: hono update
- Introduced optional context properties in the AI chat message structure to support entryId and selectedText.
- Enhanced flexibility for managing chat context and improving user interactions.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): enhance AI chat components with optional wrapping and improved styling
- Added `wrapFocusable` prop to `AIChatRoot` for conditional wrapping of focusable elements.
- Updated `AIChatMessage` to display a placeholder when the assistant is "thinking" and improved styling for message bubbles.
- Refined `AIChatContainer` layout with adjusted border styles for better visual separation.
- Enhanced `AIChatSidePanel` structure for improved component organization and functionality.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): implement AI chat context store and enhance input handling
- Introduced a new context store for managing AI chat state, allowing for better organization of context information.
- Refactored AIChatInput and AIChatRoot components to utilize the new context store, improving state management and performance.
- Added AIChatContextBar for displaying context blocks and managing references within the chat.
- Enhanced input handling with improved styling and functionality, including dynamic resizing and context-aware features.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): refactor message parts handling in AIChatMessage component
- Replaced the existing MessageParts component with a new AIMessageParts component to improve code organization and readability.
- Enhanced the rendering logic for message parts, including better handling of tool invocations and markdown parsing.
- Introduced a more structured approach to displaying message content, including support for code highlighting.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(diagrams): integrate Mermaid for diagram rendering in AI chat
- Added Mermaid as a dependency to support diagram rendering within the AI chat interface.
- Implemented the MermaidDiagram component for rendering Mermaid diagrams based on provided code.
- Enhanced AIMarkdownMessage to parse and render Mermaid diagrams alongside other markdown content.
- Refactored AIChatContainer and AIChatInput components to improve structure and maintainability.
- Introduced AIPanelHeader for better management of the AI chat panel.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): enhance AI message rendering and introduce ToolInvocationComponent
- Updated AIMarkdownMessage to accept an optional className prop for better styling flexibility.
- Refactored AIMessageParts to utilize the new ToolInvocationComponent for rendering tool invocation details, improving code organization and readability.
- Adjusted AIChatMessage styles for user messages to enhance visual distinction.
- Removed unused state management for tool expansion, simplifying the component logic.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): integrate AIChatRoot and enhance auto-scroll functionality
- Wrapped the main content in AIChatRoot for improved focus management.
- Added auto-scroll behavior to the AIChatContainer for better user experience when new messages are loaded.
- Refactored AIChatPanelContainer and AIChatSidePanel to streamline layout and improve code organization.
- Updated styles and structure for better visual consistency and maintainability.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): update AI SDK dependencies and enhance AI chat functionality
- Upgraded dependencies for '@ai-sdk/openai', '@ai-sdk/react', and 'ai' to their latest beta versions for improved features and performance.
- Introduced new utility functions for managing AI chat state, including getAIChatPinned.
- Refactored AIChat components to utilize the updated SDK, enhancing message handling and tool invocation rendering.
- Added global commands for toggling AI chat visibility and pinning, improving user interaction.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(layout): implement resizable panel functionality and improve layout components
- Added PanelSplitter component for dynamic resizing of the AI chat panel.
- Integrated useResizable hook to manage panel dimensions in RightContent and SubscriptionColumn.
- Refactored AIChatPanelContainer to accept an optional className prop for better styling.
- Cleaned up unused refs and improved code organization in SubscriptionColumn.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): update AI chat components and integrate new AI SDK features
- Refactored AIChatInput and AIChatMessage components to utilize the new AISpline icon for improved visual consistency.
- Enhanced AIChatRoot to accept a roomId prop for better context management.
- Updated message handling in AIChatMessage to include metadata for improved message tracking.
- Introduced AIChatBottom component for better organization of chat input and context display.
- Integrated new AI SDK features for enhanced chat functionality and user experience.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai-chat): integrate node polyfills and enhance chat functionality
- Added vite-plugin-node-polyfills to support Node.js core modules in the chat application.
- Updated AIChatRoot to utilize the new roomId prop for better context management.
- Refactored message handling in AIChat components to improve user experience and maintainability.
- Introduced new hooks for loading and saving messages, enhancing chat state management.
- Updated database schema for ai_chat_messages to ensure message integrity and support new features.
Signed-off-by: Innei <tukon479@gmail.com>
* chore: update pnpm-lock and package.json to include @splinetool/react-spline and related dependencies
- Added @splinetool/react-spline version 4.0.0 to package.json.
- Updated pnpm-lock.yaml to reflect the addition of @splinetool/react-spline and its peer dependencies, including @splinetool/runtime and react-related packages.
- Included new dependency on on-change version 4.0.2 and updated other related packages.
This update enhances compatibility with the latest spline tool features.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai): implement AI chat components and layout
- Added AIChatContextBar for managing chat context and entries.
- Introduced AIChatMessage and AIMessageParts for rendering chat messages.
- Created ToolInvocationComponent to display tool invocation details.
- Implemented auto-scrolling functionality with useAutoScroll hook.
- Developed AIChatLayout to structure the chat interface, including a welcome screen and message input.
- Integrated chat components into the entry content layout.
This update enhances the AI chat experience with a structured layout and improved message handling.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai): enhance AI chat functionality and localization
- Added new AI namespace to constants for improved organization.
- Integrated AI localization by importing AI English resources and updating default resources.
- Enhanced AIChatLayout with translation support for chat-related prompts and messages.
- Updated AIPanelHeader to utilize translations for chat clearing confirmation.
- Introduced welcome message localization in the AI chat interface.
This update improves the AI chat experience with better localization and user interaction features.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai): enhance AI settings with personalized prompts and shortcuts management
- Introduced PersonalizePromptSetting for customizing AI prompts with save functionality.
- Added AIShortcutsSection for managing AI shortcuts, including add, update, delete, and toggle features.
- Improved localization by updating translation keys for AI settings.
- Refactored components for better organization and clarity.
This update enhances user interaction with AI settings, allowing for personalized experiences and efficient shortcut management.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(shortcuts): implement keyboard shortcut management and localization
- Added KeyRecorder component for recording keyboard shortcuts.
- Introduced ShortcutSetting for managing custom AI shortcuts, including add, update, and delete functionalities.
- Enhanced AI settings with new localization keys for shortcuts.
- Refactored existing components for improved organization and clarity.
This update streamlines the process of creating and managing keyboard shortcuts, enhancing user experience in AI settings.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: update ai robot model
* feat(ai): introduce new analytics and display components
- Added components for displaying analytics, entries, feeds, and subscriptions.
- Implemented loading and error states for better user feedback.
- Refactored existing components to integrate new display functionalities.
- Introduced common state components for loading and error handling.
This update enhances the AI chat experience by providing detailed analytics and improved data presentation.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(ai): consolidate shared components for analytics displays
- Moved StatCard, ChartPlaceholder, and other common components to a shared module for reuse across analytics displays.
- Updated AIDisplayAnalyticsPart, AIDisplayEntriesPart, AIDisplayFeedsPart, and AIDisplaySubscriptionsPart to utilize the new shared components.
- Enhanced the layout and error handling for empty states in various display components.
This refactor improves code maintainability and consistency in the analytics display components.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ui): introduce GlassButton component and refactor modal actions
- Added a new GlassButton component with customizable styles and animations for enhanced UI consistency.
- Replaced existing button implementations in modal components with the new GlassButton for improved visual coherence.
- Updated PreviewMediaContent and other components to utilize GlassButton, enhancing user interaction and aesthetics.
This update streamlines button usage across the application and enhances the overall user experience.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(ai): enhance auto-scroll functionality in chat component
- Updated the useAutoScroll hook to improve user interaction handling and scrolling behavior.
- Introduced a debounce mechanism for resize observer to optimize performance.
- Modified the AIChatLayout to ensure proper scrolling to the bottom when new messages are loaded.
- Improved state management for user interactions and auto-scrolling logic.
These changes enhance the chat experience by ensuring smoother scrolling and better responsiveness to user actions.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: add class-variance-authority for GlassButton variants
- Updated pnpm-lock.yaml to include class-variance-authority version 0.7.1.
- Modified GlassButton component to utilize class-variance-authority for managing size and color scheme variants.
- Updated PreviewMediaContent and other components to use the new variant prop for GlassButton.
- Removed the deprecated AIChatInput component and related references.
- Fixed import path for PanelSplitter in entry content layout.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: enhance AI chat functionality and UI components
- Introduced AIChatSendButton component for improved send button functionality in AI chat.
- Updated AIChatMessage and AIPanelHeader to use new icon styles.
- Integrated AIChatSendButton into AIChatInput and AIChatLayout for consistent UI.
- Added toggleAIChatPinned command and updated related commands for better AI chat management.
- Refactored entry context menu to hide specific actions related to AI chat.
- Fixed import paths and updated localization for AI chat commands.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update layout components and improve conditional rendering
- Refactored RightContent component to enhance conditional rendering logic for Grid and AIChatLayout based on realEntryId and isWideView.
- Updated EntryHeader component styles to use new text color classes for better consistency.
- Adjusted imports in hono.ts to reflect updated package versions for zod and drizzle-orm.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: enhance AI chat features and session management
- Updated AI chat components to support new session management features, including room switching and title generation.
- Introduced session state management using Jotai for better handling of current room ID and title.
- Added hooks for managing chat history and session persistence.
- Implemented export functionality for chat sessions to Markdown format.
- Enhanced UI with new components for chat input and welcome screen.
- Updated localization for new chat features and actions.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update AI chat components and improve styling
- Enhanced AIChatMessage with additional styling for better layout.
- Introduced MarkdownLink in AIMarkdownMessage for improved link rendering.
- Removed unused "step-start" case in AIMessageParts for cleaner code.
- Simplified ToolInvocationComponent by removing unnecessary div.
- Refactored useSettingModal to avoid circular dependency and improve clarity.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: implement chat title generation and error handling in AI chat components
- Added title generation functionality in AIChatRoot, triggered by the first AI response.
- Updated ChatInput to display error messages with a new UI component.
- Refactored title generation logic to utilize the first user and AI messages.
- Removed unused props and streamlined session management in ChatInterface.
- Enhanced error handling in chat components for improved user experience.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: improve ChatHeader and ChatInterface components
- Adjusted ChatHeader height and updated mask image styling for better visual consistency.
- Enhanced ChatInterface with scroll detection and a "Scroll to Bottom" button for improved user experience.
- Introduced state management for scroll position to optimize chat interaction.
- Cleaned up event listeners and added necessary imports for new functionality.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update layout styling in AI chat components
- Modified div elements in ToolInvocationComponent, AIDisplayEntriesPart, AIDisplayFeedsPart, and AIDisplaySubscriptionsPart to include max-width for improved responsiveness.
- Added a blank line in ChatInterface for better code readability.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: enhance AI settings and chat components
- Updated AI settings management by introducing aiServerSyncWhiteListKeys and integrating AISettings into the sync queue.
- Improved the PersonalizePromptSetting component with character limit validation and dynamic feedback for user input.
- Removed error toast in AIChatRoot for cleaner error handling.
- Added new suggestion to the WelcomeScreen for enhanced user experience.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: enhance ChatInput component functionality
- Integrated useInputComposition hook for improved key handling in ChatInput.
- Updated key event handling logic to ensure proper focus management based on user input.
- Streamlined textarea props by spreading inputProps for cleaner code.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update layout styling in AI display components
- Removed max-width from div elements in AIDisplayEntriesPart, AIDisplayFeedsPart, and AIDisplaySubscriptionsPart for improved responsiveness.
- Ensured consistent styling across AI display components.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: remove AIChatShortcuts component and enhance shortcut handling
- Deleted the AIChatShortcuts component to streamline the codebase.
- Integrated shortcut handling directly into the ChatInput and WelcomeScreen components for improved user experience.
- Added functionality to process custom shortcuts and display them dynamically in the WelcomeScreen.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: implement CollapsibleError component for improved error display
- Introduced a new CollapsibleError component to enhance error handling in the ChatInput.
- Simplified error display logic by replacing inline error handling with the new component.
- Updated common-states to maintain consistent error presentation across the application.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: re-organize AI components
- Added AIChatContextBar, AIChatRoot, AIChatSendButton, and ToolInvocationComponent to improve chat interface.
- Implemented displays for analytics, entries, feeds, and subscriptions, enhancing data presentation in chat.
- Refactored ChatInput to integrate new components and streamline user interactions.
- Enhanced message handling with AIChatMessage and AIMarkdownMessage for better content rendering.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: enhance dropdown menu layout and shortcut display
- Updated DropdownMenuItem to improve spacing for shortcut display.
- Adjusted AIChatContextBar to align dropdown menu content and ensure consistent presentation of shortcuts.
- Removed redundant shortcut display logic for cleaner code.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: remove unused AI components and update imports
- Deleted AISpline and mockShortcuts components to streamline the codebase.
- Updated import paths for AISpline in WelcomeScreen and AIChatContainer to reflect the new structure.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: remove AI spline asset and update loader URL
- Deleted the ai.splinecode asset file to streamline the project.
- Updated AISplineLoader to use a direct URL for the AI spline asset, improving loading efficiency.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: enhance WelcomeScreen with settings modal integration
- Added a button to edit the personal prompt in the WelcomeScreen, linking to the settings modal.
- Improved layout for the personal prompt display by organizing elements within a flex container.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: streamline session state management and enhance UI components
- Refactored session state management by creating reusable atom hooks for current room ID, title, and session persistence.
- Updated AIChatRoot and related components to utilize the new hooks for improved state handling.
- Enhanced ChatHeader to animate the display of the current title.
- Adjusted ChatInterface to ensure proper state usage and maintain clean code structure.
- Modified RightContent to remove unnecessary props for better clarity.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: implement message editing functionality in chat interface
- Added EditableMessage component to allow users to edit their messages.
- Integrated editing state management into AIChatMessage for seamless user experience.
- Updated ChatInterface to handle error states and improve message display logic.
- Enhanced user interaction with action buttons for editing, retrying, and copying messages.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: optimize AI chat components with memoization
- Wrapped AIChatContextBar, ChatInput, and AIMessageParts components with memo for performance improvements.
- Updated imports to include memo and adjusted component definitions accordingly.
- Enhanced dropdown menu layout in ChatMoreDropdown for better usability and responsiveness.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update MermaidDiagram and ChatInput components
- Removed loading icon from MermaidDiagram to simplify the rendering process.
- Added context menu propagation prevention in ChatInput to enhance user interaction and prevent unwanted actions.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update GlassButton component and related usages
- Renamed 'variant' prop to 'theme' for clarity and introduced a new 'variant' prop for visual styles (glass and flat).
- Updated styles and default values in the GlassButton component to reflect the new structure.
- Adjusted usages of GlassButton across various components to align with the new prop names and styles.
- Modified ChatInput component to enhance shadow styles for the minimal variant.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: enhance ToolInvocationComponent and WelcomeScreen
- Updated ToolInvocationComponent to include a max-width style for better layout control.
- Introduced a DEFAULT_SHORTCUTS array in WelcomeScreen to streamline the management of default suggestions.
- Refactored the rendering logic in WelcomeScreen to utilize the new DEFAULT_SHORTCUTS array for displaying suggestions.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: implement thinking indicator in AIMessageParts component
- Replaced the static "AI is thinking..." message with a dynamic ThinkingIndicator component that animates the text display.
- Integrated motion effects using the 'motion/react' library for a smoother user experience.
- Updated the ChatInterface to utilize the new ThinkingIndicator for better visual feedback during AI processing.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: add RelatedEntryLink component for enhanced link handling in AIMarkdownMessage
- Introduced RelatedEntryLink to handle business ID links with a modal preview.
- Updated link rendering logic in AIMarkdownMessage to utilize RelatedEntryLink for improved user interaction.
- Enhanced markdown link handling by integrating peek modal functionality for business IDs.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: update GlassButton styles and introduce EntryLayoutContent component
- Enhanced GlassButton component styles for light, dark, and auto themes, improving visual consistency.
- Added new EntryLayoutContent component to manage entry content display, integrating AI chat and entry content seamlessly.
- Updated EntryContentPlaceholder to utilize the new flat variant of GlassButton for better UI consistency.
- Refactored index export to use EntryLayoutContent as RightContentLayout.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: integrate AI chat functionality and enhance toolbar interactions
- Added AI chat feature toggle in useEntryActions, controlling visibility based on server configurations.
- Updated the customize toolbar to include a warning for the AI chat pinned action.
- Wrapped AISmartSidebar in a React.Suspense component for improved loading behavior.
- Implemented error handling in AISmartSidebar to manage AI feature availability.
- Added localization for the AI chat pinned warning message.
Signed-off-by: Innei <tukon479@gmail.com>
* fix: update useEntryActions to streamline entry properties
- Added entry?.imagesLength and entry?.hasContent to the dependencies of useEntryActions for improved data handling.
- Removed entry?.hasContent from the previous dependencies to avoid redundancy.
- Adjusted the order of entry properties for better clarity and organization.
Signed-off-by: Innei <tukon479@gmail.com>
* ci: update Claude workflow to enhance PR assistance functionality
- Renamed workflow from "Claude Code Review" to "Claude PR Assistant"
- Updated event triggers to include issue comments, pull request review comments, and issues
- Simplified job conditions for running the Claude action
- Changed step name to "Run Claude PR Action" and adjusted parameters for improved integration
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(shortcuts): remove unused shortcut settings component
- Deleted the `ShortcutSetting` component and its associated logic, including custom shortcut handling and reset functionality.
- Cleaned up related components and interfaces to streamline the shortcuts management code.
This change simplifies the shortcuts management by removing unnecessary complexity and unused code.
Signed-off-by: Innei <tukon479@gmail.com>
* Implement code changes to enhance functionality and improve performance
Signed-off-by: Innei <tukon479@gmail.com>
* fix: types
---------
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: DIYgod <i@diygod.me>