Commit Graph
100 Commits
Author SHA1 Message Date
SXP-Simon e1c5b854c7 [v4.9.19] - 支持 LLBot 群相册接口并优化 OneBot 适配器
Fixes #173
2026-04-22 15:17:28 +08:00
SXP-Simon b119ea741e feat(album): 支持 LLBot 群相册接口并优化 OneBot 适配器 2026-04-22 15:15:59 +08:00
SXP-Simon d36bf4941a [v4.9.18] - ⚙️ base64 传输统一开关修复,正确处理 Onebot Adapter 的图片、文件资源传输情况 2026-04-15 23:19:51 +08:00
SXP-Simon c17371051a fix(onebot): base64 统一开关,提取 OneBot 适配器中的通用传输与查找逻辑
- 提取 `_execute_transmission_strategy` 以统一处理 Base64/路径尝试/重试的传输流水线。
- 提取 `_find_item_in_list` 辅助函数,简化群文件夹和相册的名称匹配逻辑。
- 重构 `send_image`、`send_file`、`upload_group_file_to_folder` 和 `upload_group_album` 以减少代码冗余。
- 提升 OneBot 平台适配器的代码可维护性与逻辑一致性。
2026-04-15 22:56:24 +08:00
SXP-Simon cc162b62dd [v4.9.17] - 人格画像体验升级,SBTI 和 ACGTI 风格 2026-04-13 22:37:24 +08:00
SXP-Simon 3d6e3d45a1 fix(_get_manifest_profile_item_by_mbti): 正确的 fallback 处理 2026-04-13 22:13:36 +08:00
SXP-Simon ed85876b36 feat(mbti): 替换 mbti 简单实现 sbti acgti 功能 2026-04-13 21:43:25 +08:00
SXP-Simon 06ea0e7812 docs(MBTI): 为多样化 MBTI 增加开发说明文档 (#167) 2026-04-13 16:51:34 +08:00
SXP-Simon 45c9ca9bea [v4.9.16] - 增加了html_only_url选项,使在选择输出格式为html时可以单独发送BaseURL (#166 @shiitin) 2026-04-12 22:08:49 +08:00
SXP-Simon 937f4e1782 [v4.9.15] - fix: 发送假超时不应该导致上传群相册群文件失败,删除 PDF 模块和相关的功能 2026-04-07 22:30:20 +08:00
SXP-Simon 93b2b847ef fix(output_format): 改为 options 形式处理,提升用户体验 2026-04-07 22:27:34 +08:00
SXP-Simon ae38febca2 fix(pdf): 删除 PDF 模块和相关的功能 2026-04-07 22:17:09 +08:00
SXP-Simon 98d485dbe6 Merge branch 'main' of https://github.com/SXP-Simon/astrbot_plugin_qq_group_daily_analysis 2026-04-07 21:41:24 +08:00
SXP-Simon 3343fcce22 fix(ReportDispatcher): 发送假超时不应该导致上传群相册群文件失败
[Bug] 聊天记录转发,群文件上传
Fixes #160
2026-04-07 21:40:52 +08:00
SXP-Simon 34437e7ebe fix(ReportDispatcher): 发送假超时不应该导致上传群相册群文件失败 2026-04-07 21:25:10 +08:00
SXP-Simon b1c85d8994 [v4.9.14] - feat(persona): 分析器人格增强和使用体验优化,可视化选择人格配置 2026-04-04 21:26:31 +08:00
SXP-Simon 0fa01883a1 revert: revert 'force desktop viewport for exported html reports (#147)' in commit befcc2ad 2026-04-04 21:18:37 +08:00
SXP-Simon 60cf29b0d5 feat(analyzer): 增强人格设定注入策略 2026-04-04 20:58:36 +08:00
SXP-Simon a8a22233d4 fix(ChatQualityAnalyzer): 手动 apply_persona_reinforcement 2026-04-04 20:44:36 +08:00
SXP-Simon a75776f085 feat(analyzer): 增强人格设定注入策略,采用首尾双重注入提升角色保持能力,避免聊天记录上下文过长导致的 LLM 对于人格提示词的注意力下降 2026-04-04 20:18:11 +08:00
SXP-Simon 92a365475c feat(persona): 人格设定功能增强,支持插件指定和会话继承的人格分析 2026-04-04 19:40:30 +08:00
SXP-Simon 5375659769 fix(conf): 增强服务稳定性 2026-04-04 19:40:30 +08:00
SXP-Simon 3a9170449c fix(ATRI): GitHub Repo Link 2026-04-04 19:40:30 +08:00
SXP-Simon f3aad2441f fix(黑白名单): 修复插件在独立会话模式下无法识别群号白名单的问题 2026-04-04 19:40:30 +08:00
SXP-Simon 0c1d9cff72 fix typo 2026-04-03 15:00:40 +08:00
SXP-Simon 3f3e60cbd0 feat(ATRI): 添加作者名称 Liangyu-G 2026-04-03 14:40:58 +08:00
SXP-Simon 45988cf419 [v4.9.13] - feat(ATRI): ATRI 模板 (@Liangyu-G) 2026-04-03 14:32:02 +08:00
SXP-Simon 5dd7cf1aa1 [v4.9.12] - 移除无效的重试器 2026-04-02 17:52:36 +08:00
SXP-Simon 59e9f06d0d fix: 移除发送重试模块 2026-04-02 17:45:56 +08:00
SXP-Simon 5e2da8c852 fix(get_astrbot_data_path): fallback 到 get_astrbot_data_path 方法 2026-04-02 15:25:07 +08:00
SXP-Simon e503e7ad63 [v4.9.11] - feat(HTML): HTML 报告与自建外链吗,将群分析变成可以点击跳转的精美网页链接 2026-04-01 22:19:00 +08:00
SXP-Simon 692df4b0c9 chore: docs 2026-04-01 21:23:02 +08:00
SXP-Simon 05836f64f2 fix: 定时任务超时问题优化
Fixes #141

定时分析任务间隔启动,放宽超时配置限制
2026-04-01 21:14:00 +08:00
SXP-Simon 1fa1ebe5ca [v4.9.10] - fix: 解决 TG 未贴表情的 bug,HTML 输出模式,优化渲染 2026-03-31 21:17:31 +08:00
SXP-Simon b041a7ca9e [v4.9.9] - feat(feishu): 尝试接入飞书并且回退黑白名单逻辑,保持旧版本逻辑,插件统一管理 2026-03-29 01:08:00 +08:00
SXP-Simon 43f80d24f8 feat(feishu): 完善日志和健壮性 2026-03-29 01:02:15 +08:00
SXP-Simon bc916e259d Revert "fix: 统一定时分析名单准入并修复白名单绕过问题 (情况如 #133 所述)"
This reverts commit a3d72e43ab.
2026-03-29 00:36:08 +08:00
SXP-Simon 0cba280a82 feat(feishu): 尝试接入飞书 2026-03-29 00:29:37 +08:00
SXP-Simon 6d40745e79 [v4.9.8] - feat(HatsuneMiku): 新增了一个名为 HatsuneMiku 的模板 (#134 @Shiitin) 2026-03-28 22:45:47 +08:00
SXP-Simon d3eb9b51f5 fix(retry): 降低重试重复并强化 OneBot 假超时拦截
- `onebot_adapter.py#L547-L609` 的路径发送失败逻辑改为:遇到 `timeout/1200/网络错误` 不再立即 Base64 回退,而是继续抛错,由上层进入 10+20+30 秒的多轮观察;每轮都通过 `was_image_sent_recently` 确认后台是否真的已发成功,确认后立刻拦截重试,避免 “假超时” 导致连发。
- `retry.py#L20-L210` 中去重注释已全部换成中文,并补全了 `_cleanup_expired_task_keys`、`_build_task_key`、`_mark_task_finished` 等说明,说明当前去重键由 caption TraceToken 或 html hash 构成,维护两个集合 `_active_task_keys`/`_recent_task_key_ts` 防止同一报告短时间再次入队,构造 task_key 后再 enqueue 并在完成后刷新冷却;`max_retries` 也降到 2 次,并且同群任务会 `sleep(5)` 重新排队,链路上最多留存一份 retry 任务。
2026-03-28 22:33:29 +08:00
SXP-Simon a3d72e43ab fix: 统一定时分析名单准入并修复白名单绕过问题 (情况如 #133 所述) 2026-03-28 21:53:01 +08:00
SXP-Simon 4200631f17 fix(HatsuneMiku): 完善 2026-03-28 21:18:50 +08:00
SXP-Simon 03f2f066b3 fix typo 2026-03-27 13:01:27 +08:00
SXP-Simon b29327674f [v4.9.7] - feat(分析配置细粒度化): 引入三层黑白名单机制(基础群分析开关、定时分析、增量分析),支持更细粒度的群级分析控制;修复自动分析生命周期管理情况避免任务被静默跳过 2026-03-26 23:32:32 +08:00
SXP-Simon 3df898ca69 feat(response_validation): 新增 Pydantic 校验层,健壮化处理 LLM 生成内容 2026-03-26 22:58:04 +08:00
SXP-Simon 7e741854a9 feat(response_format): 使用 OpenAI 格式的 response_format 参数约束 json 格式化数据生成,并且兼容旧版本逻辑,等待本体合并相关参数的传入 2026-03-26 22:56:02 +08:00
SXP-Simon 93704a5d4d fix: 统一表情统计口径并修复用户活跃分析类型标注
- 对齐表情统计规则,确保“报告总表情数”与“用户画像表情数”使用同一判定逻辑。
- 针对 OneBot 适配器已引入的 QQ 表情包信号(sub_type=1):
  - 统计时优先使用 raw_data.sub_type == 1 判定图片型表情。
  - 仅在缺少 sub_type 时,回退到 summary 文本匹配(兼容历史数据)。
- 修复用户画像统计偏差:
  - 移除文本正则(Unicode/Discord)额外计数,避免与报告总数口径不一致。
  - 增加 IMAGE 段表情识别,和群组统计保持一致。
- 修复 basedpyright 类型告警:
  - 为用户活跃结构引入 UserActivityStats TypedDict。
  - 将 analyze_user_activity / get_top_users / get_user_activity_pattern 改为显式类型。
  - 将 bot_self_ids 参数标注调整为 list[str] | None。
- 新增并扩展回归测试:
  - 验证群总表情数与用户表情汇总一致。
  - 验证 sub_type 优先级(sub_type=0 不被 summary 误判)。
- 已通过 ruff check 与相关 pytest 用例。
2026-03-26 19:37:33 +08:00
SXP-Simon 9ed4771730 feat: 完善自动分析名单调度与面板配置说明
- 重构自动分析调度流程:以分层名单解析目标群组,统一报告入口,并按群组模式分发传统/增量任务。

- 新增定时名单与增量名单配置能力:补充 scheduled_group_list(_mode)、incremental_group_list(_mode)、incremental_fallback_enabled。

- 优化失败兜底策略:增量最终报告在超时、异常或无有效结果时,可回退至传统全量分析。

- 完善配置与文档说明:在 _conf_schema.json 与 README 中补充面板操作指引、判定顺序与边界场景说明。

- 兼容旧配置行为:保留废弃接口,并在配置管理中统一名单匹配语义(UMO/群号兼容)。
2026-03-26 19:23:49 +08:00
SXP-Simon aa3ae494ce fix(tg): 修复 Telegram 平台自动分析就绪检查失败以及 ID 匹配诊断逻辑
- 优化 BotManager 的 is_ready_for_auto_analysis 逻辑:将其改为非硬性限制。即使未成功提取机器人 ID (bot_self_ids),也允许定时任务继续运行,从而解决了 Telegram 在 Docker 部署下因 ID 获取延迟导致报告被跳过的问题。
- 强化日志诊断:在 Telegram 消息拦截 (save)、平台发现 (discovery) 和消息拉取 (fetch) 的关键路径中增加 platform_id 显式日志,方便排查多账号环境下的 ID 冲突。
- 在 BotManager 就绪检查中加入调试输出,明确告知分析任务被跳过的具体原因。
2026-03-26 13:33:09 +08:00
SXP-Simon 2539063a3e fix(增量分析): 增量分析任务的生命周期检查,与定时分析保持一致 2026-03-26 13:02:44 +08:00
SXP-Simon 90908cefcb [v4.9.6] - fix(provider): 优化 PDF 模板生成情况,基础设施健壮性增强 2026-03-25 17:43:35 +08:00
SXP-Simon d03b3d5b42 fix: 修复插件任务生命周期管理,避免用户困惑的报错行为 (#125)
- 修复 'NoneType' 报错 (Fix #125): 引入插件终止标志位并完善任务生命周期清理逻辑。
- 强化资源清理:重载时主动取消并等待所有运行中的异步任务(包括手动分析、自动调度和依赖安装),移除危险的属性置空操作,彻底消除重载时的属性访问竞态。
2026-03-25 16:49:14 +08:00
SXP-Simon 1ab409a49e fix(tg): 尝试修复 Telegram 平台自动分析就绪检查失败问题 (#128)
- 在 BotManager 中增加对 Telegram 机器人 ID 提取的支持(支持 `bot.id` 属性),解决 Telegram 环境下因无法识别 Bot ID 导致的自动分析任务跳过问题。
2026-03-25 16:31:42 +08:00
SXP-Simon 82c5cc4cef fix: 修复 JSON 解析中正则贪婪匹配导致的数组截断问题 (#126)
- 将解析 JSON 数组的正则模式从非贪婪 `.*?` 改为贪婪匹配 `.*`,防止内容中包含方括号(如 [UID])时导致 JSON 截断。
- 优化话题、称号、金句等分析逻辑中的正则表达式,使用更严谨的模式处理转义双引号和特殊格式。
2026-03-25 16:15:51 +08:00
SXP-Simon 72ead04182 fix(pdf): 优化 PDF 模板生成情况 2026-03-25 16:09:54 +08:00
SXP-Simon 58615d2752 fix(scrapbook): pdf 版本排版调整 2026-03-25 15:46:38 +08:00
SXP-Simon 74c292b591 fix(assets): scrapbook 模板图 2026-03-23 17:33:36 +08:00
SXP-Simon 2120800abd [v4.9.5] - fix(chat_quality_analysis 模块): 优化增量分析逻辑,优化提示词 2026-03-23 17:28:17 +08:00
SXP-Simon fcffe7d35a fix(quality_summary): 优化增量分析逻辑,优化提示词 2026-03-23 13:38:12 +08:00
SXP-Simon 91692170a0 [v4.9.4] - feat(chat_quality_analysis 模块): 新增群聊质量锐评功能(灵感来源:感谢 @Nagi-ovo) 2026-03-23 00:53:05 +08:00
SXP-Simon 5701599a14 feat: 同步更新其他模板 2026-03-23 00:42:18 +08:00
SXP-Simon 09f3517c69 fix(pdf): 活动图表 2026-03-23 00:42:18 +08:00
SXP-Simon c65d26b4ba fix(close): 统一为异步方法以正确清理 aiohttp 会话和 diskcache 缓存 2026-03-23 00:42:18 +08:00
SXP-Simon 9a35ed9600 feat(chat_quality_analysis): chat_quality_analysis 模块 2026-03-23 00:42:18 +08:00
SXP-Simon 51d14dad0b [v4.9.3] - feat(增量分析): 更新增量分析配置,增加安全上限并优化消息拉取逻 2026-03-21 00:54:00 +08:00
SXP-Simon b2101c3a15 fix(assets): 使用 fastly.jsdelivr.net cdn 实现呈现插件文档页面的图片 2026-03-21 00:13:42 +08:00
SXP-Simon 2cc5f3cb67 fix(onebot): 保持正确的旧拉取逻辑 2026-03-21 00:11:38 +08:00
SXP-Simon cd6a6294e1 feat(增量分析): 更新增量分析配置,增加安全上限并优化消息拉取逻辑 2026-03-20 23:59:24 +08:00
SXP-Simon f3f93a96c4 fix typo 2026-03-20 21:07:03 +08:00
SXP-Simon 3b8e2b85ba [v4.9.2] - feat(reaction): 将文字反馈调整为表情反馈 2026-03-19 15:14:33 +08:00
SXP-Simon 3ec4de1c99 feat(reaction): 将文字反馈调整为表情反馈 2026-03-19 15:12:44 +08:00
SXP-Simon a71a0a34db [v4.9.1] - feat(persona): 添加分析人格设定的配置选项,并更新相关提示词构建逻辑 2026-03-16 23:49:04 +08:00
SXP-Simon 4cae39d153 feat(分析功能): 添加人格设定的配置选项,并更新相关提示词构建逻辑
feat(persona): 自动检测当前群聊激活的对话所绑定的性格
2026-03-16 23:46:03 +08:00
SXP-Simon 35203b7ca2 chore(logger): 增强群相册相关的日志可视情况 2026-03-16 21:10:17 +08:00
SXP-Simon bf78ef2b8a Merge branch 'main' of https://github.com/SXP-Simon/astrbot_plugin_qq_group_daily_analysis 2026-03-16 20:53:52 +08:00
SXP-Simon 4ea4f26727 fix(群相册): 兼容群相册插件上传 API groupid 参数 int 类型,尝试解决 #112 2026-03-16 20:53:45 +08:00
SXP-Simon 70518fbd7b fix(ruff) 2026-03-16 01:10:28 +08:00
SXP-Simon 02bacd3389 [v4.9.0] - fix(telegram): 增强 telegram 平台的插件可用性 2026-03-16 01:03:21 +08:00
SXP-Simon 2e62c09266 fix(readme): 增加 t2i 链接 2026-03-16 00:51:15 +08:00
SXP-Simon 451dbaa470 fix(telegram): Photo_invalid_dimensions: Telegram 报错提示图片长宽比例或总尺寸不合规时,尝试以文件形式发送 2026-03-16 00:43:41 +08:00
SXP-Simon 4745fbccad [v4.8.9] - fix: 群相册严格模式修复 (#111),尝试解决下载用户头像和重试地狱的问题 (#107) 2026-03-16 00:12:09 +08:00
SXP-Simon 48765d69aa fix(telegram): 尝试解决下载用户头像和重试地狱的问题 ([Bug]TG群聊无法正常获取群聊成员头像
Fixes #107)
2026-03-16 00:09:33 +08:00
Helian Nuits 5876613deb fix: 群相册严格模式修复 (#111)
* fix: respect strict mode for qq group album upload(#100)

* fix: align album strict-mode default and bool parsing

* refactor: simplify strict mode config getter

* fix: enforce album strict mode in main upload path

* fix(pre-commit)
2026-03-15 23:21:54 +08:00
SXP-Simon d436ea6b70 feat(README): 增加 TG 群链接 2026-03-13 17:58:57 +08:00
SXP-Simon cd1cd78a75 [v4.8.8] - feat(golden_quote): 重构金句分析匹配机制,尝试解决金句头像偶尔无法显示的问题,锐评中允许解析用户进行头像渲染 2026-03-13 17:47:04 +08:00
SXP-Simon 4813c8e3df feat(金句分析): 明确告知 LLM 在 reason(选择理由/锐评)中提到群成员时,应使用 [用户ID] 格式 2026-03-13 17:34:58 +08:00
SXP-Simon 1ae3e877f2 fix: 重构金句分析匹配机制 (#104)
- [修复] 尝试解决金句头像无法显示的问题。通过将 Prompt 输入改为 [user_id] 标识符,实现 100% 准确的身份回填,彻底消除了由于 LLM 微调内容导致的匹配失败。
- [警告] 强制初始化金句提示词,丢弃原本用户可能自定义的金句提示词模板。重命名配置项为 golden_quote_v2_prompt,避免用户更新后旧版本提示词干扰导致 LLM 金句分析功能失效。
2026-03-13 17:09:42 +08:00
SXP-Simon 2a1b292ed9 fix(ruff) 2026-03-12 18:47:16 +08:00
SXP-Simon 2e5ef3eba3 fix(terminate): 解决插件卸载/重载时因 schedule_jobs(None) 调用导致的 NoneType 报错,完善资源清理流程。 2026-03-12 18:43:47 +08:00
SXP-Simon b3e11a8cf7 [v4.8.7] - feat: 语义化 Trace ID 注入与报告标签 (#103) 2026-03-12 18:26:39 +08:00
SXP-Simon c185f700ae fix(logger): 注入 TraceID 2026-03-12 18:15:23 +08:00
SXP-Simon f2b4c16919 fix(ruff) 2026-03-12 18:05:01 +08:00
SXP-Simon bd991e9c16 feat(trace): 实现语义化 Trace ID 机制并美化报告展现
- [TraceContext] 重构 ID 生成算法,支持包含群名和时间(如 manual_技术交流群_1733),极大提升日志调试效率。
 - [视觉美化] 从用户可见消息(初始提示及图片 Caption)中彻底移除技术性的 [ID: xxx] 字符串。
 - [去重增强] 在报告 Caption 中引入基于秒级时间戳的“隐式指纹”,配合共享正则匹配,确保精准去重。
 - [自动分析] 优化自动调度器逻辑,引入群名缓存,使服务端定时任务日志更具业务可读性。
 - [逻辑精简] 利用插件现有的任务并发锁,移除了 Trace ID 中冗余的 4 位随机后缀,进一步精简长度。
2026-03-12 18:03:23 +08:00
SXP-Simon 16c756259a fix(json_utils): 解决 “fixed_json_text”可能未绑定 的问题 2026-03-12 15:43:35 +08:00
SXP-Simon fddb763a6d [v4.8.6] - feat: 新增群相册上传严格模式,增强图片发送超时处理 2026-03-12 15:24:23 +08:00
SXP-Simon 1e3d3b922c feat: 新增群相册上传严格模式
- 在 _conf_schema.json 中增加 group_album_strict_mode 开关
 - 修改 ReportDispatcher,在严格模式下禁止回退到默认相册
 - 优化 OneBotAdapter 的日志输出,使其符合决策逻辑
2026-03-12 15:16:43 +08:00
SXP-Simon b4abee55d4 fix: 修复 TraceContext 兼容性与服务返回结果缺失导致的崩溃问题
【链路追踪系统】
- 在 TraceContext 中补全 generate()、set() 和 get() 兼容性接口,确保旧代码无缝迁移。
- 重新实现 TraceLogFilter 日志过滤器,恢复日志流中的 TraceID 显示。
- 统一全插件 import 路径至 src/shared/trace_context.py,并删除冗余的旧文件。

【应用服务层】
- 修复 KeyError: 'group_id':在 execute_daily_analysis 和 execute_incremental_final_report 的返回结果中补全 group_id 和 platform_id。
- 完善 execute_incremental_analysis 的返回字段,保持 API 返回格式的一致性。

【基础设施与工具】
- 在 AutoScheduler 中增加对适配器获取失败的防御性检查。
- 修复 uto_scheduler.py 和 dispatcher.py 中的静态类型检查报错。
2026-03-12 14:51:59 +08:00
SXP-Simon efea9d5b5d fix: 修复生成报告时的 KeyError: 'group_id' 崩溃问题
- 在 execute_daily_analysis 返回结果中补全 group_id 和 platform_id
- 在 execute_incremental_final_report 返回结果中补全对应字段
- 确保 main.py 中的报表分发逻辑能正确获取目标群组信息
2026-03-12 14:08:18 +08:00
SXP-Simon 059d6ea68d feat: 全面重构主插件架构,解决并发竞态、资源泄露并优化代码健壮性
【并发与生命周期规范化】
- 引入 asyncio.Lock (_init_lock) 保护初始化流程,确保多入口(Reload/Init/Loaded)触发时维持单例运行,消除重复注册风险。
- 重构初始化任务创建逻辑,增加对当前协程 Loop 的状态检查,预防 Python 3.10+ 环境下常见的运行时异常。
- 引入 _background_tasks 集合统一追踪异步任务生命周期,实现透明的任务注册与自动移除。
【资源清理与加固】
- 增强 terminate() 析构逻辑:在卸载时主动取消所有追踪的后台任务(包括正在进行的分析、渲染或依赖安装),并使用 asyncio.gather 确保安全释放。
- 采用 type: ignore 配合非 Optional 类型声明,在保证 terminate() 能够置空引用的前提下,消除了 Pylance 对全局 50+ 处属性访问的“可能为 None”误报。
【业务流程健壮性】
- 提取超长逻辑:将分析报告的渲染与多格式分发逻辑抽离至 _send_analysis_report 异步生成器,显著降低单一函数圈复杂度。
- 优化图片上传服务:
  * 引入 MAX_PAYLOAD_SIZE (20MB) 机制,拦截超大 Base64/数据,隔离内存风险。
  * 弃用固定路径,改用 tempfile.mkstemp 生成线程安全的唯一临时文件。
  * 完善 finally 块清理逻辑,确保物理文件在上传成功或失败后都能被即时删除。
【指令系统重构】
- 采用子命令模式优化 /分析设置 (analysis_settings),将启用/禁用逻辑下沉至私有处理方法,提升代码可读性。
- 修复 /群分析 异步迭代漏洞,确保分析结果流能正确通过 AsyncGenerator 协议回传。
- 移除所有业务校验中的 assert 断言,替换为更安全的条件分支与错误消息返回。
2026-03-11 23:18:09 +08:00
SXP-Simon f70c37473c fix: 加固 PDFInstaller 组件,支持任务追踪与类型安全检查
- 增加任务注册表支持,使后台安装任务可被插件生命周期管理
- 使用 getattr 安全访问 ConfigManager 属性,消除 Pylance 静态检查报错
- 移除未使用的 ThreadPoolExecutor 引用
- 优化安装过程中的状态日志输出
2026-03-11 23:11:32 +08:00