Skip to content

setup-hooks --platform=codex 会覆盖已有同事件 hook,而不是安全并存 #539

@rendigua

Description

@rendigua

问题概述

在已有 .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

复现步骤

  1. 先准备一个已有 hook 的 .codex/hooks.json,例如让 Stop 指向一个现有脚本
  2. 执行:
evolver setup-hooks --platform=codex

实际行为

安装后:

  1. 原来 Stop 事件下的 hook 配置会被替换
  2. 原有脚本文件本身可能还在,但 hooks.json 里的事件配置已经改成 Evolver 的脚本
  3. 没有明确的并存策略,也没有明显的覆盖提醒

期望行为

更理想的行为至少应该满足其中之一:

  1. 保留已有 hook,并提供安全并存策略
  2. 如果必须覆盖,应在安装时明确提示将覆盖已有同事件 hook
  3. 提供更清晰的 merge / append 行为说明

为什么这个问题重要

这会影响已有 Codex 工作流的稳定性,尤其是在用户已经配置了自己的 Stop / SessionStart / PostToolUse hook 时,很容易在不知情的情况下被覆盖。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions