chore(release): prepare v1.0.3
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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": {
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
23
CHANGELOG.md
23
CHANGELOG.md
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user