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
3 changes: 3 additions & 0 deletions emrg/server/evolution_prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,9 @@ When reading rants, follow these rules:
> - 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) ✅
> - GUI workspace panel P2 framework (#664 宿主 rant 2026-08-11T12:20:35 阶段 2 框架层:`#result-resizer` 绝对定位拖拽手柄(不进 #app flex 流 R6-②,防 WebContentsView bounds x 偏移)+ `.dragging` 抑制 width transition(R1-①);折叠(⌘\)保留 40px 窄条(#615)且 **panelWidth 与 collapsed 分离持久化**(两个 localStorage 键,展开恢复拖拽宽度);Tab 栏 = 静态「文件/产物」+ 打开文件 Tab 条(`#result-tabbar`)——`openFileTab/closeFileTab/activateTab`(同路径去重、上限 8 淘汰最旧、可关闭、active 高亮);per-session 容器模式(缺口 5):`openedTabsBySid/artifactsBySid` 状态表 + `switchSession(sid)` 接入 app.js switchSession/newSession + `addToolResult(data, sid)` 按事件 sid 归类;产物卡片(WorkBuddy P1)暂保留至 P3.2 改 write/edit 登记;i18n zh/en 4 键;+5 GUI 测试 188→193;合并 4c71b25) ✅
> - GUI workspace panel P3 file browser + viewer (#665 宿主 rant 2026-08-11T12:20:35 阶段 3 slice 1:新模块 `file-tree.js`——懒加载目录树(根 = 激活会话 projectPath,app.js switchSession/newSession/bindUi 三处 `FileTree.setSession(sid, path)` 接线,openSessions 优先回退 projectDir);目录行点击 → `emrg.listFiles`(P1 daemon)**首次展开拉取 + 缓存**(折叠再展开不重复拉取);文件行点击 → `openFileTab(sid, path)`;查看器基础版 `#result-viewer` pane:`emrg.readFile` 内容转义渲染 `<pre><code>`(per-tab 缓存不重拉)、二进制 → i18n 提示用系统工具、读失败 → 错误提示、头部路径 + 系统工具打开按钮;`openFileTab/closeFileTab` 空 sid 归当前会话桶(对齐 switchSession+setSession 成对接线);i18n zh/en 6 键;+5 GUI 测试 193→198;合并 7c4e953) ✅
> - GUI result-panel per-session artifact isolation (#666 外部贡献 pm25coder:后台会话 `tool_finished` 只入 sid 桶**不渲染激活 pane**(防污染;切回时 `renderArtifacts()` 从桶恢复 DOM,镜像 renderTabbar 模式)——修掉 P2.2 桶化但无条件渲染的缺口;`switchSession`/`init` 走 `renderArtifacts`;+2 GUI 测试(后台只入桶不渲染 / switchSession 按 sid 重渲染恢复);合并 a1d8d8d) ✅

#### 2.2 Latest GitHub code changes

Expand Down
Loading