Skip to content

Feature/UI 001 - #1

Merged
aaarslan merged 10 commits into
mainfrom
feature/UI-001
Jul 18, 2026
Merged

aaarslan merged 10 commits into
mainfrom
feature/UI-001

Conversation

@aaarslan

Copy link
Copy Markdown
Owner

No description provided.

aaarslan and others added 10 commits July 8, 2026 23:10
Zoom Level was computed as devicePixelRatio * 100, which measures DPI
scaling, not page zoom: a Retina display at 100% zoom read 200%.
Use chrome.tabs.getZoom (no extra permission) for the real page zoom
and keep devicePixelRatio as its own truthful metric.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The !result check sat inside the try whose catch re-labeled every
failure as "Cannot access metrics on this page", making the
"Failed to extract" branch in handleError unreachable. Narrow the
try to the injection calls only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The id sat on the inner svg, so the click listener only covered the
18x18 icon; clicks on the button padding did nothing. Spin animation
now targets the icon via #refreshBtn.active svg.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The loading state now only shows when metrics aren't already on
screen (initial load, retry from error). Refresh re-renders in place,
so the scroll save/restore hack goes away; showSuccess skips its
scroll reset and focus steal when the state was already visible.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
detectMetrics already persists the result next to getLastMetrics,
which reads it back; the second write in the app layer was redundant.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Removes unreferenced debounce/throttle, UIController.updateElement
and sleep, CONFIG.APP_NAME/VERSION/TIMINGS, the .link-btn CSS with no
matching markup, and the print stylesheet (meaningless in a popup).
All verified unreferenced by grep.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 24x24 wrapper svg contained a complete 850x850 svg; a single
element with the 850x850 viewBox renders identically. Drop the inert
.logo fill (every path carries its own fill).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Metric values originate in the inspected page's context; today they
are all numbers or browser enums (the injected func runs in the
isolated world), so this is hardening, not an active hole.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Implement unit tests for breakpoint profiles, error handling, exports, metrics, protocol validation, and storage migration.
- Create component tests for the PopupApp and SidePanelView to ensure UI interactions and accessibility compliance.
- Develop end-to-end tests for the extension's behavior in a live environment, including metrics capturing and UI state management.
- Introduce a test fixture for consistent testing of layout and document metrics.
- Set up Vitest configuration for unit and end-to-end testing, including coverage reporting.
- Add TypeScript configuration for improved type safety and compatibility with Preact.
@aaarslan
aaarslan merged commit 6bdfea4 into main Jul 18, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant