Goal
windows-advisory workflow 在 dev 上首次启用以来连续 9 次全红,advisory 信号噪声过大无法读。目标:把 Windows 不兼容的测试 fixture 一次性清干净,让 advisory 在没有真实回归时保持绿色。
Scope
In scope:
packages/opencode/test/tool/agent-rename.test.ts SELF_PATH 路径分隔符自匹配 bug(17 条 sweep fail 一次解)
packages/opencode/test/session/prompt-effect.test.ts 把 withSh("/bin/sh", ...) 改 Shell.acceptable() 或 Windows skip(4 条 timeout)
packages/opencode/test/tool/bash.test.ts env-filter 测试在 PowerShell 5.1 / cmd 下命令构造 quoting bug,改用 stdin / temp file 喂代码(2 条)
packages/opencode/test/server/models-snapshot-fixture.ts prefix 比对前 normalize CRLF,或 .gitattributes 把 models-snapshot.js 强制 LF(2 条)
packages/desktop-electron/src/main/windows-security.test.ts 与 renderer-protocol.test.ts 路径断言改 platform-aware(2 条)
migrateDefaultAgent POSIX 0600 file mode 测试加 win32 skip(1 条)
packages/app primary-mode sweep allowlist 加 context/global-sync/utils.ts(1 条)
packages/desktop-electron/scripts/ci-smoke.test.ts packaged smoke launch context 错误串 Windows 分支补全(1 条)
Out of scope:
- 改产品代码。所有产品行为保持不变,只动测试与 fixture
- 权限路径归一化(单独 issue 跟踪)
- 任何
windows-advisory.yml 本身的结构改动
Relevant files or context
- 失败基线 run:
25303162127,commit 1dfd7a98284deeda0fa78bbb4394ca7c85ac888f,2026-05-04
- 工作流来源:
d6fa1e6de "ci: split Windows advisory checks"
- 相关历史尝试:
9d7d9bb80 "fix(opencode): stabilize windows ci tests"、0a6d33e1f "fix: stabilize embedded server build contract"
- 失败拆解:32 条 fail 中约 30 条为测试 fixture Windows 假设漂移,剩余真 runtime-risk 在另一 issue 单独跟踪
Verification
- 本地针对子集跑通:
bun --cwd packages/opencode test test/tool/agent-rename.test.ts 等
- PR 推上去等
windows-advisory workflow 跑一轮,目标全绿
- 同时 main
ci.yml、desktop-smoke.yml、e2e-artifacts.yml 不能因为这次改动转红
- 不需要 dev:desktop 真机验证,纯测试改动
Execution mode
Agent should investigate and propose a plan first
Goal
windows-advisoryworkflow 在dev上首次启用以来连续 9 次全红,advisory 信号噪声过大无法读。目标:把 Windows 不兼容的测试 fixture 一次性清干净,让 advisory 在没有真实回归时保持绿色。Scope
In scope:
packages/opencode/test/tool/agent-rename.test.tsSELF_PATH 路径分隔符自匹配 bug(17 条 sweep fail 一次解)packages/opencode/test/session/prompt-effect.test.ts把withSh("/bin/sh", ...)改Shell.acceptable()或 Windows skip(4 条 timeout)packages/opencode/test/tool/bash.test.tsenv-filter 测试在 PowerShell 5.1 / cmd 下命令构造 quoting bug,改用 stdin / temp file 喂代码(2 条)packages/opencode/test/server/models-snapshot-fixture.tsprefix 比对前 normalize CRLF,或.gitattributes把models-snapshot.js强制 LF(2 条)packages/desktop-electron/src/main/windows-security.test.ts与renderer-protocol.test.ts路径断言改 platform-aware(2 条)migrateDefaultAgentPOSIX 0600 file mode 测试加 win32 skip(1 条)packages/appprimary-mode sweep allowlist 加context/global-sync/utils.ts(1 条)packages/desktop-electron/scripts/ci-smoke.test.tspackaged smoke launch context 错误串 Windows 分支补全(1 条)Out of scope:
windows-advisory.yml本身的结构改动Relevant files or context
25303162127,commit1dfd7a98284deeda0fa78bbb4394ca7c85ac888f,2026-05-04d6fa1e6de"ci: split Windows advisory checks"9d7d9bb80"fix(opencode): stabilize windows ci tests"、0a6d33e1f"fix: stabilize embedded server build contract"Verification
bun --cwd packages/opencode test test/tool/agent-rename.test.ts等windows-advisoryworkflow 跑一轮,目标全绿ci.yml、desktop-smoke.yml、e2e-artifacts.yml不能因为这次改动转红Execution mode
Agent should investigate and propose a plan first