Repository navigation
Commit d4b55bd
committed
fix(stage1): own-check.ps1 asked the platform to OPEN the candidate, never to run it
Two platforms answered the same question wrong, and both times the platform
was not at fault.
On Linux, `& $rustCore` against a file the loader cannot start returned 0 and
printed `xdg-open: no method available for opening ...`. I read that as a
platform limit and declared the spawn-seam control not-applicable off Windows.
Windows CI then returned 0 with both streams empty, and the job's own cleanup
line terminated an orphaned NOTEPAD.
Same defect, two desktop handlers. PowerShell's call operator does not spawn a
program; it asks the platform to OPEN it, and a file that is not a runnable
image goes to whatever is registered for it. So D3.1's seam could not be
reached anywhere: the try/catch added for review defect 3 was unreachable, and
`own-check.ps1 -Engine rust` with an existing but unrunnable OWEN_RUST_CORE
exited 0 with no findings — a clean bill of health for an analysis that never
happened, which is worse than any wrong exit code.
`Invoke-CandidateProcess` starts the image with UseShellExecute = $false and
nothing redirected, so the child inherits this process's streams and its
output still arrives live. The start either succeeds or throws, and the throw
is what the existing catch was written for. Measured on Linux: exit 2 with the
"could not be started" diagnostic, where the same input previously exited 0.
The compare path was already correct — it goes through Invoke-CapturedProcess,
which has always set UseShellExecute = $false. Only the direct Rust path
opened its candidate.
Consequences for the evidence, both of which cut against my earlier reading:
The control is required on BOTH platforms and the not-applicable is gone. The
seam is answerable anywhere now, because it is a real spawn. The N/A I added
one commit ago was describing a bug in this script, not a property of Linux —
and it was reasoned from a measurement I trusted too quickly.
P07 is the mutation, and it is the shipped code: back to the call operator. It
belongs in the Windows campaign with the rest of this surface, where a
PowerShell catcher observes it natively.
Also kept: the near-miss. This control PASSED on a developer container with no
xdg-open installed, because the invocation failed there and looked exactly
like a refusal. A verdict that turns on which desktop helper happens to be
installed is not measuring the contract.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYLNQy6tLXqsV1CbuNqsSb1 parent a565c00 commit d4b55bd
3 files changed
Lines changed: 70 additions & 24 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
100 | 111 | | |
101 | 112 | | |
102 | 113 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
83 | 120 | | |
84 | 121 | | |
85 | 122 | | |
| |||
212 | 249 | | |
213 | 250 | | |
214 | 251 | | |
215 | | - | |
216 | | - | |
| 252 | + | |
217 | 253 | | |
218 | 254 | | |
219 | 255 | | |
220 | 256 | | |
221 | 257 | | |
222 | | - | |
223 | | - | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
224 | 261 | | |
225 | 262 | | |
226 | 263 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
220 | 220 | | |
221 | 221 | | |
222 | 222 | | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
223 | 240 | | |
224 | 241 | | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | 242 | | |
245 | 243 | | |
246 | 244 | | |
| |||
0 commit comments