HibiKier
|
ea6759824e
|
refactor: streamline per-key lock creation in AuthSnapshotService using setdefault for atomicity
|
2025-12-31 10:26:18 +08:00 |
|
HibiKier
|
2542436d5b
|
refactor: enhance concurrency handling in AuthSnapshotService by implementing future-based snapshot building
|
2025-12-31 10:17:03 +08:00 |
|
HibiKier
|
e93b3b998e
|
refactor: adjust concurrency settings and implement per-key locks in AuthSnapshotService
|
2025-12-31 10:04:57 +08:00 |
|
HibiKier
|
401fc5e203
|
refactor: simplify superuser permission checks in OptimizedAuthChecker
|
2025-12-31 09:40:10 +08:00 |
|
HibiKier
|
4a103f5675
|
fix: update snapshot caching to store the entire snapshot object instead of its model dump
|
2025-12-31 09:23:51 +08:00 |
|
HibiKier
|
46a924ca46
|
feat: warmup now writes to both memory and Redis cache for cross-process sharing
|
2025-12-31 09:14:41 +08:00 |
|
HibiKier
|
40a81efa24
|
perf: fix lock ordering issue - acquire semaphore before checking building status
|
2025-12-31 09:05:32 +08:00 |
|
HibiKier
|
6ddfbe2ac1
|
fix: add explicit NULL type casting for PostgreSQL UNION ALL compatibility
|
2025-12-30 16:44:54 +08:00 |
|
HibiKier
|
2ccd05f4cf
|
fix: remove duplicate prefix in cache keys (CacheType already provides prefix)
|
2025-12-30 15:16:40 +08:00 |
|
HibiKier
|
358c7f502c
|
fix: use AUTH_SNAPSHOT and PLUGIN_SNAPSHOT cache types instead of TEMP/PLUGINS
|
2025-12-30 15:10:14 +08:00 |
|
HibiKier
|
7ec11474f8
|
feat: add multi-database support (MySQL, PostgreSQL, SQLite) with parameterized queries
|
2025-12-29 16:49:49 +08:00 |
|
HibiKier
|
601738c421
|
perf: use single SQL query to reduce DB calls from 5-7 to 1-3
|
2025-12-29 16:44:57 +08:00 |
|
HibiKier
|
94939d4665
|
feat: add global semaphore to limit concurrent snapshot builds
|
2025-12-29 16:35:12 +08:00 |
|
HibiKier
|
cd2fd77789
|
refactor: use CacheDict from CacheRoot instead of custom dict for memory cache
|
2025-12-29 09:41:17 +08:00 |
|
HibiKier
|
ea8d874f0c
|
fix: add asyncio.Lock to prevent concurrent snapshot building race condition
|
2025-12-29 09:29:32 +08:00 |
|
HibiKier
|
96ba8d5a21
|
feat: add permission snapshot system to optimize auth checks
|
2025-12-29 09:20:07 +08:00 |
|
HibiKier
|
f86beb928f
|
refactor: enhance UserConsole UID management and remove mute plugin
|
2025-12-25 09:47:01 +08:00 |
|
HibiKier
|
587396eb49
|
refactor: remove enable_lock attribute and enhance locking mechanism in Model class
|
2025-12-23 23:23:58 +08:00 |
|
HibiKier
|
af75d7fc5a
|
perf: use keyed create locks for ban/group and add tuple support
|
2025-12-23 17:22:41 +08:00 |
|
HibiKier
|
a8251165fa
|
perf: support keyed create locks and use user_id lock for UserConsole
|
2025-12-23 17:19:01 +08:00 |
|
HibiKier
|
cb9c5834df
|
chore: cancel only zhenxun tasks on shutdown
|
2025-12-23 17:07:36 +08:00 |
|
HibiKier
|
142afde336
|
fix(user_console): ensure uid returns a valid value by defaulting to 1
|
2025-12-23 16:38:08 +08:00 |
|
HibiKier
|
a3cbfefaa1
|
feat: add TEMP cache type and enhance user and bot management with improved error handling and caching mechanisms
|
2025-12-22 10:16:02 +08:00 |
|
HibiKier
|
632dff3bad
|
perf: optimize timeout handling for database and cache operations
|
2025-12-18 09:05:33 +08:00 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
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 |
|
 Rumioandwebjoin111
