Skip to content

fix(cli): replace existing runner on start#754

Merged
tiann merged 1 commit into
tiann:mainfrom
junxin367:fix/runner-start-restarts-existing
May 31, 2026
Merged

fix(cli): replace existing runner on start#754
tiann merged 1 commit into
tiann:mainfrom
junxin367:fix/runner-start-restarts-existing

Conversation

@junxin367
Copy link
Copy Markdown
Contributor

变更概述

  • hapi runner start 发现已有 runner 时,先停止旧 runner,再启动新的 detached runner。
  • 停旧 runner 后会等待状态确认;如果旧 runner 没有停掉,会报错退出,不再假装启动成功。
  • 帮助文案同步说明 start 会替换已有 runner,让新参数和环境变量生效。
  • 补充 runner start 回归测试,覆盖有旧 runner 和无旧 runner 两条路径。

原因

旧逻辑会直接 spawn runner start-sync,而 start-sync 发现已有同版本/同身份 runner 后会直接退出。外层 start 只检查“有 runner 在运行”,导致输出 Runner started successfully,但实际仍是旧 runner,新传入的 --workspace-root、环境变量或配置不会生效。

影响范围

  • 影响 hapi runner start 行为:从“如果已有 runner 则沿用”改为“替换已有 runner”。
  • hapi runner stop/status/list/stop-session/logs 不变。
  • 已由 runner 管理的 session 仍沿用现有 runner stop 语义:runner 停止,子 session 保持运行。

验证结果

  • C:\Users\junes\.bun\bin\bun.exe run --cwd cli vitest run src/commands/runner.test.ts
  • C:\Users\junes\.bun\bin\bun.exe run --cwd cli tsc --noEmit
  • git diff --check

风险/回滚

  • 风险:用户重复执行 hapi runner start 会重启 runner,不再静默复用旧 runner。
  • 这是本 PR 的目标行为,用于保证新启动参数/环境一定生效。
  • 回滚方式:revert 本 PR。

Reviewer notes

  • 重点看 start 分支中 stop -> wait stopped -> spawn 的顺序。
  • 测试验证了已有 runner 时先 stopRunner(),并保留 --workspace-root 参数传给新 runner。

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Findings

  • 未发现需要阻断合入的明确问题。

Summary

  • Review mode: initial
  • 已检查 PR 元数据、完整 diff、README.mdAGENTS.mdcli/README.md,以及 runner stop/start 相关实现上下文。未发现本次新增/修改行引入的高置信度 correctness/security/regression 问题。
  • 残余风险:本地环境缺少 bun,无法在当前 runner 里实际执行新增测试;依赖 CI 覆盖 cli/src/commands/runner.test.ts 和 CLI typecheck。

Testing

  • Not run (automation): bun --cwd cli vitest run src/commands/runner.test.ts failed because bun is not installed in this environment.

HAPI Bot

@tiann tiann merged commit 31dd435 into tiann:main May 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants