From 93f9272ca54d38628cc40a426cd657641ddd9a14 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 27 May 2026 01:40:46 +0800
Subject: [PATCH] Freeze App Store release 20260527.0124
---
Release/AppStore-7.6.0-20260527.0124/Archive/TagLauncher-7.6.0-20260527.0124-local-QA.dmg | 0
Release/AppStore-7.6.0-20260527.0124/Assets/TagLauncher-AppIcon-1024.png | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/raw/.gitkeep | 0
Release/AppStore-7.6.0-20260527.0124/README.md | 84 ++++++
Release/AppStore-7.6.0-20260527.0124/FIRST_TIME_MAC_APP_STORE_TODO.md | 93 ++++++
Release/AppStore-7.6.0-20260527.0124/Submitted/.gitkeep | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/SCREENSHOT_SHOT_LIST.md | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Archive/TagLauncher-7.6.0-20260525.0016-local-QA.dmg | 0
Release/AppStore-7.6.0-20260527.0124/Upload/.gitkeep | 0
Release/_archive/AppStore-7.6.0-20260525.0016/BUILD_SIGN_UPLOAD.md | 0
Release/AppStore-7.6.0-20260527.0124/APP_STORE_ASSET_INVENTORY.md | 76 +++++
Release/_archive/AppStore-7.6.0-20260525.0016/Support/SUPPORT.md | 0
Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.md | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.zh-Hans.md | 0
Scripts/window_logic_qa.sh | 6
Release/_archive/AppStore-7.6.0-20260525.0016/Submitted/.gitkeep | 0
Release/AppStore-7.6.0-20260527.0124/Support/SUPPORT.md | 0
Release/AppStore-7.6.0-20260527.0124/QA_RELEASE_EVIDENCE.md | 105 +++++++
Release/_archive/AppStore-7.6.0-20260525.0016/FIRST_TIME_MAC_APP_STORE_TODO.md | 0
Release/AppStore-7.6.0-20260527.0124/Screenshots/raw/.gitkeep | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Review/APP_REVIEW_NOTES.md | 0
Release/AppStore-7.6.0-20260527.0124/Screenshots/AppStore/.gitkeep | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Assets/TagLauncher-AppIcon-1024.png | 0
Release/_archive/AppStore-7.6.0-20260525.0016/APP_STORE_CONNECT_METADATA.md | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.md | 0
Apptag/QuickSearch.swift | 25 +
Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.zh-Hans.md | 0
Release/AppStore-7.6.0-20260527.0124/Screenshots/SCREENSHOT_SHOT_LIST.md | 63 ++++
Release/AppStore-7.6.0-20260527.0124/APP_STORE_CONNECT_METADATA.md | 142 ++++++++++
Release/_archive/AppStore-7.6.0-20260525.0016/QA_RELEASE_EVIDENCE.md | 0
Release/AppStore-7.6.0-20260527.0124/Review/APP_REVIEW_NOTES.md | 34 ++
Release/AppStore-7.6.0-20260527.0124/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md | 79 +++++
Release/_archive/AppStore-7.6.0-20260525.0016/README.md | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Upload/.gitkeep | 0
Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/AppStore/.gitkeep | 0
Release/_archive/AppStore-7.6.0-20260525.0016/APP_STORE_ASSET_INVENTORY.md | 0
Release/AppStore-7.6.0-20260527.0124/BUILD_SIGN_UPLOAD.md | 98 +++++++
38 files changed, 802 insertions(+), 3 deletions(-)
diff --git a/Apptag/QuickSearch.swift b/Apptag/QuickSearch.swift
index d53f79d..140861f 100644
--- a/Apptag/QuickSearch.swift
+++ b/Apptag/QuickSearch.swift
@@ -965,6 +965,7 @@
field.placeholderString = placeholder
field.delegate = context.coordinator
field.onCommand = onCommand
+ context.coordinator.onCommand = onCommand
field.setAccessibilityLabel(tr("quickSearch.inputAccessibility"))
context.coordinator.field = field
requestFocus(field)
@@ -977,6 +978,7 @@
}
field.placeholderString = placeholder
field.onCommand = onCommand
+ context.coordinator.onCommand = onCommand
if context.coordinator.lastFocusToken != focusToken {
context.coordinator.lastFocusToken = focusToken
requestFocus(field)
@@ -999,6 +1001,7 @@
final class Coordinator: NSObject, NSTextFieldDelegate {
var text: Binding<String>
var lastFocusToken = 0
+ var onCommand: ((QuickSearchCommand) -> Void)?
weak var field: NSTextField?
init(text: Binding<String>) {
@@ -1009,6 +1012,28 @@
guard let field = obj.object as? NSTextField else { return }
text.wrappedValue = field.stringValue
}
+
+ func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {
+ switch commandSelector {
+ case #selector(NSResponder.moveUp(_:)):
+ onCommand?(.moveUp)
+ return true
+ case #selector(NSResponder.moveDown(_:)):
+ onCommand?(.moveDown)
+ return true
+ case #selector(NSResponder.insertNewline(_:)):
+ onCommand?(.submit)
+ return true
+ case #selector(NSResponder.insertNewlineIgnoringFieldEditor(_:)):
+ onCommand?(.submit)
+ return true
+ case #selector(NSResponder.cancelOperation(_:)):
+ onCommand?(.dismiss)
+ return true
+ default:
+ return false
+ }
+ }
}
}
diff --git a/Release/AppStore-7.6.0-20260527.0124/APP_STORE_ASSET_INVENTORY.md b/Release/AppStore-7.6.0-20260527.0124/APP_STORE_ASSET_INVENTORY.md
new file mode 100644
index 0000000..6640b03
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/APP_STORE_ASSET_INVENTORY.md
@@ -0,0 +1,76 @@
+# App Store Asset Inventory
+
+This release pack is frozen for TagLauncher `7.6.0` build `20260527.0124`.
+
+Use this file as the submission asset checklist. Anything marked `Needs user input` must be completed before submitting in App Store Connect.
+
+## Frozen Build
+
+- Version: `7.6.0`
+- Local QA build: `20260527.0124`
+- Source ref: `appstore-7.6.0-20260527.0124`
+- Local QA DMG: `Archive/TagLauncher-7.6.0-20260527.0124-local-QA.dmg`
+- DMG SHA-256: `1952295e0169853c46572e6226c72adc43059cb20dd7ee9b161e28e42887f5a2`
+- App binary SHA-256: `b31270ee22d8c4c74e85b00ea96d0c378e5762f41432b057b653896566ba2f62`
+
+## Metadata
+
+- Draft App Store metadata: `APP_STORE_CONNECT_METADATA.md`
+- First-time submission checklist: `FIRST_TIME_MAC_APP_STORE_TODO.md`
+- Build/sign/upload instructions: `BUILD_SIGN_UPLOAD.md`
+- QA and release evidence: `QA_RELEASE_EVIDENCE.md`
+- Changelog source: `../../CHANGELOG.md`
+
+Status: ready as draft, but App Store Connect fields must still be reviewed manually.
+
+## Screenshots
+
+- Screenshot instructions: `Screenshots/SCREENSHOT_SHOT_LIST.md`
+- Raw screenshot staging folder: `Screenshots/raw/`
+- App Store-ready screenshot folder: `Screenshots/AppStore/`
+
+Status: needs user screenshots.
+
+Apple accepts one to ten screenshots for Mac apps. Mac screenshots must use a 16:10 size such as `2880 x 1800`, `2560 x 1600`, `1440 x 900`, or `1280 x 800`.
+
+Recommended final screenshot count: 5.
+
+## App Icon
+
+- App icon source copy: `Assets/TagLauncher-AppIcon-1024.png`
+
+Status: present.
+
+## Legal And URLs
+
+- Privacy policy draft: `Legal/PRIVACY_POLICY.md`
+- Simplified Chinese privacy policy draft: `Legal/PRIVACY_POLICY.zh-Hans.md`
+- Support page draft: `Support/SUPPORT.md`
+- Public URL publication guide: `Support/GITHUB_PAGES_PUBLICATION_GUIDE.md`
+
+Status: content drafted; needs user identity/contact fields and public URLs.
+
+Needs user input:
+
+- Developer or company display name.
+- Support email.
+- Privacy contact email, if different.
+- Public privacy policy URL.
+- Public support URL.
+- Copyright holder.
+
+## App Review
+
+- App Review notes draft: `Review/APP_REVIEW_NOTES.md`
+- Manual QA notes area: `Review/`
+
+Status: ready as draft.
+
+## Upload Artifacts
+
+- App Store upload staging folder: `Upload/`
+- Submitted artifact archive folder: `Submitted/`
+
+Status: waiting for App Store signing assets and final uploaded build.
+
+The local DMG is not an App Store upload artifact. App Store upload still requires Mac App Distribution signing, Mac Installer Distribution signing if packaging a `.pkg`, and a Mac App Store provisioning profile for `com.taglauncher.app`.
diff --git a/Release/AppStore-7.6.0-20260527.0124/APP_STORE_CONNECT_METADATA.md b/Release/AppStore-7.6.0-20260527.0124/APP_STORE_CONNECT_METADATA.md
new file mode 100644
index 0000000..c18f72f
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/APP_STORE_CONNECT_METADATA.md
@@ -0,0 +1,142 @@
+# App Store Connect Metadata Draft
+
+These are draft values for the first Mac App Store submission. Edit in App Store Connect before submission.
+
+Frozen local QA source for this metadata:
+
+- Version: `7.6.0`
+- Build: `20260527.0124`
+- Source ref: `appstore-7.6.0-20260527.0124`
+- Release pack: `Release/AppStore-7.6.0-20260527.0124`
+
+## App Information
+
+- Name: `TagLauncher`
+- Bundle ID: `com.taglauncher.app`
+- SKU: `taglauncher-macos`
+- Category: `Utilities`
+- Version: `7.6.0`
+- Distribution method: Public
+- Release option: Manual release after approval
+
+## Subtitle Options
+
+English, 30 characters max:
+
+- `Tag-based app launcher`
+- `Launch apps by tag`
+
+Simplified Chinese, 30 characters max:
+
+- `标签化应用启动器`
+- `用标签启动 Mac 应用`
+
+## Description Draft
+
+TagLauncher is a fast tag-based launcher for Mac apps.
+
+Organize installed apps into visual tag groups, open a fullscreen-friendly app grid from a global hotkey, and jump directly to apps with Quick Search. It is designed for people who have many apps and want a calmer, faster way to find the right one without hunting through Launchpad, Finder, or the Dock.
+
+Highlights:
+
+- Open the app grid with Option-Shift-Space.
+- Search apps, tags, and notes with Quick Search.
+- Group apps by custom tags.
+- Tune icon size, tag position, app list style, and Dock visibility.
+- Import and export your category layout.
+- Works across multiple displays and fullscreen Spaces.
+
+## Chinese Description Draft
+
+TagLauncher 是一个基于标签的 Mac 应用启动器。
+
+你可以把已安装的应用整理成可视化标签分组,用全局快捷键唤出应用网格,也可以通过 Quick Search 直接搜索应用、标签和备注。它适合安装了很多应用、希望更快找到目标应用的人。
+
+亮点:
+
+- 使用 Option-Shift-Space 打开应用网格。
+- 使用 Quick Search 搜索应用、标签和备注。
+- 用自定义标签整理应用。
+- 可调整图标大小、标签位置、列表样式和 Dock 显示。
+- 支持分类布局的导入和导出。
+- 支持多显示器和全屏 Space 场景。
+
+## Keywords Draft
+
+English:
+
+`launcher,tags,apps,productivity,quick search,utility,mac`
+
+Simplified Chinese:
+
+`启动器,标签,应用,效率,搜索,工具,Mac`
+
+## What's New
+
+Version 7.6.0:
+
+- Improved fullscreen Space behavior for the app grid.
+- Improved Split View behavior so the app grid, Quick Search, and Settings stay in the current fullscreen Space instead of sliding to another Space.
+- Fixed duplicate Dock icons when repeatedly showing TagLauncher.
+- Improved Dock and menu bar ownership while the app grid is visible.
+- Improved Settings, Quick Search, file panel, force quit, and multi-display window layering.
+- Improved Quick Search keyboard behavior so arrow keys change the selected result and Return opens it.
+- Added stronger release QA coverage for Mac window behavior.
+
+## App Review Notes Draft
+
+TagLauncher is a macOS app launcher.
+
+Primary review path:
+
+1. Launch TagLauncher.
+2. Press Option-Shift-Space to show the app grid.
+3. Press Space while the app grid is visible to open Quick Search.
+4. Press Escape once to close Quick Search, then Escape again to close the app grid.
+5. Open Preferences from the menu bar or Command-Comma to inspect settings.
+
+Expected behavior:
+
+- The app grid is intentionally displayed above normal and fullscreen app windows.
+- In Split View/fullscreen Spaces, Quick Search and Settings are expected to appear above the app grid without switching Spaces.
+- While the app grid is visible, TagLauncher becomes the foreground app so its menu bar is visible and the Dock is hidden.
+- The system Force Quit window remains above TagLauncher.
+- Import/export uses standard file panels.
+- Login-at-launch is disabled in sandboxed App Store builds if the LaunchAgent approach is unavailable.
+
+## Privacy Draft
+
+Current code audit:
+
+- No network API usage found.
+- App preferences are stored locally with `UserDefaults`.
+- Tag/category data is stored locally under the user's Application Support area.
+- The app scans installed applications locally to build the launcher index.
+- Import/export only touches user-selected files.
+- No analytics SDK, advertising SDK, or third-party tracking SDK is bundled.
+
+Privacy questionnaire starting point:
+
+- Data collected: likely `No`, assuming no analytics/crash reporting/network telemetry is added before submission.
+- Tracking: `No`.
+- Privacy policy URL: required for macOS apps. Publish this before submission.
+
+Do not submit until these answers are reviewed against the exact App Store-signed build.
+
+## Screenshot Plan
+
+Required Mac screenshot sizes include 16:10 images such as:
+
+- `2880 x 1800`
+- `2560 x 1600`
+- `1440 x 900`
+- `1280 x 800`
+
+Suggested shots:
+
+1. App grid with several tag groups.
+2. Quick Search with a sample query.
+3. Settings showing appearance/hotkey controls.
+4. Optional import/export or tag editing view.
+
+Avoid screenshots that expose private installed apps if that matters for marketing.
diff --git a/Release/AppStore-7.6.0-20260527.0124/Archive/TagLauncher-7.6.0-20260527.0124-local-QA.dmg b/Release/AppStore-7.6.0-20260527.0124/Archive/TagLauncher-7.6.0-20260527.0124-local-QA.dmg
new file mode 100644
index 0000000..d1591a8
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/Archive/TagLauncher-7.6.0-20260527.0124-local-QA.dmg
Binary files differ
diff --git a/Release/AppStore-7.6.0-20260525.0016/Assets/TagLauncher-AppIcon-1024.png b/Release/AppStore-7.6.0-20260527.0124/Assets/TagLauncher-AppIcon-1024.png
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Assets/TagLauncher-AppIcon-1024.png
rename to Release/AppStore-7.6.0-20260527.0124/Assets/TagLauncher-AppIcon-1024.png
Binary files differ
diff --git a/Release/AppStore-7.6.0-20260527.0124/BUILD_SIGN_UPLOAD.md b/Release/AppStore-7.6.0-20260527.0124/BUILD_SIGN_UPLOAD.md
new file mode 100644
index 0000000..44f1c82
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/BUILD_SIGN_UPLOAD.md
@@ -0,0 +1,98 @@
+# Build, Sign, And Upload Notes
+
+## Current Local Build
+
+The local QA build is suitable for verification and direct local testing, but it is not an App Store upload artifact.
+
+- Frozen local QA build: `20260527.0124`
+- Frozen source ref: `appstore-7.6.0-20260527.0124`
+- Frozen DMG SHA-256: `1952295e0169853c46572e6226c72adc43059cb20dd7ee9b161e28e42887f5a2`
+- Frozen app binary SHA-256: `b31270ee22d8c4c74e85b00ea96d0c378e5762f41432b057b653896566ba2f62`
+- Local build command: `bash build.sh`
+- Local DMG command: `bash make_dmg.sh`
+- App path: `build/TagLauncher.app`
+- DMG path: `build/TagLauncher.dmg`
+- Local signing: ad-hoc unless `CODESIGN_IDENTITY` is provided.
+
+## Current Signing Inventory
+
+Current `security find-identity -v -p codesigning` only reports:
+
+- `VoiceSnap Local Code Signing`
+
+Missing for App Store upload:
+
+- `Mac App Distribution`
+- `Mac Installer Distribution`
+- Mac App Store provisioning profile for `com.taglauncher.app`
+
+## Sandbox Status
+
+`Apptag/TagLauncher.entitlements` currently includes:
+
+- `com.apple.security.app-sandbox = true`
+- `com.apple.security.files.user-selected.read-write = true`
+
+Apple requires App Sandbox for Mac App Store distribution.
+
+## Recommended Upload Path
+
+The safest first submission path is:
+
+1. Install Mac App Store signing assets from the Apple Developer account.
+2. Build with sandbox entitlements and App Store distribution signing.
+3. Package as an App Store-ready upload through Xcode Organizer, Transporter, or `altool`.
+4. Upload to App Store Connect.
+5. Wait for processing, then attach the processed build to version `7.6.0`.
+
+## Manual CLI Shape
+
+Exact commands depend on the installed certificate/profile names. After installing the correct identities, the shape is:
+
+```bash
+cd /Users/ar/Projects/Taglauncher
+
+APP_STORE=1 \
+CODESIGN_IDENTITY="3rd Party Mac Developer Application: <TEAM NAME> (<TEAMID>)" \
+APP_BUILD=20260527.0124 \
+bash build.sh
+
+productbuild \
+ --component build/TagLauncher.app /Applications \
+ --sign "3rd Party Mac Developer Installer: <TEAM NAME> (<TEAMID>)" \
+ build/TagLauncher-AppStore.pkg
+
+xcrun altool --upload-app \
+ --type macos \
+ --file build/TagLauncher-AppStore.pkg \
+ --username "<APPLE_ID>" \
+ --password "<APP_SPECIFIC_PASSWORD>"
+```
+
+Notes:
+
+- Newer accounts may show certificate names as `Apple Distribution` / `Mac Installer Distribution`; use the exact identity shown by `security find-identity`.
+- If using Xcode-managed/cloud-managed signing, prefer Xcode/Transporter over hand-written signing commands.
+- Increment `APP_BUILD` for every failed upload retry.
+- Keep the direct-distribution DMG separate from App Store upload packages.
+
+## Pre-Upload Verification
+
+Run these before uploading:
+
+```bash
+codesign --verify --deep --strict --verbose=2 build/TagLauncher.app
+codesign -d --entitlements :- build/TagLauncher.app
+/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' build/TagLauncher.app/Contents/Info.plist
+/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' build/TagLauncher.app/Contents/Info.plist
+CLICK_TOOL=/opt/homebrew/bin/cliclick bash Scripts/window_logic_qa.sh
+```
+
+## App Store-Specific Risks To Re-Test
+
+- Sandbox behavior for scanning installed apps.
+- Sandbox behavior for launching apps via `NSWorkspace`.
+- Import/export file access with user-selected file entitlement.
+- Global hotkey behavior.
+- Fullscreen Space and Split View overlay behavior, including Quick Search and Settings opened from the app grid.
+- Login-at-launch setting: current code disables LaunchAgent support in sandboxed builds.
diff --git a/Release/AppStore-7.6.0-20260527.0124/FIRST_TIME_MAC_APP_STORE_TODO.md b/Release/AppStore-7.6.0-20260527.0124/FIRST_TIME_MAC_APP_STORE_TODO.md
new file mode 100644
index 0000000..f598eb7
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/FIRST_TIME_MAC_APP_STORE_TODO.md
@@ -0,0 +1,93 @@
+# First-Time Mac App Store TODO
+
+Use this as the working checklist when publishing TagLauncher from the Apple Developer account.
+
+Frozen release pack:
+
+- Version: `7.6.0`
+- Local QA build: `20260527.0124`
+- Source ref: `appstore-7.6.0-20260527.0124`
+- Release folder: `Release/AppStore-7.6.0-20260527.0124`
+
+## 0. Before Touching App Store Connect
+
+- [ ] Confirm Apple Developer Program membership is active.
+- [ ] Sign in to https://appstoreconnect.apple.com with Account Holder/Admin/App Manager access.
+- [ ] Accept all pending agreements in App Store Connect Business.
+- [ ] If the app will be paid, complete Paid Apps Agreement, tax, and banking.
+- [ ] Decide release type: public App Store listing, not private/custom distribution.
+- [ ] Decide release timing: manual release after approval is recommended for first launch.
+
+## 1. App ID, Certificates, And Provisioning
+
+- [ ] In Apple Developer Certificates, Identifiers & Profiles, create or confirm explicit App ID:
+ - Bundle ID: `com.taglauncher.app`
+ - Platform: macOS
+- [ ] Confirm App Sandbox capability is enabled.
+- [ ] Create/download `Mac App Distribution` certificate or use Xcode/cloud-managed signing.
+- [ ] Create/download `Mac Installer Distribution` certificate if uploading a signed `.pkg`.
+- [ ] Create/download a `Mac App Store Connect` provisioning profile for `com.taglauncher.app`.
+- [ ] Install certificates and profile on the release Mac.
+- [ ] Re-run `security find-identity -v -p codesigning` and verify the Mac App Store identities appear.
+
+## 2. App Store Connect App Record
+
+- [ ] Create a new app record.
+- [ ] Platform: `macOS`.
+- [ ] Name: `TagLauncher`.
+- [ ] Primary language: choose `English (U.S.)` or `Simplified Chinese`.
+- [ ] Bundle ID: `com.taglauncher.app`.
+- [ ] SKU: `taglauncher-macos`.
+- [ ] User Access: Full Access unless team access needs to be restricted.
+- [ ] Category: Utilities.
+- [ ] Add version `7.6.0`.
+
+## 3. Product Page Metadata
+
+- [ ] Fill app name, subtitle, description, keywords, support URL, privacy policy URL, copyright.
+- [ ] Fill promotional text if desired.
+- [ ] Complete age rating questionnaire.
+- [ ] Complete content rights declaration.
+- [ ] Complete encryption export compliance answer.
+- [ ] Complete app privacy questionnaire.
+- [ ] Add App Review contact information.
+- [ ] Add App Review notes from `APP_STORE_CONNECT_METADATA.md`.
+
+## 4. Screenshots
+
+- [ ] Capture at least one required Mac screenshot.
+- [ ] Recommended Mac screenshot size: `2880 x 1800`, `2560 x 1600`, `1440 x 900`, or `1280 x 800`.
+- [ ] Include app grid.
+- [ ] Include Quick Search.
+- [ ] Include Settings.
+- [ ] Optional: include multi-tag organization or import/export if it helps explain value.
+- [ ] Verify screenshots contain no private user data.
+
+## 5. Build And Upload
+
+- [ ] Build the App Store-signed app using `BUILD_SIGN_UPLOAD.md`.
+- [ ] Verify `CFBundleShortVersionString = 7.6.0`.
+- [ ] Start from frozen local QA build `20260527.0124`; use a newer `CFBundleVersion` only if App Store upload retries require it.
+- [ ] Increment `CFBundleVersion` for every upload attempt.
+- [ ] Verify sandbox entitlements are present.
+- [ ] Run `Scripts/window_logic_qa.sh` against the signed build before uploading.
+- [ ] Upload with Transporter, Xcode Organizer, or `altool`.
+- [ ] Wait for App Store Connect processing email.
+- [ ] Attach the processed build to version `7.6.0`.
+
+## 6. Submit For Review
+
+- [ ] Check every App Store Connect section shows no missing required fields.
+- [ ] Select release option: Manual release after approval.
+- [ ] Add for Review.
+- [ ] Submit for Review.
+- [ ] Watch review status: Waiting for Review -> In Review -> Approved/Rejected.
+- [ ] If rejected, save the reviewer message in this release folder before fixing.
+
+## 7. After Approval
+
+- [ ] Smoke-test approved build via TestFlight or App Store sandbox flow if available.
+- [ ] Create a git tag for the exact submitted commit/build.
+- [ ] Record final submitted build number and App Store Connect build ID.
+- [ ] Release manually when ready.
+- [ ] Archive final metadata, screenshots, and review notes under this release folder.
diff --git a/Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.md b/Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.md
rename to Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.zh-Hans.md b/Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.zh-Hans.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.zh-Hans.md
rename to Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.zh-Hans.md
diff --git a/Release/AppStore-7.6.0-20260527.0124/QA_RELEASE_EVIDENCE.md b/Release/AppStore-7.6.0-20260527.0124/QA_RELEASE_EVIDENCE.md
new file mode 100644
index 0000000..5c387f4
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/QA_RELEASE_EVIDENCE.md
@@ -0,0 +1,105 @@
+# QA And Release Evidence
+
+## Local Build
+
+- Version: `7.6.0`
+- Build: `20260527.0124`
+- Frozen source ref: `appstore-7.6.0-20260527.0124`
+- App path: `/Users/ar/Projects/Taglauncher/build/TagLauncher.app`
+- DMG path: `/Users/ar/Projects/Taglauncher/build/TagLauncher.dmg`
+- App executable size: `1.4M`
+- DMG size: `5.7M`
+
+## Hashes
+
+```text
+1952295e0169853c46572e6226c72adc43059cb20dd7ee9b161e28e42887f5a2 build/TagLauncher.dmg
+b31270ee22d8c4c74e85b00ea96d0c378e5762f41432b057b653896566ba2f62 build/TagLauncher.app/Contents/MacOS/TagLauncher
+```
+
+## Commands Run
+
+```bash
+bash build.sh
+bash make_dmg.sh
+codesign --verify --deep --strict --verbose=2 build/TagLauncher.app
+hdiutil verify build/TagLauncher.dmg
+```
+
+## Window Logic QA Result
+
+Window logic was not rerun during this final freeze at user request because this version had already been repeatedly validated manually and was confirmed stable for release.
+
+Earlier automated QA covered the checks below. Earlier builds `20260524.1652` and `20260524.1849` should not be used for App Store prep because they did not include the final fullscreen/Split View Quick Search, Settings close/refocus, and same-app Split View fixes.
+
+Covered checks:
+
+- Repeated self-launch keeps exactly one process.
+- Repeated self-launch keeps exactly one Dock tile.
+- Fullscreen Space overlay appears above the current fullscreen app.
+- Fullscreen Space overlay is checked with `showDockIcon=true` and `showDockIcon=false`.
+- Fullscreen Space overlay bounds must match the fullscreen target display and remain stable across repeated samples.
+- Fullscreen Space Quick Search opens from app grid without switching away from the current fullscreen app.
+- Fullscreen Space Settings opens from app grid without switching away from the current fullscreen app.
+- Closing Settings in a fullscreen/Split View overlay session does not reactivate TagLauncher into another Space.
+- Split View fullscreen geometry is checked for 50/50 and 33/67 split layouts, while ordinary side-by-side desktop windows are rejected.
+- Same-app two-window Split View geometry follows the same fullscreen Split View path as two-app Split View.
+- App grid claims foreground, hides Dock, and keeps menu bar visible.
+- Settings floats above app grid.
+- File panel floats above Settings.
+- Quick Search stays above app grid and supports two-Escape logic.
+- Clicking outside Quick Search closes search, not app grid.
+- System Force Quit window stays above TagLauncher.
+- Pointer-following logic was checked on two displays; AppGrid followed the pointer on each screen.
+
+## Quick Search Verification
+
+The final code change for this freeze fixes Quick Search keyboard behavior while the text field is actively editing:
+
+- The first search result is selected by default.
+- Up and Down arrows move the selected result.
+- Return opens the selected result.
+- Numeric keypad Enter follows the same submit path.
+- Escape closes Quick Search.
+
+The behavior was verified with the local UI before freezing this release pack.
+
+## Crash Check
+
+After the window fixes, no newer TagLauncher crash report appeared. The latest crash report remained the known pre-fix crash:
+
+```text
+TagLauncher-2026-05-23-072321.ips
+```
+
+Root cause of that crash:
+
+```text
+NSWindow _validateCollectionBehavior:
+```
+
+The invalid overlay collection behavior was removed.
+
+## DMG Verification
+
+```text
+hdiutil: verify: checksum of "/Users/ar/Projects/Taglauncher/build/TagLauncher.dmg" is VALID
+```
+
+## Help PDF Verification
+
+- The broken macOS Help Book binding was removed.
+- The standard menu bar now has a localized Help menu with a single `Download Help PDF` item.
+- The About page includes an `Open Help PDF` button and a copy-link button.
+- The app binary contains the immutable GitHub Release Help PDF URL shape.
+- The app binary no longer contains the old `raw.githubusercontent` Help URL or `TagLauncherLocalizedHelpMenuItem`.
+- The public GitHub Release assets for all 29 Help PDFs returned HTTP `200`.
+
+## Code Signing Verification
+
+```text
+/Users/ar/Projects/Taglauncher/build/TagLauncher.app: valid on disk
+/Users/ar/Projects/Taglauncher/build/TagLauncher.app: satisfies its Designated Requirement
+```
+
+This verification is for the local ad-hoc signed QA build. App Store upload still needs App Store distribution signing.
diff --git a/Release/AppStore-7.6.0-20260527.0124/README.md b/Release/AppStore-7.6.0-20260527.0124/README.md
new file mode 100644
index 0000000..02ed7c6
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/README.md
@@ -0,0 +1,84 @@
+# TagLauncher Mac App Store Release Pack
+
+This folder is the working release pack for the first Mac App Store submission of TagLauncher 7.6.0.
+
+## Release Identity
+
+- Product: TagLauncher
+- Platform: macOS / Mac App Store
+- Bundle ID: `com.taglauncher.app`
+- Version: `7.6.0`
+- Local QA build: `20260527.0124`
+- Frozen source ref: `appstore-7.6.0-20260527.0124`
+- Frozen source branch: `main`
+- Release folder: `Release/AppStore-7.6.0-20260527.0124`
+- DMG SHA-256: `1952295e0169853c46572e6226c72adc43059cb20dd7ee9b161e28e42887f5a2`
+- App binary SHA-256: `b31270ee22d8c4c74e85b00ea96d0c378e5762f41432b057b653896566ba2f62`
+
+## Freeze Status
+
+This release pack is frozen on the locally verified build `20260527.0124`. Use this folder, its hashes, and its metadata as the source of truth for the first Mac App Store submission prep.
+
+Do not use earlier prep folders or builds such as `20260524.1652` or `20260524.1849`; they predate the final fullscreen/Split View secondary-window close and same-app Split View fixes.
+
+## What Changed For This Release
+
+- Fixed fullscreen Space behavior: the app grid now appears above the current fullscreen app instead of switching to another Space.
+- Fixed repeated Dock icon creation when "Show in Dock" is enabled.
+- Added a process singleton and `LSMultipleInstancesProhibited` guard.
+- Made repeated show/focus requests idempotent instead of destroying and recreating the overlay.
+- Removed the invalid all-spaces + move-to-active-space window behavior combination that caused the 07:23 crash.
+- Removed the broken macOS system Help menu entry.
+- Added an About-page Help PDF button that opens the online PDF matching the current app language, plus a copy-link button.
+- Hardened fullscreen Space presentation so the app grid stays above the current fullscreen app instead of moving to another Space.
+- Added Split View fullscreen detection so two apps sharing one fullscreen Space also keep the app grid on the current Space.
+- Kept Quick Search and Settings inside the same fullscreen/Split View Space session instead of activating TagLauncher and sliding to another Space.
+- Kept Settings close/refocus inside the same fullscreen/Split View Space session.
+- Treated same-app two-window Split View as fullscreen Split View, not only two different apps.
+- Fixed Quick Search keyboard selection: the first result is selected by default, Up/Down moves selection, and Return opens the selected app.
+- Expanded window QA to cover fullscreen Space behavior with Dock icon both enabled and disabled, including AppGrid, Quick Search, Settings, and stability checks.
+- Strengthened the window logic QA script to cover fullscreen Space, duplicate Dock tiles, repeated self-launch, force quit layering, Settings/file panel layering, Quick Search, and two-display pointer-following behavior.
+
+## Folder Contents
+
+- `APP_STORE_ASSET_INVENTORY.md`: complete submission asset checklist and missing-item tracker.
+- `FIRST_TIME_MAC_APP_STORE_TODO.md`: step-by-step checklist for a first Mac App Store submission.
+- `APP_STORE_CONNECT_METADATA.md`: draft metadata, review notes, privacy answers, screenshot plan.
+- `BUILD_SIGN_UPLOAD.md`: exact build/sign/upload path and current signing blockers.
+- `QA_RELEASE_EVIDENCE.md`: local QA evidence and artifact hashes.
+- `Screenshots/`: screenshot shot list, raw screenshot staging, and App Store-ready screenshot folder.
+- `Legal/`: privacy policy drafts.
+- `Support/`: support page draft and GitHub Pages publication guide.
+- `Review/`: App Review notes draft.
+- `Assets/`: app icon copy and other static submission assets.
+- `Archive/`: local QA artifact archive.
+- `Upload/`: placeholder for App Store-signed upload artifacts.
+- `Submitted/`: placeholder for final submitted App Store Connect build records.
+
+## Archived Old Release Pack
+
+The previous App Store prep folder was moved to:
+
+`Release/_archive/AppStore-7.6.0-a416923`
+
+It was archived rather than deleted so old notes remain available if we need to compare decisions.
+
+## Important Status
+
+The local app and DMG build passed QA and signing verification for local distribution. This is not yet an App Store upload artifact because this Mac does not currently have:
+
+- A `Mac App Distribution` signing certificate.
+- A `Mac Installer Distribution` signing certificate.
+- A Mac App Store provisioning profile for `com.taglauncher.app`.
+
+Follow `BUILD_SIGN_UPLOAD.md` before uploading to App Store Connect.
+
+## Apple References
+
+- Add a new app: https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app/
+- Upload builds: https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds/
+- Submit an app: https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app/
+- App Sandbox: https://developer.apple.com/documentation/security/app_sandbox
+- App privacy details: https://developer.apple.com/app-store/app-privacy-details/
+- Screenshots: https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications
+- Pricing and availability: https://developer.apple.com/help/app-store-connect/reference/app-pricing-and-availability/
diff --git a/Release/AppStore-7.6.0-20260527.0124/Review/APP_REVIEW_NOTES.md b/Release/AppStore-7.6.0-20260527.0124/Review/APP_REVIEW_NOTES.md
new file mode 100644
index 0000000..80d6fcd
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/Review/APP_REVIEW_NOTES.md
@@ -0,0 +1,34 @@
+# App Review Notes
+
+Use this text as the starting point for App Review notes in App Store Connect.
+
+## Review Notes Draft
+
+TagLauncher is a macOS utility for organizing installed applications into visual tag groups and launching them from a keyboard-accessible app grid.
+
+Primary review flow:
+
+1. Launch TagLauncher.
+2. Press `Option-Shift-Space` to show the app grid.
+3. Press `Space` while the app grid is visible to open Quick Search.
+4. Press `Escape` once to close Quick Search.
+5. Press `Escape` again to close the app grid.
+6. Open Settings from the menu bar or with `Command-Comma`.
+
+Expected behavior:
+
+- The app grid intentionally appears above normal and fullscreen app windows.
+- In fullscreen and Split View Spaces, AppGrid, Quick Search, and Settings should remain in the current Space instead of switching to another Space.
+- While the app grid is visible, TagLauncher hides the Dock and shows TagLauncher's menu bar.
+- The system Force Quit window remains above TagLauncher.
+- Import/export uses standard macOS file panels.
+- In sandboxed App Store builds, login-at-launch may be disabled if the LaunchAgent approach is unavailable.
+
+No demo account is required.
+
+## Local QA Evidence
+
+- QA evidence file: `QA_RELEASE_EVIDENCE.md`
+- Final freeze: build verified locally; window behavior was not rerun during this freeze at user request because this version had already been repeatedly validated manually.
+- Frozen local build: `20260527.0124`
+- Frozen source ref: `appstore-7.6.0-20260527.0124`
diff --git a/Release/AppStore-7.6.0-20260525.0016/Screenshots/AppStore/.gitkeep b/Release/AppStore-7.6.0-20260527.0124/Screenshots/AppStore/.gitkeep
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Screenshots/AppStore/.gitkeep
rename to Release/AppStore-7.6.0-20260527.0124/Screenshots/AppStore/.gitkeep
diff --git a/Release/AppStore-7.6.0-20260527.0124/Screenshots/SCREENSHOT_SHOT_LIST.md b/Release/AppStore-7.6.0-20260527.0124/Screenshots/SCREENSHOT_SHOT_LIST.md
new file mode 100644
index 0000000..a632084
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/Screenshots/SCREENSHOT_SHOT_LIST.md
@@ -0,0 +1,63 @@
+# Screenshot Shot List
+
+Apple allows one to ten Mac screenshots. Use 16:10 PNG or JPG images. Recommended final size: `2880 x 1800`. Other accepted Mac sizes include `2560 x 1600`, `1440 x 900`, and `1280 x 800`.
+
+Put original captures in `Screenshots/raw/`. Put final App Store-ready files in `Screenshots/AppStore/`.
+
+## Recommended Final Set
+
+Use five screenshots if possible.
+
+1. `01-app-grid.png`
+ - Show the main TagLauncher app grid.
+ - Make sure several tag groups are visible.
+ - Avoid private app names if needed.
+ - This is the hero screenshot.
+
+2. `02-quick-search.png`
+ - Open AppGrid, press Space, and show Quick Search with a sample query.
+ - Prefer a query that returns clean, recognizable results.
+ - Keep AppGrid visible behind Quick Search.
+
+3. `03-settings-appearance.png`
+ - Show Settings with appearance/layout controls.
+ - This demonstrates customization.
+
+4. `04-hotkeys-or-search-settings.png`
+ - Show the hotkey or Quick Search settings area.
+ - This demonstrates the global launcher workflow.
+
+5. `05-import-export-or-tag-editing.png`
+ - Show import/export, tag editing, or a clean organized multi-tag grid.
+ - This demonstrates data portability or organization depth.
+
+## Optional Extra Shots
+
+6. Split View / fullscreen Space behavior
+ - Only include this if it looks visually clear.
+ - AppGrid should appear above a fullscreen or Split View workspace.
+
+7. Help/About page
+ - Use only if you want to emphasize the built-in help link.
+
+## Capture Notes
+
+- Hide unrelated desktop clutter and notifications.
+- Use the same language for all screenshots unless intentionally localizing.
+- Avoid showing sensitive installed apps, private folders, account names, or messages.
+- Do not add marketing text into the screenshots unless you later decide to create designed promotional frames.
+- If taking full-screen captures on a Retina Mac, the raw image may be larger than accepted App Store sizes. Export or resize final files to `2880 x 1800`.
+
+## Quick Resize Command
+
+After placing raw screenshots in `Screenshots/raw/`, run this from the repo root to create `2880 x 1800` copies:
+
+```bash
+mkdir -p Release/AppStore-7.6.0-20260527.0124/Screenshots/AppStore
+for file in Release/AppStore-7.6.0-20260527.0124/Screenshots/raw/*.png; do
+ name="$(basename "$file")"
+ sips -z 1800 2880 "$file" --out "Release/AppStore-7.6.0-20260527.0124/Screenshots/AppStore/$name"
+done
+```
+
+Review each resized file before uploading. If a screenshot looks stretched or cropped poorly, recapture at a cleaner 16:10 screen size instead of forcing it.
diff --git a/Release/AppStore-7.6.0-20260525.0016/Screenshots/raw/.gitkeep b/Release/AppStore-7.6.0-20260527.0124/Screenshots/raw/.gitkeep
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Screenshots/raw/.gitkeep
rename to Release/AppStore-7.6.0-20260527.0124/Screenshots/raw/.gitkeep
diff --git a/Release/AppStore-7.6.0-20260525.0016/Submitted/.gitkeep b/Release/AppStore-7.6.0-20260527.0124/Submitted/.gitkeep
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Submitted/.gitkeep
rename to Release/AppStore-7.6.0-20260527.0124/Submitted/.gitkeep
diff --git a/Release/AppStore-7.6.0-20260527.0124/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md b/Release/AppStore-7.6.0-20260527.0124/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md
new file mode 100644
index 0000000..98b0fef
--- /dev/null
+++ b/Release/AppStore-7.6.0-20260527.0124/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md
@@ -0,0 +1,79 @@
+# Publishing Privacy And Support Pages On GitHub
+
+App Store Connect needs public URLs for privacy policy and support. The simplest path is GitHub Pages.
+
+## Recommended URL Shape
+
+If you publish from this repository with GitHub Pages, use URLs like:
+
+- Privacy Policy: `https://[GITHUB_USER_OR_ORG].github.io/[REPO_NAME]/privacy/`
+- Support: `https://[GITHUB_USER_OR_ORG].github.io/[REPO_NAME]/support/`
+
+Exact URLs depend on the GitHub owner, repository name, and Pages settings.
+
+## Files To Publish
+
+Copy these release-pack files into a public `docs/` folder in the GitHub repository:
+
+```text
+docs/privacy.md
+docs/privacy.zh-Hans.md
+docs/support.md
+```
+
+Suggested source mapping:
+
+```text
+Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.md -> docs/privacy.md
+Release/AppStore-7.6.0-20260527.0124/Legal/PRIVACY_POLICY.zh-Hans.md -> docs/privacy.zh-Hans.md
+Release/AppStore-7.6.0-20260527.0124/Support/SUPPORT.md -> docs/support.md
+```
+
+Replace all placeholders before publishing:
+
+- `[YOUR NAME OR COMPANY NAME]`
+- `[PRIVACY OR SUPPORT EMAIL]`
+- `[SUPPORT EMAIL]`
+- `[PUBLIC PRIVACY POLICY URL]`
+
+## GitHub Pages Setup
+
+1. Push the repository to GitHub.
+2. Open the repository on GitHub.
+3. Go to `Settings` -> `Pages`.
+4. Under `Build and deployment`, choose:
+ - Source: `Deploy from a branch`
+ - Branch: `main`
+ - Folder: `/docs`
+5. Save.
+6. Wait for GitHub Pages to publish.
+7. Open the generated URLs in a private browser window and confirm they are public.
+8. Paste the public privacy and support URLs into App Store Connect.
+
+## Alternative: Dedicated Website Repository
+
+If you prefer a clean URL, create a separate public repository named `[GITHUB_USER_OR_ORG].github.io`.
+
+Then publish:
+
+```text
+privacy.md
+privacy.zh-Hans.md
+support.md
+```
+
+The URLs become:
+
+```text
+https://[GITHUB_USER_OR_ORG].github.io/privacy/
+https://[GITHUB_USER_OR_ORG].github.io/support/
+```
+
+## App Store Connect Fields
+
+Use:
+
+- Privacy Policy URL: the public privacy page.
+- Support URL: the public support page.
+
+If you localize App Store metadata later, you can also provide localized privacy policy URLs per locale.
diff --git a/Release/AppStore-7.6.0-20260525.0016/Support/SUPPORT.md b/Release/AppStore-7.6.0-20260527.0124/Support/SUPPORT.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Support/SUPPORT.md
rename to Release/AppStore-7.6.0-20260527.0124/Support/SUPPORT.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Upload/.gitkeep b/Release/AppStore-7.6.0-20260527.0124/Upload/.gitkeep
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Upload/.gitkeep
rename to Release/AppStore-7.6.0-20260527.0124/Upload/.gitkeep
diff --git a/Release/AppStore-7.6.0-20260525.0016/APP_STORE_ASSET_INVENTORY.md b/Release/_archive/AppStore-7.6.0-20260525.0016/APP_STORE_ASSET_INVENTORY.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/APP_STORE_ASSET_INVENTORY.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/APP_STORE_ASSET_INVENTORY.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/APP_STORE_CONNECT_METADATA.md b/Release/_archive/AppStore-7.6.0-20260525.0016/APP_STORE_CONNECT_METADATA.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/APP_STORE_CONNECT_METADATA.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/APP_STORE_CONNECT_METADATA.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Archive/TagLauncher-7.6.0-20260525.0016-local-QA.dmg b/Release/_archive/AppStore-7.6.0-20260525.0016/Archive/TagLauncher-7.6.0-20260525.0016-local-QA.dmg
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Archive/TagLauncher-7.6.0-20260525.0016-local-QA.dmg
rename to Release/_archive/AppStore-7.6.0-20260525.0016/Archive/TagLauncher-7.6.0-20260525.0016-local-QA.dmg
Binary files differ
diff --git a/Release/AppStore-7.6.0-20260525.0016/Assets/TagLauncher-AppIcon-1024.png b/Release/_archive/AppStore-7.6.0-20260525.0016/Assets/TagLauncher-AppIcon-1024.png
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Assets/TagLauncher-AppIcon-1024.png
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Assets/TagLauncher-AppIcon-1024.png
Binary files differ
diff --git a/Release/AppStore-7.6.0-20260525.0016/BUILD_SIGN_UPLOAD.md b/Release/_archive/AppStore-7.6.0-20260525.0016/BUILD_SIGN_UPLOAD.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/BUILD_SIGN_UPLOAD.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/BUILD_SIGN_UPLOAD.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/FIRST_TIME_MAC_APP_STORE_TODO.md b/Release/_archive/AppStore-7.6.0-20260525.0016/FIRST_TIME_MAC_APP_STORE_TODO.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/FIRST_TIME_MAC_APP_STORE_TODO.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/FIRST_TIME_MAC_APP_STORE_TODO.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.md b/Release/_archive/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.md
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.md
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.zh-Hans.md b/Release/_archive/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.zh-Hans.md
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.zh-Hans.md
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Legal/PRIVACY_POLICY.zh-Hans.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/QA_RELEASE_EVIDENCE.md b/Release/_archive/AppStore-7.6.0-20260525.0016/QA_RELEASE_EVIDENCE.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/QA_RELEASE_EVIDENCE.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/QA_RELEASE_EVIDENCE.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/README.md b/Release/_archive/AppStore-7.6.0-20260525.0016/README.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/README.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/README.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Review/APP_REVIEW_NOTES.md b/Release/_archive/AppStore-7.6.0-20260525.0016/Review/APP_REVIEW_NOTES.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Review/APP_REVIEW_NOTES.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/Review/APP_REVIEW_NOTES.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Screenshots/AppStore/.gitkeep b/Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/AppStore/.gitkeep
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Screenshots/AppStore/.gitkeep
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/AppStore/.gitkeep
diff --git a/Release/AppStore-7.6.0-20260525.0016/Screenshots/SCREENSHOT_SHOT_LIST.md b/Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/SCREENSHOT_SHOT_LIST.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Screenshots/SCREENSHOT_SHOT_LIST.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/SCREENSHOT_SHOT_LIST.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Screenshots/raw/.gitkeep b/Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/raw/.gitkeep
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Screenshots/raw/.gitkeep
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Screenshots/raw/.gitkeep
diff --git a/Release/AppStore-7.6.0-20260525.0016/Submitted/.gitkeep b/Release/_archive/AppStore-7.6.0-20260525.0016/Submitted/.gitkeep
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Submitted/.gitkeep
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Submitted/.gitkeep
diff --git a/Release/AppStore-7.6.0-20260525.0016/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md b/Release/_archive/AppStore-7.6.0-20260525.0016/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md
similarity index 100%
rename from Release/AppStore-7.6.0-20260525.0016/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md
rename to Release/_archive/AppStore-7.6.0-20260525.0016/Support/GITHUB_PAGES_PUBLICATION_GUIDE.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Support/SUPPORT.md b/Release/_archive/AppStore-7.6.0-20260525.0016/Support/SUPPORT.md
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Support/SUPPORT.md
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Support/SUPPORT.md
diff --git a/Release/AppStore-7.6.0-20260525.0016/Upload/.gitkeep b/Release/_archive/AppStore-7.6.0-20260525.0016/Upload/.gitkeep
similarity index 100%
copy from Release/AppStore-7.6.0-20260525.0016/Upload/.gitkeep
copy to Release/_archive/AppStore-7.6.0-20260525.0016/Upload/.gitkeep
diff --git a/Scripts/window_logic_qa.sh b/Scripts/window_logic_qa.sh
index 7460258..59b2b96 100755
--- a/Scripts/window_logic_qa.sh
+++ b/Scripts/window_logic_qa.sh
@@ -596,7 +596,7 @@
fputs("FAIL: could not find settings window bounds\n", stderr)
exit(1)
}
- print("\(Int(round(x + 523))) \(Int(round(y + 50)))")
+ print("\(Int(round(x + 625))) \(Int(round(y + 50)))")
case "export":
guard let settings = tag.first(where: { (($0[kCGWindowName as String] as? String) ?? "").isEmpty == false }),
let bounds = settings[kCGWindowBounds as String] as? NSDictionary,
@@ -834,9 +834,9 @@
sleep 2.0
assert_single_qa_app_instance
assert_single_dock_tile
-send_keycode 53
+kill_all_taglauncher_instances
sleep 0.4
-wait_swift_assert no-overlay
+swift_assert no-overlay
log "==> QA split-view fullscreen geometry detection"
swift_assert split-geometry
--
Gitblit v1.9.3