ui(github): render schema drift as captions, not a list - #213
Merged
Conversation
Every other expansion states its detail in <sub> captions tight under its gate row. Schema drift alone rendered a bold group heading and a bulleted list at body size, so its entries read as loud as the gate rows they sat beneath, and the roster's leading was computed against them: 27.1px entering the block and 14.9px leaving it, against 21px everywhere else. Each line now carries its own kind, which is what retires the heading. That in turn retires schemaChangeHeading, and the (removed) placeholder it was standing in for. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.

Query Doctor — 6 successful checks
More details via MCP → get_ci_run({ runId: "019fba82-a7bb-781a-b668-6e6390c8ec65" }) · view run · docs
3 queries read against main on assumed statistics of 10,000,000 rows per table. Sync production stats for costs measured against your real data.
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.
Goal
The PR comment leads with the gate roster and expands the conditions that fired (ADR-0009). Schema drift was the one expansion that used a different type scale and a different spacing system from the rest, so a run with schema changes did not look like the same component. This is the last rendering defect I know of in that comment.
What
Before: a bold
Addedheading, then a bulleted list at body size, then the same forRemoved. The entries were the same size as the gate rows above them, so a five-entry change read as loud as the checks themselves. On a real run it was 17 entries and it split the six-line roster in half.After: one line per change, at caption size, tight under the gate row. Each line names its own kind, so
Added table public.statistics_snapshotsreplaces the heading-plus-bullet pair.How
Read
success.md.j2first. The schema block now emits<sub>lines with a blank line closing it, which is the shape the regression and recommendation blocks already had.The heading went because each line states its kind, which also retired
schemaChangeHeadingand its plumbing throughgithub.ts. Aremoveop carries no value, so its name was the placeholder(removed); with the kind on the line that is redundant and the line is nowRemoved index.Two spacing facts drove this, both measured in a browser against GitHub's own stylesheet rather than judged by eye. Body text in a comment is 14px and
<sub>is 10.5px; the schema entries were the only expansion content at 14px. And because those entries shared a paragraph with the gate rows, the roster's line spacing was computed against a smaller line box: 27.1px entering the block and 14.9px leaving it, against a steady 21px elsewhere. The blank line closes the paragraph and the roster returns to 21px.Tests
schema-change.test.tscovers the label for each kind and the empty name on a remove.github.test.tspins the rendered markdown: entries sit directly under the gate row, the block is closed by a blank line, and every entry is<sub>-wrapped. Full suite 405 passing,tsc --noEmitclean.Not in this PR
On the run that prompted it, 14 of the 17 entries were indexes and constraints belonging to the 3 tables added in the same diff. Filtering those leaves 3 lines. A
changedentry also renders asChanged table · columns.17, wherecolumns.17is a JSON Patch array index and means nothing to a reader. Both are content, not layout.