Conversation
An agent walking a reviewer through a report refers to blocks by their
change id ("see change-010"), but the target carrying that id was a
zero-sized span, so the reader had no way to tell which hunk was meant
short of guessing from the prose.
Move the step's actions out of the right gutter to a row above the step
text, replace the LINK wordmark with a chain glyph, and render each
change id beside it as its own link to that anchor.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
shukebeta
force-pushed
the
visible-change-ids
branch
from
September 22, 2026 03:34
767ed32 to
2ecb1fe
Compare
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.
What
Each step's change ids are now visible and clickable. Three parts:
LINKbecomes a chain glyph (inline SVG,aria-labelunchanged), which is what the wordmark was standing in for.change-007) as a link to its own anchor, with the same padded hit area as the permalink.Dropping the absolutely positioned gutter also returns the 68px it reserved to the step text and files.
Why
The main way I use diffwalk is an agent walking me through a report block by block. The agent names blocks the way the capture does — "the
!=in change-010" — but the id lived on a zero-sized span, so the reader was left matching prose against hunks by eye. Now the id is on screen where the anchor already was, and clicking it yields the shareable#change-010link.Tests
test/report.test.tsandtest/report-dom.test.tsupdated for the new markup: the permalink carries the glyph and keeps its label, and the change target is a link whose text is its id.tsc --noEmitclean;bun test ./test/report.test.ts ./test/report-dom.test.ts81 pass / 0 fail.Not done
Visual baselines need
pnpm test:visual:update— the step gutter moves. I'm on Windows and can't reproduce the Linux/DejaVu renders CI compares against, so I didn't commit PNGs from the wrong platform.