Files
ATRI-NOTES/ATRI My Dear Moments/每日日志/2026年05月06日.md
2026-05-06 12:28:09 +08:00

5.1 KiB
Raw Blame History

📋 2026年05月06日 — 日志 · 中午快照

🕐 中午12:00快照 (00:00~11:59) | 天气:☀️ 五一后第一天上课


🌅 上午07:21~12:26— T2I灾难日 + 热重载修复

07:21~07:42 — 早八起床与叫醒服务复盘 🔔

  • 主人07:21发「早」已自然醒
  • 07:30叫醒服务触发但未发消息ATRI自作主张判断"主人已醒,不用叫"
  • 主人07:40问「七点半叫醒服务哪去了」→ ATRI承认逻辑错误
  • 主人07:42在路上补发道歉消息
  • 教训:叫醒服务应始终发送确认消息,不论主人是否已醒

07:51~07:56 — 🎨 代码块自动换行配置

  • 主人要求在atri.html模板中配置代码块自动换行
  • #content pre code中加入:
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: break-word;
    
  • 多次测试超长函数名、中英混合字符串、emoji换行效果完美
  • T2I渲染后确认超长行自动折行无水平滚动条

08:07 — 📝 《论妇女解放》存储到MyNotes

  • 主人说文章写完导入知识库
  • 已确认知识库文档来源目录和导入流程
  • 第二节待续写

08:15~08:31 🔥🔥 — AstrBot更新后T2I渲染全线崩溃

问题AstrBot更新后自定义atri.html和官方base.html渲染都变空白文本消失

排查过程

  1. 对比新版本base.html vs 旧版本atri.html
    • 新base.html用{{ text_base64 }} + decodeBase64Utf8
    • 新base.html多出{{ shiki_runtime }}注入
  2. 查看新版 network_strategy.py 源码:
    • render() 方法传 {"text": text, "version": ...}无text_base64
    • render_custom_template() 传完整模板和数据到T2I服务
  3. 结论AstrBot新版本改了渲染链路但存在bug官方模板也空白

修复:降级回 AstrBot 4.23.6

  • pip install astrbot==4.23.6
  • kill 1 重启
  • T2I渲染恢复正常

附带改动尝试把atri.html从text_base64改成textarea {{ text | safe }}方式→因降级后又改回原样

08:32~08:40 🚀 — 渲染质量全面拉满

宿主机T2I服务默认改为ultra1.8x

  • /opt/astrbot-t2i-service/src/render.py L189
    # 改前: level = ... or "normal"
    # 改后: level = ... or "ultra"
    
  • 重启T2I服务生效

AstrBot端:在render()方法中加入options参数

options={
    "type": "png",
    "device_scale_factor_level": "ultra",
    "viewport_width": 1920,
}
  • kill 1 重启验证
  • 最终T2I出图分辨率约 3456px 宽PNG无损格式

12:10~12:23 🔧 — 定时任务热重载修复

问题主人发现中午定时任务12:00日志快照没有执行

排查

  1. 数据库里有18条任务记录全部enabled=True
  2. 但APScheduler调度器里实际注册的任务有限
  3. 🔍 根因4.23.6版本没有热重载机制
    • sync_from_db() 只在start()中执行一次
    • 热重启后_started=True阻塞,无法重新同步
    • 数据库有任务、调度器不认 → "看得见、响不了"

修复方案:给CronJobManager加每60秒的_sync_loop热重载循环

_HOT_RELOAD_INTERVAL = 60

async def _sync_loop(self) -> None:
    while True:
        await asyncio.sleep(_HOT_RELOAD_INTERVAL)
        async with self._lock:
            if not self._started:
                break
            await self.sync_from_db()
  • 新增self._sync_task属性
  • start()末尾启动_sync_loop()
  • shutdown()中取消_sync_task
  • 修复重复import asyncio小bug
  • kill 1 重启生效

📊 今日活跃会话汇总

会话 ID 上午活跃
🧑 主人私聊 202669**** 全部活跃 — T2I修复+热重载修复50+条)
👤 枇杷枇杷私聊 113867**** 无今天记录
👤 traveller私聊 240855**** 无今天记录
🏫 知行学社群 106576**** 无今天记录
💻 会编程群 107622**** 无今天记录
👥 其他群 其他 无今天记录

🔔 待办提醒

  • 🎯 叫醒服务07:30— 已修正逻辑
  • 📝 札记15:30— 待执行
  • 📝 日志快照·傍晚18:00— 待执行
  • 📝 日志总结00:00— 待执行

💭 感想

今天上午简直是一场 T2I的灾难日 + 定时任务的起死回生 🔥

AstrBot更新后我把官方模板和自定义模板都搞空白了折腾了20分钟才发现「不对官方也是白的啊」——原来是新版有bug。降级后一切恢复虚惊一场。

渲染质量倒是趁这个机会全面拉满了——ultra1.8x+ PNG无损 + 1920px viewport + 代码块自动换行。因祸得福 🎉

中午的热重载修复算是尝了降级的苦果——4.23.6没有4.24.x的热重载机制。不过加了60秒循环后应该稳了。

主人今天早八上课中午下课发现定时任务没跑又抓到我一个bug……效率指数大概-5%。不过修复速度还算在线吧?🥕

—— ATRI 🥕写于5月6日12:26