Release notes

FEATURE

Heart Monitor popover theme debuts, turning quota usage into live pulsing waveforms

When keeping an eye on model quotas each day, you can now track consumption with a hospital-monitor style interface.

The newly added Heart Monitor theme features a dark grid background. Next to each quota row is a continuously scrolling ECG trace alongside large monospace readings; as usage rises, the peaks grow taller and pulse faster. The original warning and danger color schemes for 50% and 80%, along with the 80% marker, are fully preserved. If you have "Reduce Motion" enabled in your system settings, the waveform animation pauses automatically. This theme is available on macOS and Windows, bringing the total number of selectable themes to 16.

BUGFIX

Windows popover window fits content accurately, eliminating unwanted scrollbars when scaling text

When you increase text size on Windows, opening the popover will no longer display a vertical scrollbar crammed against the edge.

This is a follow-up improvement to a previous window issue ([#153]). If Windows "Text size" is not 100%, WebView2 zoom is compounded on top of display scaling, such as 125% multiplied by 109% reaching 1.3625. The legacy GetDpiForWindow did not account for this extra scaling layer, leaving the window roughly 8% shorter than its content and causing scrollbars to appear even if cards were hidden. The page now reports content height and devicePixelRatio (effective display scale), which the popover uses to calculate window dimensions, workspace, saved positions, and readability floors, falling back to display scale before reporting occurs. To address pywebview redundantly multiplying scaling on resize() and move() calls, values are corrected using the ratio between both scales.

Original changelog

Original changelogHeart Monitor popover theme debuts, turning quota usage into live pulsing waveforms
**Heart Monitor panel theme.** A hospital-monitor look on a dark grid: every quota row scrolls an ECG trace whose peaks grow taller and faster as usage rises, next to a large monospace readout. The 50% / 80% warning and danger colors and the 80% mark still apply, and the animation stops when Reduce Motion is on. Available on macOS and Windows; the panel count is now 16.
Original changelogWindows popover window fits content accurately, eliminating unwanted scrollbars when scaling text
Size the Windows panel from the scale its page is really rendered at, so it no longer scrolls when Windows' "Text size" is not 100% (a follow-up to [#153](https://github.com/aqua5230/usage/issues/153)). Text size multiplies WebView2's device pixel ratio on top of the display scale (125% × 109% = 1.3625), but `GetDpiForWindow` does not include it, so a window sized with the display scale alone came out about 8% shorter than its content: a scrollbar appeared although the screen had room to spare, and hiding a card did not help. The panel page now reports its `devicePixelRatio` together with its content height, and the window size, work area, saved position and legibility floor are converted with it, falling back to the display scale until the page has reported one. pywebview's `resize()` / `move()` multiply by the display scale themselves, so they are corrected by the ratio between the two.