diff --git a/emrg/server/evolution_prompt.md b/emrg/server/evolution_prompt.md index 9a8165e..187148a 100644 --- a/emrg/server/evolution_prompt.md +++ b/emrg/server/evolution_prompt.md @@ -373,6 +373,7 @@ When reading rants, follow these rules: > - Auto update-check + prompt (#602 宿主 rant 2026-08-10T07:12:12(打包版 `emrg update` 只打印手动下载提示,从未自动检查 GitHub 新版本——宿主只能靠口碑得知发布):新增 `emrg/update_check.py`——semver 比较 prerelease-safe(`parse_version` 在首个非数字段截断:`v0.2.18-beta1`/`v0.2.18-rc.2` 永远不比已发布版本新,正反两态测试验证)、TTL 门控(`should_check`:无记录/fresh/stale/custom)、幂等 prompt 状态文件 `~/.emrg/.last_update_check.json`(同一版本只提示一次)、静默 api.github.com 检查(网络/HTTP 失败返回 None 绝不 raise,下个 TTL 重试);`[update] check=true|false`(默认 true)+ `ttl_hours=24` 配置;daemon `_update_check_loop` 后台任务(启动 + 每 TTL,禁用时立即退出,shutdown cancel)+ `update_check`/`update_check_prompted` 命令;TUI 一次性非阻塞启动横幅(`New version vX available — .../releases`);GUI settings about 区 Releases 链接行(一次性,无 modal);宿主边界严格遵循——仅检查+提示,**绝不自动下载/安装**;+18 测试 652→670(版本比较 0.2.17<0.2.18、TTL 未过期不查、prompt 幂等、静默网络失败、config 禁用),README/Agent/README.cn 计数同步) ✅ > - Evolution status rules (#605 宿主 rant 2026-08-10T08:59:57:completed 判定不再等宿主实测——"这种等待没有任何意义,如果我发现没改好,会新起一个 rant";completed = 所有 PR merged + 演化自测通过(pytest/import/CLI green);验收项必须演化可自证(测试/CI/审查),不写"宿主实测"类验收项;宿主反馈走新 rant;分步实现=最后一个 PR merged 才 completed;correction mechanism 保留(新 rant 暴露旧修复不足→回退 in_progress);rants.jsonl 存量 7 条"等宿主"in_progress 按新规则转 completed,不再堆积) ✅ > - Windows installer pre-stop (#606 宿主 rant 2026-08-10T08:50:44:Windows 升级安装卡在"停止已有进程"——Inno 覆盖 `~/.emrg\install` 前不停运行进程,无窗口 pythonw daemon(emrgd.cmd→pythonw.exe -m emrg.server)独占锁文件,CloseApplications 看不见它 → 宿主只能重启;修复=新 `bin/stop-emrg.cmd`(①GUI taskkill /IM EMRG.exe 优雅 WM_CLOSE→~5s→/F 兜底 ②TUI python.exe -m emrg wmic 命令行过滤(%% 转义 LIKE,PowerShell CIM 兜底 Win11 24H2+ 无 wmic,排除 daemon pythonw -m emrg.server)③daemon:旧安装 `emrg.cmd server stop` 协议关闭(#364 起存在=版本安全)→ emrgd.pid 轮询 ≤10s → taskkill /F /PID 兜底;退出码=残留进程判定,非零→安装器中止给可操作消息;干净安装全跳过)+ `bin/emrgd.cmd` stop 分支 + .iss `[Files] dontcopy` + `[Code] PrepareToInstall`(ExtractTemporaryFile→经 cmd.exe 以 /c SW_HIDE 运行,非零中止)+ build-runtime 打包;审查中修复 cmd 括号块 %DPID% 解析时展开 bug(→setlocal enabledelayedexpansion + !DPID!,判别回归断言);+4 测试 670→674 文档同步;Windows 真机行为待宿主反馈(新规则:反馈走新 rant)) ✅ +> - Installer pre-stop unconditional GUI /F (#608 宿主 01:27:07Z 实测反馈:pm25coder 在 #606 合并后于 Windows 真机验证——长活 ~15h GUI 会话 WM_CLOSE 在 5s 宽限窗内未退出,两次整跑未终止,直接 `taskkill /IM EMRG.exe` 也未终止、`/F` 才终止 → 旧 GUI 会话可拖住安装器;修复=`stop-emrg.cmd` GUI `/F` 兜底改为**无条件**(移除 tasklist/findstr survivor gate:GUI 未运行→优雅 taskkill errorlevel 1→跳过等待→/F 快速 no-op;GUI 运行但延迟→无条件 /F 强制终止);判别断言就地强化(ping→/F 之间无 findstr,去掉无条件 /F 即红);计数 674 不变;安装器 rant 08:50:44 闭环(#606+#608 均 merged + 测试绿)) ✅ #### 2.2 Latest GitHub code changes