liuwei
|
4ddab01b8d
|
完善系统健康面板并接入AI运行态观测
|
2026-04-30 15:12:47 +08:00 |
|
liuwei
|
b53206d0d1
|
支持全局配置保存后立即应用到运行时
- 新增 Robot.apply_runtime_config 统一刷新邮件发送器、管理员列表与 LLM 运行时缓存\n- 新增 LLMRegistry.invalidate_cache 主动清理目录与 legacy 配置缓存\n- 后台保存全局配置与 LLM 目录后立即应用运行时配置,减少重启依赖
|
2026-04-29 17:27:21 +08:00 |
|
liuwei
|
5401d1db42
|
提高积分通胀倍率上限
1. 将群积分通胀策略的默认最高倍率从3倍提升到20倍。
2. 补充中文注释,说明高倍率用于加速消耗长期沉淀的群积分。
|
2026-04-27 13:41:23 +08:00 |
|
liuwei
|
955c2f2797
|
为积分通胀策略增加Redis日缓存
1. 新增群积分通胀统计的Redis缓存键与按天过期策略,减少重复聚合查询。
2. 新增带缓存的群插件积分消耗统计方法,Redis异常时自动回退实时查询。
3. 调整积分消耗注解优先读取缓存版统计,降低高频群聊场景下的数据库压力。
|
2026-04-27 13:40:27 +08:00 |
|
liuwei
|
66ac0a7e89
|
新增群积分通货膨胀策略
1. 新增群聊插件积分真实消耗统计,区分成员持有积分与 SYSTEM 沉淀积分。
2. 为 plugin_points_cost 注解接入按群动态倍率,积分消耗偏低时自动提高实际扣费。
3. 优化积分不足与扣费成功提示,展示基础价、实际价与当前通胀倍率。
|
2026-04-27 13:35:13 +08:00 |
|
liuwei
|
d09ccb788c
|
修复Dashboard消息存储查询接口兼容问题
|
2026-04-27 12:03:22 +08:00 |
|
liuwei
|
62e6f67836
|
持久化表情中文语义资产\n\n- 新增 t_emoji_assets 表及迁移脚本,持久化保存表情发送参数、中文语义与预览图路径\n- 在消息归档与媒体补偿流程中自动回填表情资产,实现收到表情即落语义、补图后回填预览\n- 后台表情库与自动回复优先读取持久化表情资产,仅在空表场景下小范围回补历史数据
|
2026-04-27 11:52:31 +08:00 |
|
liuwei
|
623ca505d4
|
打通自动回复与表情语义库联动\n\n- 新增表情语义解析与表情资产查询模块,支持从历史表情中提取可读中文语义\n- 为 ai_auto_response 增加短回复表情匹配器,命中语义时优先发送表情并支持失败回退文本\n- 调整自动回复提示词与配置项,强化短情绪回复场景的表情替换能力
|
2026-04-27 11:40:44 +08:00 |
|
liuwei
|
4dbf390c65
|
将通讯录刷新与头像缓存同步改为异步处理
|
2026-04-27 09:30:21 +08:00 |
|
liuwei
|
711213ded8
|
补充头像缓存同步与清理调试日志
|
2026-04-27 09:19:56 +08:00 |
|
liuwei
|
5da6514020
|
增加头像缓存旧文件清理机制
|
2026-04-27 09:16:16 +08:00 |
|
liuwei
|
e573fd9c37
|
优化社交图展示并为通讯录接入本地头像缓存
|
2026-04-27 09:13:01 +08:00 |
|
liuwei
|
df6f9f4cfa
|
修复规则缓存写入Redis时datetime序列化异常
1. 在规则服务中新增JSON安全转换逻辑,递归处理dict/list结构。
2. 将datetime/date统一转换为字符串后再写入Redis,避免Object of type datetime is not JSON serializable。
3. 保持缓存结构兼容,不影响现有规则匹配流程。
|
2026-04-23 13:39:43 +08:00 |
|
liuwei
|
d61fb8bc8a
|
新增趣味指令剧本功能并接入拍一拍事件触发
1. 新增趣味指令规则数据层与服务层,支持应用级缓存+Redis+MySQL三级读取与缓存刷新。
2. 新增 fun_command_play 插件,支持文本/图片/语音/视频/卡片/App 多媒体响应,并接入群权限开关。
3. 新增拍一拍事件识别(PAT)并纳入统一触发模型。
4. 新增后台页面与API:规则增删改查、启停、命中测试。
5. 将趣味指令剧本接入 Dashboard 菜单与蓝图注册,并补充数据库迁移脚本。
|
2026-04-23 12:31:52 +08:00 |
|
liuwei
|
3e93188efb
|
支持html转图传入视口宽度并在总结模板中透传配置
|
2026-04-23 11:27:37 +08:00 |
|
liuwei
|
fc8af8ff75
|
fix(schedule): 任务页上次执行时间改为日志兜底
- 新增批量查询接口 get_latest_logs_map,从 t_plugin_schedule_logs 获取各任务最新执行记录
- 插件任务列表拼装时优先用运行时数据,缺失则回填数据库最新日志
- 修复重启后任务页 last_run_at/last_status 显示为空的问题
|
2026-04-22 09:49:15 +08:00 |
|
liuwei
|
d64d11a384
|
将@关系批处理业务迁移到 value_rank 插件
- 从 MessageStorageDB 移除@抽取与社交图写入逻辑,消息层仅保留归档职责
- 从系统级任务移除 process_pending_mentions,取消 message_to_db 中对应入口
- 在 value_rank 插件新增定时动作 value_rank_mentions_extract(每10分钟)
- 在插件内实现窗口化批处理(默认10~20分钟前)、@提取、幂等写入明细/边表/日汇总及 unique_interactors 回填
- 新增插件侧可配置参数 mention_batch_size / mention_window_start_minutes / mention_window_end_minutes
|
2026-04-21 14:10:25 +08:00 |
|
liuwei
|
78adab65b2
|
增强@批处理执行日志,提升可观测性
- 增加定时@抽取任务开始/结束日志,输出窗口参数、处理条数与耗时
- 在DB批处理层记录查询命中、前3条样本明细、失败样本ID,便于快速排障
- 增加窗口参数异常修正日志,避免误配置导致行为不可见
- 在社交图增量写入处增加跳过/完成日志,明确是否产生新增@关系
|
2026-04-21 13:58:16 +08:00 |
|
liuwei
|
1ddc1dcf18
|
优化@批处理窗口:每10分钟仅处理10-20分钟前消息
- 调整待抽取@查询逻辑:默认仅扫描 timestamp 在 [NOW-20m, NOW-10m) 的消息
- 保留 mentioned_user_ids 为空才处理的条件,处理过自动跳过
- 更新 MessageStorage 与系统任务调用参数,统一使用窗口化批处理配置
- 增加窗口参数兜底修正,避免错误配置导致全量扫描
|
2026-04-21 13:54:41 +08:00 |
|
liuwei
|
906f0905df
|
将@抽取与社交图写入改为定时批处理
- 精简 archive_message 主链路:仅做消息归档,不再同步执行@解析与社交统计
- 新增 MessageStorageDB.process_pending_mentions 批处理能力,按批次回填 mentioned_user_ids 并写入社交图
- 新增系统任务 process_pending_mentions,每10分钟执行一次(every_seconds=600)
- 增加幂等保护:基于 t_message_mentions 已有记录过滤新增@关系,避免重复累加社交边和热度
- 保留详细中文注释,说明性能优化目标与批处理策略
|
2026-04-21 13:51:56 +08:00 |
|
liuwei
|
061f2b8084
|
feat: 重构LLM配置为Provider模板+Dify应用+Scene绑定
变更项:
1. 新增 LLM 目录数据层(t_llm_provider_templates/t_llm_dify_apps/t_llm_backends/t_llm_scenes/t_llm_catalog_meta),支持三层配置管理。
2. Robot 启动接入 llm_catalog_db:自动建表并从旧 llm(backends/scenes) 配置迁移初始化。
3. LLMRegistry 改为优先读取目录模型并按 scene 解析:dify_app 自动合并 Provider 模板与 app_key 差异,降低重复配置。
4. system 蓝图 /api/system/llm_config 改为目录模型读写,新增完整校验(provider引用、app_key、scene目标合法性)。
5. system_llm 页面重构为四块:Provider 模板、Dify 应用、通用 Backend、Scene 绑定,并展示插件依赖拓扑。
6. 保留 YAML 旧结构兜底展示与运行时回退,保证目录表异常时系统仍可运行。
|
2026-04-20 15:09:24 +08:00 |
|
liuwei
|
1446bf5f39
|
feat: 将LLM配置主存储迁移到MySQL
变更项: 1) 新增 t_llm_config 数据访问层与建表逻辑。 2) Robot 启动时自动初始化并在空库时从 YAML 导入。 3) 后台 system LLM API 改为读写 MySQL。 4) LLMRegistry 改为优先 MySQL 读取并回退 YAML。 5) DashboardServer 挂载 llm_config_db 提供后台访问。
|
2026-04-20 14:51:43 +08:00 |
|
liuwei
|
ef49588485
|
refactor: 移除LLM旧兼容入口并统一scene单路由
变更项:
1. LLMRegistry 仅保留 scene 入口,删除 backend_name/backend_ref/scene_ref 等兼容解析分支,未声明 scene 时仅保留直连配置。
2. Dify/GlobalNews/GameTask 插件初始化改为仅传 scene,不再拼接 backend/provider/url 等旧兼容字段。
3. 清理插件配置冗余:dify/global_news/game_task/douyu 的 config.toml 删除 backend 字段,统一由 scene 映射后端。
4. 后台 system API 调整为严格模式:插件依赖扫描仅采集 scene;scene 保存时必须绑定有效 backend。
5. 后台页面去除拓扑中的配置Backend冗余列,并新增前端校验,禁止提交空场景或未绑定后端。
|
2026-04-20 14:45:03 +08:00 |
|
liuwei
|
7b6bd19781
|
feat: 引入LLM场景路由与后台拓扑管理能力
变更项:
1. 新增 llm.scenes 场景路由层,支持 scene->backend 统一映射,并补充默认场景配置。
2. 扩展 LLMRegistry,新增 scene 解析逻辑;当声明 scene 时强制按场景路由结果生效,保持旧 backend 配置兼容。
3. 扩展后台 /api/system/llm_config 读写能力,支持 scenes 配置保存;新增插件 LLM 依赖扫描与拓扑数据输出。
4. 升级 system_llm 页面:新增场景路由管理区、插件依赖拓扑表,支持可视化查看 插件->scene->backend->provider。
5. 迁移核心插件配置到 scene 模式(保留兼容字段):dify/global_news/game_task/message_summary/ai_auto_response/member_context/douyu。
6. 调整部分插件初始化默认 llm_config,补充 scene 字段,确保后台场景切换可直接生效。
|
2026-04-20 14:36:56 +08:00 |
|
liuwei
|
382f3967bd
|
修复斗鱼日报Dify 400请求并增强错误诊断
变更项:\n1. 在斗鱼插件新增 daily_report_include_structured_inputs 配置(默认 false),Dify 入参默认改为精简字段(task_type/query/system_prompt/user_prompt/room_id 等),避免复杂对象输入触发 400。\n2. 调整 _build_dify_daily_report_inputs:仅在 include_structured_inputs=true 时才附带 report_payload_json,大幅降低 Workflow 入参类型不匹配风险。\n3. 在初始化流程中读取 report_api.include_structured_inputs,支持按环境开关结构化入参。\n4. 在 UnifiedLLMClient 的 Dify 调用中新增 HTTPError 细粒度处理,last_error 与日志会追加 response_body 片段,便于快速定位 Dify 侧具体报错原因。\n5. 更新 douyu 配置模板注释,明确复杂输入导致 400 的风险与开关用途,方便后续维护。
|
2026-04-20 13:36:56 +08:00 |
|
liuwei
|
f1a6f6d565
|
新增通用HTML模板渲染器并将机器人菜单改为模板驱动输出
|
2026-04-20 13:12:44 +08:00 |
|
liuwei
|
d4b7cb32f6
|
feat(群级配置): 新增MySQL+Redis持久缓存并接入进群欢迎差异化配置
新增群级插件配置表与服务层,采用MySQL持久化+Redis长期缓存(TTL=-1);后台新增群级插件配置管理页面与API,支持按群按插件维护JSON配置并在修改后同步回填MySQL和刷新Redis;已将群成员变更监控插件接入该配置,支持欢迎文案与卡片URL等按群差异化。
|
2026-04-20 10:42:46 +08:00 |
|
liuwei
|
23d2f2562e
|
启用md2img强保活模式:移除浏览器主动关闭逻辑
1. safe_close_browser 改为保活模式下直接返回,不执行 browser.close\n2. 去除 safe_close_browser 中的 terminate/kill 进程树逻辑\n3. 保留函数签名与调用链,确保现有流程兼容\n4. 增加中文注释说明长期常驻场景下的设计意图
|
2026-04-17 11:46:35 +08:00 |
|
liuwei
|
cc5c49954f
|
调整md2img保活策略:取消截图后立即重建,改为心跳确认后再自愈
1. 去除截图后探测失败即刻 restart_browser 的逻辑\n2. 改为仅记录告警并推进断连计数,交由心跳任务统一确认后重建\n3. 保留截图失败时的重试重建能力,避免功能不可用\n4. 增加详细中文注释,明确保活优先与误判抑制设计
|
2026-04-17 11:44:28 +08:00 |
|
liuwei
|
02e34960d3
|
优化md2img浏览器健康探测,减少截图后误判断连重建
1. _is_browser_alive 增加短重试机制,避免单次瞬时失败被判定为断连\n2. 截图后健康检查由单次探测改为多次探测(超时与间隔可控)\n3. 保留真实断连自动重建能力,但降低误触发概率\n4. 补充详细中文注释,说明探测策略与设计意图
|
2026-04-17 11:27:27 +08:00 |
|
liuwei
|
1cf2cfd6e3
|
修复md2img运行时并发单例问题,避免预热双启动日志
|
2026-04-17 10:28:35 +08:00 |
|
liuwei
|
3d98b3c0a2
|
修复转图运行时重复启动与高频误重建问题
变更项:\n1. 修复 md2img 运行时并发启动竞争,新增启动中标记,避免同名线程被重复拉起。\n2. 优化浏览器心跳探测策略:由高频激进重建改为断连连续判定后再重建,降低误判。\n3. 新增截图进行中保护,截图期间心跳跳过探测,避免与业务并发导致误重建。\n4. 为浏览器重建增加 reason 日志字段,便于线上追踪重建触发原因。\n5. 保留截图后断连自愈能力,但改为更稳健的触发路径,减少无意义重建。
|
2026-04-17 10:26:10 +08:00 |
|
liuwei
|
97bc4560b6
|
增强转图浏览器保活:截图后探活并自动重建,增加后台心跳巡检
|
2026-04-17 10:14:04 +08:00 |
|
liuwei
|
2a87863d9c
|
修复转图任务返回时序误判:等待runtime任务完成后再返回,避免先报失败后截图
|
2026-04-17 10:12:15 +08:00 |
|
liuwei
|
c49f5e509c
|
新增转图运行时健康监控与手动预热
变更项:\n1. 在 markdown_to_image 增加 get_md2img_health_snapshot 健康快照能力,输出 runtime 线程、事件循环、浏览器连接、启动来源与 PID 状态。\n2. 新增系统接口 GET /api/system/md2img_health,支持后台查询转图运行时健康信息。\n3. 新增系统接口 POST /api/system/md2img_warmup,支持后台手动触发转图预热并返回最新状态。\n4. 在资源监控页面接入转图健康状态条,展示运行时在线状态、浏览器连接状态及关键摘要信息。\n5. 在资源监控页面增加转图预热与状态刷新按钮,便于线上快速自愈与排障。\n6. 补充中文注释与错误提示,保持后端与前端可观测性一致。
|
2026-04-17 10:04:18 +08:00 |
|
liuwei
|
5a84c60b2c
|
统一转图为单运行时常驻浏览器
变更项:\n1. 新增 md2img 专用运行时(独立线程 + 单事件循环),确保浏览器生命周期只在一个 loop 内维护。\n2. 新增运行时任务投递与异步等待封装,支持任意调用方线程/loop 统一提交截图任务。\n3. 调整浏览器预热逻辑:预热改为在 md2img 专用运行时执行,避免预热与业务截图分属不同 loop。\n4. 调整 html_to_image:统一在专用运行时内完成截图,彻底规避跨事件循环复用导致的重建。\n5. 增强中文注释与运行日志,便于定位 runtime loop 与预热状态。
|
2026-04-17 10:00:25 +08:00 |
|
liuwei
|
3b9bd02b5f
|
修复转图浏览器预热跨事件循环失效问题
变更项:\n1. 新增 async_job 启动钩子能力 add_startup_job,在调度器事件循环中执行一次性初始化任务。\n2. 将 main.py 的 Markdown 转图预热从独立线程改为调度器 loop 内执行,确保预热实例可被后续任务复用。\n3. 增强 markdown_to_image 常驻浏览器管理:记录 owner loop、检测跨 loop 复用并自动重建。\n4. 补充预热与常驻浏览器日志,输出 loop 标识和浏览器 PID,便于线上排查进程状态。\n5. 保持现有转图超时与重试逻辑不变,仅修复预热生效链路与可观测性。
|
2026-04-17 09:55:03 +08:00 |
|
liuwei
|
3226fabcec
|
新增定时任务重启漏执行补偿机制
变更项:1) 系统任务与插件调度重载后基于应执行时间和执行日志对账,判定是否漏执行。2) 仅在应执行时间已过且日志未覆盖时补跑一次,避免重复补偿。3) system_job_db 与 plugin_schedule_db 新增 get_latest_log_time 查询。4) 增加容差窗口与中文注释,降低误判概率。
|
2026-04-17 09:38:15 +08:00 |
|
liuwei
|
6af91756d3
|
支持服务启动后自动预热转图浏览器
变更项:1) markdown_to_image 新增预热方法 warmup_md2img_browser/warmup_md2img_browser_sync,用于提前拉起常驻浏览器。2) main.py 启动流程新增后台预热线程,服务启动后自动执行转图浏览器预热。3) 预热失败仅记录日志不阻塞主服务,运行期仍可按需自动重建浏览器。4) 补充中文注释说明预热目的与降级策略。
|
2026-04-17 09:28:36 +08:00 |
|
liuwei
|
f90c0720b3
|
实现转图浏览器常驻复用并支持失败自动重建
变更项:1) 新增常驻浏览器管理器,避免每次截图都冷启动 Chromium。2) 截图流程改为复用同一 Browser,每次仅创建并关闭 context/page,提升稳定性与性能。3) 增加浏览器失联检测与自动重建机制,截图失败后重建一次并重试。4) 保留多候选浏览器启动策略(system/playwright-cache/bundled),并输出准确来源日志。5) 补充中文注释,明确常驻设计目标与故障恢复逻辑。
|
2026-04-17 09:26:23 +08:00 |
|
liuwei
|
43c334354f
|
增强转图浏览器启动健壮性并修正日志来源标识
变更项:1) html_to_image 改为候选浏览器逐个尝试启动,避免单一路径失败导致整体异常。2) Linux 增加系统浏览器路径探测(google-chrome/chromium)并保留 Playwright 缓存路径作为候选。3) 修正启动日志来源标识,区分 system 与 playwright-cache,避免误判。4) 所有候选失败时自动回退到 bundled 浏览器,提高转图成功率。
|
2026-04-17 09:18:02 +08:00 |
|
liuwei
|
55c3b951d5
|
修复群总结转图假死:增加阶段进度日志与超时保护
变更项:1) 移除图片渲染前截断,保持完整内容转图。2) 群总结转图增加总超时,超时后快速降级文本,避免任务长期阻塞。3) markdown_to_image 增加每10秒进度心跳日志,定位卡在 markdown_to_html 或 html_to_image。4) 分阶段超时与阶段开始日志完善,解决无错误无进度的问题。
|
2026-04-17 09:16:26 +08:00 |
|
liuwei
|
879e64fb7c
|
修复插件定时任务星期与时间格式显示问题
变更项:1) async_job 触发文案把每周数字改为中文星期(周一到周日),消除星期显示歧义。2) async_job 时间序列化改为 yyyy-MM-dd HH:mm:ss,去掉 ISO 格式中的 T。3) 插件定时任务页面统一使用 formatDateTime 渲染下次执行、上次执行与日志触发时间,前端兜底去除 T。4) 补充中文注释说明显示层与调度层格式化意图。
|
2026-04-16 17:41:53 +08:00 |
|
liuwei
|
1a1306ec71
|
系统定时任务日志持久化:新增入库与后台查询
- 新增系统任务日志表 t_system_job_logs,持久化记录每次执行结果、摘要、耗时、详情JSON\n- SystemJobLoader 注册任务时增加执行包装器:成功/失败均写入数据库日志,失败后继续抛出保证运行态状态一致\n- 系统任务后台日志接口改为查询数据库日志(不再依赖仅内存的 async_job logs),解决重启后日志丢失问题\n- 保持前端日志字段兼容,接口返回映射为 time/level/message 结构
|
2026-04-16 16:27:53 +08:00 |
|
liuwei
|
3873596399
|
修复:系统任务重载日志NameError
- 修复 utils/system_jobs.py 中 logger 未定义导致的启动异常\n- 补回 loguru.logger 导入,确保无处理器任务打印 warning 时不会抛错\n- 已执行 py_compile 校验通过
|
2026-04-16 16:18:52 +08:00 |
|
liuwei
|
9652c2594e
|
系统业务任务插件化迁移:下沉7项非刚需任务并接入平滑迁移
- 系统任务保留刚需三项:登录巡检、消息计数入库、媒体补偿处理;移除新闻/Epic/排行/PDF/秀人维护等业务型系统任务定义\n- 新增 daily_news、epic_free、daily_ranking、sehuatang_push 四个插件,将原系统业务任务改为插件可调度动作\n- 扩展 xiuren_image 插件调度动作,新增秀人下载、绅士R15下载、图片缓存更新三项维护任务\n- 新增系统任务到插件任务的幂等迁移逻辑:按旧 job_key 映射到插件 action,同步 trigger_type/trigger_config/enabled,并通过 payload 标记防止反复覆盖\n- 在 Robot 启动流程中接入迁移执行与重载,并清理已迁移的历史系统任务记录,避免后台双份维护\n- 扩展插件调度数据库操作:支持按 plugin_name + action_key 精确查询,便于迁移与对账
|
2026-04-16 16:05:59 +08:00 |
|
liuwei
|
014985ac4a
|
feat(plugin-schedule): add DB-driven plugin scheduler and xiuren scheduled push
|
2026-04-16 15:24:23 +08:00 |
|
liuwei
|
9d6609990b
|
fix(schedule): reseed default system jobs before DB reload
|
2026-04-16 14:57:51 +08:00 |
|
liuwei
|
66a9b7c4a3
|
feat(schedule): move system jobs to DB-driven config and dashboard management
|
2026-04-16 14:54:23 +08:00 |
|
liuwei
|
f0414e0dff
|
feat(plugin): support auto bot injection and file-based hot reload
|
2026-04-16 13:54:56 +08:00 |
|