How adomorn/github-enhancer works
GitHub Enhancer is a private, token-free Chrome extension workbench for collecting and revisiting investigation context on GitHub. Users open the toolbar popup or in-page panel, which mounts shared tools against the current GitHub page: save pages, collect code, manage workspaces, search conversations, prepare reply drafts, and track private PR review notes and marks. Page-specific tools read loaded GitHub content and perform narrow actions; shared messaging routes durable mutations through the background worker to local storage. Settings and portable backup import/export are a separate options flow. Several feature modules are documented but their internal wiring is not sampled, so those links are limited to supported entry points.
Main entry points: ui.js Shared workbench UI · main.js Page lifecycle · popup.js Toolbar workbench · client.js Message and draft client
Components 21
Extension surfaces
- Toolbar workbench
src/popup/popup.js - In-page workbench
src/panel/panel.js - Settings and backups
src/options/options.js
GitHub page tools
- Page lifecycle
src/content/main.js - Reading preferences
src/content/reading.js - Loaded diff adapter
src/content/review-tools.js
Investigation features
- Shared workbench UI
src/shared/ui.js - Code basket
src/shared/basket.js - Workspaces
src/shared/workspaces.js - Conversation navigator
src/shared/conversation.js - Reply drafts
src/shared/composer.js - Private PR review
src/shared/review.js - Reading controls
src/shared/review.js
Local state
- Message and draft client
src/shared/client.js - Message boundary
src/background/service-worker.js - State operations
src/background/store.js - Browser storage
src/background/store.js - Data rules
src/shared/model.js
Other components
- GitHub user
- GitHub page
- Chrome APIs
Connections 26
- GitHub user → Toolbar workbench: opens
- GitHub user → In-page workbench: opens
- GitHub user → Settings and backups: configures
- Toolbar workbench → Chrome APIs: queries tab
- Toolbar workbench → Page lifecycle: requests page data
- In-page workbench → Page lifecycle: exchanges context
- Page lifecycle → GitHub page: reads page
- Page lifecycle → Reading preferences: applies preferences
- Page lifecycle → Loaded diff adapter: collects diff data
- Loaded diff adapter → GitHub page: reads loaded diffs
- Toolbar workbench → Shared workbench UI: mounts
- In-page workbench → Shared workbench UI: mounts
- Shared workbench UI → Code basket: uses
- Shared workbench UI → Workspaces: uses
- Shared workbench UI → Conversation navigator: uses
- Shared workbench UI → Reply drafts: uses
- Shared workbench UI → Private PR review: uses
- Shared workbench UI → Reading controls: uses
- Shared workbench UI → Message and draft client: requests state
- Settings and backups → Message and draft client: requests state
- Message and draft client → Message boundary: sends messages
- Message boundary → State operations: dispatches
- State operations → Data rules: validates state
- State operations → Browser storage: reads and writes
- Message and draft client → Chrome APIs: stores drafts
- Settings and backups → Data rules: imports and exports