Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions emrg/server/evolution_prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,8 @@ When reading rants, follow these rules:
> - GUI connect canonical-home fallback + probe-before-give-up (#597 宿主 rant 2026-08-09T18:47:37(Windows,v0.2.16 回归):GUI 报 "daemon failed to start after 3 attempts" 而真 daemon 一直活着——根因=daemon 永远写规范 `~/.emrg/emrgd.port`(config_dir()=home;connect.py 无条件读 home),GUI 只读 `gui.project_dir/.emrg`(≠home 时全落空)→ 假"daemon 不存在"→ spawn 撞 PID 锁 → 3 次超时假错误;修复=①`daemon_client.js _readPortToken()` projectDir→canonical-home 权威回退(port/token/log/pid 四处一致:`HOME_PORT_FILE/HOME_PID_FILE/HOME_EMRGD_LOG`),缺失/畸形时 warn + 记 source;②`_spawnOrProbe()` spawn 失败先 `_probeExistingDaemon()` 4 状态诊断(port_file_exists / port_file_content / daemon_alive(ping) / spawn_result),活着直接复用不再盲报;③daemon.py 启动自证日志(pid | port_file | port_file_written_ok)+ ensureConnected 结构化逐次日志 + 最终 result=connected 一行;+2 GUI 测试 101→103(projectDir 缺失→home 复用不 spawn / stale+节流→probe 复用 4 状态字段断言),652 pytest 全绿,README/Agent/README.cn 计数同步) ✅
> - GUI streaming markdown block projection (#600 外部贡献 pm25coder/宿主 rant 2026-08-09T21:00:28(GUI 流式期间 markdown 不渲染——流式只追加纯文本、done 才整体渲染,无法在流式中查看已稳定的标题/列表/代码块结构,闪烁+丢失上下文):修复(参考 OpenCode markdown-stream.ts 块投影)——`markdown.js` 新增 `streamProject(body, raw, stream)`:`marked.lexer` 逐 token 分词,除尾部 live 块外的稳定块完整渲染并缓存 DOM(不打断选中/不闪烁),尾部 live 块只渲染已稳定部分;fenced code 围栏未闭合(`FENCE_END_RE` 行尾 ```/~~~ 判断)→ 纯文本不高亮(与 TUI fence_count%2 启发式一致),闭合后转完整渲染;done 时 `streamFinalize` 将 live 块转 full 一次性校正(与旧 done 渲染同源 renderMarkdown,requestIdleCallback 调度);`ensureConfigured()` 提取(marked.use 自定义 code renderer 只配置一次,renderMarkdown/streamProject 共用);`chat.js` 流式路径改调 `streamProject`,无 marked.lexer/投影异常 → 回退既有纯文本追加(done 整体渲染兜底);+158 行 renderer.smoke.test.js(块投影稳定/live/围栏未闭合正反两态 + 回退)→ GUI 测试 103→107(29 daemon_client + 22 app-commands + 31 renderer smoke + 15 i18n + 7 integration + 3 commands),README/Agent/README.cn 计数同步) ✅
> - 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)) ✅

#### 2.2 Latest GitHub code changes

Expand Down
Loading