From 390cc145146e1b7fa42b94ac4ab7fd39da15f3ee Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Tue, 11 Aug 2026 13:06:51 +0800 Subject: [PATCH] emrg: evolution_prompt quick-ref for #660 (GUI update prompt), #661 (workspace panel P1), #662 (README philosophy block) --- emrg/server/evolution_prompt.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/emrg/server/evolution_prompt.md b/emrg/server/evolution_prompt.md index 9cda9d1..f236475 100644 --- a/emrg/server/evolution_prompt.md +++ b/emrg/server/evolution_prompt.md @@ -404,6 +404,9 @@ When reading rants, follow these rules: > - GUI packaged local-module whitelist guard (#651 宿主 rant 2026-08-10T20:37:08:v0.2.21 Windows 打包版启动崩溃 `Cannot find module './conn-manager'`——main.js:15/16 require 的 **conn-manager.js 和 gui-state.js 都不在 electron-builder `files` 白名单**(多会话 P2/P4 新增模块忘更新,与 #612 vendor 同根因类);修复=①package.json build.files 加 `conn-manager.js` + `gui-state.js`;②test/build-config.test.js 新增**通用守卫**:扫描 main.js/preload.js 每个本地 `require("./x")` 断言被 files 白名单覆盖(支持 `x.js` 与 `dir/**` 形态;正反两态验证——删白名单项即红并命名缺失模块)——**#612/#651 整个"新增模块忘加白名单"类闭合**;GUI 178→179(build-config 3→4)三文档同步;验证=GUI 179/179 ✓ pytest 681 ✓ doc guard 3/3 ✓;打包版自 v0.2.22 起修复) ✅ > - Mid-turn queue injection P1 (#655 宿主 rant 2026-08-10T21:55:37:tool loop 进行中发新消息 → **daemon 排队注入**(对齐 codex steer_input)——busy 时新消息入 per-session FIFO 队列(`_session_pending`),当前 round(LLM 请求+全部工具执行)结束后、下一轮 LLM 请求前注入;**不打断工具执行、不丢消息**;busy 分支不再回 "session busy" error → `task_queued`(含 position);注入走 `_inject_pending_messages`(原子 pop 防并发 append 丢失 + `append_message` 持久化保 auto-compact + `steer_committed` 广播);round 预算=注入轮不消耗(stop/Case3/循环用尽均先重查 pending 再 return);wrapper finally:正常结束 → `queued_requeue`(request_ids,客户端自动重发)、cancel/异常/clear/delete → `queued_cancelled`(cancel_event 判定防误重发);Ask mode 注入轮空工具集;clear/delete_session 清队列;协议帧 4 个 daemon→client 广播(P2 GUI / P3 TUI 客户端侧后续 rant);pytest 681→687(+7 e2e)、GUI 179 不变;合并 535efd2) ✅ > - GUI multi-session deviations B1-B3 (#656 宿主 rant 2026-08-10T21:59:11:v0.2.22 实测三偏差——①B1 侧边栏"+ 新对话"按钮 + ⌘N 直接新建不弹项目列表(无法选项目/新建项目)→ 改绑 `Dialogs.showNewSessionDialog()`(既有 P5 slice 2 弹窗:项目活跃排序点选新建 / 新建项目按钮);②B2 侧边栏无"打开会话"入口(仅 /open 命令可达两步弹窗)→ 新增 `#open-chat-btn` ghost 按钮 → `Dialogs.showOpenSessionDialog()`(项目→会话)+ i18n zh/en `sidebar.openChat`/`openChatTitle` + CSS `.open-chat-btn`;③B3 切换会话草稿丢失(容器 per-session 但输入框全局单例)→ `state.drafts: Map` + saveDraft/restoreDraft:switchSession 离开前存旧 sid、切后恢复新 sid;newSession 存旧+新会话空草稿;sendMessage 发送成功 delete 该 sid 草稿;restore 重置 auto-resize 高度;回归安全(打开弹窗内"+ 新建会话…"入口与无 projectPath 兜底路径 deleteSession/closeOpenSession→newSession 不动);GUI 179→183(+4 renderer.smoke:B1 按钮弹窗不直建 / B2 入口弹窗 / B3 草稿保存恢复 / B3 发送清除+新建空草稿)三文档同步;合并 9e907aa) ✅ +> - GUI proactive update prompt (#660 宿主 rant 2026-08-11T09:18:16:GUI 启动主动检查新版本 + 设置页手动检查按钮——boot() 成功路径调 refreshUpdateCheck(幂等 prompted_version 只提示一次,对齐 TUI 启动横幅;daemon 未就绪静默失败);设置页 #about-update 行旁新增"检查更新"按钮 → update_check 消息加 `force:true` → daemon 立即 `run_update_check_once()` 刷新缓存再返回(不再只读 TTL 缓存);i18n zh/en `settings.checkUpdate`/`settings.checkingUpdate`;测试 GUI 187→188;合并 e5edaaf) ✅ +> - GUI workspace panel P1 (#661 宿主 rant 2026-08-11T12:20:35 阶段 1 数据层:daemon `list_files`→`files_list`(目录在前按名排序对齐 ReadTool/单目录 5000 条上限 + `truncated`/绝对路径校验相对拒绝/符号链接不展开归 file/错误返回 error 不崩溃)+ `read_file`→`file_content`(UTF-8 文本/1MB 上限 error 提示用系统工具/UnicodeDecodeError→`binary:true` content 空不走 base64/start_line+line_limit 分页显式 limit 上限 2000);GUI RESPONSE_TYPES 加 `list_files:"files_list"`/`read_file:"file_content"` + `_classify` list_result 白名单加 files_list(防 pending 超时迟到帧)+ preload `listFiles`/`readFile` + main.js `emrg:listFiles`/`emrg:readFile` IPC(requireConn 10s 当前会话连接天然认证);+6 pytest e2e TestWSWorkspacePanel(混排排序/相对拒绝/符号链接不展开/5000 截断/文本+分页/二进制+1MB)+1 build-config(preload API 存在性);pytest 688→694、GUI 187→188;合并 a83638b) ✅ +> - README philosophy intro block (#662 宿主 rant 2026-08-11T12:27:00:MANIFESTO 引语后追加双语理念对偶句——EN "Everyone is a product manager — every rant is a ticket for the next release / Everyone is a host of silicon life — what you run is a digital organism that evolves with you" + ZH "人人都是产品经理——你的每一条吐槽,都是下一版的需求单 / 人人都是硅基生命的宿主——你运行的,是一个与你共生进化的数字生命";PM=需求主权民主化对应 MANIFESTO 第三条【需求即变异】、Host=共生对应第六章【宿主权利】;MANIFESTO.md 零改动、顶部标语不变、纯文档无测试变更;合并 06ca9b1) ✅ #### 2.2 Latest GitHub code changes