|
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 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
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 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
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 |
|
 Rumioandwebjoin111
|
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 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) HibiKierandpre-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 |
|
 Rumioandwebjoin111
|
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 |
|
 Rumioandwebjoin111
|
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 |
|
 molanpandHibiKier
|
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 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
7f460296dd
|
✨ feat(ui): 添加富文本单元格并迁移UI表格渲染 (#2039)
* ✨ feat(ui): 添加富文本单元格并迁移UI表格渲染
- 【新功能】
- 添加 `RichTextCell` 模型,支持在表格单元格中显示多个带样式的文本片段。
- `TableCell` 类型别名更新以包含 `RichTextCell`。
- 【迁移】
- 将`ShopManage`、`SignManage` 和 `SchedulerManager` 中所有基于 `ImageTemplate.table_page` 的表格图片生成逻辑迁移至新的 `TableBuilder` 和 `ui.render` 系统。
- 移除旧的 `ImageTemplate` 导入和 `RowStyle` 函数。
- 将 `ThemeManager` 中的资源解析逻辑提取到独立的 `ResourceResolver` 类中,增强模块化和可维护性。
- 优化 `ThemeManager.load_theme` 中 `ChoiceLoader` 的处理逻辑。
- 优化签到卡片数据结构,移除 `last_sign_date_str` 字段,并调整 `reward_info` 在卡片视图下的结构。
- 移除 `_generate_html_card` 中 `favorability_info` 的 `attitude` 和 `relation` 字段。
* 🎨 (log): 优化消息日志格式,摘要base64内容
* 🚨 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-08-30 18:13:37 +08:00 |
|
HibiKier
|
b505307f2f
|
🐛 优化CacheDict类中的键存在性检查和获取逻辑,简化代码结构,提高可读性。 (#2037)
检查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-08-29 16:07:04 +08:00 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
7472cabd48
|
✨ feat!(ui): 重构图表组件架构,实现数据与样式分离 (#2035)
* ✨ feat!(ui): 重构图表组件架构,实现数据与样式分离
🏗️ **架构重构**
- 移除charts.py中所有硬编码样式参数(grid、tooltip、legend等)
- 将样式配置迁移至主题层style.json文件
- 统一图表模板消费样式文件的能力
📊 **图表组件优化**
- bar_chart: 移除grid和坐标轴show参数
- pie_chart: 移除tooltip、legend样式和series视觉参数
- line_chart: 移除tooltip、grid和坐标轴配置
- radar_chart: 移除tooltip硬编码
🎨 **主题系统增强**
- 新增pie_chart、line_chart、radar_chart的style.json配置
- 更新bar_chart/style.json,添加grid、xAxis、yAxis样式
- 所有图表模板支持deepMerge样式合并逻辑
🔧 **Breaking Changes**
- 图表工厂函数不再接受样式参数
- 主题开发者现可通过style.json完全定制图表外观
- 提升组件可维护性和主题灵活性
* 📦️ build(pyinstaller): 引入 resources.spec 并更新 .gitignore 规则
* 🚨 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-08-28 09:20:15 +08:00 |
|
HibiKier
|
d9e65057cf
|
⚡ 减少数据库查询次数,提高数据库查询方面性能 (#2030)
检查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
* 🐛 修复数据库超时问题
* 🔧 移除帮助图片清理功能.
* ✨ 更新插件商店功能,允许在添加插件时指定源类型为 None。优化插件 ID 查找逻辑,增强代码可读性。新增 zhenxun/ui 模块导入。
* 🔧 优化数据访问和数据库上下文逻辑,移除不必要的全局变量和日志信息,调整日志级别为调试,提升代码可读性和性能。
|
2025-08-26 16:53:14 +08:00 |
|
HibiKier
|
f9a38a26b2
|
🐛 修复群组申请通知 (#2026)
检查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
* ✨ 修复一些bug
- 移除不必要的定时器类,简化代码结构
- 优化好友请求处理逻辑,确保在自动同意和手动处理之间的清晰区分
- 更新缓存机制,避免重复处理相同的好友请求
- 新增判断文件是否为二进制文件的功能,提升文件处理的准确性
- 优化缓存字典的过期检查逻辑,提高性能和可读性
* ✨ 更新 get_async_client 函数,支持字符串类型的代理参数
- 修改 proxies 参数类型,允许传入字符串形式的代理地址
- 增强代理处理逻辑,将字符串代理转换为字典格式,提升灵活性和可用性
|
2025-08-19 16:20:52 +08:00 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
6124e217d0
|
♻️ refactor(UI): 重构UI渲染服务为组件化分层架构 (#2025)
检查bot是否运行正常 / bot check (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
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
* ♻️ refactor(UI): 重构UI渲染服务为组件化分层架构
♻️ **架构重构**
- UI渲染服务重构为组件化分层架构
- 解耦主题管理、HTML生成、截图功能
✨ **新增功能**
- `zhenxun.ui` 统一入口,提供 `render`、`markdown`、`vstack` 等API
- `RenderableComponent` 基类和渲染协议抽象
- 新增主题管理器和截图引擎模块
⚙️ **配置优化**
- UI配置迁移至 `superuser/ui_manager.py`
- 新增"重载UI主题"管理指令
🔧 **性能改进**
- 优化渲染缓存,支持组件级透明缓存
- 所有UI组件适配新渲染流程
* 🚨 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-08-18 23:08:22 +08:00 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
11524bcb04
|
♻️ refactor: 统一图片渲染架构并引入通用UI组件系统 (#2019)
检查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
* ♻️ refactor: 统一图片渲染架构并引入通用UI组件系统
🎨 **渲染服务重构**
- 统一图片渲染入口,引入主题系统支持
- 优化Jinja2环境管理,支持主题覆盖和插件命名空间
- 新增UI缓存机制和主题重载功能
✨ **通用UI组件系统**
- 新增 zhenxun.ui 模块,提供数据模型和构建器
- 引入BaseBuilder基类,支持链式调用
- 新增多种UI构建器:InfoCard, Markdown, Table, Chart, Layout等
- 新增通用组件:Divider, Badge, ProgressBar, UserInfoBlock
🔄 **插件迁移**
- 迁移9个内置插件至新渲染系统
- 移除各插件中分散的图片生成工具
- 优化数据处理和渲染逻辑
💥 **Breaking Changes**
- 移除旧的图片渲染接口和模板路径
- TEMPLATE_PATH 更名为 THEMES_PATH
- 插件需适配新的RendererService和zhenxun.ui模块
* ✅ test(check): 更新自检插件测试中的渲染服务模拟
* ♻️ refactor(renderer): 将缓存文件名哈希算法切换到 SHA256
* ♻️ refactor(shop): 移除商店HTML图片生成模块
* 🚨 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-08-15 16:34:37 +08:00 |
|
HibiKier
|
3deffcb46c
|
✨ 增强缓存功能,优化请求管理逻辑 (#2012)
检查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
- 在 `record_request.py` 和 `group_handle/__init__.py` 中引入了 `CacheRoot`,实现请求缓存,避免重复处理相同请求。
- 在 `exception.py` 中更新 `ForceAddGroupError` 类,新增 `group_id` 属性以便于错误处理。
- 在 `data_source.py` 中修改 `ForceAddGroupError` 的抛出逻辑,包含 `group_id` 信息。
- 更新 `cache` 类,支持类型化缓存字典和列表,增强缓存的类型安全性。
此更新提升了请求处理的效率和准确性,同时增强了错误信息的可追溯性。
|
2025-08-06 16:31:09 +08:00 |
|
![pre-commit-ci[bot]](/assets/img/avatar_default.png) 
|
be86e0bb7f
|
♻️ refactor(scheduler): 重构定时任务系统并增强功能 (#2009)
检查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
* ♻️ refactor(scheduler): 重构定时任务系统并增强功能
- 【模型重命名】将 `ScheduleInfo` 模型及其数据库表重命名为 `ScheduledJob`,以提高语义清晰度。
- 【触发器抽象】引入 `Trigger` 工厂类,提供类型安全的 Cron、Interval 和 Date 触发器配置。
- 【执行策略】新增 `ExecutionPolicy` 模型,允许为定时任务定义重试策略、延迟、异常类型以及成功/失败回调。
- 【任务执行】重构任务执行逻辑,支持 NoneBot 的依赖注入,并根据 `ExecutionPolicy` 处理任务的重试和回调。
- 【临时任务】增加声明式和编程式的临时任务调度能力,支持非持久化任务在运行时动态创建和执行。
- 【管理命令】更新定时任务管理命令 (`schedule_admin`),使其适配新的 `ScheduledJob` 模型和参数验证逻辑。
- 【展示优化】改进定时任务列表和状态展示,使用新的触发器格式化逻辑和参数模型信息。
- 【重试装饰器】为 `Retry.api` 装饰器添加 `on_success` 回调,允许在任务成功执行后触发额外操作。
* 🚨 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-08-06 09:02:23 +08:00 |
|
HibiKier
|
67a2560de4
|
✨ 增强权限检查,更新请求管理命令和数据库配置逻辑 (#2011)
|
2025-08-06 09:02:07 +08:00 |
|
 ![pre-commit-ci[bot]](/assets/img/avatar_default.png)
|
7719be9866
|
✨ 支持git更新(github与aliyun codeup),插件商店支持aliyun codeup (#1999)
* ✨ feat(env): 支持git更新
* ✨ feat(aliyun): 更新阿里云URL构建逻辑,支持组织名称并优化令牌解码处理
* ✨ feat(config): 修改错误提示信息,更新基础配置文件名称为.env.example
* ⚡ 插件商店支持aliyun
* ✨ feat(store): 优化插件数据获取逻辑,合并插件列表和额外插件列表
* 🐛 修复非git仓库的初始化更新
* ✨ feat(update): 增强更新提示信息,添加非git源的变更文件说明
* 🎨 代码格式化
* ✨ webui与resources支持git更新
* ✨ feat(update): 更新webui路径处理逻辑
* Fix/test_runwork (#2001)
* fix(test): 修复测试工作流
- 修改自动更新模块中的导入路径
- 更新插件商店模块中的插件信息获取逻辑
- 优化插件添加、更新和移除流程
- 统一插件相关错误信息的格式
- 调整测试用例以适应新的插件管理逻辑
* test(builtin_plugins): 重构插件商店相关测试
- 移除 jsd 相关测试用例,只保留 gh(GitHub)的测试
- 删除了 test_plugin_store.py 文件,清理了插件商店的测试
- 更新了 test_search_plugin.py 中的插件版本号
- 调整了 test_update_plugin.py 中的已加载插件版本
- 移除了 StoreManager 类中的 is_external 变量
- 更新了 RepoFileManager 类中的文件获取逻辑,优先使用 GitHub
* ✨ feat(submodule): 添加子模块管理功能,支持子模块的初始化、更新和信息获取
* ✨ feat(update): 移除资源管理器,重构更新逻辑,支持通过ZhenxunRepoManager进行资源和Web UI的更新
* test(auto_update): 修改更新检测消息格式 (#2003)
- 移除了不必要的版本号后缀(如 "-e6f17c4")
- 统一了版本更新消息的格式,删除了冗余信息
* 🐛 修复web zip更新路径问题
* ⚡ 文件获取优化使用ali
* Fix/test (#2008)
* test: 修复bot测试
- 在 test_check_update.py 中跳过两个测试函数
- 移除 test_check.py 中的 mocked_api 参数和相关调用
- 删除 test_add_plugin.py 中的多个测试函数
- 移除 test_remove_plugin.py 中的 mocked_api 参数和相关调用
- 删除 test_search_plugin.py 中的多个测试函数
- 移除 test_update_all_plugin.py 和 test_update_plugin.py 中的 mocked_api 参数和相关调用
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* 修复res zip更新路径问题
* 🐛 修复zhenxun更新zip占用问题
* ✨ feat(update): 优化资源更新逻辑,调整更新路径和消息处理
---------
Co-authored-by: molanp <104612722+molanp@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
|
2025-08-05 17:49:23 +08:00 |
|
 Rumioandwebjoin111
|
7c153721f0
|
♻️ refactor!: 重构LLM服务架构并统一Pydantic兼容性处理 (#2002)
检查bot是否运行正常 / bot check (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
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
* ♻️ refactor(pydantic): 提取 Pydantic 兼容函数到独立模块
* ♻️ refactor!(llm): 重构LLM服务,引入现代化工具和执行器架构
🏗️ **架构变更**
- 引入ToolProvider/ToolExecutable协议,取代ToolRegistry
- 新增LLMToolExecutor,分离工具调用逻辑
- 新增BaseMemory抽象,解耦会话状态管理
🔄 **API重构**
- 移除:analyze, analyze_multimodal, pipeline_chat
- 新增:generate_structured, run_with_tools
- 重构:chat, search, code变为无状态调用
🛠️ **工具系统**
- 新增@function_tool装饰器
- 统一工具定义到ToolExecutable协议
- 移除MCP工具系统和mcp_tools.json
---------
Co-authored-by: webjoin111 <455457521@qq.com>
|
2025-08-04 23:36:12 +08:00 |
|
HibiKier
|
91f35ad63a
|
✨ feat(exceptions): 将DbUrlIsNode异常类继承自HookPriorityException (#1987)
|
2025-07-17 18:58:22 +08:00 |
|
HibiKier
|
205f4ff1fa
|
✨ 添加bot画像
* ✨ 新增自我介绍功能及自动发送图片支持
- 在 bot_profile.py 中实现自我介绍指令及重载功能
- 在 group_handle 中添加自动发送自我介绍图片的逻辑
- 在 fg_request 中实现添加好友时自动发送自我介绍图片
- 新增 bot_profile_manager.py 管理 BOT 自我介绍及图片生成
- 更新 models.py 以支持插件自我介绍和注意事项字段
* 🎨 调整管理帮助宽度
* ✨ 更新数据访问层,优化获取数据的方法并引入缓存机制
* ✨ 更新用户数据访问逻辑,优化获取用户信息的方法,使用新的函数替代原有实现
* ✨ 在 BotProfileManager 中添加自我介绍文件不存在的日志记录,优化文件读取逻辑
* ✨ 更新 BOT 自我介绍帮助信息,增加文件不存在时自动创建功能
|
2025-07-16 02:51:06 +08:00 |
|
HibiKier
|
d218c569d4
|
✨ 格式化db_context (#1980)
* ✨ 格式化db_context
* 🔥 移除旧db-context
* ⚡ 添加旧版本兼容
|
2025-07-15 17:08:42 +08:00 |
|
HibiKier
|
582ad8c996
|
🐛 修复sqlite连接问题 (#1979)
* 🚑 修复sqlite连接问题
* 🔧 移除db_url参数以简化数据库配置获取逻辑
|
2025-07-14 22:59:56 +08:00 |
|
 
|
46a0768a45
|
✨ feat(llm): 新增LLM模型管理插件并增强API密钥管理 (#1972)
🔧 新增功能:
- LLM模型管理插件 (builtin_plugins/llm_manager/)
• llm list - 查看可用模型列表 (图片格式)
• llm info - 查看模型详细信息 (Markdown图片)
• llm default - 管理全局默认模型
• llm test - 测试模型连通性
• llm keys - 查看API Key状态 (表格图片,含健康度/成功率/延迟)
• llm reset-key - 重置API Key失败状态
🏗️ 架构重构:
- 会话管理: AI/AIConfig 类迁移至独立的 session.py
- 类型定义: TaskType 枚举移至 types/enums.py
- API增强:
• chat() 函数返回完整 LLMResponse,支持工具调用
• 新增 generate() 函数用于一次性响应生成
• 统一API调用核心方法 _perform_api_call,返回使用的API密钥
🚀 密钥管理增强:
- 详细状态跟踪: 健康度、成功率、平均延迟、错误信息、建议操作
- 状态持久化: 启动时加载,关闭时自动保存密钥状态
- 智能冷却策略: 根据错误类型设置不同冷却时间
- 延迟监控: with_smart_retry 记录API调用延迟并更新统计
Co-authored-by: webjoin111 <455457521@qq.com>
Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com>
|
2025-07-14 22:39:17 +08:00 |
|