From 2309264ee94daca4b9abe3592d84602c98b77690 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Thu, 02 Jul 2026 11:16:52 +0800
Subject: [PATCH] Freeze TagLauncher 8.3.5 release artifacts

---
 src/Release/AppStore-8.3.5-20260702.1046/Preflight/TagLauncher-AppStore-full.entitlements |   18 ++++++
 src/Release/AppStore-8.3.5-20260702.1046/PKG_PREFLIGHT_REPORT.md                          |   52 +++++++++++++++++
 src/Release/AppStore-8.3.5-20260702.1046/RELEASE_MANIFEST.md                              |   54 ++++++++++++++++++
 src/Release/AppStore-8.3.5-20260702.1046/SHA256SUMS.txt                                   |    2 
 4 files changed, 126 insertions(+), 0 deletions(-)

diff --git a/src/Release/AppStore-8.3.5-20260702.1046/PKG_PREFLIGHT_REPORT.md b/src/Release/AppStore-8.3.5-20260702.1046/PKG_PREFLIGHT_REPORT.md
new file mode 100644
index 0000000..6f1c20f
--- /dev/null
+++ b/src/Release/AppStore-8.3.5-20260702.1046/PKG_PREFLIGHT_REPORT.md
@@ -0,0 +1,52 @@
+# TagLauncher 8.3.5 App Store PKG Preflight
+
+Date: 2026-07-02
+Version: 8.3.5
+Build: 20260702.1046
+
+## Package
+
+- Upload package: `Upload/TagLauncher-8.3.5-build20260702.1046.pkg`
+- Local DMG archive: `Archive/TagLauncher-8.3.5-build20260702.1046.dmg`
+
+## Signing
+
+- App signing identity: `3rd Party Mac Developer Application: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)`
+- Installer signing identity: `3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)`
+- Embedded provisioning profile: `TagLauncher Mac App Store 20260605.2337`
+- Provisioning profile expiry: `2027-06-04 13:48:21 +0000`
+
+## Entitlements
+
+The packaged app was signed with `Preflight/TagLauncher-AppStore-full.entitlements`.
+
+Required App Store identifiers are present:
+
+- `com.apple.application-identifier`: `CR3J54M8BQ.com.taglauncher.app`
+- `com.apple.developer.team-identifier`: `CR3J54M8BQ`
+- `keychain-access-groups`: `CR3J54M8BQ.*`
+- `com.apple.security.app-sandbox`: `true`
+- `com.apple.security.files.user-selected.read-write`: `true`
+
+## Verification
+
+Commands completed successfully:
+
+```bash
+pkgutil --check-signature Release/AppStore-8.3.5-20260702.1046/Upload/TagLauncher-8.3.5-build20260702.1046.pkg
+pkgutil --expand-full Release/AppStore-8.3.5-20260702.1046/Upload/TagLauncher-8.3.5-build20260702.1046.pkg Release/AppStore-8.3.5-20260702.1046/Preflight/expanded
+codesign --verify --deep --strict --verbose=2 Release/AppStore-8.3.5-20260702.1046/Preflight/expanded/com.taglauncher.app.pkg/Payload/TagLauncher.app
+hdiutil verify Release/AppStore-8.3.5-20260702.1046/Archive/TagLauncher-8.3.5-build20260702.1046.dmg
+```
+
+Observed package payload metadata:
+
+- `CFBundleShortVersionString`: `8.3.5`
+- `CFBundleVersion`: `20260702.1046`
+
+## Hashes
+
+```text
+c378548b9f5186e2e71de08a2b0efc6e33bc84e2785dd98fc62e05903026a729  Archive/TagLauncher-8.3.5-build20260702.1046.dmg
+647b64ba420d60f4df1b72daff50f3174ab4c5da61b513ed0d9dc2d7eee2a417  Upload/TagLauncher-8.3.5-build20260702.1046.pkg
+```
diff --git a/src/Release/AppStore-8.3.5-20260702.1046/Preflight/TagLauncher-AppStore-full.entitlements b/src/Release/AppStore-8.3.5-20260702.1046/Preflight/TagLauncher-AppStore-full.entitlements
new file mode 100644
index 0000000..332ce27
--- /dev/null
+++ b/src/Release/AppStore-8.3.5-20260702.1046/Preflight/TagLauncher-AppStore-full.entitlements
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+    <key>com.apple.application-identifier</key>
+    <string>CR3J54M8BQ.com.taglauncher.app</string>
+    <key>com.apple.developer.team-identifier</key>
+    <string>CR3J54M8BQ</string>
+    <key>com.apple.security.app-sandbox</key>
+    <true/>
+    <key>com.apple.security.files.user-selected.read-write</key>
+    <true/>
+    <key>keychain-access-groups</key>
+    <array>
+        <string>CR3J54M8BQ.*</string>
+    </array>
+</dict>
+</plist>
diff --git a/src/Release/AppStore-8.3.5-20260702.1046/RELEASE_MANIFEST.md b/src/Release/AppStore-8.3.5-20260702.1046/RELEASE_MANIFEST.md
new file mode 100644
index 0000000..7d33081
--- /dev/null
+++ b/src/Release/AppStore-8.3.5-20260702.1046/RELEASE_MANIFEST.md
@@ -0,0 +1,54 @@
+# TagLauncher 8.3.5 Release Manifest
+
+Date: 2026-07-02
+Version: 8.3.5
+Build: 20260702.1046
+Git commit: `01bab54`
+
+## Scope
+
+This release contains one product change:
+
+- Free users can persist custom tag list order, which controls the container display order.
+
+Protected behavior intentionally left unchanged:
+
+- Custom hotkeys remain a Pro-only feature.
+- Container-internal app icon order persistence remains Pro-only.
+- Custom tag color, Pro themes, Pro display modes, app notes quota, and data import/export gates are unchanged.
+
+## Source Changes
+
+- `Apptag/DataLayer.swift`: removed the Pro entitlement gate from `TagEditor.reorderTags(_:)`.
+- `Apptag/ContentView.swift`: removed the free-user preview-only path for tag list order persistence.
+- `Apptag/PreferencesView.swift`: removed the Pro comparison row for tag list order persistence.
+- `Scripts/pro_custom_container_quota_qa.sh`: updated regression checks for free tag order persistence and the Pro table row set.
+- `Docs/Requirements/2026-07-01-pro-custom-container-quota-prd.md`: recorded the 8.3.5 decision update.
+- `CHANGELOG.md`: added 8.3.5 release notes.
+- `Apptag/Info.plist`: bumped version/build.
+
+## QA
+
+Commands completed successfully:
+
+```bash
+bash Scripts/pro_custom_container_quota_qa.sh
+bash Scripts/pro_feature_gate_qa.sh
+bash Scripts/pro_localization_qa.sh
+bash Scripts/app_ordering_data_qa.sh
+bash Scripts/pro_custom_hotkeys_qa.sh
+bash Scripts/macos14_availability_typecheck_qa.sh
+bash Scripts/pro_display_mode_preview_qa.sh
+bash Scripts/theme_settings_qa.sh
+APP_BUILD=20260702.1046 bash build.sh
+bash Scripts/macos14_build_metadata_qa.sh build/TagLauncher.app
+codesign --verify --deep --strict --verbose=2 build/TagLauncher.app
+```
+
+Release package preflight also passed. See `PKG_PREFLIGHT_REPORT.md`.
+
+## Artifacts
+
+- Local QA DMG: `Archive/TagLauncher-8.3.5-build20260702.1046.dmg`
+- App Store upload package: `Upload/TagLauncher-8.3.5-build20260702.1046.pkg`
+- Hash file: `SHA256SUMS.txt`
diff --git a/src/Release/AppStore-8.3.5-20260702.1046/SHA256SUMS.txt b/src/Release/AppStore-8.3.5-20260702.1046/SHA256SUMS.txt
new file mode 100644
index 0000000..64b891d
--- /dev/null
+++ b/src/Release/AppStore-8.3.5-20260702.1046/SHA256SUMS.txt
@@ -0,0 +1,2 @@
+c378548b9f5186e2e71de08a2b0efc6e33bc84e2785dd98fc62e05903026a729  Archive/TagLauncher-8.3.5-build20260702.1046.dmg
+647b64ba420d60f4df1b72daff50f3174ab4c5da61b513ed0d9dc2d7eee2a417  Upload/TagLauncher-8.3.5-build20260702.1046.pkg

--
Gitblit v1.9.3