Skip to content

Releases: dimpurr/voltscope

Voltscope 0.10.4

Choose a tag to compare

@dimpurr dimpurr released this 06 Oct 17:29

Accessibility

  • Enlarge the menu bar panel's per-app "Open in History" action, the panel footer buttons, the Settings database action, and the Welcome window buttons so every control is at least 24 pt in both dimensions.
  • Size the menu bar panel to its full collapsed content so the footer — Settings, Check for Updates, Quit, and the version label — stays visible after the app rows grew; the panel previously kept a fixed 428 pt height and clipped them.
  • Readable secondary text in the menu bar panel and Settings window: captions, metric labels, the status line, the version label, and Settings explanations and warnings now keep a contrast ratio of at least 4.5:1 in both light and dark appearances instead of relying on the system muted styles.
  • Mark the Welcome window's in-window heading as a heading and give it distinct copy, so assistive technology announces it once instead of repeating the window title.
  • Name the menu bar panel window "Voltscope" for assistive technology, matching the History and Settings windows.
  • Improve keyboard and screen-reader access to the History window: the toolbar's time range, Display options, and Export controls are reachable with the system Control-F5 toolbar shortcut, both breakdown columns and the System processes row join the keyboard focus order, the Export control keeps its visible "Export as CSV…" caption while announcing as a single accessible button, the Display menu announces "Display options" and the state of its toggle, chart legend chips are large enough to hit and carry stable identifiers, and the grouped System processes row now speaks its recorded App CPU energy and that amount's share of recorded App CPU energy.
    each History chart is now one VoiceOver stop with a spoken
    title, summary, audio-graph descriptor, and stable identifier, instead of
    exposing every data point as a separate unnamed element.
    History chart series colors now keep at least 3:1 contrast
    against the window background in light and dark appearances, including a
    margin for the display's wider color gamut, the System and Other apps grays
    are clearly separated, and the charging green used for the Charging caption
    keeps at least 4.5:1. App colors stay stable per bundle identity.

SHA-256: 61c7c30024c1ede46cebaeb661faea3d70066ccb0ce8d854009ab1c6fe6da3b0

Voltscope 0.10.3

Choose a tag to compare

@dimpurr dimpurr released this 04 Oct 21:15
  • Add accessibility label, value, and stable identifier to the menu bar status item.
  • Speak recorded CPU energy in Joules (or CPU seconds on Intel) for menu bar panel app rows, group rows as accessible containers, and provide an action to open History.
  • Hide decorative app icons and battery health bar progress visuals from the accessibility tree to eliminate duplicate VoiceOver speech.
  • Add keyboard shortcuts (Cmd+H, Cmd+,, Cmd+Q, Esc) to the menu bar panel and Settings window.
  • Respect reduceMotion accessibility setting when expanding system processes in the menu bar panel.
  • Increase contrast and support high contrast outline mode for IntensityDots.
  • Provide customizable summaries and accessibility hiding on SparklineMini.
  • Add confirmation dialog and destructive action styling for manual legacy database deletion in Settings.
  • Make the Settings window scrollable and flexibly sized to prevent clipping under large dynamic text sizes.
  • Label database migration progress and surface deletion errors in Settings.
  • Add stable accessibility identifiers for onboarding action buttons in the Welcome window.
  • Display an alert dialog on CSV export interval calculation failure instead of failing silently.
  • Added standard application menu shortcuts for Settings (Cmd+,) and Open History (Cmd+1).
  • Added accessibility announcements for History loading errors and resilient layout sizing for the time-range picker under enlarged text.
  • Enhanced History status bar accessibility with stable identifiers.
  • Enhanced Battery history chart accessibility: charging and sleep intervals are spoken in the VoiceOver summary with occurrence counts and totals clipped to the selected range, and the chart descriptor carries only real battery readings.
  • Added keyboard-based time slice scrubbing to the App CPU energy chart using arrow keys; the inspected bucket's time and recorded CPU energy reading are spoken, distinguishing a bucket with no record from a zero-energy bucket. Legend items expose selection traits.
  • Consolidated hardware breakdown rows into unified accessibility elements reporting channel magnitude relative to the largest hardware channel.
  • Added per-app accessibility identifiers for rows in the History app breakdown list.

