Skip to content
Helm v0.17.10 is live. Install the latest release and report issues on GitHub.

Changelog

All notable changes to Helm are documented here. The format is based on Keep a Changelog and follows SemVer-compatible versioning.

For the full changelog, see CHANGELOG.md on GitHub.

Latest entries below reflect the current release-finalization snapshots.


Patch 0.17.10 focuses on final stable-line hardening before broader 0.18.x work begins.

  • Doctor/repair now detects stale selected manager executable overrides and can clear them locally through the existing repair flow.
  • Executable discovery now accounts for non-default CARGO_HOME, ASDF_DIR, ASDF_DATA_DIR, and modern mise/rtx shim and install roots more consistently across core, FFI, and CLI surfaces.
  • Catalog-sync participation is now explicitly scoped instead of being inferred from generic package-search participation.
  • Onboarding no longer risks clobbering a valid discovered rustup executable path during follow-up detection.
  • Non-default cargo, cargo-binstall, and rustup installs now route execution through the correct resolved binary path instead of assuming ~/.cargo/bin.
  • Executable discovery caches now self-heal when cached paths disappear and are invalidated on recent manager lifecycle transitions.

Patch 0.17.9 completes current-scope manager adapter coverage and package workflow hardening ahead of the 0.18.x doctor/repair and local-security cycle.

  • Rustup package workflows are now first-class in Helm, including toolchain search/install/uninstall/upgrade and rustup toolchain detail controls for components, targets, profile, default toolchain, and directory overrides.
  • End-to-end orchestration coverage now spans the remaining manager adapters, including Homebrew casks, MacPorts, the remaining language managers, and the guarded/status system adapters.
  • Manager adapter scope is now explicitly documented so package, status, and detection-only managers are considered complete relative to Helm’s product model.
  • Package-family workflows now keep the main package surfaces collapsed while moving exact version/member targeting into inspector and install flows.
  • Homebrew formulae and casks, asdf, mise, and rustup are now treated as complete first-class package workflows within Helm’s intended scope.
  • Version-scoped virtual pinning now applies coherently across GUI, CLI, and TUI for multi-version managers.
  • Shared package-search participation policy is now consistent across core, CLI, TUI, and FFI surfaces.
  • Homebrew-backed outdated detection for colima, podman, and docker-desktop is now provenance-aware instead of assuming Homebrew ownership for non-Homebrew installs.
  • Cargo-binstall end-to-end tracking coverage now waits deterministically for persisted mutation state, eliminating the observed CI race in tracked-package assertions.
  • Managed Helm CLI shim installation now routes through the service helper path and validates the final shim state so sandboxed app builds install a non-quarantined shim correctly.

Patch 0.17.8 finalizes manager lifecycle parity expansion and managed CLI shim hardening.

  • Expanded manager lifecycle parity across core, CLI, FFI, and GUI for planner-backed manager install/update/uninstall paths.
  • Merged the manager lifecycle parity sweep into one stable patch cut.
  • Managed CLI shim installs now stage through a temporary .helm.tmp file before replacement.
  • Managed CLI shim flow now clears quarantine attributes to avoid blocked execution.
  • Release preflight now avoids the unsupported gh secret list --limit invocation path.

Patch 0.17.7 closes the pre-release quality audit and release-gate blockers.

  • Runtime queue timeout diagnostics now include heartbeat logging and richer timeout/cancellation context.
  • Timeout process coverage now verifies child process-group cleanup to prevent orphaned processes.
  • Refresh orchestration now logs effective timeout derivation as min(policy_timeout, orchestration_cap) with retry context.
  • Graceful cancellation now re-checks terminal state before forced abort.
  • Removed remaining Homebrew adapter clippy blockers and strict-clippy regressions in touched CLI/FFI surfaces.
  • Hardened runtime-queue waits to remove an intermittent rustup timeout race.

Patch 0.17.6 hardens refresh reliability and diagnostics after the v0.17.5 release cycle.

  • Task diagnostics now include effective working directory, timing, exit metadata, and structured error attribution.
  • Diagnostics summary now includes failure-class counters to speed triage.
  • Coordinator health diagnostics now surface stale-state reasons (dead PID, missing executable target, invalid ready payload).
  • Coordinator request handling now performs one stale-state recovery retry on timeout.
  • Refresh/search request-response now retries once for transient timeout and network-resolution failures.
  • npm list timeout was increased from 60s to 120s.
  • Process execution now falls back to a valid existing working directory when a recorded cwd no longer exists.

Patch 0.17.5 finalized the release-process hardening phases delivered after v0.17.4.

  • Added release preflight and runbook operator scripts for prepare, tag, publish, and verify.
  • Release workflows now keep hard failures for true artifact/signing issues while reporting follow-up-required status for open metadata publish PRs.
  • Added publish verification and drift-guard checkpoints to reduce release metadata divergence risk.

Patch 0.17.2 ships post-0.17.x manager-control, onboarding/detection, and Control Center execution-plan fixes as a stable incremental release.

  • Manager Inspector executable/install-method selection is now actionable and persisted, including explicit PATH-default executable mode.
  • Failed-task diagnostics panes now support selectable text and Copy All controls for diagnostics, stderr, stdout, and logs.
  • Runtime detection now emits structured per-manager timing telemetry with slow-detection warnings at >=3000ms.
  • Core manager execution now uses selected executable overrides instead of implicit PATH dependency, and manager install/update/uninstall flows honor selected install method where implemented (mise, mas, rustup).
  • Onboarding detection now runs detection-only (no immediate refresh list work), pre-seeds manager presence immediately, and shows localized Loading placeholders until version probes finish.
  • License acceptance now appears as onboarding step 2 and no longer loops onboarding after acceptance.
  • Execution-plan modal presentation is now host-scoped to the initiating surface (Control Center vs popover), preventing duplicate modal presentation.
  • Disabled managers are now enforced across refresh/search/package/task behavior, centralized task submission, and in-flight cancellation.
  • Manager executable discovery now falls back to direct filesystem probing when which lookup fails.
  • Packages and Tasks list dark-mode backgrounds now align with app branding.
  • Removed deprecated execution-plan Dry Run action.

Patch 0.17.1 supersedes the failed v0.17.0 artifact build attempt and ships stable signed artifacts from the corrected release source.

  • Stable macOS release builds now include the LocalizationManager explicit-self capture fix required by release compilation settings.
  • Release packaging now publishes signed/notarized artifacts from the corrected 0.17.1 tag lineage instead of the failed v0.17.0 tag build.

Stable 0.17.0 consolidates all rc.1 through rc.5 deliveries and includes final release-readiness hardening across diagnostics, updater reliability, responsiveness, and website release surfaces.

  • Diagnostics/logging capabilities are now fully shipped in stable (task lifecycle log persistence, Inspector log filtering/pagination, structured support export redaction, service health diagnostics, and manager detection diagnostics).
  • Packages include localized Pinned filtering (with Upgradable exclusion), and popover search now supports quick icon actions for install/uninstall/update/pin.
  • Failed-task inline command/output expansion and manager-error View Diagnostics entry points are now available for operator troubleshooting.
  • Privileged manager operations now trigger administrator authentication via managed sudo -A askpass handling.
  • Website now includes a blog section with RSS feed support, blog social-share actions, and right-aligned landing nav links for Blog and Docs.
  • Pre-stable hardening centralized manager-display-name localization mapping, moved localization diagnostics to structured logger output, introduced lower-frequency idle polling cadence, and enforced default SQLite pragmas for resilience.
  • Rust build generation now fingerprints Rust/script/build inputs and skips redundant artifact rewrites when unchanged.
  • Sparkle appcast release notes now point to website-hosted release notes pages generated from the changelog.
  • Developer ID onboarding now requires license-terms acceptance tracked by version/timestamp with About-surface re-review access.
  • Popover and Control Center are now mutually exclusive with deep links from popover health/metric cards into target Control Center sections.
  • Software Update manager now maps to valid SF Symbol applelogo.
  • Manager-priority drag now takes precedence over window drag-to-move in Managers.
  • Inflight task dedupe now favors running/newest rows so command/live output remains populated when backend output exists.
  • Terminal task retention now starts from completion/failure transition time and includes cancelled cleanup behavior.
  • Swift lint rule config/usage is now aligned with current rule identifiers to avoid stale lint noise.
  • Packages now include a localized Pinned filter, and Upgradable excludes pinned packages.
  • Popover package search rows now include quick icon actions for install, uninstall, update, and pin.
  • Failed tasks now support inline command/output expansion (single-expanded-task behavior), and manager inspector error states now include View Diagnostics.
  • Privileged manager actions now prompt for administrator authentication via a managed sudo -A askpass flow when elevation is required.
  • Control Center/popover responsiveness improved with section-scoped derived-state snapshots, adaptive polling cadence, and lazy container usage in scroll-heavy surfaces.
  • Inflight task deduplication now prefers running/newest rows so command/live output remains populated when backend output exists.
  • Task terminal retention timing now starts at completion/failure transition time to preserve diagnostics visibility.
  • Package and inspector actions now use compact icon affordances with tooltip labels for narrow layouts.
  • Software Update manager now maps to valid SF Symbol applelogo.
  • Manager-priority drag interactions now take precedence over window drag-to-move behavior in Managers.
  • Manager inspector executable-path lists are now scrollable when the list is long.

  • Settings now include a Launch Helm at login toggle (macOS 13+), with localized unsupported guidance on older systems.
  • Manager inspector now lists all discovered executable paths, emphasizing the active executable.
  • Manager inspector now exposes install-method metadata through a disabled dropdown with localized recommended/preferred tags.
  • Managers are now drag-reorderable within authority groups, with Restore Manager Priority in advanced settings.
  • Sparkle appcast entries now link to website-hosted per-tag release notes pages.
  • Developer ID onboarding now requires current license-terms acceptance (tracked by version/timestamp) with automatic re-prompt on license-version changes.
  • About now includes View License Terms plus build/channel/update-authority/last-update-check metadata.
  • Popover and Control Center are now mutually exclusive, with popover health/metric cards deep-linking to Control Center sections.
  • Popover outside-click handling now responds only to click events (not pointer movement).
  • Popover hover cursor forcing was removed so interactive controls keep expected hover affordances.
  • Reset local data now clears persisted license-acceptance state.
  • Executable-path discovery now skips undetected managers and caches detected-manager discovery results.

  • Non-App-Store prerelease builds now preserve prerelease marketing versions so Sparkle “up to date” messaging reflects full RC versions (for example, 0.17.0-rc.3).
  • Running task rows now support inline expand/collapse details with single-row expansion behavior per task list.
  • Package list and popover search now consolidate same-name packages across managers into one row and list all matching managers under the package name.
  • Inspector package descriptions now render HTML summaries as attributed text so bold/italic/code formatting is preserved, with plain-text fallback if parsing fails.
  • Inspector detail content now stays full-width and leading-aligned, avoiding centered narrow text columns when values are short.
  • Running-task inline details now show the resolved command and a live-updating output panel.
  • Hungarian locale coverage now includes the newly added task/inspector UX copy.
  • Prerelease updater eligibility now rejects bundle metadata mismatches that can cause release-candidate version labeling drift.
  • Inspector description links now only allow safe http:///https:// destinations.
  • Task output buffering now enforces bounded command/output storage for long-running tasks.

  • Sparkle appcast generation now preserves prerelease display versions (for example, 0.17.0-rc.2) in sparkle:shortVersionString and appcast item titles.
  • Release automation now passes tag-derived display versions into appcast generation for prerelease tags.
  • Release DMG verification now enforces Sparkle installer-launcher and sandbox entitlement requirements for updater compatibility.
  • Enabled Sparkle installer launcher service metadata in Helm app bundles for sandboxed update installs.
  • Added required Sparkle sandbox entitlement exceptions for installer/status mach services and shared preference access.
  • Fixed updater install failures seen in v0.17.0-rc.1 where Sparkle could download updates but fail launching the installer.

  • Diagnostics/logging release-candidate delivery for v0.17.x:
    • SQLite-backed task lifecycle logs and retrieval APIs
    • Inspector task-log viewer with level/status filters and pagination
    • Structured support export payloads with redaction
    • Settings service-health diagnostics panel
    • Manager detection diagnostics in Inspector
  • Hungarian (hu) locale bootstrap added across app + service localization files with language-picker support.
  • SupportRedactor test coverage added for support-export redaction guarantees.
  • Diagnostics/reporting now preserves attributed last-error context (source, action, manager, task_type) across fetch/action/settings paths.
  • Third-party licensing compliance baseline documentation is now tracked in release prep for RC handoff.
  • Manager display-name localization coverage expanded across all implemented manager IDs with brand-preserving labels.
  • Task-log ordering in diagnostics now presents newest entries first.
  • Hungarian onboarding copy shortened to pass layout-overflow validation thresholds.

  • Sparkle feed access now works in sandboxed builds via com.apple.security.network.client app entitlement.
  • Sparkle startup now clears persisted feed URL overrides and logs the resolved feed URL used for manual checks.
  • Release workflow now fails fast when HELM_SPARKLE_FEED_URL is not DNS-resolvable or not https://.
  • macOS deployment target baseline lowered to 11.0 across app, service, and tests.
  • Version metadata source-of-truth bumped to 0.16.2 so generated appcast short version aligns with release tags.

  • Documentation-only rollout restructuring (no security feature implementation shipped).
  • Added staged security model:
    • Stage 1 (0.18.x) local internal groundwork
    • Stage 2 (1.3.x) Security Advisory System (Pro, local-first, optional public advisory APIs, local TTL cache)
    • Stage 3 (1.4.x) Shared Brain (fingerprint sharing, known-fix lookup, centralized backend, App Attest controls)
  • Moved previous 0.18.x hardening scope to 0.19.x.
  • Shifted previous 1.4.x+ roadmap milestones forward by one minor version.
  • Updated documented minimum platform to macOS 11+ (Big Sur) in README/website installation references.

