Repository navigation
Conversation
|
感谢细致的实现,PID 复用和句柄持有的处理思路很好。有一点需要澄清:main 已经在 commands.rs 的多开停止路径上调用 terminate_verified_codex_instance / terminate_verified_worker,所以本 PR 合入后 Windows 多开停止会立即从「结束根进程」变成「结束整棵树并同步等待最多 8 秒」,端口唯一监听的检查也被移除,身份冲突时由 Ok(false) 加诊断日志变成 Err(调用方会忽略这个错误,诊断日志就丢了)。 |
2ed46f9 to
8d17e18
Compare
|
感谢 rebase!上次提到的几点似乎还没落实:请在描述里写明合入后 Windows 多开停止会从结束根进程变成结束整棵树并同步等待(最多约 8 秒),且不再检查端口唯一监听;身份冲突时请保留跳过的诊断日志(调用方会忽略 Err);暂无调用者的公开 API 建议移到真正接入的 PR;并说明 crashpad-handler 等未收养进程的预期处理方式。谢谢! |
8d17e18 to
f469d1c
Compare
|
已落实这几处:
分支已对齐 main |
f469d1c to
8e017d4
Compare
|
感谢落实,诊断和边界说明都很清楚。还有几处小问题:
合入前我们也会在 Windows 实机跑一次多开停止。谢谢! |
|
五处均已落实:
同时保留并补测停止回执与旧实例状态校准,分支包含 main 最终提交构建另做了独立原生管理器验收:同代已停止记录不再出现在当前实例列表,页面重载不复现;旧代回执和清理失败仍可见。场景整体通过,测试进程树和端口清理完成,原有实例身份未变,未发送模型请求。完整桌面重启和管理器更新续接不作为本 PR 的验收结论。 |
|
五处都看到了,谢谢!不过新加的停止回执校准有个问题:现有 worker 和停止流程都不会写 |
|
已将停止回执校准及对应前端改动完整移出,#2735 现在只保留停止安全边界。移出后 收窄后的分支重新验证:Windows multi_worker 测试 17 项通过,1 项 fixture 入口忽略;前端状态测试 5 项、前端生产构建、管理器 debug 构建及差异检查通过。隔离管理器启动通过,测试进程与端口清理完成,原有实例身份未变。 回执读写闭环已拆为独立草稿 #2784,覆盖管理器停止与原生关闭后的终态写入、失败保留与同代持久化。该草稿依赖本 PR,管理器自身退出策略保持现有行为;本 PR 仅保留停止安全边界。 |
|
收窄后的 diff 看过了,回执校准已经完整移出,macOS 上 这个 PR 改的是 Windows 上结束进程的边界,我们正在准备发布新版本,为避免临发版扩大范围,会在这次发版之后合入。谢谢! |
|
已为 Windows |
Windows 多开停止只处理桌面根进程时,可能留下 Electron 或内置 app-server 后代;单独使用 PID 或端口清理,又可能误结束已复用 PID 的进程或相邻实例。
本 PR 收紧现有多开停止入口的归属核验与停止边界:
范围仅包含停止安全边界,不改变实例列表状态、终态回执或主实例接管流程。
Windows 验证:
cargo test -p codex-plus-core --lib multi_worker --offline:17 项通过,1 项 fixture 入口按设计忽略。覆盖相邻实例、PID 创建身份冲突、短路径、断开的 CDP、并发停止和根进程自然退出。git diff --check通过。原生进程测试使用受控子进程夹具;未将管理器启动检查表述为真实桌面多开停止的端到端验收。macOS 实机验证仍待完成。