Skip to content

Dev#1720

Merged
SengokuCola merged 11 commits into
mainfrom
dev
May 19, 2026
Merged

Dev#1720
SengokuCola merged 11 commits into
mainfrom
dev

Conversation

@SengokuCola
Copy link
Copy Markdown
Collaborator

@SengokuCola SengokuCola commented May 19, 2026

  • ✅ 接受:与main直接相关的Bug修复:提交到dev分支
  • 新增功能类pr需要经过issue提前讨论,否则不会被合并
  • 🌐 i18n 提醒:除 bootstrap 或紧急修复外,请不要把非 zh-CN 目标翻译作为常规 GitHub 编辑面;常规翻译以 Crowdin -> l10n_* PR 回流为准,详见 docs/i18n.md

请填写以下内容

(删除掉中括号内的空格,并替换为小写的x

    • main 分支 禁止修改,请确认本次提交的分支 不是 main 分支
    • 我确认我阅读了贡献指南
    • 本次更新类型为:BUG修复
    • 本次更新类型为:功能新增
    • 本次更新是否经过测试
    • 如果本次修改涉及 src/A_memorix,我确认已阅读 src/A_memorix/MODIFICATION_POLICY.md,不涉及则无需勾选
  1. 请填写破坏性更新的具体内容(如有):
  2. 请简要说明本次更新的内容和目的:

其他信息

  • 关联 Issue:Close #
  • 截图/GIF
  • 附加信息:

Summary by CodeRabbit

发布说明

  • 新特性

    • WebUI 聊天支持发送图片消息并通过网络连接正确传递
    • 图片文件处理能力增强,包括多张图片发送、读取失败提示等
    • 插件系统新增转发消息与混合内容消息发送能力
  • Bug 修复

    • 修复 WebUI 独立线程重启后的旧进程清理问题
    • 修复模型配置引导与入口跳转错误
    • 修复多模态图片识别与历史刷新流程
    • 修复工具返回图片的识别问题
  • 杂项

    • 版本更新至 1.0.0-pre.23
    • 聊天会话身份信息持久化
    • 开发指南更新

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 19, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7ce804e5-6015-46bf-9daa-617023c6127d

📥 Commits

Reviewing files that changed from the base of the PR and between 938ef11 and 18e90b8.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (38)
  • AGENTS.md
  • changelogs/changelog.md
  • dashboard/src/components/tour/tour-renderer.tsx
  • dashboard/src/i18n/locales/en.json
  • dashboard/src/i18n/locales/ja.json
  • dashboard/src/i18n/locales/zh.json
  • dashboard/src/lib/__tests__/chat-ws-client.test.ts
  • dashboard/src/lib/chat-ws-client.ts
  • dashboard/src/router.tsx
  • dashboard/src/routes/chat/ChatComposer.tsx
  • dashboard/src/routes/chat/index.tsx
  • dashboard/src/routes/chat/types.ts
  • dashboard/src/routes/config/model.tsx
  • dashboard/src/test/setup.ts
  • plugins/hello_world_plugin/plugin.py
  • pyproject.toml
  • pytests/common_test/test_database_migration_foundation.py
  • pytests/test_chat_session_data_model.py
  • pytests/test_maisaka_builtin_context.py
  • pytests/test_maisaka_tool_result_media.py
  • pytests/test_send_service.py
  • pytests/webui/test_chat_image_api.py
  • requirements.txt
  • src/chat/image_system/image_manager.py
  • src/chat/message_receive/chat_manager.py
  • src/common/data_models/chat_session_data_model.py
  • src/common/database/database_model.py
  • src/common/database/migrations/__init__.py
  • src/common/database/migrations/builtin.py
  • src/common/database/migrations/v9_to_v10.py
  • src/config/config.py
  • src/maisaka/chat_history_visual_refresher.py
  • src/maisaka/reasoning_engine.py
  • src/maisaka/runtime.py
  • src/plugin_runtime/capabilities/core.py
  • src/plugin_runtime/capabilities/data.py
  • src/plugin_runtime/capabilities/registry.py
  • src/services/send_service.py

总览

本 PR 为 MaiBot 实现了完整的图片上传与多模态聊天能力,同时完成了会话身份字段持久化与数据库 v9→v10 迁移。主要涉及 WebUI 界面、后端消息处理、AI 推理引擎、数据库模型和插件 SDK 五个层面的协同改进。

变更内容

图片多模态聊天能力

层级 / 文件 总结
Dashboard 聊天界面图片附件 UI 与类型定义
dashboard/src/routes/chat/ChatComposer.tsx, dashboard/src/routes/chat/index.tsx, dashboard/src/routes/chat/types.ts, dashboard/src/i18n/locales/*.json
ChatComposer 新增图片选择、缩略图展示和删除按钮;ChatPage 新增图片状态管理、文件读取与校验;新增 ChatImageAttachment、ChatIncomingImage 类型;三种语言新增图片操作与错误提示文案。
WebSocket 聊天协议图片数据透传
dashboard/src/lib/chat-ws-client.ts, dashboard/src/lib/__tests__/chat-ws-client.test.ts
ChatWsClient.sendMessage 扩展图片参数支持;新增 ChatImagePayload 接口;单元测试验证图片在 WebSocket 消息中的正确编码。
Maisaka 图片识别与历史刷新
src/maisaka/chat_history_visual_refresher.py, src/maisaka/reasoning_engine.py, src/maisaka/runtime.py, src/chat/image_system/image_manager.py
新增 log_pending_image_recognition_before_text_planner 与 log_tracked_image_recognition_completed 接口;推理引擎中实现工具结果和已发送图片的后台识别调度;历史刷新支持无原始消息的图片占位符刷新。

聊天会话身份字段持久化与 v9→v10 迁移

层级 / 文件 总结
数据库模型与版本迁移
src/common/database/database_model.py, src/common/database/migrations/__init__.py, src/common/database/migrations/builtin.py, src/common/database/migrations/v9_to_v10.py
ChatSession 新增 user_nickname、user_cardname、group_name 字段;新增 V9SchemaVersionDetector;LATEST_SCHEMA_VERSION 升级至 10;v9_to_v10 迁移补充身份列和索引。
ChatManager 会话身份推断与同步
src/chat/message_receive/chat_manager.py, pytests/test_chat_session_data_model.py
BotChatSession 初始化参数扩展;新增身份文本归一化和群聊/私聊分支更新逻辑;调整会话保存条件和展示名生成;测试覆盖身份字段更新。
MaiChatSession 与发送服务整合
src/common/data_models/chat_session_data_model.py, src/services/send_service.py
MaiChatSession 完整处理身份字段的读写;_build_outbound_session_message 优化 group_name 和 group_info 处理逻辑。

插件 SDK 混合与转发消息能力

层级 / 文件 总结
插件消息发送能力实现
src/plugin_runtime/capabilities/core.py, src/plugin_runtime/capabilities/registry.py
新增 _normalize_plugin_segment 和 _normalize_plugin_segments 工具方法;实现 _cap_send_hybrid 与 _cap_send_forward 能力;注册新能力到能力系统。
插件会话序列化与示例
src/plugin_runtime/capabilities/data.py, plugins/hello_world_plugin/plugin.py
_serialize_stream 新增身份相关字段输出;HelloWorldPlugin 新增 /send_to 指令演示转发能力。

测试覆盖与文档更新

层级 / 文件 总结
WebUI 图片 API 与会话身份测试
pytests/webui/test_chat_image_api.py, pytests/test_chat_session_data_model.py
新增图片规范化、消息段创建、WebSocket 发送的测试用例;扩展会话身份字段更新的测试覆盖。
Maisaka 图片识别测试
pytests/test_maisaka_builtin_context.py, pytests/test_maisaka_tool_result_media.py
新增已发送图片识别调度、工具结果图片识别注册、视觉占位符刷新的测试。
版本、依赖与文档
pyproject.toml, requirements.txt, src/config/config.py, AGENTS.md, changelogs/changelog.md, dashboard/src/test/setup.ts, 等
版本更新至 1.0.0-pre.23;maibot-plugin-sdk >=2.5.0;修复 SSR 环境初始化;更新插件开发规范;新增变更日志;修复 TourRenderer 多元素检测。

🎯 4 (Complex) | ⏱️ ~75 分钟

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@SengokuCola SengokuCola merged commit 12d52e1 into main May 19, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant