# TagLauncher 8.2.9 Build 20260630.1617 Code Freeze ## Freeze Scope - Version: `8.2.9` - Build: `20260630.1617` - Branch: `codex/pro-custom-hotkeys-8.2.0` - Source code commit: `70a1cc2e63d2c49a135bd89cec3ffb1d427d90ee` - Freeze tag: `v8.2.9-build20260630.1617` - Freeze commit: the commit pointed to by the freeze tag. - Freeze time: `2026-06-30 16:31:07 +0800` - Operator: Codex This freeze supersedes the earlier `8.2.8 (20260630.0128)` App Store build. It captures the final Pro status-row UI corrections requested after the previous upload package had been accepted by Transporter. ## Included Product Changes Since 8.2.8 - Settings top Pro status row: - When Pro is unlocked and the selected settings tab is Language, Pro, or About, the row now centers a `Pro 已解锁` pill followed by `settings.proStatus.proUser`. - In Simplified Chinese this renders as `Pro 已解锁` + `您当前是尊贵的 Pro 用户`. - The crown icon belongs to the leading `ProStatusPill`; `settings.proStatus.proUser` no longer embeds a duplicate crown icon. - Localization: - All 29 language packs remove the duplicate crown icon from `settings.proStatus.proUser`. - Simplified Chinese is fixed to `您当前是尊贵的 Pro 用户`. - QA gates: - `pro_feature_gate_qa.sh` now asserts that the centered unlocked identity row is limited to Language / Pro / About. - `pro_localization_qa.sh` now asserts that `settings.proStatus.proUser` does not duplicate the crown icon and that Simplified Chinese uses the approved sentence. - Release metadata: - `CFBundleShortVersionString` is updated to `8.2.9`. - `CFBundleVersion` is updated to `20260630.1617`. - `CHANGELOG.md` includes the `8.2.9` release entry. ## Preserved 8.2.8 Scope This build still includes the 8.2.8 Pro feature batch and blocking Quick Search click-launch fix: - Pro custom hotkeys. - Pro custom tag colors. - Free 3-note quota and Pro unlimited notes. - Pro-gated colorful container / colorful grid display modes with 5-minute preview. - Dedicated Pro settings tab and Pro comparison table. - Quick Search mouse / trackpad candidate-row launch fix. - 29-language Pro, hotkey, data, bubble tip, and comparison UI localization. ## QA Evidence Passed before source freeze: - `bash Scripts/pro_feature_gate_qa.sh` - `bash Scripts/pro_localization_qa.sh` - `bash Scripts/quick_search_launch_contract_qa.sh` - `bash Scripts/theme_settings_qa.sh` - `bash Scripts/app_ordering_data_qa.sh` - `bash Scripts/pro_custom_hotkeys_qa.sh` - `bash Scripts/pro_tag_custom_color_qa.sh` - `bash Scripts/pro_notes_quota_qa.sh` - `bash Scripts/pro_display_mode_preview_qa.sh` - `bash Scripts/pro_theme_preview_countdown_qa.sh` - `git diff --check -- CODEGRAPH.md src/CHANGELOG.md src/Apptag/Info.plist src/Apptag/PreferencesView.swift src/Apptag/Localization src/Scripts/pro_feature_gate_qa.sh src/Scripts/pro_localization_qa.sh` Build and artifact verification: - `APP_BUILD=20260630.1617 bash build.sh`: PASS. - `bash make_dmg.sh`: PASS. - `codesign --verify --deep --strict --verbose=2 build/TagLauncher.app`: PASS. - `hdiutil verify build/TagLauncher.dmg`: PASS. - App Store package generation with `productbuild`: PASS. - `pkgutil --check-signature Release/AppStore-8.2.9-20260630.1617/Upload/TagLauncher-8.2.9-build20260630.1617.pkg`: PASS. - `pkgutil --expand-full` package preflight: PASS. - Expanded package metadata: - `CFBundleIdentifier = com.taglauncher.app` - `CFBundleShortVersionString = 8.2.9` - `CFBundleVersion = 20260630.1617` - Expanded package signing: - `codesign --verify --deep --strict --verbose=2`: PASS. - `com.apple.application-identifier = CR3J54M8BQ.com.taglauncher.app` - `com.apple.developer.team-identifier = CR3J54M8BQ` - `com.apple.security.app-sandbox = true` - `com.apple.security.files.user-selected.read-write = true` - Expanded package quarantine scan: PASS, no `com.apple.quarantine` xattr found. ## Build Artifacts - Local rollback DMG: `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.2.9-20260630.1617/Archive/TagLauncher-8.2.9-build20260630.1617.dmg` - App Store upload PKG: `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.2.9-20260630.1617/Upload/TagLauncher-8.2.9-build20260630.1617.pkg` - DMG SHA256: `41aeb7e8fc1de547caee9124e93ffd111e6cfe5f4b570e5e81ed4258b5376b01` - PKG SHA256: `5d6b74b12b6872712dbf761bd13e45cd48fde367c1dcb8c012a6c3ef993bcede` - App Store signed executable SHA256: `0222efbc1f661d449cda12d97cb6afea35cefb36cdb2ce77804bdae22b7d0f49` - DMG size: `6309632` bytes - PKG size: `6124825` bytes ## App Store Signing - App signing identity: `0D7D5484FDE4EC1CA2C9225F1E71E65A256A1E7C` - App signing name: `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)` - Installer signing identity SHA1: `AABC76560111D01F55B1E932A6BBA3C3E16363B1` - Provisioning profile: `TagLauncher Mac App Store 20260605.2337` - Profile path: `/Users/ar/Library/MobileDevice/Provisioning Profiles/da7839d6-2489-4272-b999-c61efccfe473.provisionprofile` - Profile expiration: `Fri Jun 04 21:48:21 CST 2027` - Team ID: `CR3J54M8BQ` The final package was signed with the same profile-bound app certificate as the previously accepted 8.2.8 upload. A first local 8.2.9 package was discarded because it used only the base sandbox entitlements and missed the App Store application identifier and team identifier entitlements. ## CODEGRAPH Check - Checked: `/Users/ar/Projects/Taglauncher/CODEGRAPH.md` - This freeze changes settings UI behavior, Pro state copy, 29-language localized strings, release metadata, and QA gates. - Conclusion: `CODEGRAPH.md` has been updated with the Language / Pro / About centered unlocked Pro identity-row rule and the Pro comparison alignment rules already introduced during this correction batch. ## Excluded Dirty Workspace Changes The working tree still contains unrelated dirty areas that are intentionally not included in this freeze tag: - Legacy `docs/` deletions and website assets. - Old `src/Release/AppStore-7.8.15-20260605.2337/...` screenshot deletions. - Existing edits in old release metadata under `src/Release/AppStore-7.9.1...` and `src/Release/AppStore-7.9.4...`. - Untracked planning / knowledge documents under `Docs/`, `canvas/`, and root-level local notes. - `.codex-sessionhistory/` records, which remain local evidence rather than release source. - The `Release/AppStore-8.2.9-20260630.1617/` binary artifacts are kept on disk for submission / rollback but are not part of the source freeze tag. ## Rollback To inspect the frozen source without changing the current branch: ```bash git switch --detach v8.2.9-build20260630.1617 ``` To revert this freeze from a descendant branch: ```bash git revert v8.2.9-build20260630.1617 ``` ## App Store Handoff Upload this package in Transporter / App Store Connect: `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.2.9-20260630.1617/Upload/TagLauncher-8.2.9-build20260630.1617.pkg` Do not upload the DMG; it is kept only as a local rollback / install artifact.