v0.2.0
[0.2.0] — 2026-07-10
Settings for Hamesh: a Settings screen in the popup with functional
language and appearance preferences, delivered incrementally across three
PRs.
Added
- Settings screen in the popup, reachable from a new gear button next to
the brand header, with a polished RTL-aware horizontal slide transition
(respectsprefers-reduced-motion, manages focus on navigation, closes on
Escape). - Language preference: choose English or Arabic from Settings. Persists
across sessions and applies live — no reload — to the popup and every
already-open tab, viachrome.storage.onChanged. Users with no saved
preference keep today's behavior (follow the browser's UI language). - Appearance preference: Match website (default — the original adaptive
light/dark behavior, unchanged), Light, or Dark. A forced choice overrides
the host page across every Hamesh-owned surface (popup, markers,
composer, viewer); the host page itself is never modified. Persists and
applies live across every open tab, same mechanism as language. - Hamesh is now available on the Chrome Web Store; the landing page's
install CTA links there (manual GitHub-release install is still available
as a secondary option for developers).
Changed
detectHostThemenow also walks down single-child DOM chains to find a
background set on a nested app-shell wrapper element (common in
SPA-built sites whose<body>/<html>stay transparent), and — while
"Match website" is active — reacts live to a host page's own dark-mode
toggle or an asynchronously loaded theme, instead of only detecting once
at load.
Fixed
- The popup could render narrower than its intended width under Chrome's
own popup auto-sizing, which can measure the document before the bundled
stylesheet has applied. The width is now pinned explicitly through every
layer, including an inline style present on the very first paint.