You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The first real filtering. A reviewer opens the control's menu, turns on the Tests or Lockfiles preset, and selects Hide files. Matching files disappear from the diff and the sidebar tree, the control shows the hidden count, and the extension remembers the activation for that pull request.
This ticket builds the Rules module with the full pattern semantics (ADR 0001), the Settings store with first-install defaults, preset state, and activations, and the filtering session.
Acceptance criteria
First install: manual mode, both presets disabled, tree filtering on. The menu shows the empty state that tells the user to choose what to hide.
The menu lists the presets with checkboxes and the number of files each matches, under a Presets heading with the All repositories note. Turning a preset on or off changes the global settings.
Before activation, the control shows how many files match. Hide files activates filtering in the current pull request.
While filtering, matching diff blocks and their tree entries are hidden, and a tree folder whose files are all hidden is hidden too. GitHub's nodes are never removed, and GitHub's totals, statistics, and viewed state do not change.
The control shows the hidden count (N files hidden), computed from the files GitHub lists, not from the DOM.
The menu's pull request switch turns filtering off and forgets the activation.
A reload keeps the activation. Another pull request starts inactive. Single-commit and commit-range views of the same pull request share the activation, and the key ignores letter case.
Unit tables cover the pattern semantics (root anchor, **/, *, ?, trailing /, spaces, case-sensitive matching) and the product examples, such as src/test-utils.ts not matching the Tests preset.
The menu follows GitHub's ActionMenu keyboard contract, and a change to the hidden count is announced once.
Update: the implementation was reverted in a619cac. This issue is reopened and its acceptance criteria are unchecked.
Built root-anchored Rules, normalized local Settings, the Filtering session, preset selection, manual activation, sidebar tree filtering, hidden counts, and accessible ActionMenu keyboard navigation. The suites contain 35 unit tests and 8 end-to-end tests.
Validation: pnpm check, pnpm typecheck, pnpm test (unit and fixture-routed Chromium end-to-end suites), and pnpm build passed.
Built the Rules module (root-anchored patterns per ADR 0001, validation, preset catalog), the Settings store in chrome.storage.local with first-install defaults and change notifications, and the pure filtering session. The menu shows the empty state on first install, then the presets with checkboxes and counts under Presets · All repositories. Hide files activates filtering for the pull request key (stored lowercase, shared by the commit and range views); the menu switch turns it off and forgets it.
While filtering, matching diff entries and tree entries get a hiding class, and folders whose files are all hidden are hidden too. Nothing is removed and GitHub's totals and viewed counts stay the same. The control shows N files hidden from the files GitHub lists, the menu follows the ActionMenu keyboard contract (arrows, Home/End, typeahead, Space/Enter, Esc/Tab), and count changes are announced once.
Tests:
Unit: 89 tests, including pattern tables (root anchor, **/, *, ?, trailing /, spaces, case), the product examples (src/test-utils.ts stays visible), validation messages, ADR 0003 preset storage, and the prototype demo (10 of 22 files: Tests 7, Lockfiles 2, custom 1).
End to end: 9 new tests on the PR 1 fixtures (first install, toggling presets, hiding 11 of 25 files and their tree entries, turning off, reload, commit and range views, another pull request, letter case, keyboard contract, announcements).
Visual: 42 comparisons against prototype baselines at zero different pixels, covering every toolbar control state (rest, hover with tooltips, keyboard focus, 1 file, activated) and the menu (empty, ready, filtering, keyboard focus, item hover, presets only, custom rules off, tree off, automatic empty), in light and dark.
Activity
ribeirogab commentedon Oct 2, 2026
Update: the implementation was reverted in a619cac. This issue is reopened and its acceptance criteria are unchecked.
Built root-anchored Rules, normalized local Settings, the Filtering session, preset selection, manual activation, sidebar tree filtering, hidden counts, and accessible ActionMenu keyboard navigation. The suites contain 35 unit tests and 8 end-to-end tests.
Validation: pnpm check, pnpm typecheck, pnpm test (unit and fixture-routed Chromium end-to-end suites), and pnpm build passed.
Commit: 3e0ab2c. No acceptance criteria deferred.
ribeirogab commentedon Oct 2, 2026
Built the Rules module (root-anchored patterns per ADR 0001, validation, preset catalog), the Settings store in
chrome.storage.localwith first-install defaults and change notifications, and the pure filtering session. The menu shows the empty state on first install, then the presets with checkboxes and counts under Presets · All repositories.Hide filesactivates filtering for the pull request key (stored lowercase, shared by the commit and range views); the menu switch turns it off and forgets it.While filtering, matching diff entries and tree entries get a hiding class, and folders whose files are all hidden are hidden too. Nothing is removed and GitHub's totals and viewed counts stay the same. The control shows
N files hiddenfrom the files GitHub lists, the menu follows the ActionMenu keyboard contract (arrows, Home/End, typeahead, Space/Enter, Esc/Tab), and count changes are announced once.Tests:
**/,*,?, trailing/, spaces, case), the product examples (src/test-utils.tsstays visible), validation messages, ADR 0003 preset storage, and the prototype demo (10 of 22 files: Tests 7, Lockfiles 2, custom 1).Commit: ff3847e. Nothing deferred.