macenize.pro
Release notes

What changed, and why it changed.

Version numbers follow SemVer. Where a fix is interesting we say what was actually wrong, because "various improvements" tells you nothing about whether to update.

1.0.0 21 August 2026 FIRST RELEASE

Added

  • System modules — CPU with per-core rings, Memory with pressure and swap rate, GPU and Neural Engine, Disk throughput and per-volume space, Network up/down with top talkers, Power and Thermals with SMC sensors, fans and wattage.
  • LLM Monitor — Ollama and LM Studio detection, live tokens per second, time to first token, context fill, model size, and a pre-load guard that warns when a model will exceed free memory.
  • Containers — Docker, OrbStack and Colima grouped by compose project, with restart-loop detection.
  • Dev Processes — Node, Bun, Python, databases and build tools tagged with the repository they run from, and build-finished notifications with elapsed time.
  • Port Map — every listening port as a chip, conflicts flagged, one-click kill behind a confirmation.
  • Remote Agents — agentless SSH polling for machines listed in ~/.macvitals/remotes.yaml.
  • Insights and alerts — hour-of-day baselines, correlated anomaly cards, and a WHEN·FOR·THEN rule builder with notification, shell, webhook and menu bar flash actions.
  • Deep dashboard — correlated multi-metric chart with a synced crosshair, timeline with event markers, process X-ray, benchmarks with history deltas, and PDF/JSON report export.
  • Surfaces — five menu bar widget styles, tear-off floating widgets, an optional notch display, five theme packs, full keyboard navigation and VoiceOver chart summaries.
  • Mac Vitals Lite — a sandboxed edition for the Mac App Store, keeping system vitals and the LLM monitor.

Fixed before release

  • Memory pressure was reporting occupancy. It computed used ÷ total, and because macOS keeps free pages near zero by design, that reads about 98% on any Mac that has been awake a while — permanently, regardless of real pressure. It now reports memory that cannot be reclaimed without swapping, and agrees with the system: 35% measured where the old formula said 93%.
  • Per-core rings were labelled backwards. Cores were classified performance or efficiency by index < count ÷ 2. On an M2 Pro (8 performance, 4 efficiency) that mislabels half of them, and efficiency cores come first in any case. Classification now comes from the kernel.
  • The dropdown never attached its content. A nil-check that could never be true meant the panel opened empty. Every dropdown CPU measurement ever taken for this app had been measured against a blank window.
  • The dropdown cost 38% of a core once it had content. Eleven cards is roughly twice what fits in the panel, and the eager stack laid out and animated all of them. Now 2.4%.
  • Closing the dropdown quit the app. A menu bar app inherits terminate-after-last-window unless it opts out, which stayed invisible until dismissal started working.
  • Charts drew nothing where animations could not run — three separate times, in the sparklines, the correlated chart and the menu bar. Content is no longer gated on an animation completing, anywhere.
  • The renderer crashed during a menu bar redraw. Text was laid out inside an image drawing handler, which AppKit may invoke off the main thread. Layout now happens up front.
  • The app misreported its own memory, using resident size — which counts shared framework pages — and accusing itself of 140 MB when its real footprint was 36 MB.

Performance

  • Idle CPU went from 2.30% to about 1.3% of one core: the menu bar was rewritten to draw in AppKit, readings are pushed only when the rendered pixels would differ, and the card stack became lazy.
  • The spec's flat "under 0.8% idle" budget was replaced by a measured cost model, 0.35% + redraws/sec × 1.4%, because idle cost is set by how often displayed values change rather than by how much sampling happens.

Known limitations

  • Fan control is read-only. Writing SMC values needs a signed privileged helper.
  • Dismissing the dropdown by clicking outside it is best-effort; clicking the menu bar item always works.
  • Mac Vitals Lite omits per-process modules, Port Map, containers, sensors and remote agents — all denied by the App Sandbox.

Older versions will appear here as they ship. Nothing is removed from this page.