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 numberDiff line numberDiff line change
Expand Up@@ -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 仅 `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

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
emrg: evolution_prompt quick-ref for #692/#693 (stop-git snapshot + TUI cursor/status-bar) by argszero · Pull Request #694 · argszero/emrg · GitHub
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 numberDiff line numberDiff line change
Expand Up@@ -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 仅 `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

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: evolution_prompt quick-ref for #692/#693 (stop-git snapshot + TUI cursor/status-bar) by argszero · Pull Request #694 · argszero/emrg · GitHub
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 numberDiff line numberDiff line change
Expand Up@@ -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 仅 `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

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: evolution_prompt quick-ref for #692/#693 (stop-git snapshot + TUI cursor/status-bar) by argszero · Pull Request #694 · argszero/emrg · GitHub
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 numberDiff line numberDiff line change
Expand Up@@ -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 仅 `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

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' emrg: evolution_prompt quick-ref for #692/#693 (stop-git snapshot + TUI cursor/status-bar) by argszero · Pull Request #694 · argszero/emrg · GitHub
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 numberDiff line numberDiff line change
Expand Up@@ -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 仅 `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

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: evolution_prompt quick-ref for #692/#693 (stop-git snapshot + TUI cursor/status-bar) by argszero · Pull Request #694 · argszero/emrg · GitHub
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 numberDiff line numberDiff line change
Expand Up@@ -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 仅 `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

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); emrg: evolution_prompt quick-ref for #692/#693 (stop-git snapshot + TUI cursor/status-bar) by argszero · Pull Request #694 · argszero/emrg · GitHub
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 numberDiff line numberDiff line change
Expand Up@@ -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 仅 `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

Expand Down
Loading