922d092650
♻️ refactor(core): 重构 AI 能力与定时任务调度系统 ( #2148 )
...
* ♻️ refactor(core): 重构 AI 能力与定时任务调度系统
- 【AI 能力与工具】重构 Capability 注册与管理机制,引入 CapabilityManager 统一管理
- 移除全局能力注册表,改用声明式装饰器 `@capability` 进行解耦注册
- 重构工具解析器链,使用统一的 BaseToolResolver 代替原有的多个特定解析器
- 增强工具查询过滤,支持通配符匹配、工具箱过滤和排除标签
- 【定时任务调度】重构定时任务管理器,引入 SchedulerRegistry 统一管理任务元数据
- 引入 JobConfig 聚合定时任务配置,支持用户维度的定时任务调度
- 重构执行分发器,支持并发限制、串行间隔和随机延迟打散
- 【运行上下文】引入 ScheduledDeps 以支持后台和定时任务环境下的依赖注入
- 优化 RunContext,支持从定时任务上下文快速构造,并提供 emit 辅助方法
- 【日志与监控】引入 AILoggerProxy,实现 AI 各模块的专属日志输出
- 将各模块的全局 logger 替换为对应的模块专属日志代理
- 【其他优化】修复 Pydantic V1 兼容层中 model_validator 的装饰器兼容性问题
- 在非交互式环境(如定时任务)中自动隐藏 HITL 交互工具以节省 Token
* ♻️ refactor(core): 优化内部导入路径并提升 Pydantic 兼容性
- 【重构】将 `services/ai` 模块内的绝对导入重构为相对导入,优化包结构
- 【重构】移除不必要的 `if TYPE_CHECKING` 保护,通过 `from __future__ import annotations` 直接导入类型
- 【清理】清理 `core/messages/types.py` 中未使用的 `AssistantContentUnion` 等联合类型定义
- 【优化】在 `utils/pydantic_compat.py` 中新增 `model_rebuild` 兼容函数,统一 Pydantic V1/V2 的模型重建逻辑
- 【优化】将部分函数内部的延迟导入提升至模块顶部,规范代码结构
* ♻️ refactor(imports): 优化导入路径为相对导入并清理冗余导入
- 【重构】将 AI 服务相关模块中的绝对导入路径修改为相对导入,提升模块内聚性与可移植性
- 【清理】移除多处函数内部或类方法中未使用的冗余导入,避免循环引用和资源浪费
- 【格式化】微调部分工具装饰器和返回语句的格式与尾随逗号
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: webjoin111 <455457521@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-07-10 09:14:06 +08:00
0b32d69c9c
♻️ refactor(tools): 重构工具装饰器系统并优化沙箱与文档注释 ( #2147 )
...
* ♻️ refactor(ai): 重构 AI 服务模块并完善文档注释
- 【重构】统一清理并优化所有 AI 服务模块文件的导入语句,将其移至文件顶部
- 【重构】重构 `hooks.py` 中的 `Hooks` 派发逻辑,使用通用管道函数消除重复代码,并引入 `HookPoint` 描述符
- 【重构】重构工具装饰器实现,新增 `toolkit` 类装饰器,优化 `BaseToolkit` 配置合并与前缀处理
- 【功能】Docker 沙箱容器创建时支持自动注入系统代理环境变量并配置 `ExtraHosts`
- 【功能】Jupyter 服务启动前自动清理旧进程并初始化临时目录权限
- 【修复】优化 Pydantic 结构化输出校验失败时的错误信息提取,提供更详细的字段级错误反馈
- 【修复】在 `api.py` 中避免将 `ModelRetry` 和 `ControlFlowExit` 异常错误地包装为 `LLMException`
- 【文档】为 AI 服务、沙箱、工具链、工作流等核心模块补充完整的 Docstring 和类型注释
* 📝 docs(ai): 补全核心模块文档注释并清理冗余代码
- 补全 `run/context`、`run/hooks` 和 `tools/engine/registry` 中类与方法的中文文档注释
- 清理 `tools/providers/builtin/sandbox` 中未使用的 `PythonPluginProtocol` 协议及相关导入
- 规范化部分代码的格式与尾随逗号
* ♻️ refactor!(flow): 重构 Task 为 AgentTask 并优化工作流元数据定义
- 【Breaking Change】将 `Task` 重命名为 `AgentTask` 以避免命名冲突
- 更新 Agent、Team、Workflow 等模块中的类型声明与相关逻辑
- 引入 `AutoNodeMeta` 强类型元数据,替换工作流装饰器中的裸字典定义
- 将 `StepMeta`、`ConditionMeta` 和 `RouterMeta` 统一移动至 `types.py`
- 优化 `RunnableNode` 对上游 `AgentTask` 的处理与拼接逻辑
- 调整团队协作策略中 `FinishAction` 的返回值为完整结果对象
* ♻️ refactor(workflow): 移除人工确认机制并重构错误策略
- 移除工作流节点的人工确认(HITL)与挂起继续机制
- 删除 `auto` 自动化工作流及相关装饰器文件
- 将错误处理策略类从 `types.py` 拆分并移动到新文件 `policies.py`
- 优化节点执行失败时的异常信息格式化输出
- 移除 `WorkflowRunResult` 和 `StepOutput` 中与挂起相关的状态字段
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: webjoin111 <455457521@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-07-05 11:47:21 +08:00
80fc5b86a7
✨ feat!(llm): 重构并升级大语言模型服务为全新 AI 智能体框架 ( #2146 )
...
* ✨ feat!(llm): 重构并升级大语言模型服务为全新 AI 智能体框架
- 【重构】将原 services/llm 重构并迁移至全新的 services/ai 架构,提供向下兼容垫片
- 【新增】引入 Agent、Team、Workflow 三大智能体与工作流编排范式
- 【新增】引入基于 RAG 的长期向量记忆与中期槽位记忆系统
- 【新增】引入基于 Docker 的安全代码执行沙箱环境
- 【新增】支持 MCP 协议,允许动态管理和调用 MCP 服务
- 【新增】引入输入输出安全合规护栏与自愈反思机制
- 【优化】重构并优化多厂商 API 适配器 (Gemini, OpenAI, DeepSeek, GLM 等)
- 【优化】优化日志脱敏与 Token 预估机制
- 【移除】移除旧版 llm default 和 llm reset-key 命令,新增 llm mcp 管理命令
* 🔧 chore(deps): 更新项目依赖与配置
- 添加 mcp、jieba 和 aiodocker 依赖到配置文件及 requirements.txt
- 在 pyright 配置中设置 reportMissingImports 为 none
- 调整 .gitignore 中 resources 目录的忽略规则
* ♻️ refactor(tools): 重构工具终止机制并清理知识库日志输出
- 统一使用 `context.state["__end_run__"]` 替代 `EndRunResult` 控制任务结束
- 移除文件系统和向量知识库检索工具中 `ToolResult` 的 `.with_log` 调用
- 调整指令处理器(Directive)的返回值为 `tool_res.output`
- 修复部分类型检查警告并优化联合类型判断语法
* ♻️ refactor(tools): 重构工具副作用指令与控制流熔断机制
- 引入 `DirectivePayload` 及 `ToolResult` 的子类以结构化表达工具副作用
- 移除通过 `context.state` 传递魔术变量的隐式控制流设计
- 重构 `DirectiveManager` 处理器接口,直接在处理器中修改 `AgentState` 并构建 `AgentRunResult`
- 在 `StandardAgentExecutor` 中统一通过 `directive_manager` 调度工具返回的副作用指令
- 补全 `MessageBuilder` 中部分核心方法的文档注释
* 🐛 fix(sandbox): 修复 Docker 沙箱容器状态检测与会话清理逻辑
-【修复】修正 `is_alive` 中直接读取私有属性的问题,改用 `show()` 返回值
-【修复】解决 `execute_code` 中缓存的执行器与当前会话不一致的问题
-【优化】在清理工作区前增加容器存活检测,避免向已死容器发送请求
-【优化】创建容器时增加运行状态校验,若已停止则自动从缓存中移除并重建
-【优化】优化容器销毁和清理逻辑,静默处理容器不存在 (404) 的异常
* 📝 docs(core): 补充核心模块初始化方法的文档注释
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: webjoin111 <455457521@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-07-03 08:53:56 +08:00
Copaan
bdc1374848
收窄熔断判断范围,修改熔断逻辑 ( #2145 )
2026-06-28 22:12:07 +08:00
Copaan
f4d2342693
bugfix:修复sqlite部分场景下锁竞争问题;新增插件恶意触发配置文件 ( #2144 )
...
* bugfix:修复sqlite部分场景下锁竞争问题;新增插件恶意触发配置文件
* 文件没同步完
2026-06-24 09:11:03 +08:00
73cbe2a609
fix(plugin_store): 修复相对路径处理以正确安装依赖 ( #2143 )
...
* fix(plugin_store): 修复相对路径处理以正确安装依赖
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: ATTomatoo <1126160939@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-06-20 21:56:16 +08:00
Copaan
a2c0cfdf5d
bugfix:修复命令前缀判断问题、修复超级用户无法豁免问题 ( #2141 )
...
* bugfix:修复命令前缀判断问题、修复超级用户无法豁免问题
* bugfix:修复格式问题
2026-06-16 17:14:03 +08:00
Copaan
8afc8f8673
bugfix:更换数据库初始化超时路径以修复连接超时问题 ( #2137 )
...
* bugfix:更换数据库初始化超时路径以修复连接超时问题
* 移除部分观测链路
* 细节修改
* 权限检查细节修改2
* bugfix:修复金币懒加载造成插件金币消耗不了的问题
* bugfix:整理鉴权逻辑
* 完善缓存系统
* 优化官端使用
* bugfix:增加官机和频道的前导统一剥离,新增获取群列表自愈
* bugfix:修复导入问题
2026-06-07 18:14:01 +08:00
molanp
381d497c6d
fix(plugin_store): 移除安装插件时多余的目标路径参数传递 ( #2138 )
...
移除了 StoreManager 中 download_files 方法调用时的
sparse_path 和 target_dir 参数,这些参数不再需要。
2026-06-07 17:43:11 +08:00
Copaan
5596497947
bugfix:修复notice事件扩散问题 ( #2132 )
...
* bugfix:修复notice事件扩散问题
* 优化并发调度
* bugfix:修复签到样式
* bugfix:功能调用统计修复
* bugfix:修复私聊时功能调用统计显示已退群问题
* 提高插件适配兼容性
* 优化发送队列
* 修改权限检查设计
* 继续修改权限检查设计
* 完善权限检查设计
* 优化sqlite配置
* 优化数据库初始化
* 代码整理,无用代码清理
* bugfix:修复启动时数据库校验问题
* bugfix:修复预算裁剪过于激进问题
2026-05-28 22:57:28 +08:00
molanp
12fc5663fb
Update plugin name extraction in data_source.py ( #2136 )
...
Refactor plugin name extraction to use module directly.
2026-05-28 00:22:32 +08:00
molanp
3bebf1c5e5
fix(store): 修复无法解析插件位置 ( #2133 )
2026-05-26 19:11:08 +08:00
molanp
eb0403b9d4
Add branch parameter to data source function ( #2131 )
2026-05-14 09:13:20 +08:00
Copaan
0c89aa4e27
依赖添加方式暂时切换为uv pip install ( #2130 )
2026-05-02 18:29:11 +08:00
HibiKier
9cb40f0432
🐛 移除群组数据和聊天数据删除代码 ( #2128 )
2026-04-27 16:09:33 +08:00
冰子
98bc636a39
fix: remove invalid shortcut anchor ( #2117 )
2026-04-27 15:23:28 +08:00
Zixuan Jiang and jiang
e7aaec861f
feat: show ban info in request notices ( #2125 )
...
Co-authored-by: jiang <helloworld@jiang.cn >
2026-04-27 15:16:56 +08:00
molanp
aeb1a7d0e9
Limit record deletion to max_delete count ( #2127 )
...
Retrieve a limited number of record IDs for deletion based on group ID filtering.
2026-04-27 15:14:11 +08:00
5d92ccd3b0
性能优化 ( #2126 )
...
* 性能优化
* 代码改进
* 优化浏览器代际切换逻辑
* 统一缓存与生命周期
* 添加aiomysql依赖
* 优化插件路径处理逻辑,简化条件判断;在虚拟环境包管理器中添加编码和错误处理参数以增强稳定性
* 🚨 auto fix by pre-commit hooks
* 优化Windows下的关闭逻辑
* 代码优化
* bugfix:修复配置重载问题
* bugfix:修复插件加载启动竞态问题
* 收敛事件入口和权限上下文
* 优化 Windows launcher 关闭重启兜底
---------
Co-authored-by: HibiKier <775757368@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-04-26 15:50:15 +08:00
梦璃雨落
24c316cd2c
fix(help): 修复超级用户帮助中好友群组列表指令错误 ( #2123 )
2026-04-23 16:37:13 +08:00
Copaan
e53cae09b6
bugfix:修复插件商店插件卸载问题,显示问题,移除权限检查多余部分 ( #2124 )
...
* bugfix:修复插件商店插件卸载问题,显示问题,移除权限检查多余部分
* bugfix:修复撤回问题,插件商店显示问题
2026-04-21 09:30:47 +08:00
Copaan
4000389a60
bugfix:修复引用问题,依赖为可选安装问题 ( #2122 )
2026-04-19 00:53:39 +08:00
8b16126e40
添加uv支持 ( #2119 )
...
* bugfix:修复内存泄露和信号量饥饿问题
* 修复图片渲染按高度截断问题
* 优化图片渲染速度
* 权限检查去掉无效引用代码
* 添加uv支持
* 🚨 auto fix by pre-commit hooks
* bugfix:修改gitignore换行
* bugfix:修复测试没有新生成uv.lock
* 修复导入错误
* bugfix:移除重复调用
* 🚨 auto fix by pre-commit hooks
* 清理残余poetry引用
* 更新uv安装方式
* 修复阿里云获取问题
* 增加资源下载提示
* 🚨 auto fix by pre-commit hooks
* 修改资源下载为流式
* 🚨 auto fix by pre-commit hooks
* 提高启动速度
* 移除bot.py支持
* 🚨 auto fix by pre-commit hooks
* 优化win脚本逻辑
* 🚨 auto fix by pre-commit hooks
* 清理残余无效逻辑
* 代码改进
* 🚨 auto fix by pre-commit hooks
* 增加数据库迁移存在性检查
* 🚨 auto fix by pre-commit hooks
* chore(test): 添加pytest超时控制和优雅关闭机制
- 在GitHub Actions工作流中添加作业级和步骤级超时限制,防止测试无限期挂起
- 添加pytest-timeout依赖并配置全局超时为120秒
- 在send_queue服务添加关闭钩子,确保worker任务正确取消
- 在priority_manager添加on_shutdown钩子,支持优先级生命周期的关闭阶段
* chore(lint): 禁用超长行的lint警告
* Modify restart logic for Windows platform
* 🚨 auto fix by pre-commit hooks
* bugfix:修复sys导入问题
* 清理无效结构
* bugfix:修复路径问题
* bugfix:修复shell语法传递给git导致资源获取失败问题
* 优化关闭显示
* bugfix:修复路径问题
* bugfix:增加路径安全
* bugfix:修复orm绕过问题
* 放宽numpy版本限制
* 修改重启方案
* bugfix:修复循环导入
* 优化逻辑
* Enhance disconnect function with error handling
Added error handling for disconnect function and imported ConfigurationError.
* Implement emergency restart mechanism
Added emergency restart mechanism using atexit to ensure process restart even on severe exceptions during shutdown.
* 🚨 auto fix by pre-commit hooks
* 重启行为归一化
* 修复测试检测问题
* bugfix:修复测试侧类型报错问题
* 引入launcher机制
* 移除重启测试
* 收紧缓存调用路径
* 类型注解收敛
* 优化浏览器回收行为
* 优化浏览器渲染
* bugfix:解决重复关闭浏览器问题
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: ManyManyTomato <93612024+ATTomatoo@users.noreply.github.com >
Co-authored-by: AkashiCoin <l1040186796@gmail.com >
2026-04-18 23:42:10 +08:00
ManyManyTomato and ATTomatoo
74bf912d04
chore(poetry): 更新Poetry生成的锁定文件以反映依赖项的最新状态 ( #2118 )
...
Co-authored-by: ATTomatoo <1126160939@qq.com >
2026-04-12 17:54:58 +08:00
molanp
808abefbf6
feat(bag): 移除未被使用的数据表 ( #2115 )
...
**需要在适当位置添加脚本来删除数据库中已被创建的表**
BREAKING CHANGE: 移除了 BagUser 模型
2026-04-11 21:21:18 +08:00
molanp
eab79bdb52
feat(init): 添加自动清理无效插件和群组数据功能 ( #2116 )
...
* feat(init): 添加自动清理无效插件和群组数据功能
- 添加nonebot_plugin_apscheduler依赖用于定时任务
- 导入ChatHistory模型用于清理聊天记录
- 移除CacheException相关异常处理代码
- 重写群组同步逻辑,支持创建新群组记录和删除已退出群组
- 添加定时清理已退出群组聊天记录的功能
- 优化日志输出格式和信息内容
* refactor(manager): 添加E501忽略注释以修复代码风格问题
在Manager类的方法中添加noqa: E501注释,解决docstring行长超过限制的代码检查警告
* feat(init): 添加自动清理聊天记录配置选项
- 引入Config配置模块
- 新增auto_clean.CLEAN_CHAT_HISTORY配置项,控制是否自动清理已退出群聊的聊天记录
- 根据配置决定是否添加定时清理任务,实现可配置的聊天历史清理功能
2026-04-11 21:21:08 +08:00
molanp
c9efdaedcf
feat(nickname): 删除昵称系统相关功能 ( #2114 )
...
删除了昵称系统的完整实现,包括:
- 移除 nickname.py 插件文件及其所有功能代码
- 从 FriendUser 和 GroupInfoUser 模型中删除 nickname 字段
- 移除相关的数据库配置
- 更新 GroupManager 中的操作者名称获取逻辑
- 简化平台处理的数据源代码
2026-04-07 08:41:46 +08:00
molanp
480848fada
chore(deps): 更新依赖版本约束为更宽松的范围 ( #2110 )
...
* chore(deps): 更新依赖版本约束为更宽松的范围
- 将 nonebot-plugin-apscheduler 版本约束从 ^0.5 改为 >=0.5
- 将 ruamel-yaml 版本约束从 ^0.18.5 改为 >=0.18.5
- 将 nonebot-plugin-session 版本约束从 ^0.3.2 改为 >=0.3.2
- 将 aiofiles 版本约束从 ^23.2.1 改为 >=23.2.1
- 将 aiocache 版本约束从 ^0.12.3 改为 >=0.12.3
- 将 nonebot-plugin-waiter 版本约束从 ^0.8.1 改为 ^>=.8.1
- 在 requirements.txt 中移除次要版本上限限制,允许更灵活的版本更新
* 更新 pyproject.toml
* 更新 pyproject.toml
2026-04-07 08:38:07 +08:00
molanp
d1e32cd820
fix(admin/plugin_switch): 移除冗余的return语句并修正逻辑判断 ( #2109 )
...
* fix(admin-plugin_switch): 修复插件名称处理逻辑
当plugin_name不可用时,将name设置为空字符串,
避免在后续逻辑中使用未定义的变量导致错误。
* fix(admin/plugin_switch): 移除冗余的return语句并修正逻辑判断
移除了_handle_switch_command函数中多处冗余的return语句,
修正了超级用户权限检查的逻辑条件,
调整了状态设置时的block_type默认值处理逻辑。
2026-04-07 08:37:32 +08:00
6da4f27b12
✨ feat(auth): 添加群组和机器人唤醒命令支持,优化权限检查逻辑 ( #2113 )
...
* ✨ feat(auth): 添加群组和机器人唤醒命令支持,优化权限检查逻辑
✨ feat(llm): 增加额外请求头配置,改进API适配器请求头处理
* 🚨 auto fix by pre-commit hooks
* ```
fix(auth): 优化bot权限验证逻辑并改进错误提示
- 将bot存在性检查与状态检查分离,提供更精确的错误信息
- 修复当bot为None时的状态访问问题
- 移除不必要的注释,保持代码简洁
- 优化日志记录的位置和条件判断
```
---------
Co-authored-by: ATTomatoo <1126160939@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-26 17:18:22 +08:00
HibiKier
65b125dd07
✨ feat(repo_utils): Add branch parameter to get_github_file_content method in RepoFileManager
2026-03-26 17:11:46 +08:00
HibiKier
9802271b0a
✨ feat(repo_utils): Add branch parameter to repo_info in RepoFileManager
2026-03-26 17:00:55 +08:00
HibiKier
49c3ef5545
✨ feat(data_source): 插件下载添加branch参数
2026-03-26 14:09:56 +08:00
0f91ce03e4
♻️ refactor(plugin_switch): 重构功能开关与帮助系统并优化 UI 报表渲染 ( #2111 )
...
* ♻️ refactor(plugin_switch): 重构功能开关与帮助系统并优化 UI 报表渲染
- 引入策略模式 (Strategy Pattern) 统一插件与被动任务的开关逻辑
- 新增超级用户强制管控功能,支持系统级禁用且群管无法自行开启
- 新增全服群组活跃状态报表与功能全局覆盖率可视化统计图表
- 优化指令解析系统,支持多功能批量开关及更智能的快捷词映射
- 重构帮助系统,支持在帮助页区分展示管理员与超级用户指令
- 细化插件列表状态显示,区分群控、系统管控与全局禁用状态
- UI 组件 UserInfoBlock 新增 extra 扩展插槽支持
- 更新 resources.spec 资源版本要求至 1.1.1
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: webjoin111 <455457521@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-19 16:08:13 +08:00
ce94f63d9a
✨ feat(hook): 增强认证钩子和运行时缓存管理 ( #2106 )
...
* ✨ feat(hook): 增强认证钩子和运行时缓存管理
```
♻ refactor(hook): 移除未使用的配置项并优化缓存设置
移除 AUTH_HOOKS_CONCURRENCY_LIMIT 配置项,该配置项不再使用
✨ feat(auth_ban): 简化缓存配置并添加实体参数支持
将 BAN_CACHE_TTL 相关配置从动态配置改为常量定义,
移除复杂的 TTL 值转换逻辑,并为 auth_ban 函数添加可选的
entity 参数以支持外部传入实体信息
♻ refactor(auth_limit): 移除未使用的配置依赖
移除 AUTH_LIMIT_NOTICE_CD 配置项,直接使用常量值 2
作为限制通知冷却时间
📦 依赖更新: update playwright dependency to version 1.57.0 in pyproject.toml and requirements.txt
```
* ✨ feat(auth_checker): 增强插件模块处理和预过滤逻辑,支持用户插件兼容性
* ✨ feat(http_utils): 添加内容缓存机制以优化HTTP响应处理
* ✨ feat(cache): 添加群组插件设置视图缓存类型并更新相关逻辑
* ✨ feat(renderer): 优化渲染引擎,增加内存缓存管理和HTML文档处理逻辑
* ✨ feat(sign_in): 添加好感度排行和好感度总排行命令
* ✨ feat(renderer): 增强浏览器实例管理和模板预处理,支持历史 include 语法兼容
* ✨ feat(renderer): 优化 Playwright 环境检查逻辑,增加结果缓存以提高性能
* ✨ feat(renderer): 增强模板文件渲染策略,优化资产加载路径处理
* 🚨 auto fix by pre-commit hooks
* ✨ feat(log): 增加日志内容安全序列化,避免超长 base64 等污染日志
✨ feat(log_sanitizer): 添加对嵌入超长 base64/data URI 的清理功能
✨ feat(auth_checker): 添加 Alconna 快捷方式缓存检查,优化路由匹配逻辑
* feat(renderer): 添加渲染结果内存缓存功能以优化性能
feat(help): 实现帮助菜单图像缓存机制
feat(sign_in): 更新HTML卡片生成以支持动画禁用和剪裁
feat(superuser): 在启动时预热超级用户帮助缓存
feat(theme): 优化主题管理器的资源解析缓存
* 🚨 auto fix by pre-commit hooks
* feat(renderer): 增加全页面视口最大宽度限制并优化内容尺寸计算
---------
Co-authored-by: ATTomatoo <1126160939@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com >
2026-03-03 15:54:47 +08:00
molanp
51f4773e14
feat(bot): 支持macOS系统浏览器检测 ( #2107 )
...
- 使用platform模块替代os模块进行系统检测
- 添加macOS系统下的Chrome和Edge浏览器路径检测
- 改进日志信息为中文提示
- 优化跨平台浏览器通道选择逻辑
2026-02-25 10:48:44 +08:00
molanp
d9f8305540
feat(bot): 添加HTML渲染浏览器通道自动检测功能 ( #2105 )
...
在Windows系统上自动检测已安装的Chrome或Edge浏览器,并将其设置为htmlrender的浏览器通道。
2026-02-22 19:51:32 +08:00
Rumio and webjoin111
3db3d63cc9
🐛 style(shop): 修复道具仓库表格布局与样式 ( #2100 )
...
Co-authored-by: webjoin111 <455457521@qq.com >
2026-02-19 19:46:23 +08:00
HibiKier
d1c24436ce
🐛 修复webui下载分支 ( #2099 )
2026-02-09 15:56:44 +08:00
5e30694663
♻️ refactor(ui): 重构 UI 渲染系统并优化资源管理 ( #2094 )
...
* ♻️ refactor(ui): 重构 UI 渲染系统并优化资源管理
- 【重构】重构 `RendererService` 架构,解耦模板引擎、主题管理与截图引擎
- 【重构】重构 `ui` 模块,采用组件注册机制与数据模型驱动,移除旧版 `builders`
- 【功能】新增 UI 热重载模式,支持在不重启的情况下实时预览 HTML/CSS 修改
- 【功能】增强启动项资源检查,支持基于 `resources.spec` 的版本校验与自动更新
- 【优化】统一内置插件的 UI 渲染逻辑,迁移至新的 `ui.table`、`ui.markdown` 等工厂接口
- 【优化】优化日志脱敏工具,支持自动折叠调试输出中冗长的样式标签
- 【优化】引入 `AssetResolutionService`,完善皮肤、组件、主题间的多级资源回退机制
- 【优化】新增组件生命周期钩子 `prepare`,支持渲染前的异步数据预处理
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: webjoin111 <455457521@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-02-06 20:13:40 +08:00
HibiKier
bc8e1659ae
✨ feat(plugins): Enhance PluginExtraData with ignore_statistics and limits features ( #2098 )
...
- Added ignore_statistics field to PluginExtraData to control call statistics.
- Introduced limits parameter in PluginExtraData for rate limiting plugin usage.
- Updated relevant plugins to utilize the new features for better control over plugin statistics and usage limits.
2026-02-06 16:46:01 +08:00
HibiKier
5c067bcf04
✨ feat(http_utils): 添加可选的 accept_status_codes 参数以支持自定义状态码处理 ( #2096 )
...
- 在 AsyncHttpx 类中,新增 accept_status_codes 参数,允许用户指定哪些 HTTP 状态码不视为错误。
- 更新了单次请求的逻辑,以便在响应状态码符合 accept_status_codes 时不调用 raise_for_status 方法。
✨ feat(message): 增加随机失败提示消息功能
- 在 MessageUtils 类中,添加可爱风格的失败提示消息列表和获取随机消息的方法。
✨ feat(github_utils): 引入动态查询外部插件分组的功能
- 在 AliyunFileInfo 类中,新增 list_group_repositories 方法以列出分组下的所有仓库,并实现通过仓库名称获取仓库ID的逻辑。
✨ feat(virtual_env_package_manager): 增加清理 requirements 文件的功能
- 新增 _clean_requirements_file 方法,清理 requirements 文件中的非ASCII注释,避免 Windows 上 pip 使用 GBK 编码读取 UTF-8 文件时出错。
✨ feat(repo_utils): 优化阿里云仓库 URL 处理逻辑
- 更新 prepare_aliyun_url 方法以支持指定分组名称,并新增 get_aliyun_group_for_repo 方法以获取仓库所属的阿里云分组名。
2026-02-06 16:45:48 +08:00
b95acce800
🐛 fix(db): 优化多数据库脚本兼容性与初始化错误处理 ( #2095 )
...
* 🐛 fix(db): 优化多数据库脚本兼容性与初始化错误处理
- 为 `BotConsole`、`GroupConsole` 和 `GroupInfo` 模型增加针对 PostgreSQL 和 MySQL 的字段类型转换脚本
- 统一将插件和任务相关的禁用/可用字段类型修改为 `TEXT`
- 优化数据库初始化逻辑,增加对 `OperationalError` 的细粒度处理,忽略常见的重复执行错误
- 简化 `db_context` 内部配置解析逻辑
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: webjoin111 <455457521@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com >
2026-02-06 16:45:33 +08:00
HibiKier
4f152638b0
🐛 修复webui插件删除问题 ( #2097 )
2026-02-06 09:13:36 +08:00
ManyManyTomato and ATTomatoo
662d61a672
🚑 移除认证队列机制并放宽消息记录规则 ( #2091 )
...
* 🚑 fix(auth_hook):直接调用 auth 并移除认证队列
* 🚑 fix(chat_message): 简化规则函数,移除不必要的命令检查和时间间隔逻辑
---------
Co-authored-by: ATTomatoo <1126160939@qq.com >
2026-02-04 10:46:44 +08:00
AkashiCoin
8378921c71
🎉 chore(version): Update version to v0.2.4-203754e ( #2090 )
2026-02-01 14:33:04 +08:00
ManyManyTomato
203754e300
✨ feat(core): 优化数据库调用表现 ( #2089 )
2026-02-01 14:28:51 +08:00
AkashiCoin
7890b39002
🎉 chore(version): Update version to v0.2.4-837330e ( #1996 )
2026-01-28 15:41:27 +08:00
837330e30a
🎉 🍾 ♻️ refactor(core): 重构核心鉴权与缓存机制,引入异步发送队列以提升性能 🚀 ( #2088 )
...
* 添加测试插件
* ✨ feat(auth): 添加缓存机制以优化用户和插件数据查询性能
* 🗑️ chore(help): 删除笨蛋检测插件代码
* ✨ feat(bot): 添加对扩展插件的加载支持
* ✨ feat(auth): 优化权限检查和缓存机制,增加用户和插件数据的并行查询
* ✨ feat(cache): 引入运行时缓存机制,优化用户和插件的ban记录管理
* ✨ feat(auth): 更新is_ban函数文档,添加参数和返回值说明
* ```
feat(auth): 使用内存缓存优化权限验证性能
- 移除数据库查询超时控制,改用 LevelUserMemoryCache、BotMemoryCache
和 PluginLimitMemoryCache 进行缓存查询
- 优化 auth_admin、auth_bot、auth_limit 权限验证逻辑,提升响应速度
- 添加 background 参数支持异步发送权限不足提示消息
- 移除 asyncio 依赖,简化代码结构
fix(auth): 修复限制通知频率控制问题
- 实现限制通知冷却机制,避免重复发送相同限制消息
- 添加 AUTH_LIMIT_NOTICE_CD 配置项,默认值为 2 秒
- 使用 FreqLimiter 控制限制通知发送频率
refactor(models): 增强模型数据变更时的缓存同步
- 在 BotConsole、GroupConsole、LevelUser、PluginLimit 模型的
create、update_or_create、save、delete 方法中自动更新对应缓存
- 确保数据库和内存缓存数据一致性
docs(ban_console): 修正文档注释并优化日志信息
- 修正 BanConsole 类中方法的文档字符串,使用标准参数和返回值格式
- 优化调试日志信息,使描述更加清晰准确
```
* ✨ feat(auth): 更新Limit类以支持PluginLimitSnapshot,优化限制信息处理
* ✨ feat(bot_manage): 优化Bot控制台初始化逻辑,处理IntegrityError异常
* ✨ feat(mmm1): 新增消息推送功能,支持私聊和群聊事件处理
* ✨ feat(group_member_update): 优化群组成员更新逻辑,增加活动跟踪和消息记录功能
* ✨ feat(mmm1): 删除冗余的消息推送功能代码
* ✨ feat(auth): 优化权限检查逻辑,增加模块阻止功能和缓存处理
* ✨ feat(auth): 优化权限检查逻辑,增加快速ban检测和前置检查功能
* ✨ feat(chat_history): 增强消息处理规则,添加时间间隔限制以防止重复消息
✨ feat(data_source): 引入异步获取群成员信息的功能,优化用户信息更新逻辑
* ✨ feat(send_queue): 添加异步发送队列以优化API调用和速率限制
* ✨ feat(auth): 添加缓存就绪检查以优化权限处理逻辑
* ✨ feat(plugins): 移除不必要的插件加载以简化插件管理
* ✨ feat(group_console): 优化群组获取逻辑,添加缓存检查以提升性能
✨ 只接收缓存完成之后时间的消息
* ✨ feat(auth): 添加异步任务管理和超载检测,优化权限处理逻辑
✨ feat(chat_history): 修改规则函数为异步,提升消息处理效率
✨ feat(group_handle): 增加安全获取群组信息的异步方法,添加超时处理
✨ feat(record_request): 引入安全获取群组信息的异步方法,优化群邀请处理
✨ feat(ban_memory_cache): 增强禁言内存缓存,添加负缓存机制
✨ feat(message_load): 新增消息负载检测功能,优化任务调度
✨ feat(scheduler): 在调度器中集成消息压力检测,优化任务执行
✨ feat(send_queue): 引入异步任务管理,优化发送队列处理
* ✨ feat(auth): 添加对 LevelUserSnapshot 和 BotSnapshot 的支持,优化权限检查逻辑
✨ 格式化
* ✨ feat(db_context): 增强 get_or_create 方法,处理并发创建冲突并回退查询已存在记录
* ✨ feat(bot_manage): 增强 init_bot_console 方法,处理并发创建冲突并回退查询已存在的 bot 数据
* 🚨 auto fix by pre-commit hooks
* ✨ feat(runtime_cache): 优化消息处理逻辑,支持 bytes 和 bytearray 类型的联合判断
* ✨ style(runtime_cache): 格式化代码,优化多行表达式的可读性
* 🚨 auto fix by pre-commit hooks
* ✨ refactor: 优化类型注解,改进群组成员更新逻辑和平台处理
✨ 格式化
* 🚨 auto fix by pre-commit hooks
* ✨ refactor: 优化代码格式,增强可读性并修复类型注解
* 🚨 auto fix by pre-commit hooks
* ✨ refactor: 更新文档注释,增强is_ban函数的可读性
* ✨ refactor: 优化代码结构,移除冗余函数,增强可读性并改进任务调度逻辑
* ✨ refactor: 调整定时任务时间,优化渲染服务的初始化逻辑,增强代码可读性
---------
Co-authored-by: ATTomatoo <1126160939@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-28 10:15:24 +08:00
c9f0a8b9d9
♻️ refactor(llm): 重构 LLM 服务架构,引入中间件与组件化适配器 ( #2073 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
Sequential Lint and Type Check / ruff-call (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Force Sync to Aliyun / sync (push) Has been cancelled
Update Version / update-version (push) Has been cancelled
Sequential Lint and Type Check / pyright-call (push) Has been cancelled
* ♻️ refactor(llm): 重构 LLM 服务架构,引入中间件与组件化适配器
- 【重构】LLM 服务核心架构:
- 引入中间件管道,统一处理请求生命周期(重试、密钥选择、日志、网络请求)。
- 适配器重构为组件化设计,分离配置映射、消息转换、响应解析和工具序列化逻辑。
- 移除 `with_smart_retry` 装饰器,其功能由中间件接管。
- 移除 `LLMToolExecutor`,工具执行逻辑集成到 `ToolInvoker`。
- 【功能】增强配置系统:
- `LLMGenerationConfig` 采用组件化结构(Core, Reasoning, Visual, Output, Safety, ToolConfig)。
- 新增 `GenConfigBuilder` 提供语义化配置构建方式。
- 新增 `LLMEmbeddingConfig` 用于嵌入专用配置。
- `CommonOverrides` 迁移并更新至新配置结构。
- 【功能】强化工具系统:
- 引入 `ToolInvoker` 实现更灵活的工具执行,支持回调与结构化错误。
- `function_tool` 装饰器支持动态 Pydantic 模型创建和依赖注入 (`ToolParam`, `RunContext`)。
- 平台原生工具支持 (`GeminiCodeExecution`, `GeminiGoogleSearch`, `GeminiUrlContext`)。
- 【功能】高级生成与嵌入:
- `generate_structured` 方法支持 In-Context Validation and Repair (IVR) 循环和 AutoCoT (思维链) 包装。
- 新增 `embed_query` 和 `embed_documents` 便捷嵌入 API。
- `OpenAIImageAdapter` 支持 OpenAI 兼容的图像生成。
- `SmartAdapter` 实现模型名称智能路由。
- 【重构】消息与类型系统:
- `LLMContentPart` 扩展支持更多模态和代码执行相关内容。
- `LLMMessage` 和 `LLMResponse` 结构更新,支持 `content_parts` 和思维链签名。
- 统一 `LLMErrorCode` 和用户友好错误消息,提供更详细的网络/代理错误提示。
- `pyproject.toml` 移除 `bilireq`,新增 `json_repair`。
- 【优化】日志与调试:
- 引入 `DebugLogOptions`,提供细粒度日志脱敏控制。
- 增强日志净化器,处理更多敏感数据和长字符串。
- 【清理】删除废弃模块:
- `zhenxun/services/llm/memory.py`
- `zhenxun/services/llm/executor.py`
- `zhenxun/services/llm/config/presets.py`
- `zhenxun/services/llm/types/content.py`
- `zhenxun/services/llm/types/enums.py`
- `zhenxun/services/llm/tools/__init__.py`
- `zhenxun/services/llm/tools/manager.py`
* 📦 ️ build(deps): 移除 bilireq 并添加 json_repair 依赖
* 🐛 (llm): 移除图片生成模型能力预检查
* ♻️ refactor(llm.session): 重构记忆系统以分离存储和策略
* 🐛 fix(reload_setting): 重载配置时清除LLM缓存
* ✨ feat(llm): 支持结构化生成函数接收 UniMessage
* ✨ feat(search): 为搜索功能默认启用 Gemini Google Search 工具
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: webjoin111 <455457521@qq.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-14 20:27:02 +08:00