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
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
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
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
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
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
Dt8333
a130db5cf4
fix: 将 Graceful shutdown 的异常改为 KeyboardInterrupt ( #3855 )
2025-11-30 20:31:17 +08:00
Dt8333
8488c9aeab
fix(core.platform): 修复启用多个企业微信智能机器人适配器时消息混乱的问题 ( #3693 )
...
* fix(core.platform): 修复启用多个企业微信智能机器人适配器时消息混乱的问题
移除了全局的消息队列,改为每个适配器处理自己的队列。修改相关方法适应该更改。
#3673
* chore: apply suggestions from code review
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-11-19 21:44:38 +08:00
Soulter
6849af2bad
refactor: LLM response handling with reasoning content ( #3632 )
...
* refactor: LLM response handling with reasoning content
- Added a `show_reasoning` parameter to `run_agent` to control the display of reasoning content.
- Updated `LLMResponse` to include a `reasoning_content` field for storing reasoning text.
- Modified `WebChatMessageEvent` to handle and send reasoning content in streaming responses.
- Implemented reasoning extraction in various provider sources (e.g., OpenAI, Gemini).
- Updated the chat interface to display reasoning content in a collapsible format.
- Removed the deprecated `thinking_filter` package and its associated logic.
- Updated localization files to include new reasoning-related strings.
* feat: add Groq chat completion provider and associated configurations
* Update astrbot/core/provider/sources/gemini_source.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-11-15 18:59:17 +08:00
Dt8333
2c8470e8ac
fix(core.platform): make DingTalk user-ID compliant with UMO ( #3634 )
2025-11-15 17:31:03 +08:00
Dt8333
6ac43c600e
perf: improve streaming fallback strategy for streaming-unsupported platform ( #3547 )
...
* feat: 修改tool_loop_agent_runner,新增stream_to_general属性。
Co-authored-by: aider (openai/gemini-2.5-flash-preview) <aider@aider.chat >
* refactor: 优化text_chat_stream,直接yield完整信息
Co-authored-by: aider (openai/gemini-2.5-flash-preview) <aider@aider.chat >
* feat(core): ✨ 添加streaming_fallback选项,允许进行流式请求和非流式输出
添加了streaming_fallback配置,默认为false。在PlatformMetadata中新增字段用于标识是否支持真流式输出。在LLMRequest中添加判断是否启用Fallback。
#3431 #2793 #3014
* refactor(core): 将stream_to_general移出toolLoopAgentRunner
* refactor(core.platform): 修改metadata中的属性名称
* fix: update streaming provider settings descriptions and add conditions
* fix: update streaming configuration to use unsupported_streaming_strategy and adjust related logic
* fix: remove support_streaming_message flag from WecomAIBotAdapter registration
* fix: update hint for non-streaming platform handling in configuration
* fix(core.pipeline): Update astrbot/core/pipeline/process_stage/method/llm_request.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix(core.pipeline): Update astrbot/core/pipeline/process_stage/method/llm_request.py
---------
Co-authored-by: aider (openai/gemini-2.5-flash-preview) <aider@aider.chat >
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-12 18:01:20 +08:00
Soulter
6d00717655
feat: add streaming support with toggle in chat interface and adjust layout for mobile
2025-11-09 21:57:30 +08:00
Dt8333
aca5743ab6
feat: 为部分适配器添加缺失的 send_streaming 方法 ( #3545 )
...
为Wechatpadpro和discord添加缺失的方法。
2025-11-09 16:00:24 +08:00
Dt8333
c51609b261
fix: typing error ( #3267 )
...
* fix: 修复一些小错误。
修复aiocqhttp和slack中部分逻辑缺失的await。修复discord中错误的异常捕获类型。
* fix(core.platform): 修复discord适配器中错误的message_chain赋值
* fix(aiocqhttp): 更新convert_message方法的返回类型为AstrBotMessage | None
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-11-03 23:38:52 +08:00
Copilot
a04993a2bb
Replace insecure random with secrets module in cryptographic contexts ( #3248 )
...
* Initial plan
* Security fixes: Replace insecure random with secrets module and improve SSL context
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Address code review feedback: fix POST method and add named constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Improve documentation for random number generation constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update tests/test_security_fixes.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Fix: Handle path parameter in SSL fallback for download_image_by_url
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-03 02:43:00 +08:00
Copilot
94bf3b8195
Fix incorrect type annotations and errors ( #3250 )
...
* Initial plan
* Fix type annotation errors in cmd_conf, cmd_init, and version_comparator
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Changes before error encountered
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Fix more type annotation errors: change `= None` to `| None = None`
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Fix final batch of type annotation errors
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
2025-11-02 17:02:56 +08:00
Copilot
e190bbeeed
Optimize string concatenation in loops: replace += with list.join() ( #3246 )
...
* Initial plan
* Fix string concatenation performance issues in loops
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Address code review feedback: Fix plugin list logic and add comment
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Improve comment clarity for at_parts accumulation
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
2025-11-02 13:00:59 +08:00
Copilot
92abc43c9d
Fix mutable default arguments in constructors and methods ( #3247 )
...
* Initial plan
* Fix mutable default arguments in constructors and methods
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
2025-11-02 12:57:37 +08:00
LIghtJUNction
0b7fc29ac4
style: add ruff lint module of isort and pyupgrade, and some ruff check fix ( #3214 )
...
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-11-01 13:26:19 +08:00
再吃颗电池吧
2ce653caad
perf: modify the at logic in the DingTalk adapter ( #3186 )
...
* feat 初次提交
* fix: Modify the At logic in the DingTalk adapter.
* del uv.lock
* 添加at_users为空判断
* 优化钉钉at的处理逻辑,不用重复判断机器人是否is_in_at_list
* fix: refine handling of mentioned users in group messages
---------
Co-authored-by: linyiming <linyiming@example.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-10-30 14:15:01 +08:00
Soulter
36ffcf3cc3
fix: typing error
2025-10-21 10:56:44 +08:00
magisk317
5e808bab65
fix(platform): prevent 'NoneType' object is not iterable in _outline_chain and set_result ( #3103 )
...
Guard against cases where message chain is None during pipeline execution. This change enhances error-resilience for logging and processing message chains.
- Updated AstrMessageEvent._outline_chain to return an empty string when input chain is None
- Updated AstrMessageEvent.set_result to ensure result.chain is always at least an empty list
This prevents TypeError when result.chain or chain is unexpectedly None, improving pipeline stability when handling external plugins or corner cases.
Co-authored-by: engine-labs-app[bot] <140088366+engine-labs-app[bot]@users.noreply.github.com>
Co-authored-by: cto-new[bot] <140088366+cto-new[bot]@users.noreply.github.com>
2025-10-19 20:16:14 +08:00
a490077
3550103e45
feat: QQ 官方机器人增加沙盒模式选项,让本地部署能跳过 IP 白名单验证 ( #3087 )
...
* QQ官方机器人增加沙箱模式选项,让本地部署能跳过IP白名单验证
* chore: ruff format
---------
Co-authored-by: 郭鹏 <gp@pp052.top >
Co-authored-by: Soulter <905617992@qq.com >
2025-10-19 20:09:08 +08:00
PaloMiku
8b0d4d4de4
feat: 优化 Misskey 适配器的通知和聊天消息处理,改进 @用户提及逻辑 ( #3075 )
2025-10-19 20:05:55 +08:00
shangxue
dc71c04b67
feat(satori): 添加对合并转发消息功能的支持 ( #3050 )
...
* Update satori_event.py
* Update satori_event.py
* Update satori_event.py
* Update satori_adapter.py
* style: format code for better readability in satori_adapter.py and satori_event.py
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-19 20:05:03 +08:00
PaloMiku
23f13ef05f
feat:Misskey 适配器支持文件上传、投票内容感知功能和重构部分代码 ( #2986 )
...
* feat: 为 Misskey 适配器修正一些问题,添加投票信息读取支持
* feat: 增强 Misskey 平台适配器,添加随机重连延迟和通道重新订阅功能
* feat: 添加文件上传功能并优化消息发送接口,支持同时发送文件和文本
* feat: 增强文件上传功能,支持 MIME 类型检测和外部 URL 回退
* feat: 增加 Misskey 文件上传功能开关,支持配置文件上传启用与并发限制
* feat: 添加 Misskey 文件上传目标文件夹配置,支持将文件上传到指定文件夹
* feat: 优化 Misskey 平台适配器,增强文件上传和消息发送功能,支持更多可选字段
* feat: 代码优化结构与功能
* feat(misskey): 增强消息发送逻辑和工具函数
- 重构了 `misskey_event.py` 中的 `send` 方法,使用新的适配器方法 `send_by_session`,以改进消息处理(包括文件上传)。
- 添加了详细的日志记录,以提高消息发送过程的可追溯性。
- 在 `misskey_utils.py` 中引入了 `FileIDExtractor` 和 `MessagePayloadBuilder` 类,以简化文件 ID 提取和消息载荷构建。
- 在 `misskey_utils.py` 中实现了 MIME 类型检测和文件扩展名解析,以支持多种文件上传。
- 增强了 `resolve_component_url_or_path`,以更好地处理不同类型的组件上传文件。
- 在 `upload_local_with_retries` 中添加了重试逻辑,以优雅地处理不允许的文件类型。
* feat(misskey): 限制文件上传并发数,优化消息处理逻辑
* feat(misskey): ruff formatted
* feat: 大幅优化 misskey 文件上传逻辑,简化上传流程并增强可见性解析
* feat(misskey): 移除 Url上传方式,精简日志
* fix(misskey): 修复错把URL文件当本地文件上传的问题,明确处理 URL 和本地文件的方式
* fix(misskey): 修复 session_id 解析逻辑,确保与 user_cache 键格式匹配
* perf: streaming the file with a file object in FormData to reduce peak memory usage.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* style: format debug log message for local file upload in MisskeyAPI
* refactor: remove unnecessary thread executor for reading file bytes in MisskeyAPI
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-10-16 10:27:04 +08:00
shangxue
9119f7166f
feat: satori 适配器支持 video、reply 消息类型 ( #3035 )
...
* Update satori_event.py
* style: format
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-15 10:45:35 +08:00
Soulter
80fccc90b7
feat: 支持接入企业微信智能机器人平台 ( #3034 )
...
* stage
* stage
* feat: 支持图片收发
* feat: add support for wecom_ai_bot in getPlatformIcon function
2025-10-14 23:20:56 +08:00
kterna
8bdd748aec
feat: 支持注册消息平台适配器的 logo ( #2109 )
...
* feat: 添加平台适配器 logo 支持
* 优化平台logo注册逻辑,增加缓存机制并支持并行处理
* 去除判断绝对路径
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-02 14:36:15 +08:00
u0_ani-nya.com
5eaf03e227
perf: 对于 Telegram 群聊,将回复机器人的消息视为唤醒机器人 ( #2926 )
...
* reply as at for tg
Add handling for bot replies in group messages.
* style: type checking and ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-01 19:04:37 +08:00
Seayon
a8437d9331
feat: 支持在 Telegram 和飞书下请求 LLM 前预表态功能 ( #2737 )
...
* ✨ feat(platform): 为 Telegram 和飞书添加消息表情回应功能
支持在收到命令时自动添加表情回应,提升用户交互体验
新增平台特异配置项,允许自定义启用状态和表情列表
* Update astrbot/core/platform/astr_message_event.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* style: ruff format
* fix: 优化平台特异配置的预回应表情处理逻辑
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Soulter <905617992@qq.com >
2025-09-30 17:29:34 +08:00
Soulter
09d1f96603
fix: 修复 /alter_cmd 指令无法控制指令组、子指令组和子指令组下子指令的问题 ( #2873 )
...
* fix: revert changes in command_group.py at 782c036 to fix command group permission check
* fix: 不传递 GroupCommand handler
* perf: alter_cmd 指令支持对子指令、指令组进行配置
* chore: remove test commands and subcommands from test_group
* chore: add cache for complete command names list in CommandFilter and CommandGroupFilter
---------
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-09-26 14:16:50 +08:00
Raven95676
d10b542797
chore: format
2025-09-26 11:05:32 +08:00
Raven95676
ce4e4fb8dd
fix: add missing id field
2025-09-26 10:59:11 +08:00
shangxue
fc76665615
feat: Satori适配器引用消息无法正确识别 ( #2686 )
...
* Update PlatformPage.vue
* Update PlatformPage.vue
* Update PlatformPage.vue
* Update satori_adapter.py
* Update satori_event.py
* Update default.py
* Update satori_adapter.py
* Update satori_adapter.py
* style: format code
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-21 21:45:35 +08:00
Soulter
3a044bb71a
fix: 修复 Telegram 下流式传输时,第一次输出的内容会被覆盖掉的问题 ( #2838 )
...
fixes : #2481
2025-09-21 21:24:47 +08:00
anka
a4b43b884a
fix: 修复aiocqhttp适配器at会获取群昵称而消息不会获取的逻辑不一致 ( #2769 )
...
* fix: 修复at会获取群昵称而消息不会获取的逻辑不一致
* style: format code
2025-09-19 13:04:51 +08:00
PaloMiku
824c0f6667
feat: 新增 Misskey 平台适配器 ( #2774 )
...
* feat: add Misskey platform adapter
* fix: 修复 Misskey 配置项的大小写问题
* feat: 添加消息链序列化功能和可见性解析逻辑
* chore: 删除损坏的 Misskey 平台适配器工具函数文件
* docs: 更新 Misskey 消息适配器设置描述信息
* feat: Misskey 单用户连续上下文对话支持
* feat: 为 Astrbot 添加 Misskey 平台适配器的 ID 配置
* feat: 重构 Misskey 平台适配器,提取通用工具函数并优化消息处理逻辑
* refactor: 清理 Misskey 平台适配器和 API 代码,移除冗余注释
* fix: 修复了使用中和使用者反馈的多个问题
* fix: 修改提及格式,确保提及在新行开始,提升帖子美观和易读性。
* feat: 添加默认可见性和本地仅限设置,优化 Misskey 平台适配器的配置
* fix: 更新 Misskey 平台适配器配置,使用前缀以防止和其他适配器未来可能的冲突问题
* chore: rename 'misskey' to 'Misskey' in config
* feat: Misskey 适配器添加聊天消息响应功能,重构接收和发送逻辑为 Websockets 处理
* fix: 增强 Misskey WebSocket 消息日志输出
* refactor: 优化 Misskey 适配器的消息处理和日志输出
* fix: 增强 Misskey WebSocket 重连接逻辑
* feat: 增强 Misskey 适配器的消息处理,支持房间消息和相关功能,重构通用函数,清理代码重复冗余
* fix: 不屏蔽唤醒前缀对默认 LLM 的唤醒
* fix: 透传所有的群聊消息事件
* fix: 修复 message_type
* perf: 实现 send_streaming 以支援流式请求
* docs(README): update README.md
* fix: super().send(message) 被忽略
* fix: 修正 session 结构
: 作为分隔符可能会导致 umo 组装出现问题
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-09-18 23:34:41 +08:00
anka
9d9917e45b
feat: 增加群名称识别到 system prompt, 并提供相应的配置 ( #2770 )
...
* feat🤖 : 增加群名称识别到system prompt, 并提供相应的配置
* feat: 优化实现方式, 重构AstrBotMessage, 向后兼容
* style: format
2025-09-16 10:23:08 +08:00
Soulter
7740e1e131
ci: add ci stage of code format checking ( #2750 )
...
* style: ruff format
* ci(dashboard-ci): ensure GitHub Release action only runs on push events
* ci(code-format): ruff format and ruff check
2025-09-14 18:05:58 +08:00
anka
9431efc6d1
feat: 增加 on_platform_loaded 钩子以在消息平台适配器实例化完成后触发 ( #2651 )
...
* feat⚒️ : 增加平台加载时的钩子
* fix: 补充api
* fix: 只捕获Exception
2025-09-09 08:44:37 +08:00
Soulter
2c3c3ae546
fix: 移除无用的调试日志以简化命令注册逻辑
2025-09-07 11:37:34 +08:00
shangxue
17aee086a3
feat: 添加 Satori 协议适配器支持 ( #2633 )
...
* Create satori_adapter.py
* Add files via upload
* Update default.py
* Update manager.py
* Update platform_adapter_type.py
* Update PlatformPage.vue
* Add files via upload
* Update default.py
* Update manager.py
* Update platform_adapter_type.py
* Update PlatformPage.vue
* Add files via upload
* Update default.py
* chore: format code
* feat: 修复 Image, Audio 的解析,修复 message_str 的解析
* perf: 增强鲁棒性
* feat: 添加 Satori 配置项描述,移除适配器默认配置
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-06 23:52:00 +08:00