From 3147d23a0f67340e1868d1e9854ef16174612b19 Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Tue, 11 Aug 2026 20:38:23 +0800 Subject: [PATCH 1/2] emrg: evolution_prompt quick-ref for #692/#693 (stop-git snapshot + TUI cursor/status-bar) --- 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 981ca016..dbc110e3 100644 --- a/emrg/server/evolution_prompt.md +++ b/emrg/server/evolution_prompt.md @@ -424,6 +424,8 @@ When reading rants, follow these rules: > - App icon finalization (#688 宿主 rant 2026-08-11T18:28:09:rant 内嵌 SVG 源码是字面 `%s` 占位符——穷尽搜索(sessions/logs/Downloads/git 历史)无原始 Gemini SVG → 按 rant 详细设计规格**重建** `packaging/assets/icon.svg`(Branch Emergence 分支涌现:绿渐变 #00FF87→#047857、顶部青色 #60EFFF 节点、深绿底 #111c16→#070b08、主干→枢纽→5 支扇形→3 层发光节点);新增 `packaging/gen-assets.sh` 渲染 SVG→PNG(rsvg-convert → Chrome headless → sips 面积平均 box-filter 缩放回退链)+ CI "Generate icon assets" 步骤(Build GUI 前)+ 5 个二进制产物 gitignore(仅 SVG 设计源提交);两轮审查修复:cygpath file-URL(Windows Chrome `file:///$(cygpath -m "$SVG")`,be39d4c)+ iconutil macOS 守卫(非 macOS 跳过 icns + CI 断言仅 macOS,7224890);合并 afbfaea;若宿主产出原始 Gemini SVG 可经新 rant 替换) ✅ > - stop-emrg EMRG-tree-only kill (#689 宿主 rant 2026-08-11T18:56:58 修正 #683:step 4 按路径前缀杀 bundled git 误杀宿主 Git Bash sh/vim——vim 未存盘 + 安装器中止;初版修正=ParentProcessId 祖先回溯,**review ❌**:祖先回溯无法解析**已死父进程**(#683 主场景正是 daemon 已死后的孤儿,查父返回 $null → 不杀 → DeleteFile code 5 回归);终版=step 0 杀任何进程前**向下 BFS 快照** EMRG 树(根=emrgd.pid daemon PID + EMRG.exe + python.exe -m emrg TUI 排除 emrg.server)→ %TEMP%\emrg-stop-pids.txt;step 4 只杀快照集内仍在 install\git\ 下的 PID;:verify 只查快照集存活 → 宿主 sh/vim 永不被碰(不在快照集),已死 daemon 的孤儿因生前已记录仍被抓;测试重锚定快照语义(Set-Content/$ids -contains/清理);合并 888efb0) ✅ > - Packaging gen-assets doc (#690 并行周期 doc-only:Agent.md + DEVELOPMENT.md 新增 Packaging 段——图标产物 gitignore(仅 icon.svg 提交,#688),本地安装包构建需先 `bash packaging/gen-assets.sh`(幂等;渲染优先级 rsvg-convert → Chrome headless → sips;.icns 需 macOS iconutil 否则跳过带提示);#467/#468 宿主对称原则(CI 构建时生成 + 宿主本地自检文档化);合并 6b8fff3) ✅ +> - stop-git.ps1 EMRG-tree snapshot kill (#692 宿主 rant 2026-08-11T19:47:44 修正 #689:`Get-CimInstance Win32_Process` 祖先回溯对**已死 daemon 的孤儿 git 进程**解析失败(查父返回 $null → 不杀 → Inno DeleteFile code 5 回归)——改**向下 BFS 快照**:step 0 杀任何进程前从 EMRG 根(emrgd.pid daemon + EMRG.exe + `python.exe -m emrg` TUI 排除 emrg.server)BFS 整棵树写 `%TEMP%\emrg-stop-pids.txt`;step 4 只杀快照集内仍占 `install\git\` 的 PID;:verify 只查快照集存活;宿主 Git Bash sh/vim 永不被碰(不在快照集)且孤儿进程生前已入快照仍被抓;R125 同族(Inno 不干涉宿主工具);另 README 吸引力文案(rant 19:50:37);合并 5d57d60) ✅ +> - TUI cursor-left CLEAR_TO_EOL fix + status bar reorg (#693 宿主 rants 2026-08-11T19:59:09/20:02:43:①光标左移右侧字符消失——write_frame 尾部 `row_dirty_end`+`CLEAR_TO_EOL`(\x1b[0K) 行尾清理把光标右侧未变字符整行清掉(diff 只含光标附近 2 格);修复=**整块删除** row_dirty_end 声明/dirty_end 计算/尾部 CUP+EL;SPACER_TAIL 残影由 WIDE 字 2 列天然覆盖 + 行内收缩(prev 字符→curr 空)走正常分支写空格;review ❌ 纠偏=显式 spacer 空格写入有 off-by-one(WIDE 后光标在 x+2 非 x+1,空格落偏右移字符)→ 彻底删除 elif 块(7296269);②状态栏重组=左段 bold magenta `title (sid[:8]) [model] [1:23] · 3 msgs · ~/proj`(模型独立 `current_model` 跟踪、耗时纯文本 [m:ss] 去 ⏱、消息数+目录走 `left_extra`)、中段 dim 仅 `{hid} @ {host}`、右段移除(`_update_right()`→`_update_left_extra()`);/model 切换刷新左段;+8 测试 695→703(test_output +3 / test_buffer +1 / 新 test_status_line +4),GUI 212;合并 2d12ad8) ✅ #### 2.2 Latest GitHub code changes From a300e6a075b3fbc020e04abba8fbd77aa7d62887 Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Tue, 11 Aug 2026 20:41:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?emrg:=20quick-ref=20#693=20=E2=80=94=20drop?= =?UTF-8?q?=20literal=20{hid}/{host}=20braces=20(evolution=20prompt=20plac?= =?UTF-8?q?eholder=20guard)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emrg/server/evolution_prompt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emrg/server/evolution_prompt.md b/emrg/server/evolution_prompt.md index dbc110e3..043dbd95 100644 --- a/emrg/server/evolution_prompt.md +++ b/emrg/server/evolution_prompt.md @@ -425,7 +425,7 @@ When reading rants, follow these rules: > - stop-emrg EMRG-tree-only kill (#689 宿主 rant 2026-08-11T18:56:58 修正 #683:step 4 按路径前缀杀 bundled git 误杀宿主 Git Bash sh/vim——vim 未存盘 + 安装器中止;初版修正=ParentProcessId 祖先回溯,**review ❌**:祖先回溯无法解析**已死父进程**(#683 主场景正是 daemon 已死后的孤儿,查父返回 $null → 不杀 → DeleteFile code 5 回归);终版=step 0 杀任何进程前**向下 BFS 快照** EMRG 树(根=emrgd.pid daemon PID + EMRG.exe + python.exe -m emrg TUI 排除 emrg.server)→ %TEMP%\emrg-stop-pids.txt;step 4 只杀快照集内仍在 install\git\ 下的 PID;:verify 只查快照集存活 → 宿主 sh/vim 永不被碰(不在快照集),已死 daemon 的孤儿因生前已记录仍被抓;测试重锚定快照语义(Set-Content/$ids -contains/清理);合并 888efb0) ✅ > - Packaging gen-assets doc (#690 并行周期 doc-only:Agent.md + DEVELOPMENT.md 新增 Packaging 段——图标产物 gitignore(仅 icon.svg 提交,#688),本地安装包构建需先 `bash packaging/gen-assets.sh`(幂等;渲染优先级 rsvg-convert → Chrome headless → sips;.icns 需 macOS iconutil 否则跳过带提示);#467/#468 宿主对称原则(CI 构建时生成 + 宿主本地自检文档化);合并 6b8fff3) ✅ > - stop-git.ps1 EMRG-tree snapshot kill (#692 宿主 rant 2026-08-11T19:47:44 修正 #689:`Get-CimInstance Win32_Process` 祖先回溯对**已死 daemon 的孤儿 git 进程**解析失败(查父返回 $null → 不杀 → Inno DeleteFile code 5 回归)——改**向下 BFS 快照**:step 0 杀任何进程前从 EMRG 根(emrgd.pid daemon + EMRG.exe + `python.exe -m emrg` TUI 排除 emrg.server)BFS 整棵树写 `%TEMP%\emrg-stop-pids.txt`;step 4 只杀快照集内仍占 `install\git\` 的 PID;:verify 只查快照集存活;宿主 Git Bash sh/vim 永不被碰(不在快照集)且孤儿进程生前已入快照仍被抓;R125 同族(Inno 不干涉宿主工具);另 README 吸引力文案(rant 19:50:37);合并 5d57d60) ✅ -> - TUI cursor-left CLEAR_TO_EOL fix + status bar reorg (#693 宿主 rants 2026-08-11T19:59:09/20:02:43:①光标左移右侧字符消失——write_frame 尾部 `row_dirty_end`+`CLEAR_TO_EOL`(\x1b[0K) 行尾清理把光标右侧未变字符整行清掉(diff 只含光标附近 2 格);修复=**整块删除** row_dirty_end 声明/dirty_end 计算/尾部 CUP+EL;SPACER_TAIL 残影由 WIDE 字 2 列天然覆盖 + 行内收缩(prev 字符→curr 空)走正常分支写空格;review ❌ 纠偏=显式 spacer 空格写入有 off-by-one(WIDE 后光标在 x+2 非 x+1,空格落偏右移字符)→ 彻底删除 elif 块(7296269);②状态栏重组=左段 bold magenta `title (sid[:8]) [model] [1:23] · 3 msgs · ~/proj`(模型独立 `current_model` 跟踪、耗时纯文本 [m:ss] 去 ⏱、消息数+目录走 `left_extra`)、中段 dim 仅 `{hid} @ {host}`、右段移除(`_update_right()`→`_update_left_extra()`);/model 切换刷新左段;+8 测试 695→703(test_output +3 / test_buffer +1 / 新 test_status_line +4),GUI 212;合并 2d12ad8) ✅ +> - TUI cursor-left CLEAR_TO_EOL fix + status bar reorg (#693 宿主 rants 2026-08-11T19:59:09/20:02:43:①光标左移右侧字符消失——write_frame 尾部 `row_dirty_end`+`CLEAR_TO_EOL`(\x1b[0K) 行尾清理把光标右侧未变字符整行清掉(diff 只含光标附近 2 格);修复=**整块删除** row_dirty_end 声明/dirty_end 计算/尾部 CUP+EL;SPACER_TAIL 残影由 WIDE 字 2 列天然覆盖 + 行内收缩(prev 字符→curr 空)走正常分支写空格;review ❌ 纠偏=显式 spacer 空格写入有 off-by-one(WIDE 后光标在 x+2 非 x+1,空格落偏右移字符)→ 彻底删除 elif 块(7296269);②状态栏重组=左段 bold magenta `title (sid[:8]) [model] [1:23] · 3 msgs · ~/proj`(模型独立 `current_model` 跟踪、耗时纯文本 [m:ss] 去 ⏱、消息数+目录走 `left_extra`)、中段 dim 仅 `id @ host`(服务端 ID + 主机名)、右段移除(`_update_right()`→`_update_left_extra()`);/model 切换刷新左段;+8 测试 695→703(test_output +3 / test_buffer +1 / 新 test_status_line +4),GUI 212;合并 2d12ad8) ✅ #### 2.2 Latest GitHub code changes