copilot-swe-agent[bot]
a2fe0ec5a1
Add webhook signature verification for security
...
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
2025-12-12 14:27:51 +00:00
copilot-swe-agent[bot]
d07a1ad5c9
Add GitHub webhook platform adapter with event handlers
...
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
2025-12-12 14:20:33 +00:00
Soulter
8a0b7717cc
feat: supports webhook mode for Lark platform ( #4016 )
...
* feat: add Lark platform support with unified webhook configuration
* fix: update token verification logic in LarkWebhookServer
* feat: implement event deduplication and cleanup for Lark webhook events
2025-12-12 22:12:13 +08:00
Soulter
ec408a2aff
fix: lark message timestamp
2025-12-11 18:20:50 +08:00
Soulter
fcd29445c7
refactor: remove unused current provider initialization in StarRequestSubStage
2025-12-11 10:36:33 +08:00
BiDuang
5f535001db
fix: incorrect modalities enum of gemini api provider ( #3993 )
2025-12-10 20:27:51 +08:00
Dt8333
f624971613
chore: fix bunches of type checking errors ( #3213 )
...
* chore(core.utils): 🚨 修正错误Lint
* chore(core.provider): 🚨 修复基类错误Lint
* chore(core.utils): 补全session_get()的重载
* chore(core.provider): 🚨 修正实现错误Lint
* chore(core.platform): 🚨 修正platform基类和webchat的错误Lint
* chore(core.platform): 修正错误实现Lint
* fix(core.provider): 修复循环调用和错误assert
* chore(core.platform): 修复部分实现Lint
* chore(core.provider): 补充Dify.text_chat_stream的参数类型
* chore(core.pipeline): 🚨 修复错误Lint
* fix(core.slack): 补充遗漏导入
* chore(core.utils): 修复错误的session_get声明
* chore(core.platform): 移除Lark adapter import中的wildcard
* chore(core.db): 修复声明和部分逻辑
* chore(core.db): 添加typings,使faiss参数能被正确识别。
* chore(core): 修复声明
* chore(core): 修改声明
* chore: 补充faiss声明
* chore(dashboard): 修改实现,减少报错
* chore(package): 修改部分声明与实现,减少报错
* chore(core): 添加Handler的overload,以去除部分assert同时通过类型检查
* chore(core.pipeline): 修改Pipeline Scheduler的execute,将判断属性改为判断类型,通过静态类型检查
* chore(core.config): 添加类型标注,通过类型检查
* chore(core.message): 为File._download_file添加检查,通过类型检查
* fix: 将断言改为条件判断以实现优雅关闭的容错性
* refactor: 移除 discord 客户端中的 assert,改用 if None 判断并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: DiscordPlatformAdapter 对 self.client.user 为 None 做日志并返回,移除断言
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 增强 Lark 相关空值/异常检查并完善日志输出
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将断言替换为条件检查并加入日志与错误处理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* chore: 移除LLM生成的无用注释
* refactor: 使用 File.get_file 替换下载逻辑并移除 assert,提供默认 filename
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: Slack Socket 未初始化抛出运行时异常,图片 URL 判空改为非空判断
* refactor: 将 WeChatPadProAdapter 的断言改为空值判断并添加日志
* refactor: 使用 isinstance 替代断言实现类型判断,便于静态检查
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 去除cast,直接使用字段与字典访问,修正端口解析
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 使用 match-case 重构 ProviderManager 加载并通过类型检查抛出 TypeError
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: group_name_display 时若 group 对象为空则记录错误并返回
* fix: 将 _get_current_persona_id 的 assert 替换成 if guard 并返回 None
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 优化插件目录存在性检查及图片URL非空验证,更新JSON排序配置
* fix: 将 datetime_str 的 assert 替换为显式检查并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改为运行时检查并在找不到调度器时跳过
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改用 isinstance 检查 FaissVecDB 并警告
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 删除 typing.cast 导入,并在获取文件绝对路径前校验 file_
* refactor: 移除 typing.cast,简化内容安全检查调用
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将 PlatformMetadata.id 设为必填并在注册时传入 id,移除 cast
* refactor: 移除 cast,改用 HasInitialize 与 isinstance 进行初始化
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 ProviderManager.initialize 增加ID类型判断,避免 None 导致 get 失败
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 为 OTTSProvider 与 AzureNativeProvider 引入 _client 与 client 属性改进上下文管理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 Whisper 自托管源添加模型未初始化校验并直接调用 transcribe
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除未使用的 cast 导入并简化 platform_name 赋值
* refactor: 引入 cast 并对 id 使用 cast(str, ...) 提升类型安全
* fix: 将 _id_to_sid 返回改为 str,空值返回空串;对 id 与 message_id 使用 cast
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 重构 Discord 处理逻辑:强制 类型转换、优先斜杠指令并优化提及判断
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 统一对 id 获取执行 cast,并在微信消息解析失败时抛错
* Revert "fix: 去除cast,直接使用字段与字典访问,修正端口解析"
This reverts commit 1cbfdf9d1b .
* fix: 百炼 Rerank 会话关闭时返回空结果;初始化 request.prompt 避免空值拼接
* fix: 统一处理搜索结果链接为字符串,新增 _get_url 助手并适配 Bing/Sogo
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 调整 call_handler 泛型、Discord 通道注解及 FishAudioTTS API 请求类型
* refactor: 使用 col(...) 替代列引用并对结果进行 CursorResult 强转
* chore: ruff format
---------
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
Co-authored-by: Soulter <905617992@qq.com >
2025-12-09 14:13:47 +08:00
Soulter
aa6d07afcc
refactor: move all internal commands from astrbot plugin to default_command plugin ( #3960 )
...
* refactor: move all internal commands from astrbot plugin to default_command plugin
* ruff check
* feat: add config
* ruff check
2025-12-08 22:17:32 +08:00
Soulter
37566182b0
feat: segment reply supports segmentation words ( #3959 )
...
* feat: segment reply supports segmentation words
* chore: ruff format
* feat: enhance segmented reply processing by refining word extraction logic
* ruff format
2025-12-08 00:27:17 +08:00
Soulter
e14ed804da
chore: bump version to 4.8.0
2025-12-05 19:09:56 +08:00
Oscar Shaw
8e4e49df20
fix: not invoke on_llm_response hook when LLM request has error ( #3871 )
...
* 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 >
2025-12-05 16:13:46 +08:00
Oscar Shaw
5d856900ef
perf: some UI/UX fixes, change Console to Platform Logs ( #3873 )
...
* refactor: 统一‘平台日志’文案
* perf: 优化自动滚动开关键操作逻辑
* perf: add tooltips to save and code editor buttons
2025-12-05 16:02:20 +08:00
易推倒白毛
8879bd7e9d
fix: add supports for Whisper with QQ amr audio file
...
* fix: Whisper API对QQ语音amr文件的支持
* Update whisper_api_source.py
* fix: cleanup temporary files in Whisper API
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-12-05 15:41:37 +08:00
Soulter
205024f27a
fix: correct SQL query syntax in SQLiteDatabase class
2025-12-04 12:51:22 +08:00
Soulter
54e49b997b
feat: enhance platform management with status tracking and error handling
...
- 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.
2025-12-03 16:48:57 +08:00
Soulter
5714944eef
feat: unified platform webhook url ( #3889 )
...
* feat: unified platform webhook url
* chore: ruff format
* fix: 修复 Telegram 语音使用 Whisper API 报错 (#3884 )
* Update whisper_api_source.py
* chore: ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
* Update astrbot/dashboard/routes/platform.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* chore: ruff format
* fix: update webhook dialog descriptions for clarity in English and Chinese locales
* fix: update webhook URL paths to include '/api' prefix for consistency across the application
---------
Co-authored-by: 易推倒白毛 <zhaixingbi@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-03 15:44:52 +08:00
Soulter
defc46b6c9
fix: remove unnecessary blocks in Slack reply message ( #3897 )
2025-12-03 13:59:41 +08:00
Soulter
4d819546b0
fix: handle message sending in QQOfficialMessageEvent class ( #3894 )
...
- 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
2025-12-03 13:15:12 +08:00
易推倒白毛
8006981976
fix: 修复 Telegram 语音使用 Whisper API 报错 ( #3884 )
...
* Update whisper_api_source.py
* chore: ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-12-03 02:50:50 +08:00
Soulter
f7a716af43
refactor: message storage format of webchat, support reply and file message segment ( #3845 )
...
* 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
2025-12-02 17:11:08 +08:00
Soulter
e9be8cf69f
chore: bump version to 4.7.4
2025-12-01 18:42:07 +08:00
Soulter
31d53edb9d
refactor: standardize provider test method implementation
...
- 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.
2025-12-01 18:37:08 +08:00
Soulter
2ba0460f19
feat: introduce file extract capability ( #3870 )
...
* feat: introduce file extract capability
powered by MoonshotAI
* fix: correct indentation in default configuration file
* fix: add error handling for file extract application in InternalAgentSubStage
* fix: update file name handling in InternalAgentSubStage to correctly associate file names with extracted content
* feat: add condition settings for local agent runner in default configuration
* fix: enhance file naming logic in File component and update prompt handling in InternalAgentSubStage
2025-12-01 18:12:39 +08:00
雪語
0e034f0fbd
fix: aiocqhttp 适配器 NapCat 文件名获取为空 ( #3853 )
...
* aiocqhttp 适配器 NapCat 文件名获取为空
修复使用 NapCat 时,文件消息的 File.name 为空的问题。原代码硬编码 name="",导致下游插件无法获取文件名和扩展名
* Enhance file name retrieval from message data
Updated file name extraction logic to check multiple fields for better accuracy.
2025-12-01 13:36:19 +08:00
Soulter
72fac4b9f1
feat: implement unified provider availability testing across components ( #3865 )
...
- 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.
2025-12-01 13:17:20 +08:00
Soulter
38281ba2cf
refactor: restore reachability check configuration in default settings and localization files
2025-12-01 00:38:30 +08:00
Soulter
21aa3174f4
fix: disable reachability check in default configuration
2025-12-01 00:16:11 +08:00
邹永赫
dcda871fc0
feat: provider availability reachability improvements ( #3708 )
2025-12-01 01:06:10 +09:00
Soulter
c13c51f499
fix: assistant message validation error when tool_call exists but content not exists ( #3862 )
...
* 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
2025-11-30 23:42:37 +08:00
Dt8333
a130db5cf4
fix: 将 Graceful shutdown 的异常改为 KeyboardInterrupt ( #3855 )
2025-11-30 20:31:17 +08:00
Soulter
fc80d7d681
chore: bump version to 4.7.3
2025-11-30 00:42:49 +08:00
Soulter
4087bbb512
perf: set content attribute optional to AssistantMessageSegment for enhanced message handling
...
fixes : #3843
2025-11-30 00:32:00 +08:00
Soulter
e1c728582d
chore: bump version to 4.7.2
2025-11-30 00:18:23 +08:00
Oscar Shaw
93c69a639a
feat: 新增群聊模式下的专用图片转述模型配置 ( #3822 )
...
* 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 >
2025-11-29 23:53:32 +08:00
Soulter
a7fdc98b29
fix: third party agent runner cannot run properly when using non-default config file
...
fix : #3815
2025-11-29 23:45:12 +08:00
Soulter
85b7f104df
fix: remove unnecessary provider check ( #3846 )
...
fixes : #3815
2025-11-29 23:15:19 +08:00
Soulter
ab2c94e19a
chore: comment out error logging in provider sources to reduce verbosity
2025-11-28 19:59:33 +08:00
Soulter
bb8b2cb194
chore: bump version to 4.7.1
2025-11-28 15:13:35 +08:00
Soulter
4e29684aa3
fix: add plugin set and knowledge bases selection in custom rules page ( #3813 )
...
fixes : #3806
2025-11-28 13:29:50 +08:00
Soulter
0e17e3553d
chore: bump version to 4.7.0
2025-11-27 23:50:05 +08:00
Soulter
ba39c393a0
perf: enhance provider management with reload locking and logging ( #3793 )
...
- Introduced a reload lock to prevent concurrent reloads of providers.
- Added logging to indicate when a provider is disabled and when providers are being synchronized with the configuration.
- Refactored the reload method to improve clarity and maintainability.
Co-authored-by: anka <1350989414@qq.com >
2025-11-27 16:25:31 +08:00
Soulter
6a50d316d9
fix: mcp server cannot reload successfully after updating mcp server config ( #3797 )
...
fixes : #3780
2025-11-27 16:22:26 +08:00
Soulter
133f27422d
feat: implement i18n of astrbot config ( #3772 )
...
* feat: implement i18n of astrbot config
* feat(config): update configuration metadata with i18n details and future deprecation notes
2025-11-26 16:40:58 +08:00
teapot1de
06869b4597
docs: clarify segmented_reply words_count_threshold hint ( #3779 )
...
Update the configuration hint for `words_count_threshold` to explicitly state that it acts as a maximum limit for segmentation, preventing user confusion about it being a minimum trigger.
2025-11-26 16:15:09 +08:00
Soulter
5c5515d462
fix: segmented reply regex error handling ( #3771 )
...
* fix: segmented reply regex error handling
closes : #3761
* fix: improve regex handling for segmented replies to support multiline input
* fix: update regex handling in ResultDecorateStage to use findall for segmented replies
* fix: update error logging message for segmented reply regex handling
2025-11-24 22:00:59 +08:00
Soulter
82488ca900
feat(api): enhance file upload method to support mime type and file name
2025-11-24 15:30:49 +08:00
Soulter
29d9b9b2d6
feat(config): add condition for display_reasoning_text based on agent_runner_type
2025-11-24 15:10:17 +08:00
Soulter
02215e9b7b
feat(config): update hint for agent_runner execution method to clarify third-party integration
2025-11-24 15:07:33 +08:00
Soulter
7160b7a18b
fix: dify workflow streaming mode
2025-11-24 15:04:15 +08:00
Soulter
ea8dac837a
feat(config): enhance hint for agent_runner execution method in configuration
2025-11-24 14:42:36 +08:00