MyPrototypeWhat c69c750144
perf: optimize/message performance (#3181)
* feat: Add message pause and resume functionality

- Implement pauseMessage and pauseMessages methods in useMessageOperations hook
- Update Inputbar to use new pauseMessages method for stopping message generation
- Remove deprecated pause-related code from ApiService and store
- Simplify message generation and pause logic across providers
- Enhance message state management with more granular control over streaming messages

* feat: Enhance topic management with sequence-based sorting and lazy loading

- Add sequence field to topics for better sorting
- Implement lazy loading mechanism for topic messages
- Modify Redux store to support per-topic loading states
- Update database schema to use sequence as an auto-incrementing primary key
- Optimize message initialization and retrieval process

* refactor(database): Enhance topic management with timestamps and upgrade logic

- Modify database schema to include createdAt and updatedAt for topics
- Add database hooks for automatic timestamp handling
- Refactor topic upgrade process to support new timestamp fields
- Remove redundant upgradesV6.ts file
- Update topic retrieval to use updatedAt for sorting
- Improve database consistency and tracking of topic modifications

* refactor: Streamline message state management and remove unused code

- Remove commented-out code in multiple components
- Delete initializeMessagesState thunk from messages store
- Simplify message sending and streaming logic
- Remove unnecessary console logs
- Optimize MessageStream component with memo
- Using loading to control message generation within a single session
- Lift the restriction on not being able to switch topics in message generation

* refactor(database): Remove version 6 database version and hooks

- Remove version 6 database schema definition
- Delete automatic timestamp hooks for topics
- Clean up unused database upgrade and hook code

* refactor(Messages): Optimize message state management and remove redundant code

- Remove duplicate imports and redundant code blocks
- Simplify message sending and streaming logic in messages store
- Enhance throttling mechanism for message updates
- Remove commented-out code and unused function parameters
- Improve error handling and loading state management
- Optimize message synchronization with database

* fix:console
2025-03-11 17:31:44 +08:00
2024-08-26 18:30:05 +08:00
2024-12-10 17:06:29 +08:00
2025-03-05 21:54:39 +08:00
2024-10-17 14:09:30 +08:00
2024-08-27 11:31:05 +08:00
2024-12-03 10:23:53 +08:00
2024-12-03 10:23:53 +08:00

banner

English | 中文 | 日本語

kangfenmao%2Fcherry-studio | Trendshift

🍒 Cherry Studio

Cherry Studio is a desktop client that supports for multiple LLM providers, available on Windows, Mac and Linux.

👏 Join Telegram GroupDiscord | QQ Group(1025067911)

❤️ Like Cherry Studio? Give it a star 🌟 or Sponsor to support the development!

🌠 Screenshot

🌟 Key Features

  1. Diverse LLM Provider Support:

    • ☁️ Major LLM Cloud Services: OpenAI, Gemini, Anthropic, and more
    • 🔗 AI Web Service Integration: Claude, Peplexity, Poe, and others
    • 💻 Local Model Support with Ollama, LM Studio
  2. AI Assistants & Conversations:

    • 📚 300+ Pre-configured AI Assistants
    • 🤖 Custom Assistant Creation
    • 💬 Multi-model Simultaneous Conversations
  3. Document & Data Processing:

    • 📄 Support for Text, Images, Office, PDF, and more
    • ☁️ WebDAV File Management and Backup
    • 📊 Mermaid Chart Visualization
    • 💻 Code Syntax Highlighting
  4. Practical Tools Integration:

    • 🔍 Global Search Functionality
    • 📝 Topic Management System
    • 🔤 AI-powered Translation
    • 🎯 Drag-and-drop Sorting
    • 🔌 Mini Program Support
  5. Enhanced User Experience:

    • 🖥️ Cross-platform Support for Windows, Mac, and Linux
    • 📦 Ready to Use, No Environment Setup Required
    • 🎨 Light/Dark Themes and Transparent Window
    • 📝 Complete Markdown Rendering
    • 🤲 Easy Content Sharing

📝 TODO

  • Quick popup (read clipboard, quick question, explain, translate, summarize)
  • Comparison of multi-model answers
  • Support login using SSO provided by service providers
  • All models support networking
  • Launch of the first official version
  • Bug fixes and improvements (In progress...)
  • Plugin functionality (JavaScript)
  • Browser extension (highlight text to translate, summarize, add to knowledge base)
  • iOS & Android client
  • AI notes
  • Voice input and output (AI call)
  • Data backup supports custom backup content

🖥️ Develop

IDE Setup

Cursor + ESLint + Prettier

Project Setup

Install

yarn

Development

yarn dev

Build

# For windows
$ yarn build:win

# For macOS
$ yarn build:mac

# For Linux
$ yarn build:linux

🤝 Contributing

We welcome contributions to Cherry Studio! Here are some ways you can contribute:

  1. Contribute Code: Develop new features or optimize existing code.
  2. Fix Bugs: Submit fixes for any bugs you find.
  3. Maintain Issues: Help manage GitHub issues.
  4. Product Design: Participate in design discussions.
  5. Write Documentation: Improve user manuals and guides.
  6. Community Engagement: Join discussions and help users.
  7. Promote Usage: Spread the word about Cherry Studio.

Getting Started

  1. Fork the Repository: Fork and clone it to your local machine.
  2. Create a Branch: For your changes.
  3. Submit Changes: Commit and push your changes.
  4. Open a Pull Request: Describe your changes and reasons.

For more detailed guidelines, please refer to our Contributing Guide.

Thank you for your support and contributions!

  • one-api:LLM API management and distribution system, supporting mainstream models like OpenAI, Azure, and Anthropic. Features unified API interface, suitable for key management and secondary distribution.

  • ublacklist:Blocks specific sites from appearing in Google search results

🚀 Contributors



🌐 Community

Telegram | Email | Twitter

📣 Product Hunt

Cherry Studio - AI Chatbots, AI Desktop Client | Product Hunt

Sponsor

Buy Me a Coffee

📃 License

LICENSE

Star History

Star History Chart

Description
No description provided
Readme 24 MiB
Languages
TypeScript 92.3%
JavaScript 6.1%
SCSS 0.7%
HTML 0.4%
CSS 0.2%
Other 0.2%