Repository navigation
feat: review progress, conversations and a refreshed bar - #7
Closed
hyanmandian wants to merge 31 commits into
Closed
hyanmandian wants to merge 31 commits into
hyanmandian wants to merge 31 commits into
Conversation
- The bar shows how many of the shown files are viewed and the time left, or Done once everything shown is viewed - The breakdown adds a Viewed column and its time column becomes time left - Viewed toggles from the new diff view (aria-pressed) and the classic one (change events) update the panel on the next frame
…h the bar - In the newer diff view, take every file's line counts, Viewed state and review threads from the page's embedded JSON, so large virtualized pull requests get exact totals; the classic view keeps reading the DOM - Dim files outside the filter in the virtualized list, where hiding would leave gaps, and map tree items to files through their #diff- links - Next unviewed file: a button and Alt+Shift+J; files GitHub hasn't rendered are opened through the file tree - Conversation navigator: previous and next buttons and commands that centre and outline each thread, including threads in unrendered files - Filter buttons show their file counts; the stats use one typeface with tabular figures and reserve width as a block, so spacing stays even
- Clicking a filter turns it on or off; All is exclusive and comes back when nothing else is on, so a filter is always active - Arrow keys move between filters; Enter or Space toggles - The breakdown button sits beside the review time, the popover drops its title and hint, and an (i) beside Time left explains the estimate in a tooltip - The next unviewed button reads Next unviewed with its count
Viewed shows viewed out of total files, green once complete, and a complete row leaves its time empty instead of repeating Done.
- Conversations are one button that steps forward and shows the position; going back appears beside it once the reader has started - Next unviewed drops its arrow icon, which read as a download - Viewed sits beside the filter name and the line counts start a new group - The breakdown centres over its button, kept on screen
hyanmandian
force-pushed
the
review-progress
branch
from
October 2, 2026 04:03
b827621 to
45e2251
Compare
- Conversations popover: state icon, file:line, reply state, position and arrows in one card - Find Viewed toggles and threads by labels, ids and attributes instead of styling classes - Parse embedded data once per script element; skip text-only mutations; drop stale scheduled applies - Hide tree folders from a set of shown directories; read line counts from the page only in the classic view - Return focus when a popover closes on its own; hoverable time tooltip; Escape closes it first - Contrast fix for the selected filter count; forced-colors fixes; labels start with the visible text - Check panel contrast against GitHub's light and dark tokens with both popovers open - Remove dead CSS, locale keys and unused APIs
… messages A code table in a review comment carries data-tagsearch-path too; diff containers also have a diff- id.
Merges to main keep a release pull request up to date; merging it tags the release, attaches the builds and publishes them. The README now covers review progress, Next unviewed and conversations, and drops shift-click.
Review progress stays in the breakdown and the time left; the bar keeps conversations as its only navigation.
The page has the logo, what Focus Diff does, the 30-second video and links to the stores (placeholders until the listings are live) and the repository. The site stays out of the Firefox sources zip.
Resolved threads in the classic view start collapsed; the jump expands them, waits for GitHub to load their comments, then centres and highlights them.
…in how to load them - Releases attach focus-diff-chromium.zip, focus-diff-firefox.zip and focus-diff-safari.zip under fixed names, so the site links to the latest ones - The site and README walk through loading each build without a store - Safari build scripts, and a timeout fallback where requestIdleCallback is missing (Safari)
…rows Long file names now end in an ellipsis while the line number stays, so the card no longer resizes between conversations.
… whether they're answered
…der into the page adapter
…nents, page styles move next to their page
Owner
Author
|
Landed on main directly as part of the history cleanup before the first release. |
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.
Stacked on #6.
Review progress
Conversations
review-thread-collapsiblethreads, reading authors, reactions and the signed-in login (meta[name="user-login"]) for the reply state.GitHub's newer diff view
Checked against a signed-in session on real pull requests (579 and 174 files):
script[data-target="react-app.embeddedData"](path, digest, line counts,markedAsViewed, review threads by line), so totals, counts, time and Viewed are exact even though the list only renders files near the screen. Viewed toggles seen in the page override the embedded value.#diff-<digest>links.Robustness and performance
data-*attributes, labels and custom element names rather than styling classes. Hashed class names remain only as a last fallback for comment markers.Bar
Accessibility
Tests