From 5c92822242b292ee6bd89207ebcaf9f5c690c097 Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Mon, 10 Aug 2026 16:03:36 +0800 Subject: [PATCH] =?UTF-8?q?emrg:=20evolution=5Fprompt=20quick-ref=20?= =?UTF-8?q?=E2=80=94=20add=20#623/#624=20P2=20connection-layer=20entries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emrg/server/evolution_prompt.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/emrg/server/evolution_prompt.md b/emrg/server/evolution_prompt.md index 8220ae3..0dd0d65 100644 --- a/emrg/server/evolution_prompt.md +++ b/emrg/server/evolution_prompt.md @@ -379,6 +379,8 @@ When reading rants, follow these rules: > - GUI result-panel collapse deadlock (#615 宿主 rant 2026-08-10T14:11:18:GUI 右侧产物面板点折叠后无法再点开——CSS `#result-panel.collapsed` 把 width 置 0 且 header(含 toggle 按钮)display:none 一起藏掉 → 死锁只能靠 ⌘\/Ctrl+\ 快捷键;修复=方案 A:折叠改 **40px 窄条**(非 0,保留左边框)+ header 保留可见(flex 居中,仅 toggle 按钮,title 隐藏)+ 只藏 .result-list + toggle rotate(180deg)(»→« 指示可展开);localStorage 持久化/窄屏自动隐藏逻辑不变;+1 GUI 测试 110→111(CSS 源级断言:40px 非 0 / header flex / list none / rotate;DOM 存活检查——折叠后 toggle 按钮仍在;slice 到折叠规则组结束防 media query width:0 误伤负断言);README/Agent/README.cn 计数同步 111;674 pytest 全绿) ✅ > - doc-count guard duplicate npm-test lines (#618 外部贡献 pm25coder:#617 修复的回归类——README.cn.md 曾有两条**完全相同**的 npm test 命令行(复制粘贴重复),原 breakdown 求和守卫逐行独立校验各自求和成立 → 无法发现重复;修复=test_doc_counts.py 新增 `test_no_duplicate_npm_test_command_lines`:逐文档收集含 `npm test` 的行,完全相同行出现 >1 即 AssertionError;Agent.md 两条*不同*的 npm test 行不受影响(全行去重非子串匹配);正反两态验证(干净 675 全绿 / 插重复行即红);测试增删文档计数同步的护栏体系再加固一层) ✅ > - daemon remove_project command (#619 GUI 多会话 rant 2026-08-10T15:07:19 P1:daemon 侧改动极小=仅新增 `remove_project` 命令——删 projects.yml 中 name 匹配条目(原子写,镜像 `_touch_project` 读路径),**磁盘 `/.emrg/sessions/` 数据保留**(后续 `_touch_project` 自动重注册);响应 `{"type":"project_removed","removed":bool,"name":...}`,失败带 `error` key(文件缺失/损坏 YAML/非 list/未知 name/写失败);`_process_message` dispatch(空 name → error);+5 测试(删除匹配/未知 name 文件不动/磁盘数据保留/无文件不崩/损坏 YAML 报错)→ 合并 #618 计数冲突后 675→680 全绿;三文档计数同步;rant 分阶段 P1-P6,P2 起为 GUI 侧 connManager 多连接改造) ✅ +> - DaemonClient ensureConnected skipStart option (#623 GUI 多会话 rant 2026-08-10T15:07:19 P2 slice 1:connManager 将独占 daemon 生命周期,DaemonClient 实例只连**已运行** daemon——`ensureConnected({ skipStart = false } = {})` 默认不变;skipStart+无 port 文件 → 抛 `daemon not running (skipStart)` 不 spawn;skipStart+stale port+daemon 死(G43 路径)→ 抛 `daemon unreachable (skipStart)` **不删 port 文件不重拉**(port 文件保留供 connManager 重启恢复检测);+2 测试 daemon_client 29→31、GUI 111→113 三文档同步;680 pytest 全绿) ✅ +> - ConnManager open/close/get (#624 GUI 多会话 rant 2026-08-10T15:07:19 P2 slice 2:新模块 `emrg/gui/conn-manager.js`——connManager=daemon 生命周期唯一 owner + 每会话一条独立 DaemonClient 连接(对齐 TUI 多开:每 TUI 一条连接;会话间天然隔离无事件路由);`open(sid, projectPath)`=引导 client `ensureConnected()`(spawn 或直连后关闭)→ 新 DaemonClient `ensureConnected({skipStart})` → `resume_session(sid, cwd=projectPath)` 自动订阅 → 存储,已打开 sid 复用不重复建连;`close(sid)`/`get(sid)`/`all()`/`closeAll()`;main.js 未改线(单会话无回归目标随 rewire 片落);+5 测试 conn-manager、GUI 111→116 三文档同步;680 pytest 全绿;rant 分阶段 P1-P6,P2 剩余=main.js rewire + restart recovery,P3-P6 待续) ✅ #### 2.2 Latest GitHub code changes