Skip to content

Extension skeleton on the Files changed page #3

Closed

Description

@ribeirogab

Parent

#1

What to build

The extension builds into an unpacked Manifest V3 package and runs on github.com. On the current Files changed page it injects the toolbar control next to GitHub's file filter. On every other page, including the classic Files changed page, it does nothing.

Both test seams from the spec exist: end-to-end tests that load the built extension in Chromium and serve the fixtures for github.com, and unit tests for pure modules.

Acceptance criteria

  • One command builds the unpacked extension. The manifest requests only storage and https://github.com/*.
  • On /pull/<number>/changes, and on its single-commit and commit-range views, the Hide files control appears in the toolbar and follows GitHub's themes through GitHub's CSS custom properties.
  • The control appears when GitHub navigates to the Files changed page without a full page load, and goes away when the user leaves it.
  • Nothing is injected on the classic Files changed page or on other GitHub pages.
  • The extension derives the pull request key (owner/repo#number, lowercase) from the route.
  • End-to-end tests (Playwright with fixture routing) and unit tests (Vitest) each run with one command. pnpm check and the type check pass.

Blocked by

Activity

  1. self-assigned this
    on Oct 2, 2026
  2. ribeirogab commented on Oct 2, 2026

    @ribeirogab
    OwnerAuthor

    Update: the implementation was reverted in a619cac. This issue is reopened and its acceptance criteria are unchecked.

    Built the Manifest V3 extension skeleton, route detection, theme-aware toolbar control, and fixture-routed Chromium test harness. Validation: pnpm check, pnpm typecheck, 7 unit tests, 5 end-to-end tests, and pnpm build passed. Commit: 4d9984d. No acceptance criteria deferred. The browser policy blocked opening the local prototype; its source and handoff were reviewed.

  3. ribeirogab commented on Oct 2, 2026

    @ribeirogab
    OwnerAuthor

    Built the Manifest V3 skeleton: one content script detects the Files changed page (including /changes/<sha> and /changes/<from>..<to>), follows navigation without a full page load, and injects the Hide files control at the end of the toolbar's start group. It injects nothing on the classic /files page or other pages. The pull request key comes from the route in lowercase.

    The in-page styles are ported from design/prototype/index.html value for value. Colors read GitHub's Primer custom properties with the prototype's light and dark values as fallbacks; Mona Sans (SIL OFL 1.1) ships with the extension and loads under GitHub's content security policy.

    Tests:

    • pnpm test:unit: route and pull request key tables (12 tests).
    • pnpm test:e2e: 6 Chromium tests with the unpacked build and fixture routing (toolbar control, commit and range views, theme custom properties, font under CSP, navigation in and out, classic page untouched).
    • pnpm test:visual: 6 comparisons of the control (rest, hover with tooltip, keyboard focus; light and dark) against baselines captured from the prototype by pnpm visual:baseline, at zero different pixels.

    Commits: e68f909, 306e661. Nothing deferred.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

ready-for-agentFully specified; an agent can pick it up

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions