diff --git a/internal/check-packet-variants.mjs b/internal/check-packet-variants.mjs index 398c16d46..4bbbc9b22 100644 --- a/internal/check-packet-variants.mjs +++ b/internal/check-packet-variants.mjs @@ -132,6 +132,19 @@ ok(count(full, /class="sheet/g) - count(light, /class="sheet/g) === 3, ok(sparse.length === 3, `only the populated rings should be listed, got ${sparse.length}: ${JSON.stringify(sparse)}`) ok(/^2 /.test(sparse[0]) && /^1 /.test(sparse[1]) && /^3 /.test(sparse[2]), `the legend should carry each ring's own count, got ${JSON.stringify(sparse)}`) + + // ⚠ NO VERTICAL-OVERFLOW ASSERTION HERE, AND THAT IS DELIBERATE — I wrote one and deleted it. + // gospel hit exactly this failure on their screen panel (21ebb4f2, "Stop the ring legend pushing + // the centered-set chart off the page"): a legend stacked below a figure, taller than its space, + // displaces the chart. Their fix leans on overflow:auto, which PRINT DOES NOT HAVE — so the same + // layout would fail worse here, with the content simply gone rather than scrollable. + // Budgeted it: the column needs ~924px of a ~1715px sheet with ALL TEN rings named, and the + // assertion only starts failing at 51 rows. THERE ARE ONLY TEN RINGS, so it could never fail for + // any input this code can produce — a tautology dressed as a safety check, the same class as the + // "rows close on the bottom margin" one already deleted from check-profile-table. A printed sheet + // is simply much taller than gospel's constrained pane, which is why their bug is not ours. + // The real protection is the empty-ring filter asserted above (ten rows is the ceiling) plus + // rega's rendered check; a headless budget with 790px of slack would be decoration. } // An unknown variant must print the FULL packet. A typo that printed a SHORTER packet would look