Releases
Changelog
All notable public changes to Aetower should be documented here.
Unreleased
0.9.0 (build 900) - 2026-07-14
Aetower 0.9.0 makes Monitor's process view structurally reliable. The app now keeps a real process-lineage graph through the core snapshot and FFI layer, so grouping no longer depends on parsing truncated component display strings. Grouped Monitor rows render one unified operator list: burden leaders are badges on the group row, per-PID expansion is inline, and search keeps the ancestor chain needed to explain matching children.
Selected commits:
- Public website comparison and claim-copy cleanup: 3d9a2d5, 235ae69, 56f7f45, 49a9546
- Changelog, docs, and public-claims validation alignment: 486c461, 1f750b3, 916ce36, c7341c0
- Monitor list decomposition, inline process expansion, and grouped-session behavior: 8ccccf5, d5d0211, ed13dc6, 56b8b66
- Core process-lineage snapshots and graph-backed Monitor grouping: 8df618c, 905902a
Monitor:
- Added
ProcessLineageNodeto the core model and Swift FFI binding so the UI receives PID, parent PID, owning entity, workspace/cwd, source, confidence, and per-process resource fields before component truncation. - Reworked grouped Monitor mode to prefer lineage graph edges, while keeping component parent-summary parsing as a fallback for older/capped snapshots.
- Changed burden leaders from a separate flat section into design-system badges on grouped rows, so a high-burden root no longer disappears from its group.
- Expanded grouped rows show the concrete PIDs inline and sort those PIDs by the same key as the parent group.
- Search and filters now decide which grouped rows are visible after grouping, preserving parent/ancestor entities needed to explain visible children.
Website and docs:
- Expanded the public comparison pages into a surfaces overview plus four richer comparison arenas.
- Aligned MCP, retention, and published tool-count claims with the code and public descriptors.
- Refreshed product direction, feature inventory, tab guide, and release copy for the current operator-surface direction.
0.8.1 (build 801) - 2026-07-14
Aetower 0.8.1 is a fast follow-up to 0.8 focused on making the operator surface faster, more transparent, and easier to verify. Storage and Repos now open from cached state first, history retention moves to a seven-day default, privacy/outbound state is visible in-app, MCP operator actions are controllable from Settings, resource-cost rollups use one shared model, and the release pipeline now checks public claims before the website ships.
Selected commits:
- History retention and claim alignment: 656387c, ec78bf7
- MCP, first-run registration, and outbound-data controls: 5ae5d9a, 0e6b563, 12f8f12, badb20b
- Shared resource-cost rollups and attribution-gated repo energy/carbon: 86ed516, c92e735
- GPU/memory source badges and Fleet opt-in confidence: 628dd63, 5808882, 5e65239
- CLI/Homebrew distribution consistency: 6aad93c, e16b53c
- APFS estimates, Repos operator truth, and public-claims validation: 83a71c9, 237dfda, 32c4530
- Storage/Reclaim scan reliability and cache-first responsiveness: 03fdae7, f8881f7, f2ed3c2, 5051ade, 5f3fbd1, 46d21c2, 95de895, 338810f
- Website/docs release surface: 5842a5a, 597d0da, ae85d0d, ea567b3
Cost model:
- Added unified resource-cost rollups for repositories, sessions, entities, and machine-level activity, with shared estimates for energy, battery, dollars, carbon, disk growth, thermal contribution, source, and confidence.
- Repository rollups include estimated energy and carbon only when attribution is strong enough (known repo path, matching Chau7 session/workspace, session linked to an entity with accumulated session energy), tagged with the
chau7-repo+estimated-energysource. The Repos UI carries dollars, tokens, estimated energy, carbon, source, and confidence, and row/detail help text explains the estimates where available.
Privacy:
- Added an Outbound Data panel under Settings → Privacy that shows every channel that can leave the machine and its live state: telemetry on/off with endpoint and cadence, Fleet on/off with local-network advertising behavior, VirusTotal on/off/key state with its exact hash-only behavior, provider credentials configured versus actually usable for outbound API calls, and registered MCP clients with the local-socket/client-forwarding caveat.
- MCP operator actions are now visible by default for trusted local clients, while Settings can hide them and force the MCP surface back to read-only tools. Process actions remain preview- and approval-gated.
CLI install consistency:
- Homebrew casks now declare a
binaryartifact for the bundledAetower.app/Contents/Helpers/aetowerhelper, sobrew install --casklinksaetowerinto Homebrew'sbindirectory automatically. - Settings → Setup now tracks CLI readiness, and Settings → AI Clients shows the command-line tool status before MCP registration, with explicit smoke commands for
aetower top,aetower storage, andaetower repos. - Release matrix verification now fails if the generated Homebrew cask stops linking the CLI or stops documenting the three smoke commands.
Homebrew tap:
- Published Aetower through the real
Aeptus/homebrew-aetowertap so users can install withbrew tap aeptus/aetowerandbrew install --cask aetower. - Added an explicit tap publisher to the release pipeline; generated cask files remain build artifacts until
--publish-homebrew-tappushes the tap. - Updated docs and website copy to distinguish the downloadable cask artifact from the brew-installable tap distribution.
Repository operations:
- Added explicit Repos operator-truth coverage for immediate cached inventory, Git/index/config fingerprint changes, stale-but-visible repositories, and the background new-repo scan toast/state.
Release validation:
- Added a public-claims validation gate that checks release-facing claims against source defaults, local release artifacts, the Sparkle appcast, source archives, bundled CLI, Fleet/outbound defaults, and published release URLs before website deploys.
Storage:
- Added explicit APFS-aware storage coverage for sparse files, hardlinks, cloud placeholders, purgeable capacity, and clone-lineage caveats, with docs that frame the feature as local reclaim estimates rather than exact filesystem ownership forensics.
Responsiveness:
- Storage and Repos now keep tab-open paths cache-first: when no display cache is available, the app shows a scan-needed idle state instead of reconstructing the first paint from the persistent storage index.
- History-backed tabs now reuse the in-memory history page on repeat opens instead of forcing a persisted-history reload every time AI Agents, Chau7, or History becomes visible.
0.8 (build 800) - 2026-07-08
Accessibility & automation:
- The main window's tabs are now addressable, not just clickable. Every workspace has a stable slug and four ways to reach it: the
aetower://tab/<slug>URL scheme (e.g.open "aetower://tab/system", sub-tabs viaaetower://tab/activity/timeline), anaetower tab <slug>CLI verb, Cmd+1…8 in a new Navigate menu, and matching accessibility identifiers (tab.system,rail.activity.timeline). None of these need Accessibility trust or synthetic clicks, so headless agents and scripts can drive the UI. - Added a persisted default startup tab (Settings → General → "Startup tab"). The app opens on Monitor unless an explicit default is set, which agents can also write with
aetower tab <slug> --defaultordefaults write com.aeptus.aetower nav.defaultWorkspaceTab <slug>. - Sidebar rail buttons and section menus now expose selection state, labels, and hints to VoiceOver and UI automation.
Repository operations:
- Reworked the Repos tab into a cache-first operator view: cached repository inventory paints immediately, a fingerprint pass decides whether a deeper parse is needed, and a small background toast reports new-repo scans without blocking the list.
- Split repository optimization planning out of the Aetower-specific view layer so future content sources can feed the same optimization decisions.
- Aligned Repos list rows and floating controls with the Monitor tab and shared design-system components.
Storage:
- Added the Storage cube explorer and reclaim-card actions for scanning storage pressure visually.
- Fixed environment-dependent storage scan policy assertions and preserved cached repository rows when an empty signal-only refresh returns.
macOS:
- Disabled AppKit automatic window tabbing so
Cmd+Tno longer creates duplicate macOS-level Aetower window tabs.
Website:
- Updated the public site with early-alpha positioning, Chau7 links, and real Storage and Repos captures from the current app.
0.74 (build 723) - 2026-07-04
Developer Preview feature release.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
Command line tool:
- Added
aetower, an operator CLI that reads live data from a running Aetower over its local MCP socket:aetower top,host,storage,repos,alerts,findings, anddoctor, a genericaetower callreaching every tool,--jsonon any command for pipelines,--watch, scriptable exit codes, shell completions, and a man page. - The CLI ships inside the app bundle, so it arrives through every install channel. The signed installer package symlinks it onto your
PATHautomatically; disk-image, ZIP, and Homebrew installs can add it from Settings → AI Clients ("Install Command Line Tool") or withaetower install.
Distribution:
- The signed, notarized installer package (
.pkg) and disk image (.dmg) are built and published again as part of every release, so the direct downloads track the current version instead of an older build.
0.73 (build 718) - 2026-07-03
Developer Preview feature release.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
Storage:
- Redesigned the Storage tab around reclaiming space: a disk-pressure header, clearer reclaim opportunities, a nimble cleanup pill, and a reversible Finder-Trash cleanup flow that shows how much space frees when the Trash is emptied.
- Made storage relaunch paint instantly from a persisted cache and skip the full repository inventory re-walk when nothing changed on disk, removing the long "starting scan" delay after every launch.
- Added growth, cold-data, and filesystem-event attribution so reclaim cost is learned from writer history.
Repository:
- Reworked the Repository page around repository health: a health-header hero, a navigation rail with live signals, bulk multi-select operations, and real actions — reversible artifact cleanup, project unlinking, and re-running failed GitHub workflows / redeploying Cloudflare Pages from the provider tile.
- Expired and labelled the OpenSSF Scorecard cache so a cached supply-chain score is never shown as fresh, and banded per-check outcomes so a strong check is no longer reported as "failed".
Metrics & correctness:
- Fixed CPU-wakeups, disk, and network rates to divide by the real elapsed interval (they were previously stuck at zero or over-reported), kept metric rings updating while a visible window is unfocused, carried hardware sensors forward between samples, and summed GPU memory across accelerators.
Reliability & security:
- Hardened token storage to be device-bound, surfaced decode errors instead of failing silently, backed up corrupt local stores instead of discarding them, fenced untrusted external text before it enters agent prompts, and added a CI gate against a stale Rust↔Swift FFI binding.
0.54 (build 497) - 2026-06-04
Developer Preview maintenance release.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
- Added a merged Activity workspace that combines History and Timeline into a single section with Overview, History, Timeline, and Storage modes.
- Added hardened process actions with per-click action IDs, PID identity safeguards, target blast-radius metadata, richer command results, and follow-up verification for terminate flows.
- Added a guarded privileged-helper process action command path that remains opt-in and disabled by default for public builds.
- Added clearer process-action UI feedback, including sent-action state, verification outcomes, command stderr/stdout, target outcomes, helper status, and restore-previous-priority support.
- Fixed Monitor click responsiveness by preventing ordinary entity/PID selection from starting eager process inspections or static analysis spinners.
0.53 (build 467) - 2026-06-04
Developer Preview feature release.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
- Added a fast, operator-oriented Startup & Persistence view with richer risk scoring, change detection, runtime correlation, deep audit support, and safe reveal/copy/focus actions.
- Added configurable Monitor metric-ring placement for top, bottom, left, or right layouts.
- Added Monitor ring focus controls for top and bottom layouts, including full-width focused graphs and inline pin/unpin controls.
- Added stable seven-ring Monitor presentation by keeping GPU visible even when GPU activity is currently idle.
- Added release/support metadata for Monitor metric-ring placement and focus settings.
0.52 (build 462) - 2026-06-03
Developer Preview feature release.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
- Added a redesigned public website with a cleaner visual system, real Monitor screenshot, PKG-first install flow, and project/author links.
- Added reverse resource pivot tools to show which process holds a file, port, or socket, including MCP-facing reports and UI filtering for open resources.
- Added startup and persistence inspection for login items, launch agents, launch daemons, and related persistence surfaces.
- Added richer code-signing classification with amortized full-coverage scans.
- Added per-agent budget rules, alerting, timeline notifications, per-category toggles, and snooze support.
- Added actionable recommendation flows so users and agents can act on concrete process guidance rather than generic friction text.
- Added thermal throttle forecasting and contributor attribution.
- Added slow-regression detection foundations, including app-version capture and off-tick detector wiring.
- Added energy translation for battery time, estimated cost, and carbon impact.
- Added observability documentation, a metric reference, and a Grafana dashboard.
0.51 (build 418) - 2026-05-29
Developer Preview maintenance release.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
- Changed the Aetower project license to
AGPL-3.0-only. - Added corresponding source archive generation for public binary releases.
- Added Cloudflare release-site publication for versioned and latest source archives.
- Added public release verification for source archive availability.
- Added release preflight protection against dirty release source states.
- Updated package metadata so Rust workspace crates report the AGPL license.
- Embedded the Aetower license file in packaged macOS app bundles.
0.5 (build 414) - 2026-05-29
First public 0.5 Developer Preview release.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
- Added prominent process actions in Monitor and process detail surfaces, including easier access to terminate and force-kill preview flows.
- Added richer monitor-side process controls, quick stop access, and clearer action naming.
- Added Chau7 integration guidance when Chau7 is not running or not connected.
- Added public-release publication checks for Sparkle appcast, immutable ZIP, direct ZIP, Homebrew cask, optional PKG, and third-party notices.
- Added Cloudflare release-site publication of Homebrew cask artifacts and optional signed PKG artifacts, gated so stale local PKGs are never published unless the current release run explicitly built a PKG.
- Added release preflight validation that the changelog version/build matches the release metadata.
0.1.0-developer-preview.1 (build 408) - 2026-05-29
First public Developer Preview baseline.
Release metadata:
- Bundle identifier:
com.aeptus.aetower - Sparkle appcast:
https://aetower.dev/releases/appcast.xml - Release archive prefix:
https://aetower.dev/releases/
- Added a direct-download macOS release path with Developer ID signing, notarization, Sparkle appcast generation, and package smoke testing.
- Added local MCP support for AI agents through the app-owned live engine and a bundled helper.
- Added Monitor, History, Timeline, Chau7, AI Agents, Diagnostics, Fleet, and Settings surfaces.
- Added operator-safe History and Timeline behavior for large datasets.
- Added runtime diagnostics, history health, memory breakdowns, profiling hooks, wakeup attribution, and support-bundle previews.
- Added richer process inspection with code-signing classification, loaded library enumeration, bundle metadata, startup-entry detection, and child-tree thread aggregation.
- Added advanced process-list workflows: regex/field search, CSV export, recently-finished process visibility, new-process badges, and sandboxed Rhai filters.
- Added process-event automation hooks for Shortcuts or shell commands.
- Added release artifacts for Homebrew cask, optional PKG packaging, Sparkle distribution matrix verification, and generated third-party dependency notices.
- Added hardware-focused views for timestamp hover-scrub history graphs, hardware sensors, live menu-bar sparklines, and per-core performance/efficiency CPU load.
- Added local quality gates for Swift, Rust, security scans, benchmarks, package smoke, telemetry smoke, and dependency policy.
Aetower is a free early-alpha download for macOS 14+ (Apple silicon).
Download for macOS