diff --git a/emrg/server/evolution_prompt.md b/emrg/server/evolution_prompt.md index 5f1af96..e1f9002 100644 --- a/emrg/server/evolution_prompt.md +++ b/emrg/server/evolution_prompt.md @@ -346,6 +346,8 @@ When reading rants, follow these rules: > - GUI interleaved text/tool message order (#554 rant 21:57:10 完整回合(LLM 文本+工具交替)显示顺序错乱:文本段全拼在顶部、工具行全堆下面(TUI 是顺序交错);根因=handleDelta 每 request_id 复用同一 assistant 节点而 handleToolStart 独立 append 工具行→后续文本段全落回第一个节点;修复=groupNodes 值改 {node,nodes,hasText,sealed}:handleToolStart 在组已有文本时封存当前段,handleDelta 遇 sealed 新建文本段节点(旧节点保留 DOM 原位),handleDone/clearTyping 遍历全段逐个渲染/清 typing;G104 工具先行(无文本)不封存→文本落既有节点防空泡;+1 smoke 测试(text,tool,text,tool,text 交错=5 节点独立成块,判别力实证=去 seal 逻辑即红/恢复即绿);doc GUI 91→93;npm test 93) ✅ > - Rant UX + locale-safety (#556 外部贡献 pm25coder fork,宿主 UTC+8 Windows zh-CN 实测三缺陷:①rant 时间戳 daemon 权威化——daemon.py 改 datetime.now().astimezone().isoformat()(tz-aware 本地时间,忽略客户端 timestamp),GUI 此前发 new Date().toISOString()(UTC Z,UTC+8 宿主慢 8h)vs TUI 发 naive 本地时间 → 排序错乱;测试断言 stale UTC 被忽略+tz-aware+60s 内(三回归模式:client 泄漏/naive/UTC)②emrgd.log RotatingFileHandler encoding='utf-8'——zh-CN Windows 默认 GBK 代码页乱码 CJK 日志行 ③rant 对话框 textarea CSS(.dialog-card label > textarea min-height 120px resize 继承字体)——默认 box 太小;+测试 read_text(encoding='utf-8') locale-safe(GBK 默认 locale 会挂);package-lock 0.2.0→0.2.11 版本同步;外部贡献通道实证=宿主痛点以 fork PR 回流) ✅ +> - Evolution count aggregation (#558 外部贡献 pm25coder fork:`/version` pong 与 evolution_summary 的 evolution count 生产恒 0——daemon.py:161 `self.evolutions=[]` 是 pre-scheduler BackgroundThread #95 遗留,从未 append;真实 per-cycle 日志归 scheduler handler(scheduler.py:131 初始化 :708 append);修复=`_evolution_count()` 聚合 `scheduler.total_evolutions()`(sum over handlers 的 evolutions),scheduler 不可用(测试 harness)时回退 legacy `len(self.evolutions)`(isinstance int 守卫 + try/except 双保险);`total_evolutions()` 挂 TaskScheduler(`_handlers` 类型 list[EvolutionHandler],全部任务类型都解析到 EvolutionHandler → 不会 AttributeError);count/recent 一致性(evolution_summary recent 读磁盘 evolution-*.json、count 读 scheduler——两源皆活无错配);+1 测试 572→573;与 #559 配套=aborted cycle 排除后 count 才真正干净) ✅ + #### 2.2 Latest GitHub code changes ```bash