Why
全量测试中的 PTY 插件环境回归可能在 WebSocket 连接前让被测 shell 退出,导致超时而非验证环境变量。
Scope
httpapi-v2-pty 的插件环境测试使用 sleep 5 保活;生产 attach 拒绝已经退出的 PTY。该测试在全量运行失败,独立运行通过。
Approach
使用输入握手控制被测 shell 生命周期,先连接、读取真实 PTY 输出并核对环境变量,再允许进程退出;避免时间窗口决定结果。
Acceptance
PTY 环境与 WebSocket 回归通过;延迟连接仍能读取完整环境;完整 opencode 测试最终无失败,保留现有退出后不可连接的 API 语义。
Why
全量测试中的 PTY 插件环境回归可能在 WebSocket 连接前让被测 shell 退出,导致超时而非验证环境变量。
Scope
httpapi-v2-pty 的插件环境测试使用 sleep 5 保活;生产 attach 拒绝已经退出的 PTY。该测试在全量运行失败,独立运行通过。
Approach
使用输入握手控制被测 shell 生命周期,先连接、读取真实 PTY 输出并核对环境变量,再允许进程退出;避免时间窗口决定结果。
Acceptance
PTY 环境与 WebSocket 回归通过;延迟连接仍能读取完整环境;完整 opencode 测试最终无失败,保留现有退出后不可连接的 API 语义。