Files
CleanMM/CHANGELOG.md
zhukang 86e6ea1d80 fix(recovery): preflight restore items before mutating state
Add validation pass that checks all selected recovery items before any
restore operations begin. This prevents partial in-memory restore success
when a later item fails.

Map helper-backed restore destination conflicts to restore-specific
rejection paths instead of falling back to generic execution-unavailable
messages.

Bump version to 1.0.1 and update CHANGELOG with release notes.
2026-03-13 16:40:31 +08:00

2.0 KiB

Changelog

All notable changes to Atlas for Mac will be documented in this file.

The format is based on Keep a Changelog.

[Unreleased]

[1.0.1] - 2026-03-13

Added

  • Native macOS app with 7 MVP modules: Overview, Smart Clean, Apps, History, Recovery, Permissions, Settings
  • Recovery-first cleanup workflow — actions are reversible via Trash before permanent deletion
  • Explainable recommendations — every suggestion shows reasoning before execution
  • Bilingual UI: Simplified Chinese (default) and English, with persistent language preference
  • AtlasDesignSystem shared design tokens: brand colors (teal/mint), typography, 4pt spacing grid, continuous corner radius
  • Layered Swift Package architecture with strict dependency direction
  • XPC worker architecture for sandboxed operations
  • Privileged helper for elevated operations requiring administrator access
  • Keyboard navigation and command shortcuts for the main shell
  • Accessibility semantics and stable UI-automation identifiers
  • Native packaging: .app, .zip, .dmg, .pkg artifact generation
  • Go-based TUI tools inherited from upstream Mole: disk analyzer (analyze) and system monitor (status)
  • CI/CD: GitHub Actions for formatting, linting, testing, CodeQL scanning, and release packaging

Fixed

  • Recovery restore requests now preflight every selected item before Atlas mutates local recovery state, preventing partial in-memory restore success when a later item fails.
  • Helper-backed restore destination conflicts now surface restore-specific errors instead of falling back to a generic execution-unavailable message.
  • Expired recovery items are pruned from persisted state and rejected with explicit restore-expired messaging.
  • Revalidated the current native release candidate with package tests, app tests, DMG install verification, launch smoke, and native UI automation.

Attribution

  • Built in part on the open-source Mole project (MIT) by tw93 and contributors