From e949a13dfb8016a9a8352bce1dda3e23e5e7b541 Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Thu, 13 Aug 2026 15:15:13 +0800 Subject: [PATCH] =?UTF-8?q?emrg:=20evolution=5Fprompt=20quick-ref=20?= =?UTF-8?q?=E2=80=94=20add=20#725/#727/#728/#729/#730/#731=20entries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emrg/server/evolution_prompt.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/emrg/server/evolution_prompt.md b/emrg/server/evolution_prompt.md index 6737b9b..7c2edac 100644 --- a/emrg/server/evolution_prompt.md +++ b/emrg/server/evolution_prompt.md @@ -442,6 +442,12 @@ When reading rants, follow these rules: > - Task handler generalization P1 (#709 宿主 rant 2026-08-12T18:14:46,被 18:23:15 全面设计取代:EvolutionHandler→TaskHandler 类改名(40 refs)+ workspace 自愈特判泛化(`_repo_configured` = 有 repo 配置即自愈 clone/对齐,不再特判 emrg 项目)+ `_resolve_task_template` 模板查找 helper(内置 TASK_TEMPLATES → ~/.emrg/task-templates/.md → evolution_prompt.md 兜底 + 告警);纯重构行为不变,pytest 730→736;合并 f7e8671) ✅ > - Task/template CRUD + hot reload P2 (#710 宿主 rant 2026-08-12T18:23:15:daemon 任务管理能力——`task_create/update/delete` + `task_template_create/list/update/delete` 命令(task_result/templates_list/template_result 帧);存储 `~/.emrg/tasks.yml`(扩展 description/config.repo)+ `~/.emrg/task-templates/.md`(原子 tmp+replace 写);校验=name `^[a-z0-9][a-z0-9-]*$` ≤32、type 内置或已存在自定义、project 必须在 projects.yml、interval ≥60、内置类型/模板只读拒绝、删除被任务引用的自定义类型拒绝(错误带任务数);`TaskScheduler.apply_tasks()` 热重载(原子写 → 与运行 handler 签名 diff → 增删重启,幂等);未知/自定义类型不再静默跳过——以用户模板 → evolution_prompt.md 兜底启动为 TaskHandler;+8 测试 736→744;合并 be574d5) ✅ > - GUI task/template management P3 (#711 宿主 rant 2026-08-12T18:23:15 收官:设置对话框「定时任务」区——任务列表(名称/类型/项目/间隔/启用 + 触发/编辑/删除)、行内新建/编辑表单(类型下拉含自定义、项目下拉仅注册项目、间隔 ≥60 客户端+daemon 双校验、名称编辑只读)、自定义类型管理(内置只读无操作按钮、自定义编辑/删除/新增带提示词模板 textarea);IPC 7 个 handler(main.js+preload.js)+ RESPONSE_TYPES +7(task_result/templates_list/template_result——缺失则 sendCommandAndWait 回退命令名 → 8s 超时假失败);i18n 26 键 zh/en;6 个宿主拍板点全部落地;renderer.smoke +3 + daemon_client +1 → GUI 225→229;合并 b8d4817) ✅ +> - Windows pytest matrix in CI (#725 v0.2.29 CI 缺口:Windows pytest 此前只在 tag 触发的 Build Release 跑(test.yml 仅 ubuntu)——FakeGitRun git.EXE 大小写 bug(#723)等 Windows-only 测试回归要到发版构建才暴露;修复=test.yml 新增 test-windows job(windows-2025 + astral-sh/setup-uv python 3.13 + uv sync + uv run pytest tests/ -v),每个 PR 都在 Windows 上跑 pytest 门禁;合并 1be1e34) ✅ +> - Installer stop-emrg output on failure (#727 宿主 rant 2026-08-13T09:24:37:安装器失败时宿主只看到 exit 1 无任何原因(R125 家族);修复=make-installer.sh .iss [Code] 捕获 stop-emrg.cmd 输出并在失败时显示给宿主(FileExists 守卫 + 2000 字符截断),不再静默失败;合并 9599852) ✅ +> - Packaged *.cmd pure CRLF (#728 宿主 rant 2026-08-13T09:44:32:打包版 .cmd 因 LF 行尾在 cmd.exe 下行为异常(三弹窗根因家族);修复=build-runtime.sh + build-release.yml 对打包运行时全部 *.cmd 强制纯 CRLF 转换 + 测试断言;合并 2b2e857) ✅ +> - stop-emrg.cmd v2 host-verified (#729 宿主 rants 2026-08-13T09:56:47/10:00:33:安装器 exit 1 最终修复——stop-emrg.cmd 重写(124 行,83+/72-),Windows 真机验证通过(EMRG 树 BFS 快照杀 + 宿主工具不碰 + :verify 只查快照集);合并 eb38234) ✅ +> - Release v0.2.30 (#730 宿主 rant 2026-08-13T10:28:24:master 自 v0.2.29 (b3a668d) 以来 8 commits / 8 PRs(#722-#729),宿主确认发布 v0.2.30(Windows 安装器 exit-1 最终修复版);版本号 0.2.29→0.2.30 同步 7 files / 8 refs(emrg/__init__.py、pyproject.toml、uv.lock、gui/package.json、gui/package-lock.json×2、build-runtime.sh、make-installer.sh);Build Release v0.2.30 成功(31663482261,#731 iscc gate 修复后 4 平台全过 + release job),7 assets(含 Windows zip),latest=v0.2.30,发布 03:25:18Z;合并 f5d7f47;What's new=Windows 安装器 exit-1 修复链 #727/#728/#729 + CRLF 根因 #728 + iscc gate #731 + Windows pytest 门禁 #725) ✅ +> - iscc compile gate (#731 v0.2.30 Build Release 31661378619 在 windows 'Make installer' 步骤失败——iscc 拒绝 emrg.iss [Code]:'Invalid number of parameters' on LoadStringFromFile(LogFile);根因=Inno Pascal Script API 是 2 参 out-arg 形式(LoadStringFromFile(FileName; var S: AnsiString)),#727 的日志浮出代码调了不存在的 1 参 string-return 形式;Test 工作流从不编译 .iss → 只在 tag-push Build Release 暴露(v0.2.7 教训重现);修复=①make-installer.sh 改 2 参 out-param 形式 + 测试断言 2 参正态/1 参负态;②test.yml Windows job 新增 iscc compile gate(Test 阶段即编译 .iss,heredoc 反引号/shellcheck/icon.ico 占位/AnsiString var 参全修);合并 ca367ed) ✅ > - GUI file-browser scroll + root collapse fix (#733 宿主 rants 2026-08-13T12:46/12:47:①`.result-files` 只有 overflow-y:auto 没有 flex:1/min-height:0 → flex 子项高度随内容增长永不压缩进 #result-panel 容器,overflow 永不触发,内容被 overflow:hidden 裁掉(有滚动条槽但滚不动);修复=`.result-files` 加 flex:1 + min-height:0(与 .result-list 对齐);②file-tree.js render() 手写根目录行漏绑 click 事件(renderEntry 的普通目录行有 toggleDir,根目录永远展开收不起);修复=rootRow 补 addEventListener click → toggleDir(root, kids, ensure(root), 1)(展开态持久 + 图标切换与普通目录一致);renderer.smoke 测试 +28 行;合并 34942e1) ✅ > - workspace-path repair per cycle (#734 宿主 rant 2026-08-13T13:13:20 跟进 #716:scheduler 只在启动时修复 stale emrg 条目(被删的 pytest-temp 目录泄漏进 projects.yml),长活 daemon 中途污染不自愈;修复=TaskHandler 每 cycle `if self._project_name == "emrg": self._ensure_project_entry()` 幂等重写正确路径(list_projects/GUI pickers 保持正确,无需重启);+3 测试;合并 1ea959c) ✅ > - system prompt time + OS (#735 宿主 rant 2026-08-13T14:01:46:agent system prompt 增加当前时间 + 操作系统,避免使用错误的命令/路径分隔符——system.j2 在 Working directory 前渲染 **Current time**(tz-aware 本地 ISO 秒)+ **Operating system**(platform.system + platform.platform),Jinja2 条件门控;合并 4e8607a) ✅