Repository navigation
Commit 1b5f726
core: close the small findings the audit listed last
Ten of them, none individually large, and three worth naming because they
could have destroyed something.
recipe fmt -w truncated the file first and filled it afterwards, so a process
ending in between left a recipe at half its length and no copy of what it was.
Every generated file has gone through a temporary name and a rename since the
beginning, and the manifest since earlier today. This is the same thing for
the one file in the tool that is not ours.
A run refused to write over a file under the name it ends up with, and never
looked at the name it writes through. That one is created in a way that
truncates, so a file already sitting there lost its contents in silence. It is
an unlikely name to meet by accident and an easy one to leave behind - a run
killed outright leaves exactly that shape - so the next run into the same
directory would have eaten it.
--size 1e5 quietly meant 100000 bytes while a recipe refuses 1_000 and 0x10
outright, on the grounds that guessing at a spelling is the behaviour that
reader was written to remove. The difference was nobody's decision: it fell
out of ParseFloat being permissive. Sizes now take digits and at most one
decimal point, so 1.5gib is untouched and 1e5 is refused in the same words the
recipe uses.
The rest, in one line each:
- The command in the manifest was joined with spaces, so an argument holding
one arrived as two and the recorded command described a different run.
- tfg generate --json dropped the error from writing to standard output, so a
closed pipe was reported as a success with nothing delivered.
- Progress counted the bytes of files that failed, so the bar claimed bytes
nobody could find.
- classify had no answer for a deadline running out, which falls through to
the ending that means this program broke. Unreachable from the command line
today and reachable from the window that is coming.
- percent multiplied before dividing, which leaves the range of an int64 above
about 92 PB.
- AppendFiller divided by the length of its vocabulary without checking it had
one, and FillRecords would spin without end on a record that added no bytes.
Neither is reachable today and neither is forbidden by the interface, so
both say which mistake it is rather than hanging or panicking anonymously.
- Every CI job now has a ceiling on its time, and the window binary is built.
Nothing built it, so it could stop compiling without a red run.
Not fixed, written down instead: "go test ./internal/<package>/" is green
without running a single test, on seven packages out of seven, because every
guard lives in one package on purpose. Adding empty test files to each would
trade one misleading answer for a wall of noise. See O50.
Seven guards, each seen red first, and fourteen mutations across this batch.
Two mutations were caught wrong: one counted a commented out ceiling as a real
one, and one demanded a ceiling for the triggers under "on:" as though they
were jobs.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent c643851 commit 1b5f726
11 files changed
Lines changed: 424 additions & 7 deletions
File tree
- .github/workflows
- internal
- cli
- core
- engine
- guard
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
24 | 29 | | |
25 | 30 | | |
26 | 31 | | |
| |||
73 | 78 | | |
74 | 79 | | |
75 | 80 | | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
76 | 93 | | |
77 | 94 | | |
78 | 95 | | |
| 96 | + | |
79 | 97 | | |
80 | 98 | | |
81 | 99 | | |
| |||
99 | 117 | | |
100 | 118 | | |
101 | 119 | | |
| 120 | + | |
102 | 121 | | |
103 | 122 | | |
104 | 123 | | |
| |||
126 | 145 | | |
127 | 146 | | |
128 | 147 | | |
| 148 | + | |
129 | 149 | | |
130 | 150 | | |
131 | 151 | | |
| |||
156 | 176 | | |
157 | 177 | | |
158 | 178 | | |
| 179 | + | |
159 | 180 | | |
160 | 181 | | |
161 | 182 | | |
| |||
205 | 226 | | |
206 | 227 | | |
207 | 228 | | |
| 229 | + | |
| 230 | + | |
208 | 231 | | |
209 | 232 | | |
210 | 233 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
91 | 108 | | |
92 | 109 | | |
93 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
233 | 243 | | |
234 | | - | |
235 | | - | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
236 | 257 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
154 | 163 | | |
155 | 164 | | |
156 | 165 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
395 | 395 | | |
396 | 396 | | |
397 | 397 | | |
398 | | - | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
399 | 406 | | |
400 | 407 | | |
401 | 408 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
92 | 93 | | |
93 | 94 | | |
94 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
95 | 101 | | |
96 | | - | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
97 | 106 | | |
| 107 | + | |
| 108 | + | |
98 | 109 | | |
99 | 110 | | |
100 | 111 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
55 | 81 | | |
56 | 82 | | |
57 | 83 | | |
| |||
272 | 298 | | |
273 | 299 | | |
274 | 300 | | |
275 | | - | |
| 301 | + | |
276 | 302 | | |
277 | 303 | | |
278 | 304 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
82 | 91 | | |
83 | 92 | | |
84 | 93 | | |
| |||
133 | 142 | | |
134 | 143 | | |
135 | 144 | | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
136 | 152 | | |
137 | 153 | | |
138 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
70 | 86 | | |
71 | 87 | | |
72 | 88 | | |
| |||
96 | 112 | | |
97 | 113 | | |
98 | 114 | | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
99 | 139 | | |
100 | 140 | | |
101 | 141 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
425 | 425 | | |
426 | 426 | | |
427 | 427 | | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
428 | 436 | | |
429 | 437 | | |
430 | 438 | | |
431 | 439 | | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
432 | 443 | | |
433 | 444 | | |
434 | 445 | | |
435 | 446 | | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
436 | 454 | | |
437 | 455 | | |
438 | 456 | | |
| |||
499 | 517 | | |
500 | 518 | | |
501 | 519 | | |
502 | | - | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
503 | 526 | | |
504 | 527 | | |
505 | 528 | | |
| |||
532 | 555 | | |
533 | 556 | | |
534 | 557 | | |
535 | | - | |
| 558 | + | |
536 | 559 | | |
537 | 560 | | |
538 | 561 | | |
| |||
0 commit comments