梦璃雨落
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
Rumio and webjoin111
e5b2a872d3
✨ feat(group-settings): 实现群插件配置管理系统 ( #2072 )
...
检查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
* ✨ feat(group-settings): 实现群插件配置管理系统
- 引入 GroupSettingsService 服务,提供统一的群插件配置管理接口
- 新增 GroupPluginSetting 模型,用于持久化存储插件在不同群组的配置
- 插件扩展数据 PluginExtraData 增加 group_config_model 字段,用于注册分群配置模型
- 新增 GetGroupConfig 依赖注入,允许插件轻松获取和解析当前群组的配置
【核心服务 GroupSettingsService】
- 支持按群组、插件名和键设置、获取和删除配置项
- 实现配置聚合缓存机制,提升配置读取效率,减少数据库查询
- 支持配置继承与覆盖逻辑(群配置覆盖全局默认值)
- 提供批量设置功能 set_bulk,方便为多个群组同时更新配置
【管理与缓存】
- 新增超级用户命令 pconf (plugin_config_manager),用于命令行管理插件的分群和全局配置
- 新增 CacheType.GROUP_PLUGIN_SETTINGS 缓存类型并注册
- 增加 Pydantic model_construct 兼容函数
* 🐛 fix(codeql): 移除对 JavaScript 和 TypeScript 的分析支持
---------
Co-authored-by: webjoin111 <455457521@qq.com >
2025-12-01 14:52:36 +08:00
68460d18cc
✨ Feat: 增强 LLM、渲染与广播功能并优化性能 ( #2071 )
...
检查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
* ⚡ ️ perf(image_utils): 优化图片哈希获取避免阻塞异步
* ✨ feat(llm): 增强 LLM 管理功能,支持纯文本列表输出,优化模型能力识别并新增提供商
- 【LLM 管理器】为 `llm list` 命令添加 `--text` 选项,支持以纯文本格式输出模型列表。
- 【LLM 配置】新增 `OpenRouter` LLM 提供商的默认配置。
- 【模型能力】增强 `get_model_capabilities` 函数的查找逻辑,支持模型名称分段匹配和更灵活的通配符匹配。
- 【模型能力】为 `Gemini` 模型能力注册表使用更通用的通配符模式。
- 【模型能力】新增 `GPT` 系列模型的详细能力定义,包括多模态输入输出和工具调用支持。
* ✨ feat(renderer): 添加 Jinja2 `inline_asset` 全局函数
- 新增 `RendererService._inline_asset_global` 方法,并注册为 Jinja2 全局函数 `inline_asset`。
- 允许模板通过 `{{ inline_asset('@namespace/path/to/asset.svg') }}` 直接内联已注册命名空间下的资源文件内容。
- 主要用于解决内联 SVG 时可能遇到的跨域安全问题。
- 【重构】优化 `ResourceResolver.resolve_asset_uri` 中对命名空间资源 (以 `@` 开头) 的解析逻辑,确保能够正确获取文件绝对路径并返回 URI。
- 改进 `RenderableComponent.get_extra_css`,使其在组件定义 `component_css` 时自动返回该 CSS 内容。
- 清理 `Renderable` 协议和 `RenderableComponent` 基类中已存在方法的 `[新增]` 标记。
* ✨ feat(tag): 添加标签克隆功能
- 新增 `tag clone <源标签名> <新标签名>` 命令,用于复制现有标签。
- 【优化】在 `tag create`, `tag edit --add`, `tag edit --set` 命令中,自动去重传入的群组ID,避免重复关联。
* ✨ feat(broadcast): 实现标签定向广播、强制发送及并发控制
- 【新功能】
- 新增标签定向广播功能,支持通过 `-t <标签名>` 或 `广播到 <标签名>` 命令向指定标签的群组发送消息
- 引入广播强制发送模式,允许绕过群组的任务阻断设置
- 实现广播并发控制,通过配置限制同时发送任务数量,避免API速率限制
- 优化视频消息处理,支持从URL下载视频内容并作为原始数据发送,提高跨平台兼容性
- 【配置】
- 添加 `DEFAULT_BROADCAST` 配置项,用于设置群组进群时广播功能的默认开关状态
- 添加 `BROADCAST_CONCURRENCY_LIMIT` 配置项,用于控制广播时的最大并发任务数
* ✨ feat(renderer): 支持组件变体样式收集
* ✨ feat(tag): 实现群组标签自动清理及手动清理功能
* 🐛 fix(gemini): 增加响应验证以处理内容过滤(promptFeedback)
* 🐛 fix(codeql): 移除对 JavaScript 和 TypeScript 的分析支持
* 🚨 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-11-26 14:13:19 +08:00
ThelevenFD and HibiKier
c839b44256
转换specify_probability为float 增加鉴权配置 ( #2067 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
* 转换specify_probability为float
* 解决#2045 添加密钥配置
* Revise access token configuration in .env.example
Updated comments and modified access token configuration.
---------
Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com >
2025-11-03 16:36:43 +08:00
70bde00757
✨ feat(core): 增强定时任务与群组标签管理,重构调度核心 ( #2068 )
...
* ✨ feat(core): 更新群组信息、Markdown 样式与 Pydantic 兼容层
- 【group】添加更新所有群组信息指令,并同步群组控制台数据
- 【markdown】支持合并 Markdown 的 CSS 来源
- 【pydantic-compat】提供 model_validate 兼容函数
* ✨ feat(core): 增强定时任务与群组标签管理,重构调度核心
✨ 新功能
* **标签 (tags)**: 引入群组标签服务。
* 支持静态标签和动态标签 (基于 Alconna 规则自动匹配群信息)。
* 支持黑名单模式及 `@all` 特殊标签。
* 提供 `tag_manage` 超级用户插件 (list, create, edit, delete 等)。
* 群成员变动时自动失效动态标签缓存。
* **调度 (scheduler)**: 增强定时任务。
* 重构 `ScheduledJob` 模型,支持 `TAG`, `ALL_GROUPS` 等多种目标类型。
* 新增任务别名 (`name`)、创建者、权限、来源等字段。
* 支持一次性任务 (`schedule_once`) 和 Alconna 命令行参数 (`--params-cli`)。
* 新增执行选项 (`jitter`, `spread`) 和并发策略 (`ALLOW`, `SKIP`, `QUEUE`)。
* 支持批量获取任务状态。
♻️ 重构优化
* **调度器核心**:
* 拆分 `service.py` 为 `manager.py` (API) 和 `types.py` (模型)。
* 合并 `adapter.py` / `job.py` 至 `engine.py` (统一调度引擎)。
* 引入 `targeting.py` 模块管理任务目标解析。
* **调度器插件 (scheduler_admin)**:
* 迁移命令参数校验逻辑至 `ArparmaBehavior`。
* 引入 `dependencies.py` 和 `data_source.py` 解耦业务逻辑与依赖注入。
* 适配新的任务目标类型展示。
* 🐛 fix(tag): 修复黑名单标签解析逻辑并优化标签详情展示
* ✨ feat(scheduler): 为多目标定时任务添加固定间隔串行执行选项
* ✨ feat(schedulerAdmin): 允许定时任务删除、暂停、恢复命令支持多ID操作
* 🚨 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-11-03 10:53:40 +08:00
molanp
eb6d90ae88
docs(data-source): 更新插件安装函数的参数文档说明 ( #2069 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
修改 StoreManager 类中安装插件函数的文档字符串,更新参数列表说
明。将原有的 github_url、module_path、is_dir 参数说明替换为
plugin_info 和 source 参数说明,保持文档与实际函数签名一致。
2025-10-22 20:57:07 +08:00
molanp
4b8013d2d6
Feat: Add spaces ( #2064 )
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
2025-10-17 09:22:18 +08:00
HibiKier
d528711641
🐛 fix(http_utils): 增强错误处理,记录请求失败的详细信息 ( #2065 )
...
检查bot是否运行正常 / bot check (push) Waiting to run
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
Sequential Lint and Type Check / ruff-call (push) Waiting to run
Sequential Lint and Type Check / pyright-call (push) Blocked by required conditions
Release Drafter / Update Release Draft (push) Waiting to run
Force Sync to Aliyun / sync (push) Waiting to run
Update Version / update-version (push) Waiting to run
* 🐛 fix(http_utils): 增强错误处理,记录请求失败的详细信息
* 🐛 fix(http_utils): 改进HTTP错误处理,记录请求失败的状态码和响应内容
2025-10-16 17:31:08 +08:00
molanp
1cc18bb195
fix(shop): 修改道具不存在时的提示信息 ( #2061 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
- 将道具不存在时的提示信息从具体的道具名称改为通用提示,避免暴露内部实现细节,
提升用户体验和安全性。
- resolve Bug: 使用道具功能优化
Fixes #2060
2025-10-09 09:01:20 +08:00
Rumio and webjoin111
74a9f3a843
✨ feat(core): 支持LLM多图片响应,增强UI主题皮肤系统及优化JSON/Markdown处理 ( #2062 )
...
- 【LLM服务】
- `LLMResponse` 模型现在支持 `images: list[bytes]`,允许模型返回多张图片。
- LLM适配器 (`base.py`, `gemini.py`) 和 API 层 (`api.py`, `service.py`) 已更新以处理多图片响应。
- 响应验证逻辑已调整,以检查 `images` 列表而非单个 `image_bytes`。
- 【UI渲染服务】
- 引入组件“皮肤”(variant)概念,允许为同一组件提供不同视觉风格。
- 改进了 `manifest.json` 的加载、合并和缓存机制,支持基础清单与皮肤清单的递归合并。
- `ThemeManager` 现在会缓存已加载的清单,并在主题重载时清除缓存。
- 增强了资源解析器 (`ResourceResolver`),支持 `@` 命名空间路径和更健壮的相对路径处理。
- 独立模板现在会继承主 Jinja 环境的过滤器。
- 【工具函数】
- 引入 `dump_json_safely` 工具函数,用于更安全地序列化包含 Pydantic 模型、枚举等复杂类型的对象为 JSON。
- LLM 服务中的请求体和缓存键生成已改用 `dump_json_safely`。
- 优化了 `format_usage_for_markdown` 函数,改进了 Markdown 文本的格式化,确保块级元素前有正确换行,并正确处理段落内硬换行。
Co-authored-by: webjoin111 <455457521@qq.com >
2025-10-09 08:50:40 +08:00
HibiKier and pre-commit-ci[bot]
e7f3c210df
修复并发时数据库超时 ( #2063 )
...
* 🔧 修复和优化:调整超时设置,重构检查逻辑,简化代码结构
- 在 `chkdsk_hook.py` 中重构 `check` 方法,提取公共逻辑
- 更新 `CacheManager` 中的超时设置,使用新的 `CACHE_TIMEOUT`
- 在 `utils.py` 中添加缓存逻辑,记录数据库操作的执行情况
* ✨ feat(auth): 添加并发控制,优化权限检查逻辑
* Update utils.py
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-09 08:46:08 +08:00
molanp
f94121080f
fix(check): 修复自检插件在ARM设备下的CPU频率获取逻辑 ( #2057 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
- 将插件版本从0.1更新至0.2
- 新增安全获取ARM设备CPU频率的函数get_arm_cpu_freq_safe
- 优化CPU信息采集逻辑,提高在ARM架构下的兼容性
2025-10-01 18:42:47 +08:00
HibiKier
761c8daac4
✨ feat(configs): 优化 ConfigsManager 中的键值获取逻辑,确保未定义键时自动创建 ConfigGroup 实例 ( #2058 )
2025-10-01 18:42:19 +08:00
Rumio and webjoin111
c667fc215e
✨ feat(llm): 增强LLM服务,支持图片生成、响应验证与OpenRouter集成 ( #2054 )
...
* ✨ feat(llm): 增强LLM服务,支持图片生成、响应验证与OpenRouter集成
- 【新功能】统一图片生成与编辑API `create_image`,支持文生图、图生图及多图输入
- 【新功能】引入LLM响应验证机制,通过 `validation_policy` 和 `response_validator` 确保响应内容符合预期,例如强制返回图片
- 【新功能】适配OpenRouter API,扩展LLM服务提供商支持,并添加OpenRouter特定请求头
- 【重构】将日志净化逻辑重构至 `log_sanitizer` 模块,提供统一的净化入口,并应用于NoneBot消息、LLM请求/响应日志
- 【修复】优化Gemini适配器,正确解析图片生成响应中的Base64图片数据,并更新模型能力注册表
* ✨ feat(image): 优化图片生成响应并返回完整LLMResponse
* ✨ feat(llm): 为 OpenAI 兼容请求体添加日志净化
* 🐛 fix(ui): 截断UI调试HTML日志中的长base64图片数据
---------
Co-authored-by: webjoin111 <455457521@qq.com >
2025-10-01 18:41:46 +08:00
Rumio and webjoin111
07be73c1b7
✨ feat(avatar): 引入头像缓存服务并优化头像获取 ( #2055 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
Co-authored-by: webjoin111 <455457521@qq.com >
2025-09-28 08:53:10 +08:00
molanp
7e6896fa01
🚑 fix(data_source): 修复插件商店更新路径错误 ( #2056 )
...
* 🚑 fix(data_source): 修复插件商店更新路径错误
* fix(plugin_store): 修复插件模块路径处理逻辑
简化了插件模块路径的赋值逻辑,直接使用插件对象的模块路径,避免不必要的路径分割操作。
同时修复了目标目录判断条件,确保只有在模块路径为根目录时才使用插件名称作为目录。
2025-09-28 08:50:54 +08:00
Rumio and webjoin111
3cc882b116
✨ feat(auto_update): 增强自动更新与版本检查 ( #2042 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
- 优化 `检查更新` 默认行为,未指定类型时直接显示版本信息
- 扩展版本详情显示:当前版本、最新开发版/正式版(含日期)、资源版本及更新提示
- 新增更新后资源兼容性检查,自动读取 `resources.spec` 并提示更新
- 使用 `asyncio.gather` 并发获取版本信息,引入 `packaging` 库提高比较准确性
- 优化错误处理与日志记录
Co-authored-by: webjoin111 <455457521@qq.com >
2025-09-12 17:38:41 +08:00
molanp and HibiKier
ee699fb345
fix(plugin_store): 修复插件商店的安装与卸载逻辑 ( #2050 )
...
* fix(plugin_store): 修复插件商店的安装与卸载逻辑
- 优化了插件安装、更新和移除的逻辑
- 调整了插件路径的处理方式,支持更灵活的安装位置
- 重构了 `install_plugin_with_repo` 方法,使用 `StorePluginInfo` 对象作为参数
- 修复了一些潜在的路径问题和模块命名问题
* refactor(zhenxun): 优化插件信息获取逻辑
- 将 PluginInfo.get_or_none 替换为 get_plugin 方法,简化插件信息获取逻辑
- 优化了插件移除操作中的插件信息获取流程
* refactor(zhenxun): 优化 sparse_checkout_clone 函数的实现
- 将 git 操作移至临时目录中执行,避免影响目标目录中的现有内容
- 简化了稀疏检出的配置和执行过程
- 改进了错误处理和回退逻辑
- 优化了文件移动和目录清理的操作
* 🐛 添加移除插件时二次查询
* ✨ plugin_info.get_plugin参数包含plugin_type时无效过滤
---------
Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com >
2025-09-12 17:38:24 +08:00
molanp
631e66d54f
fix(htmlrender): 更新htmlrender 导入 路径 ( #2051 )
...
- 将 get_browser 的导入路径从 nonebot_plugin_htmlrender 更新为 nonebot_plugin_htmlrender.browser
2025-09-12 16:41:43 +08:00
c7ef6fdb17
✨ feat(ui): 增强表格构建器并完善组件模型文档 ( #2048 )
...
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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
* ✨ feat(table): 添加 ComponentCell 以支持表格单元格中嵌入可渲染组件
* ✨ feat(ui): 增强表格构建器并完善组件模型文档
- 增强 `TableBuilder`,新增 `_normalize_cell` 辅助方法,支持自动将原生数据类型(如 `str`, `int`, `Path`)转换为 `TableCell` 模型,简化了表格行的创建。
- 完善 `zhenxun/ui/models` 目录下所有组件模型字段的 `description` 属性和文档字符串,显著提升了代码可读性和开发者体验。
- 优化 `shop/_data_source.py` 中 `gold_rank` 函数的平台路径判断格式,并统一 `my_props` 函数中图标路径的处理逻辑。
* 🚨 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-09-11 10:31:49 +08:00