问题概述
在已有 .codex/hooks.json 的情况下执行:
evolver setup-hooks --platform=codex
如果当前已经存在同事件的 hook(例如 Stop),官方安装会直接把该事件的原有 hook 配置替换掉,而不是保留或并存。
环境
- 操作系统:Windows
- 宿主:Codex
- node:
v22.15.0
- npm:
11.6.2
- git:
2.53.0.windows.2
- 包版本:
@evomap/evolver@1.84.1
复现步骤
- 先准备一个已有 hook 的
.codex/hooks.json,例如让 Stop 指向一个现有脚本
- 执行:
evolver setup-hooks --platform=codex
实际行为
安装后:
- 原来
Stop 事件下的 hook 配置会被替换
- 原有脚本文件本身可能还在,但
hooks.json 里的事件配置已经改成 Evolver 的脚本
- 没有明确的并存策略,也没有明显的覆盖提醒
期望行为
更理想的行为至少应该满足其中之一:
- 保留已有 hook,并提供安全并存策略
- 如果必须覆盖,应在安装时明确提示将覆盖已有同事件 hook
- 提供更清晰的 merge / append 行为说明
为什么这个问题重要
这会影响已有 Codex 工作流的稳定性,尤其是在用户已经配置了自己的 Stop / SessionStart / PostToolUse hook 时,很容易在不知情的情况下被覆盖。
问题概述
在已有
.codex/hooks.json的情况下执行:如果当前已经存在同事件的 hook(例如
Stop),官方安装会直接把该事件的原有 hook 配置替换掉,而不是保留或并存。环境
v22.15.011.6.22.53.0.windows.2@evomap/evolver@1.84.1复现步骤
.codex/hooks.json,例如让Stop指向一个现有脚本实际行为
安装后:
Stop事件下的 hook 配置会被替换hooks.json里的事件配置已经改成 Evolver 的脚本期望行为
更理想的行为至少应该满足其中之一:
为什么这个问题重要
这会影响已有 Codex 工作流的稳定性,尤其是在用户已经配置了自己的
Stop / SessionStart / PostToolUsehook 时,很容易在不知情的情况下被覆盖。