feat(report): bound report.md so GitHub can always render it#164
Merged
Conversation
A large redesign produced a report.md too big for GitHub's markdown viewer (it refuses past ~512 KB) — the reviewer clicked through and got "we can't show files this big", so the report was useless exactly when the change was biggest (seen on a 218-surface nav rebuild: 4.7 MB, 133k table rows). The generator now holds report.md to a byte budget (maxReportBytes, default ~400 KB): full property tables greedily, then remaining changed surfaces as one-liners (name · change count · crop link) under an announced banner. The exhaustive per-row detail is always in report.json and every crop in crops/, so nothing is dropped from the certification — only the inline detail is capped. Verified: a 40-surface synthetic that renders 139 KB uncapped comes out 17 KB under a 15 KB budget with all 40 surfaces still in report.json; small reports (the demo) are byte-identical. Regression test in report.test.mjs. On by default. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
🗺️ StyleProof report📊 View the side-by-side visual report →To accept: rebuild the map with |
Fallow audit reportNo GitHub PR/MR findings. Generated by fallow. |
Fallow audit report0 inline findings selected for GitHub review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A StyleProof report a reviewer can't open isn't a source of truth. On a large redesign (a 218-surface nav rebuild),
report.mdcame out 4.7 MB / 133k table rows — GitHub's markdown viewer refuses to render past ~512 KB, so clicking the report gave "Sorry, we can't show files that are this big." The report failed exactly when the change was biggest.What
The report generator now holds
report.mdto a byte budget (maxReportBytes, default ~400 KB):`surface` (+N more) · N change(s) — [crop]— under an announced banner ("summarized to keep this report renderable").report.jsonand every crop incrops/, so nothing is dropped from the certification — only the inline detail is capped. SetmaxReportBytes: Infinityto opt out.On by default, so every adopter's reports become renderable without any config.
Verification
report.json(nothing dropped), the cap banner present, and one-line summaries with crop links. Regression test added intest/report.test.mjs.npm run demo:check— the demo report is byte-identical (the cap never triggers below the budget).Note
This also ships
affectedSurfaces(#158), which was sitting in[Unreleased]— so the release is 3.17.0.Proof
Not applicable — Node library / report generator; behaviour covered by the tests above.