Repository navigation
Commit 08c64b5
format: settle the four things that were waiting on a breaking change
All four were open because the honest fix moved bytes or a contract, and the
owner cleared that on 2026-08-03: nothing depends on either yet, so take the
better answer rather than the cheaper one.
PDF LINES ARE A FIXED WIDTH
The text on a page was eight to thirteen drawn words of four to nine
characters, so the smallest document one seed could produce was not the
smallest another could:
the floor across 200 seeds 3090 B to 3499 B
--size 3300 accepted for 6 seeds out of 10
The earlier repair kept the ragged lines and took the theoretical worst case
as the floor. That was consistent and honest and it cost about 1400 B of range
no request could reach any more. A fixed line width settles it properly: the
floor is 3409 B for all 300 seeds checked, and it is the real one.
The words still come from the seed, so two seeds still read differently. Only
the length is settled - the same thing every record based format here does to
its closing record.
A line ends on a whole word rather than being cut at the byte. core.AppendFiller
does almost this and is not used, deliberately: it cuts and pads, which is
right inside a CSV field nobody reads and wrong for the visible text of a page,
where every line ending in "refere" reads as broken rather than as filler.
Two pinned values moved. The reason is in the golden file under remeasured,
beside the one from the day before, because that file is the record of every
deliberate shift. The version is not bumped - that is the owner's to do.
A RULE BINDING TWO SETTINGS IS DECLARED
PNG allows each side up to 20000 pixels and the two multiplied up to 40
megapixels. A Property bounds one value, so the second rule lived in the
generator and in a sentence - and "tfg formats png" offered a pair it then
refused, while a window building fields from Min and Max would offer the same.
The registry carries JointLimit now. PNG declares it, the generator asks the
declaration rather than repeating the rule, and it is printed on its own line
and carried in --json. Kept to a product of two because that is the shape every
case in Tier 1 has - pixels, samples times channels, pages times page size. A
general expression would be a language to learn and this is a line to read.
THE MANIFEST NAME IS TAKEN BEFORE THE FIRST FILE
Claiming it at save time stopped two runs from both writing one, and it
happened at the end - so the second run wrote its whole set and only then found
it had nowhere to record them. Measured: two runs together left sixteen files
with eight in nobody's manifest. Now: eight files, one manifest, the second run
refused before writing. The claim is given back when a run ends without writing
a manifest, or the name would stay taken by a run that never happened.
THE REFERENCE TOOLS ARE ACTUALLY INSTALLED SOMEWHERE
The oracle guards skip when their tool is missing, and the matrix runners have
python and node and nothing else - so most of them reported a skip and the run
was green having checked almost nothing about the files. A separate job
installs Inkscape, 7z, ffmpeg and poppler and runs them for real, with -v so a
failed install cannot turn it back into a green nothing.
What that job does not do is written into it: it does not walk many sizes. The
wider sweep stays a manual probe, and that is a decision rather than a gap -
after the SVG repair it found nothing across 452 files, because the risk was at
the minimum and a guard covers that on every run now. Moving it into Go would
need a build tag, and the coverage guard reads every test file regardless of
tags, so it would land on the list of guards nothing proves - a list that is
only allowed to shrink. See O51.
Five guards, each seen red first, and five mutations.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent d092f3e commit 08c64b5
11 files changed
Lines changed: 478 additions & 111 deletions
File tree
- .github/workflows
- internal
- cli
- engine
- format
- pdf
- png
- guard
- testdata
- manifest
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
216 | 261 | | |
217 | 262 | | |
218 | 263 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
89 | 100 | | |
90 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
91 | 113 | | |
92 | 114 | | |
93 | 115 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
33 | 45 | | |
34 | 46 | | |
35 | 47 | | |
| |||
57 | 69 | | |
58 | 70 | | |
59 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
60 | 85 | | |
61 | 86 | | |
62 | 87 | | |
| |||
70 | 95 | | |
71 | 96 | | |
72 | 97 | | |
73 | | - | |
| 98 | + | |
74 | 99 | | |
75 | 100 | | |
76 | 101 | | |
| |||
99 | 124 | | |
100 | 125 | | |
101 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
102 | 135 | | |
103 | 136 | | |
104 | 137 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
414 | 414 | | |
415 | 415 | | |
416 | 416 | | |
417 | | - | |
418 | | - | |
419 | | - | |
420 | | - | |
421 | | - | |
| 417 | + | |
422 | 418 | | |
423 | 419 | | |
424 | 420 | | |
| |||
456 | 452 | | |
457 | 453 | | |
458 | 454 | | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
459 | 464 | | |
460 | 465 | | |
461 | 466 | | |
| |||
490 | 495 | | |
491 | 496 | | |
492 | 497 | | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
493 | 518 | | |
494 | 519 | | |
495 | 520 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
159 | 217 | | |
160 | 218 | | |
161 | 219 | | |
| |||
176 | 234 | | |
177 | 235 | | |
178 | 236 | | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
179 | 241 | | |
180 | 242 | | |
181 | 243 | | |
| |||
0 commit comments