Voltscope 0.10.2

Choose a tag to compare

@dimpurr dimpurr released this 04 Oct 10:34
  • Label CSV group metadata as app_name and app_path so exports do not imply
    those values identify each PID's process.
  • Repair hourly coverage totals when late or replacement coverage rows arrive
    after the hour rollup watermark.
  • Exclude a partially overlapping left-edge hour from 7-day summaries after
    finer-grained rows expire, avoiding out-of-range energy in the result.
  • Recheck process start time after identity lookup and discard snapshots if a
    PID was reused during the read.
  • Preserve process counter deltas when a full history write queue rejects a
    sampling tick, and restrict rollups to indexed timestamp ranges after their
    watermarks.
  • Preserve process and hardware counter deltas when a full history write queue
    rejects a sampling tick, and restrict rollups to indexed timestamp ranges
    after their watermarks.
  • Anchor legacy raw import, verification, and source expiry to the persisted
    sleep-inclusive safe clock so wall-clock jumps cannot skip retained detail or
    remove the recovery database early.
  • Persist completed source revisions and revalidate a completed legacy source
    once at its deletion deadline instead of rescanning it at every launch;
    imports completed by earlier versions stay complete.

Voltscope 0.10.1

Choose a tag to compare

@dimpurr dimpurr released this 04 Oct 04:02
  • Recheck the legacy SQLite source revision during import convergence so
    timestamp rollback commits are rescanned before completion.
  • Bound revision-change verification retries to ten rounds per launch, and keep
    completed legacy imports verifiable when older records lack a raw cutoff.
  • Limit CSV energy rows to the current metric version, matching chart totals.
  • Refresh process identity metadata when pbi_comm changes, and read each
    process's current parent PID on every sampling tick.
  • Persist partial history windows every 15 seconds and before sleep; retain failed
    window writes in a bounded FIFO for retry and cancel shutdown when the final
    flush fails. Preserve process counter baselines through up to two temporarily
    missed scans.
  • Keep late samples visible after rollup watermarks advance, protect retention
    pruning from forward wall-clock jumps, advance retention across system sleep,
    re-anchor after reboot, and include the summarized left-edge hour in 7D
    history queries.
  • Stream CSV exports through a bounded database cursor and fixed-size batches; exports can be cancelled and incomplete files are removed on failure.
  • Added VoiceOver summaries and audio graph data descriptions for History battery and App CPU charts, and spoken CPU attribution values and trends in the Apps column. Missing intervals are announced as no data, and older metric versions remain identified separately.
  • Reduce per-window history flush work by resolving each distinct app group once.
  • Group bundle-less, version-named CLI processes only under
    <name>/versions/<version> paths. History queries also combine matching
    existing rows within each bucket without rewriting stored history.

Voltscope 0.10.0

Choose a tag to compare

@dimpurr dimpurr released this 03 Oct 12:09
  • Raw history and CSV now store one summed row per process/PID and UTC-aligned
    30-second window while sampling continues every five seconds. Minute summaries
    are retained for two days; hourly summaries remain permanent. Legacy imports
    use the same raw window size and minute retention.
  • Added stable accessibility labels and identifiers for menu bar actions,
    History controls, and interactive Settings controls. Battery status values
    now have descriptive spoken labels for VoiceOver and UI automation. App-row
    History actions have per-app identifiers and labels that describe opening
    History from the row; the battery power qualifier is available as hover help
    and an accessibility hint.
  • App energy now uses the per-task CPU energy counter. Values may be hundreds
    or thousands of times larger than older readings because the previous counter
    reported energy billed through a task bank rather than the task’s own energy.
  • Older readings remain available with an orange chart marker and an
    explanation; the app never adds old and current metric versions together.
  • CSV export now includes cpu_ns and metric_version, and uses one cpu_ns
    column instead of separate user and system CPU columns.
  • New local history is written to history.sqlite with tiered summaries and
    configurable raw detail retention. Existing db.sqlite data is imported in
    the background, verified, and kept for seven days after completion before
    automatic deletion. Settings offers deletion after import completes.
  • Intel Macs rank app activity by CPU time and explain that per-process energy
    data is unavailable.

