* feat: custom plugin api source manager
* fix: rename plugin source file in a safer way
* chore: turned the way of saving plugin source to backend and refacted some components
* style: clean up whitespace and improve logging message formatting
---------
Co-authored-by: Soulter <905617992@qq.com>
* feat: segment reply supports segmentation words
* chore: ruff format
* feat: enhance segmented reply processing by refining word extraction logic
* ruff format
* fix: handle on_agent_done in error responses
- Introduced an LLMResponse for error messages to be processed by agent hooks, ensuring better error reporting and handling.
* fix: improve error logging in on_agent_done hook
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
* feat: add Kubernetes manifests for astrbot and napcat deployment with services and persistent storage
* chore: remove 11451 port
---------
Co-authored-by: Soulter <905617992@qq.com>
- Added French, Russian, and Traditional Chinese README files to support a wider audience.
- Updated English and Japanese README files with improved descriptions of AstrBot's capabilities and features.
- Enhanced community section in all README files to include QQ, Telegram, and Discord group information.
- Adjusted plugin marketplace badge and key features list for clarity and consistency across languages.
- Introduced PlatformStatus enum to manage platform states (pending, running, error, stopped).
- Added error recording and retrieval functionality in the Platform class.
- Implemented a new method in PlatformManager to gather statistics for all platforms.
- Updated the dashboard to display platform statuses and error details, including a dialog for error insights.
- Enhanced localization for runtime statuses and error dialogs in both English and Chinese.
- Added a fallback to the `_post_send` method without parameters when the stream payload is not set, ensuring proper message handling in all scenarios.
fixes: #3893
* refactor: message storage format of webchat
* refactor: update image and record handling in webchat event processing
* fix: thinking placeholder in webchat
* feat: supports file upload in webchat
* feat: supports to delete attachments when webchat session is deleted
* perf: improve performance of file downloading
* refactor: remove unused import in chat route
* feat: add message timestamp formatting and localization support in chat
* fix: handle missing filename in file upload for chat route
* feat: enhance file handling in chat and webchat, supporting video uploads and improved attachment management
* fix: update property name for embedded files in message handling
* fix: compute variable errors after uninstalling plugins
* feat: supported for reply message and standarlize the message param
* fix: ensure message actions are displayed for the last message in the list
- Updated the `test` method in all provider classes to remove return values and raise exceptions for failure cases, enhancing clarity and consistency.
- Adjusted related logic in the dashboard and command routes to align with the new `test` method behavior, simplifying error handling.
- Added a `test` method to each provider class to standardize availability checks.
- Updated the dashboard and command routes to utilize the new `test` method for provider reachability verification, simplifying the logic and improving maintainability.
- Removed redundant reachability check logic from the command handler.
* fix: assistant message validation error when tool_call exists but content not exists
* fix: enhance content validation in Message model to allow None for assistant role with tool_calls
* feat: add image caption provider configuration for group chat
- Introduced `image_caption_provider_id` to allow separate configuration for group chat image understanding.
- Updated metadata and hints in English and Chinese for clarity on new settings.
- Adjusted logic in long term memory to utilize the new provider ID for image captioning.
* fix: format
* Fix logic for image caption and active reply settings
* Fix indentation and formatting in long_term_memory.py
* chore: ruff format
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
Co-authored-by: Soulter <905617992@qq.com>