Skip to content

Release 1.82.2: widget style fixes and leak warnings by physical footprint - #90

Open
DrogaBox wants to merge 2 commits into
mainfrom
fix/leak-detector-footprint
Open

DrogaBox wants to merge 2 commits into
mainfrom
fix/leak-detector-footprint

Conversation

@DrogaBox

@DrogaBox DrogaBox commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

1.82.2: the widget style answers to its own switches

No kext changes (kexts stay at 3.40.1).

Fixed

  • Widgets vanishing from the System panel. With the classic CPU and GPU cards hidden, choosing the widget style left the panel with no widgets: the block that hosts them asked the classic switches whether to show. It now asks the widgets' own.
  • Process lists that stood still. The top processes in the CPU, memory and GPU widgets were read when the panel opened and almost never again. They follow the refresh interval from Settings now.
  • Temperatures ignored the unit. The widgets always showed Celsius.
  • Readings that were not there. A missing CPU or GPU frequency showed as 0.0 GHz or repeated the card's title.
  • Switches that did nothing. In the widget style the edit mode listed the classic Temperatures and Memory blocks, which that style never shows.

Improved

  • Lighter widgets. Only the lists on screen are read, none with the panel closed, rows redraw only when they change, and app icons come from the shared cache.
  • Cards of a metric family turned off in the hub leave the widget style. The core grid dims with its CPU card while arranging. Reset also restores the widget cards and their order. Process rows show the full name on hover.

1.82.1: leak warnings judged by physical footprint

No kext changes (kexts stay at 3.40.1).

Fixed

  • False memory-leak warnings. The process monitor judged leaks by resident size, which also counts memory a process has freed and the system has not reclaimed yet. The app flagged itself: about 600 MB resident, 180 to 216 MB of real footprint and 135 KB of actual leaks after seven hours. Leaks are now judged by physical footprint, the figure Activity Monitor shows as Memory. Processes of other users do not report it and keep the old measure.

Improved

  • Lighter process monitor. The memory history behind the warning takes one reading every ten seconds instead of one per refresh, and trims in place. Before, each refresh rebuilt about 1500 points for each of some 600 apps, around 14 MB of allocation churn a second with the monitor open.

Verification

  • New tests: widget visibility, metric families, refresh interval and which lists are read; footprint reading, sampling interval, window and leak verdicts.
  • ./build.sh --test: 22361 checks OK.
  • Concurrency gate: 0 diagnostics.
  • Installed as 1.82.2 (build 152).

The process monitor fed the leak detector with resident size from ps.
Resident size also counts pages a process has freed and the system has
not reclaimed yet, so a process that allocates and frees a lot shows a
resident size that climbs for hours while its footprint stays flat. The
app flagged itself that way: with the monitor open it was at 600 MB
resident, 180 to 216 MB footprint and 135 KB of real leaks after seven
hours.

The series now holds each app's physical footprint (proc_pid_rusage),
with resident size only for processes of other users, which do not
report it. LeakHistory takes one reading every ten seconds instead of
one per refresh and trims in place, so a series stays under two hundred
points; before, every refresh rebuilt about 1500 points for each of some
600 apps, around 14 MB of allocation churn a second, which is what kept
the resident size climbing in the first place.

Tests cover the footprint reading, the sampling interval, the window and
the verdicts: a steady footprint is no leak whatever resident size does,
and a climbing one is still caught.
The widgets live in the System panel's usage block, and that block asked
the classic CPU and GPU cards' switches whether to show. With both cards
hidden and the widget style chosen, the panel showed no widgets at all.
The block now asks the widgets' own switches, through a rule that also
drops the cards of a metric family the hub has turned off.

The widgets' process lists were read when the view appeared and on the
service's notification, which only fires after someone asks, so they
kept the rows from the moment the panel opened. They now read on the
monitor's beat at the interval from Settings, only for the cards on
screen and only while the panel is on the System section, and they skip
the state write when the rows did not change.

Also in the widgets: temperatures follow the unit from Settings, a
missing frequency shows nothing instead of 0.0 GHz, app icons come from
the shared cache instead of a lookup per row per redraw, the core grid
dims with its CPU card while arranging, and Reset restores the widget
cards and their order. In the widget style the edit mode no longer lists
the classic Temperatures and Memory blocks, whose switches did nothing
there.

Tests cover the visibility and family rules, the refresh interval and
which lists are read.
@DrogaBox DrogaBox changed the title Release 1.82.1: leak warnings judged by physical footprint Release 1.82.2: widget style fixes and leak warnings by physical footprint Nov 13, 2026
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.

2 participants