From bd533064ff5a49ecc27a95a1b279e2487a888247 Mon Sep 17 00:00:00 2001 From: Dezoff-max <199903504+Dezoff-max@users.noreply.github.com> Date: Sat, 11 Jul 2026 16:34:00 +0500 Subject: [PATCH] Record v0.2.1 release completion --- contract.md | 6 +++--- progress.md | 10 ++++++++++ project-analysis.md | 2 +- roadmap.md | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/contract.md b/contract.md index dd0bac9..c4bc063 100644 --- a/contract.md +++ b/contract.md @@ -71,6 +71,6 @@ Restart or shrink the task if: ## Result -- Status: in progress -- Verification result: pending -- Notes: the current branch already contains the intended v0.2.1 build-number bump; no release has been published yet. +- Status: complete +- Verification result: passed. Localization lint and key parity, all 15 core tests, `git diff --check`, Debug build/launch, live RU/EN and light/dark About review, singleton Window-menu inspection, Release packaging, checksum comparison, fresh-ZIP strict signature verification, protected GitHub CI, and the tag-driven Release workflow all passed. +- Notes: PR #6 was merged into `main`; GitHub Release `v0.2.1` is published as latest with the verified arm64 ad-hoc archive and SHA-256 attachment. Per the user's final simplification, the metadata card contains only Developer and License. diff --git a/progress.md b/progress.md index cd0d7b5..ceff90b 100644 --- a/progress.md +++ b/progress.md @@ -270,3 +270,13 @@ Append-only history. Do not erase previous entries. - Next step: Add a compact Select visible/Clear selection action if bulk selection becomes frequent, or continue with large-file review. - Bottleneck: none. - Handoff: The confirmation was cancelled and no real app or leftover was moved. The known stale CoreSimulator warning remains non-blocking; a transient FinderInfo attribute on the built `.app` was cleared before the successful verification rerun. + +## 2026-07-11 - TASK-033 - Custom About window and v0.2.1 release + +- What changed: Replaced the sparse system About panel with a centered singleton SwiftUI window modeled on the user's SubPulse and LanScope patterns. It shows the transparent CleanMac artwork, live bundle version/build, localized tagline, developer and MIT license metadata, GitHub/Releases/License links, and a close action. RU/EN and light/dark changes update an already-open window. The final user-directed simplification removes the Data and Cleanup rows and reduces the fixed height. The app version is now 0.2.1 build 3. +- Files touched: `CleanMac/CleanMacApp.swift`, `CleanMac/Views/AboutView.swift`, `CleanMac/en.lproj/Localizable.strings`, `CleanMac/ru.lproj/Localizable.strings`, `CleanMac.xcodeproj/project.pbxproj`, `project-analysis.md`, `roadmap.md`, `contract.md`, `progress.md`, `trace.md`, `verification.md`. +- Checks run: localization plist lint and RU/EN key parity; `git diff --check`; `swift test --package-path CleanMacCore` (15/15); repeated `./script/build_and_run.sh --verify`; live Russian/light and English/dark accessibility plus visual review; repeated About invocation followed by Window-menu singleton inspection; screenshot `/tmp/cleanmac-task33-about-ru-light.jpg`; `./script/package_release.sh`; SHA-256 comparison; fresh-ZIP strict codesign, version/build, entitlement, and arm64 inspection; independent diff review; protected PR #6 CI; tag-driven Release run 29151074758; downloaded GitHub asset verification. +- Result: Passed. PR #6 is merged, `v0.2.1` is the latest GitHub Release, the downloaded `CleanMac-a5c853e-unsigned.zip` hash is `3dcdfdf49bfaca63bdda83a3bad2940896ea1e31e0df7f1d956ebc08a66b0501`, and its extracted app reports version 0.2.1 (3), arm64, with a valid strict ad-hoc signature. +- Next step: Configure Developer ID signing/notarization when Apple credentials become available, or continue with persistent cleanup history. +- Bottleneck: no Developer ID certificate or notarization credentials are configured, so the public archive remains ad-hoc signed and not notarized. +- Handoff: GitHub release notes are in English and explicitly disclose the distribution limitation. CleanMac was left in the user's Russian/light preferences, and no cleanup or application-removal action was triggered during About verification. diff --git a/project-analysis.md b/project-analysis.md index cbe20c9..2524936 100644 --- a/project-analysis.md +++ b/project-analysis.md @@ -62,7 +62,7 @@ CleanMac is a macOS menu bar and windowed system cleanup utility. The project wa - The menu bar popover shows current disk usage, scan-in-progress state, last scan source/time, and last scan result summary with larger readable typography and rounded compact panels. - Settings can enable read-only auto scan while the app is running; it supports daily, hourly, and every-two-hours frequencies, uses the currently selected scan areas, and updates menu bar status. - Scheduled auto scan can show localized macOS completion notifications when the notification toggle is enabled and system permission allows it; Settings includes a test notification button to diagnose macOS permission/delivery state. Manual scans remain silent. -- Public GitHub Release `v0.2.0` is the latest release and includes unsigned zip and sha256 assets. +- Public GitHub Release `v0.2.1` is the latest release and includes the verified arm64 ad-hoc zip and sha256 assets. - Release packaging creates a clean unsigned/ad-hoc local zip plus sha256, strips Finder/resource-fork metadata before archiving, strictly verifies a fresh ZIP extraction, and can optionally sign with Developer ID, enable hardened runtime, submit to Apple notary service, staple, and re-zip when credentials are configured. ## Unfinished Or Risky Parts diff --git a/roadmap.md b/roadmap.md index 783284e..b2d5b9d 100644 --- a/roadmap.md +++ b/roadmap.md @@ -1,6 +1,6 @@ # Roadmap -- [ ] ID: TASK-033 +- [x] ID: TASK-033 Title: Custom About window and v0.2.1 release Goal: Replace the default About panel with a polished localized CleanMac window, then publish the verified v0.2.1 build. What to do: Add a singleton SwiftUI About scene, live bundle version/build data, project links, RU/EN copy, theme support, and complete the protected PR/release flow.