dsh-failure-lens — distinguish Windows sandbox spawn EPERM from test assertion failures #3193
ArmyWas
started this conversation in
Show Your Plugins!
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Project: https://github.com/ArmyWas/dsh-failure-lens
Release: https://github.com/ArmyWas/dsh-failure-lens/releases/tag/v0.1.1
The real pain
While dogfooding
dsh-plugin-reduceron Windows, I rannpm testinside a normal Harness workspace-write sandbox. Six test files were shown as failed, but no test body had started: Node/esbuild was blocked while spawning a child process with piped stdio.The durable event was a
tool/resultwithisError: false, a non-zero exit code, and repeated stacks containing all four markers:Error: spawn EPERMcode: 'EPERM'syscall: 'spawn'node:internal/child_processThat presentation makes an infrastructure boundary easy to misread as broken test assertions.
What the plugin does
dsh-failure-lenskeeps the original tool result and adds a separate Conversation Node immediately beside it:This is a deterministic read-only explanation, not a workaround for the sandbox restriction. It makes no model call, writes no session state, sends no telemetry, auto-approves nothing, does not patch the DOM, and does not hide or duplicate the raw output.
Why this is not a duplicate
dsh-fail-loggeris adjacent but records thrown failures into a long-term skill and explicitly excludes non-zero shell exits. This observed result isisError: false. Failure Lens writes no skill and only explains this four-condition signature in the current conversation.Harness integration and verification
conversationEvents.register,slots.inject('conversation.chat.node', ...), andlocale.register.dsh.clientlazy-CJS bundle plusdsh.bundle.patchprofile integration.spawn EPERMresult.Maintainer feedback requested
中文摘要
这是一个来自真实 Harness 使用痛点的只读 Web 插件:Windows 沙箱阻止 Node 子进程启动时,界面可能把所有测试文件显示为失败,让用户误以为测试断言坏了。插件只有在四项高置信证据同时出现时,才在原始工具结果旁增加“Harness 沙箱限制”提示,并明确“测试根本没有启动”。
它不绕过沙箱、不自动审批、不调用模型、不写日志、不做 DOM 补丁。已完成 32 项测试、Node 22/24 CI、真实 Web profile 安装回放,以及 GitHub Release 的全新环境安装验证。希望官方反馈:这一能力更适合继续作为窄插件,还是在收集更多证据后进入官方会话/沙箱 UI。
All reactions