chore(release): prepare v1.0.3

This commit is contained in:
zhukang
2026-03-23 19:50:18 +08:00
parent 9cd8d593fb
commit c6a3086eb5
6 changed files with 43 additions and 20 deletions

View File

@@ -100,11 +100,11 @@ final class AtlasAppModel: ObservableObject {
} }
var appVersion: String { var appVersion: String {
Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0.2" Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0.3"
} }
var appBuild: String { var appBuild: String {
Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "3" Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "4"
} }
func checkForUpdate() async { func checkForUpdate() async {

View File

@@ -1,6 +1,6 @@
{ {
"channel": "prerelease", "channel": "prerelease",
"version": "1.0.2", "version": "1.0.3",
"publishedAt": null, "publishedAt": null,
"releaseUrl": "https://github.com/CSZHK/CleanMyPc/releases", "releaseUrl": "https://github.com/CSZHK/CleanMyPc/releases",
"assets": { "assets": {

View File

@@ -458,7 +458,7 @@
buildSettings = { buildSettings = {
AD_HOC_CODE_SIGNING_ALLOWED = YES; AD_HOC_CODE_SIGNING_ALLOWED = YES;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 3; CURRENT_PROJECT_VERSION = 4;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)";
INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)";
@@ -467,7 +467,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 14.0; MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0.2; MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app.worker; PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app.worker;
PRODUCT_NAME = AtlasWorkerXPC; PRODUCT_NAME = AtlasWorkerXPC;
SDKROOT = macosx; SDKROOT = macosx;
@@ -535,7 +535,7 @@
buildSettings = { buildSettings = {
AD_HOC_CODE_SIGNING_ALLOWED = YES; AD_HOC_CODE_SIGNING_ALLOWED = YES;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 3; CURRENT_PROJECT_VERSION = 4;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)";
INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)"; INFOPLIST_KEY_CFBundleVersion = "$(CURRENT_PROJECT_VERSION)";
@@ -544,7 +544,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 14.0; MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0.2; MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app.worker; PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app.worker;
PRODUCT_NAME = AtlasWorkerXPC; PRODUCT_NAME = AtlasWorkerXPC;
SDKROOT = macosx; SDKROOT = macosx;
@@ -557,7 +557,7 @@
AD_HOC_CODE_SIGNING_ALLOWED = YES; AD_HOC_CODE_SIGNING_ALLOWED = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 3; CURRENT_PROJECT_VERSION = 4;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = "Atlas for Mac"; INFOPLIST_KEY_CFBundleDisplayName = "Atlas for Mac";
INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)";
@@ -569,7 +569,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 14.0; MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0.2; MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app; PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app;
PRODUCT_MODULE_NAME = AtlasApp; PRODUCT_MODULE_NAME = AtlasApp;
PRODUCT_NAME = "Atlas for Mac"; PRODUCT_NAME = "Atlas for Mac";
@@ -665,7 +665,7 @@
AD_HOC_CODE_SIGNING_ALLOWED = YES; AD_HOC_CODE_SIGNING_ALLOWED = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 3; CURRENT_PROJECT_VERSION = 4;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = "Atlas for Mac"; INFOPLIST_KEY_CFBundleDisplayName = "Atlas for Mac";
INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)"; INFOPLIST_KEY_CFBundleShortVersionString = "$(MARKETING_VERSION)";
@@ -677,7 +677,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 14.0; MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0.2; MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app; PRODUCT_BUNDLE_IDENTIFIER = com.atlasformac.app;
PRODUCT_MODULE_NAME = AtlasApp; PRODUCT_MODULE_NAME = AtlasApp;
PRODUCT_NAME = "Atlas for Mac"; PRODUCT_NAME = "Atlas for Mac";

View File

@@ -6,6 +6,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased] ## [Unreleased]
## [1.0.3] - 2026-03-23
### Added
- `Apps` uninstall preview now records structured review-only evidence groups, including observed paths for support files, caches, preferences, logs, and launch items.
- Added scripted fixture baselines for `Apps` evidence and `Smart Clean` verification through `scripts/atlas/apps-manual-fixtures.sh`, `scripts/atlas/apps-evidence-acceptance.sh`, and the expanded Smart Clean fixture script.
- Added versioned workspace-state persistence and schema-versioned app recovery payloads so future recovery hardening can evolve without immediately dropping older local state.
- Expanded real `Smart Clean` execution coverage for additional high-confidence user-owned roots, including CoreSimulator caches and common developer cache locations such as Gradle, Ivy, and SwiftPM caches.
### Changed
- App restore now clears stale uninstall preview state and refreshes app inventory before the `Apps` surface reuses footprint counts.
- `History` recovery detail now surfaces recorded recovery evidence, including payload schema version, review-only uninstall groups, and restore-path mappings when available.
- `full-acceptance` now treats fixture-script validation as a routine release-readiness gate alongside packaging, install, launch, and UI automation checks.
- Local protocol and persistence contracts were tightened to distinguish versioned workspace-state storage from legacy compatibility fallback, while keeping review-only evidence explicitly non-executable.
### Fixed
- Legacy unversioned workspace-state files now migrate forward into the current persisted envelope instead of breaking on the newer persistence shape.
- Revalidated the `1.0.3` release candidate with package tests, app tests, native packaging, DMG install verification, installed-app launch smoke, and native UI automation.
- Fixed the post-restore `Apps` trust gap where recovered app payloads could leave stale uninstall preview or stale footprint evidence visible until a manual refresh.
## [1.0.2] - 2026-03-14 ## [1.0.2] - 2026-03-14
### Added ### Added

View File

@@ -49,13 +49,13 @@ If preflight passes, the current machine is ready for signed packaging.
Before pushing a release tag, align the app version, build number, and changelog skeleton: Before pushing a release tag, align the app version, build number, and changelog skeleton:
```bash ```bash
./scripts/atlas/prepare-release.sh 1.0.2 ./scripts/atlas/prepare-release.sh 1.0.3
``` ```
Optional arguments: Optional arguments:
```bash ```bash
./scripts/atlas/prepare-release.sh 1.0.2 3 2026-03-14 ./scripts/atlas/prepare-release.sh 1.0.3 4 2026-03-23
``` ```
This updates: This updates:
@@ -64,7 +64,7 @@ This updates:
- `Apps/AtlasApp/Sources/AtlasApp/AtlasAppModel.swift` - `Apps/AtlasApp/Sources/AtlasApp/AtlasAppModel.swift`
- `CHANGELOG.md` - `CHANGELOG.md`
The script increments `CURRENT_PROJECT_VERSION` automatically when you omit the build number. Review the new changelog section before creating the `V1.0.2` tag. The script increments `CURRENT_PROJECT_VERSION` automatically when you omit the build number. Review the new changelog section before creating the `V1.0.3` tag.
## Signed Packaging ## Signed Packaging
@@ -120,8 +120,8 @@ If those secrets are missing, the workflow automatically falls back to:
Release flow: Release flow:
```bash ```bash
git tag -a V1.0.2 -m "Release V1.0.2" git tag -a V1.0.3 -m "Release V1.0.3"
git push origin V1.0.2 git push origin V1.0.3
``` ```
That tag creates one GitHub Release containing: That tag creates one GitHub Release containing:

View File

@@ -38,8 +38,8 @@ targets:
base: base:
PRODUCT_BUNDLE_IDENTIFIER: com.atlasformac.app.worker PRODUCT_BUNDLE_IDENTIFIER: com.atlasformac.app.worker
PRODUCT_NAME: AtlasWorkerXPC PRODUCT_NAME: AtlasWorkerXPC
MARKETING_VERSION: "1.0.2" MARKETING_VERSION: "1.0.3"
CURRENT_PROJECT_VERSION: 3 CURRENT_PROJECT_VERSION: 4
GENERATE_INFOPLIST_FILE: YES GENERATE_INFOPLIST_FILE: YES
INFOPLIST_KEY_CFBundleShortVersionString: $(MARKETING_VERSION) INFOPLIST_KEY_CFBundleShortVersionString: $(MARKETING_VERSION)
INFOPLIST_KEY_CFBundleVersion: $(CURRENT_PROJECT_VERSION) INFOPLIST_KEY_CFBundleVersion: $(CURRENT_PROJECT_VERSION)
@@ -64,8 +64,8 @@ targets:
PRODUCT_BUNDLE_IDENTIFIER: com.atlasformac.app PRODUCT_BUNDLE_IDENTIFIER: com.atlasformac.app
PRODUCT_NAME: Atlas for Mac PRODUCT_NAME: Atlas for Mac
PRODUCT_MODULE_NAME: AtlasApp PRODUCT_MODULE_NAME: AtlasApp
MARKETING_VERSION: "1.0.2" MARKETING_VERSION: "1.0.3"
CURRENT_PROJECT_VERSION: 3 CURRENT_PROJECT_VERSION: 4
GENERATE_INFOPLIST_FILE: YES GENERATE_INFOPLIST_FILE: YES
INFOPLIST_KEY_CFBundleShortVersionString: $(MARKETING_VERSION) INFOPLIST_KEY_CFBundleShortVersionString: $(MARKETING_VERSION)
INFOPLIST_KEY_CFBundleVersion: $(CURRENT_PROJECT_VERSION) INFOPLIST_KEY_CFBundleVersion: $(CURRENT_PROJECT_VERSION)