Voltscope 0.9.1

Choose a tag to compare

@dimpurr dimpurr released this 02 Oct 20:16

Voltscope 0.9.1 is a storage fix.

  • Process samples that recorded no energy for the interval are no longer stored, so the database grows much more slowly over long runs.
  • CSV export no longer includes zero-energy rows.
  • Existing databases do not shrink in this version; storage compaction is planned for 0.10.0.

Download: Voltscope-0.9.1-universal2.dmg (Apple silicon and Intel, macOS 13 or later). Developer ID signed, notarized and stapled.

SHA-256: e91336160a313f05a0e6d469228d407f062516d317689b19f51bf9838911db8c

Voltscope 0.9.0

Choose a tag to compare

@dimpurr dimpurr released this 14 Sep 17:08

Adds first-run Welcome and native Settings with optional Launch at login. Reworks the menu bar panel hierarchy, including a full-width expandable System row and a scrollable expanded list. Keeps the Welcome flow visible while Login Items is open and restores the menu panel after returning. Restores reliable GitHub Releases update checks and publishes a signed Sparkle appcast. Universal2 DMG (arm64 + x86_64). SHA-256: be1b76582b901bf9683962508748f0dff96a84bf8d1b549679f991a501851d97. Notarized and stapled.

Voltscope v0.8.1

Choose a tag to compare

@dimpurr dimpurr released this 12 Sep 18:38

Voltscope v0.8.1

This release publishes the first signed, notarized, and stapled universal2 DMG for macOS 13+.

  • Native Apple silicon (arm64) and Intel (x86_64) slices in one DMG
  • Website DMG and this GitHub Release asset are the same artifact
  • 6H history range and the battery-history UI from v0.8.0
  • Install via the official DMG, Homebrew tap, or build from source

SHA-256:

735859650eab6b0de72283868a02f893b0c8de92d7494bcb4d2860e2fd731c16  Voltscope-0.8.1-universal2.dmg

Voltscope v0.8.0

Choose a tag to compare

@dimpurr dimpurr released this 12 Sep 16:42

Voltscope v0.8.0

A focused six-hour history range for near-term investigation.

Included

  • Added 6H to the single top-level range picker between 1H and 24H.
  • 6H uses ten-minute UTC-aligned buckets and hourly axis labels.
  • Battery level, App CPU attribution, Energy breakdown, Apps, hover details,
    refresh cadence, and CSV export all follow the selected 6H window.
  • Existing Live / 1H / 24H / 7D behavior and the original two-column layout are unchanged.

Artifact

  • Voltscope-0.8.0-arm64.dmg
  • Developer ID signed
  • Not notarized yet
  • SHA-256: 316927a8041d597be9d96b74c075d29ee8034332d4e59895422fe8bfbc1032d2

The official download is also available from
https://voltscope.dimp.studio/Voltscope.dmg.

Voltscope v0.7.2

Choose a tag to compare

@dimpurr dimpurr released this 12 Sep 16:06

Voltscope v0.7.2

Voltscope is a native macOS battery and energy-history monitor inspired by
iPhone Settings → Battery.

Included

  • Refined macOS app icon with a blue-to-teal monitoring ring and charging bolt.
  • Battery History preview with a compact battery-level trace.
  • Range-aware stacked App CPU history for Live / 1H / 24H / 7D.
  • Four six-hour bars per day in 7D, with readable daily axis labels.
  • Original shared Energy breakdown | Apps layout preserved.
  • History window appears in the Dock while open and hides from the Dock when closed without quitting the menubar sampler.

Measurement scope

App attribution is the CPU portion recorded by proc_pid_rusage. It does not
claim to divide whole-device battery drain among apps. Hardware channels are
independent measurements and may overlap.

Artifact

  • Voltscope-0.7.2-arm64.dmg
  • Developer ID signed
  • Not notarized yet
  • SHA-256: af352fdf516e51e270c6f6297bb48f01d639bd69b249acb5fcd6ef6c97b7a209

The official download is also available from
https://voltscope.dimp.studio/Voltscope.dmg.