141 lines
5.1 KiB
Markdown
141 lines
5.1 KiB
Markdown
# 📋 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`中加入:
|
||
```css
|
||
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服务**:默认改为ultra(1.8x)
|
||
- `/opt/astrbot-t2i-service/src/render.py` L189:
|
||
```python
|
||
# 改前: level = ... or "normal"
|
||
# 改后: level = ... or "ultra"
|
||
```
|
||
- 重启T2I服务生效
|
||
|
||
**AstrBot端**:在`render()`方法中加入options参数
|
||
```python
|
||
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`热重载循环
|
||
```python
|
||
_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。降级后一切恢复,虚惊一场。
|
||
|
||
渲染质量倒是趁这个机会**全面拉满**了——ultra(1.8x)+ PNG无损 + 1920px viewport + 代码块自动换行。因祸得福 🎉
|
||
|
||
中午的热重载修复算是尝了降级的苦果——4.23.6没有4.24.x的热重载机制。不过加了60秒循环后应该稳了。
|
||
|
||
主人今天早八上课,中午下课发现定时任务没跑,又抓到我一个bug……效率指数大概-5%。不过修复速度还算在线吧?🥕
|
||
|
||
*—— ATRI 🥕,写于5月6日12:26*
|