Commit 214220c
committed
fix: an unreadable own label refuses the launch instead of falling through
`find_release` gave the provider's own `<provider>/…` token the last word, but only
when that token parsed. When it did not, the loop fell through and kept scanning, so
any other release in the banner could stand in for the one the provider had just
named. `omp/18.1.0-rc1 18.0.9` admitted on the stray `18.0.9` and launched a provider
that reported itself as an unverified 18.1 pre-release — the exact outcome the
function's own doc comment promises to prevent.
The label now decides outright: if what the provider named cannot be parsed, the
answer is `None` and the caller fails closed. Both shipped banners are unaffected,
which was checked rather than assumed — omp prints `omp/18.0.11`, which parses, and
opencode prints a bare `1.18.25`, which never enters the labelled branch at all.
Latent today because the real binaries print one token each, but DQ-OMP-5 is open on
precisely the update banner that would add a second one, and the exact-version gate
that used to mask this is gone: keying on the minor means a stray token only has to
land in an admitted series, not match a version exactly.
Found by independent verification of #370 as mutation S6: deleting the fall-through
left the suite byte-identical, so nothing asserted it. Two tests now do, one on the
parser and one driving the production gate through a fake provider. Both go red under
S6 in either shape — restoring the `continue`, or deleting the labelled branch
outright.
agent-identity: dev3.dotfiles.omp.admission-18-0-9.worker
agent-persona: worker
agent-supervisor: dev3.dotfiles-lead
agent-tool: Claude Code
agent-tool-version: 2.1.251
agent-runtime: Claude Code 2.1.251
tooling-profile: dotfiles@6048b771 parent c4d6f7a commit 214220c
3 files changed
Lines changed: 59 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
56 | 62 | | |
57 | 63 | | |
58 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
75 | 79 | | |
76 | 80 | | |
77 | 81 | | |
78 | 82 | | |
79 | 83 | | |
80 | 84 | | |
81 | 85 | | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
87 | 90 | | |
88 | 91 | | |
89 | 92 | | |
| |||
193 | 196 | | |
194 | 197 | | |
195 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
196 | 222 | | |
197 | 223 | | |
198 | 224 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
388 | 388 | | |
389 | 389 | | |
390 | 390 | | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
391 | 409 | | |
392 | 410 | | |
393 | 411 | | |
| |||
0 commit comments