0.16.0 — 2026-02-21 (Release Finalization Snapshot)

Section titled “0.16.0 — 2026-02-21 (Release Finalization Snapshot)”
  • Channel-aware update configuration and direct-channel Sparkle integration scaffolding in the macOS app.
  • Signed appcast generation and publication path for direct Developer ID releases.
  • Expanded support surfaces with six-channel “Support Helm” actions in both Settings and status-menu flows.
  • Runtime self-update gating now blocks package-manager-managed, translocated, and DMG-mounted installs.
  • Release automation now enforces appcast policy validation and deterministic rerun-safe artifact publication.
  • Upgrade transparency surfaces now include richer diagnostics (diagnostics, stderr, stdout) and clearer review-first failure handling.

  • End-to-end upgrade-plan preview model with scoped execution controls and failed-step retry.
  • Inspector task-output retrieval with command context for troubleshooting.
  • Scoped bulk upgrade execution now runs by authority phase with stronger stale-callback and timeout guards.
  • Updates/Inspector UX refined for long-plan scrolling, row selection hit targets, and explicit execution feedback.

  • Promoted 0.14.x alpha and rc delivery slices into the stable v0.14.0 checkpoint
  • Aligned release status metadata across README, docs, website, and generated version artifacts

  • Completed 0.14 manager rollout across alpha.1 through alpha.5:
    • Container/VM managers: Docker Desktop, podman, colima
    • Detection-only managers: Sparkle, Setapp, Parallels Desktop
    • Security/Firmware managers: Xcode Command Line Tools, Rosetta 2, Firmware Updates
    • Optional managers: asdf, MacPorts, nix-darwin
    • Homebrew cask status manager (homebrew_cask)
  • Added 0.14 manager capability sweep artifact at docs/validation/v0.14.0-alpha.5-manager-capability-sweep.md
  • Added future-state distribution/licensing planning docs:
    • multi-channel build matrix (MAS, Developer ID, Setapp, Fleet)
    • channel licensing/update authority mapping
    • staged roadmap phases for Sparkle, MAS, Setapp, Fleet, PKG/MDM, and offline licensing
  • FFI manager status now reports full 0.14 implementation baseline (isImplemented=true for all registry managers)
  • Optional managers remain default-disabled until explicitly enabled (asdf, macports, nix_darwin)
  • Swift fallback manager metadata aligned to 0.14 implementation coverage
  • Clarified consumer vs fleet lifecycle separation in architecture/enterprise planning docs (documentation-only)

  • Website: changelog page, visual tour with 10 UI screenshots, FAQ & troubleshooting guide
  • Website: Open Graph and Twitter Card meta tags for social sharing
  • Website: Starlight lastUpdated timestamps on all pages
  • Promoted 0.13.x beta and rc slices into the stable v0.13.0 checkpoint

  • “Support & Feedback” card in control-center Settings with 5 action buttons: Support Helm (GitHub Sponsors, Patreon, Buy Me a Coffee, Ko-fi, PayPal, Venmo), Report a Bug, Request a Feature, Send Feedback (mailto), Copy Diagnostics
  • “Include Diagnostics” toggle that copies diagnostics to clipboard before opening GitHub issue templates
  • Transient “Copied!” confirmation with animated opacity transition
  • “Support Helm” destinations now include all six configured channels (GitHub Sponsors, Patreon, Buy Me a Coffee, Ko-fi, PayPal, Venmo)
  • .github/FUNDING.yml for GitHub Sponsors and Patreon integration, with direct support links for Buy Me a Coffee, Ko-fi, PayPal, and Venmo
  • 11 new L10n keys across all 6 locales
  • AppDelegate decomposed to satisfy SwiftLint file/function length thresholds
  • README.md updated with funding links and issue template links

  • Inspector sidebar task detail view with status badge, task type, manager name, label key, and label args
  • Post-upgrade validation across all 11 adapter upgrade handlers — prevents silent upgrade failures
  • Control Center menu item in status menu right-click
  • Manager inspector enriched with health badge, installed/outdated counts, and View Packages navigation
  • Security Advisory System milestone added to ROADMAP.md (1.3.x)
  • 16 new L10n keys for inspector views across all 6 locales
  • Inspector selection clearing: selecting a manager no longer shows stale package inspector
  • RubyGems upgrade tasks showing “completed” when packages were not actually updated
  • Task labels now include package names for upgrade tasks across all managers

  • Structured #[instrument] tracing spans on adapter execution entry points
  • Unit tests for Homebrew split_upgrade_target() function
  • On-device validation report template and usability test plan
  • INTERFACES.md Section 10 filled with concrete XPC, FFI, and SQLite inventories

  • XPC timeout enforcement on all service calls (30s data fetches, 300s mutations)
  • Exponential backoff on XPC reconnection (2s base, doubling to 60s cap)
  • Search deduplication logic extracted from views to HelmCore
  • Task-to-manager inference removed: tasks now carry managerId directly
  • Authority, capability, and symbol lookups consolidated as ManagerInfo computed properties
  • Legacy redesign scaffold removed (18 files)

  • Guided onboarding walkthrough with SpotlightOverlay component (6 popover + 7 control-center steps)
  • WalkthroughManager with UserDefaults persistence, skip, and replay from Settings
  • 31 walkthrough L10n keys across all 6 locales
  • Onboarding copy updated across all 6 locales for friendlier tone

  • VoiceOver accessibility support across all interactive UI elements
  • Task cancel button wired to XPC cancelTask method
  • Per-manager “Upgrade All” button in Managers view
  • CI test enforcement (ci-test.yml with cargo test + xcodebuild test)
  • HelmCore decomposed from 1,133 lines into 5 files
  • DashboardView decomposed from 1,919 lines into 4 files
  • SwiftLint thresholds tightened

  • Universal-build support for Apple Silicon + Intel
  • Release automation workflow for signed DMG packaging
  • Beta binary installation guidance on website

  • Redesigned menu bar popover with updates attention banner, layered overlays, and right-click quick actions
  • Redesigned control-center with titlebar-hidden presentation, integrated global search, and card-based Settings
  • Keyboard shortcuts (Cmd+F, Esc, Cmd+W)

  • Localization hardening across all 6 shipped locales (key parity, placeholder consistency, overflow validation)
  • Dedicated Upgrade Preview UI surface with execution-plan sections
  • Dry-run support in Upgrade Preview flow

  • Bounded retry handling for transient task-store persistence failures
  • Regression coverage for refresh-response error attribution

  • Priority 1 core language-manager support: npm (global), pipx, pip (global), cargo, cargo-binstall
  • Package-identifier validation on mutating adapter actions
  • Poisoned-lock recovery at FFI boundary

  • Internationalization foundation: LocalizationManager, type-safe L10n accessor, JSON locale architecture
  • Language picker in Settings (persisted to UserDefaults)
  • All user-facing strings localized

  • End-to-end pinning and policy controls (native Homebrew pin/unpin, virtual pin fallback, safe mode)
  • Individual package upgrade actions for Homebrew, mise, and rustup
  • helm_upgrade_all orchestration with pin filtering and safe-mode enforcement

  • Manager update/self-update controls (Homebrew update, mas/mise upgrades, rustup self-update)
  • Authority-order regression tests for capability-aware refresh
  • mas package parsing using app names instead of numeric IDs