edit | blame | history | raw

TagLauncher 8.2.8 Build 20260630.0128 Code Freeze

Freeze Scope

  • Version: 8.2.8
  • Build: 20260630.0128
  • Branch: codex/pro-custom-hotkeys-8.2.0
  • Freeze tag: v8.2.8-build20260630.0128
  • Freeze commit: the commit pointed to by the freeze tag.
  • Freeze time: 2026-06-30 03:37:56 +0800
  • Operator: Codex

This freeze captures the current TagLauncher Pro feature enhancement batch and the blocking Quick Search click-launch fix for App Store handoff. It intentionally excludes unrelated dirty workspace changes under legacy docs/, old src/Release/AppStore-7.8.15... screenshot deletions, local planning/canvas documents, and .codex-sessionhistory/ evidence files.

Included Product Changes

  • Pro custom hotkeys:
  • Free users see Pro-gated custom hotkey controls.
  • Pro users can customize the main AppGrid and global Quick Search shortcuts.
  • Shortcut recording suspends active global shortcuts during capture and restores them after success, failure, cancel, tab switch, window close, or entitlement change.
  • Validation allows Option+Space, rejects unsafe/invalid shortcuts, and keeps default fallback behavior for free users or invalid saved values.
  • Pro tag custom colors:
  • TagDef.customColor / TagCustomColor support optional sRGB custom colors while preserving old tag data.
  • Custom colors propagate to AppGrid group titles, tag navigation, and tag editing.
  • Free users can keep existing custom colors and switch back to base colors, but cannot set new custom colors.
  • Pro notes quota:
  • Free users can save 3 custom app notes.
  • Pro users can save unlimited app notes.
  • Editing existing notes remains allowed, and deleting notes releases quota.
  • Pro display modes and theme preview:
  • Colorful container and colorful grid display modes are Pro-gated.
  • Free users can preview these display modes for 5 minutes using the same preview model as Pro themes.
  • Settings / Pro UI:
  • Adds a dedicated Pro settings tab between Data and About.
  • Keeps settings tab icons line-style and compressed for 8 tabs.
  • Moves the Pro comparison table into the Pro tab.
  • Removes repeated large Pro cards from About / Data / Tags / Hotkeys pages.
  • Removes the restore purchase button from Pro-unlocked states.
  • About now only keeps app information, help, and contact content.
  • Localization:
  • Updates 29 language packs for Pro feature copy, Quick Search hotkey settings, bubble tip settings, and Pro comparison states.
  • Removes old 5 notes quota wording from the Pro notes feature copy.
  • Quick Search blocking fix:
  • Quick Search panel is an activating key panel and activates TagLauncher before ordering front.
  • Return / Enter keeps both command delegate and target/action submit fallback.
  • Mouse / trackpad clicking result rows is handled through QuickSearchResultRowView.mouseDown and a panel-level sendEvent fallback.
  • The panel fallback first tries hitTest, then recursively scans visible result row geometry by window point, avoiding SwiftUI / NSHostingView / NSScrollView hit-test gaps.

Included Project Governance Changes

  • AGENTS.md and CODE_GOVERNANCE.md now include a UI Preview Gate for non-trivial TagLauncher UI changes.
  • The gate requires UI contracts, high-fidelity preview or equivalent marked screenshots, user confirmation before production UI edits, and real rendered / interaction evidence before visual PASS.
  • These governance changes do not affect the binary build, but are included in the freeze commit as part of this round's delivery guardrails.

QA Evidence

Passed before freeze:

  • bash Scripts/quick_search_launch_contract_qa.sh
  • bash Scripts/pro_custom_hotkeys_qa.sh
  • bash Scripts/pro_feature_gate_qa.sh
  • git diff --check -- CODEGRAPH.md src/CHANGELOG.md src/Apptag/Info.plist src/Apptag/QuickSearch.swift src/Scripts/quick_search_launch_contract_qa.sh
  • APP_BUILD=20260630.0128 bash build.sh
  • bash make_dmg.sh
  • codesign --verify --deep --strict --verbose=2 build/TagLauncher.app
  • hdiutil verify build/TagLauncher.dmg

Additional freeze-time artifact verification:

  • Mounted /Users/ar/Projects/Taglauncher/src/build/TagLauncher.dmg read-only.
  • DMG contents include:
  • TagLauncher.app
  • Applications symlink.
  • Mounted app metadata:
  • CFBundleShortVersionString = 8.2.8
  • CFBundleVersion = 20260630.0128
  • Mounted app signature verification:
  • codesign --verify --deep --strict --verbose=2 /tmp/TagLauncherFreezeMount/TagLauncher.app
  • Result: valid on disk and satisfies designated requirement.
  • DMG verification:
  • hdiutil verify /Users/ar/Projects/Taglauncher/src/build/TagLauncher.dmg
  • Result: checksum is valid.
  • Quick Search real GUI click verification:
  • Opened the built TagLauncher app.
  • Pressed Space through GUI automation to open Quick Search.
  • Typed Calculator.
  • Confirmed Calculator was not running before click.
  • Clicked the Calculator candidate row using a real left-click automation event, not Return.
  • Confirmed Calculator launched and became the frontmost app.
  • Cleaned up by quitting Calculator.
  • Screenshot evidence: /Users/ar/Projects/Taglauncher/.codex-sessionhistory/assets/2026-06-30-quicksearch-calculator-click-pass.png
  • Screenshot SHA256: f50d2cc5908b43309ba58ec6be0001d350391899c17a323d796e7b66cde8d7d7

Build Artifacts

  • DMG: /Users/ar/Projects/Taglauncher/src/build/TagLauncher.dmg
  • DMG SHA256: 47b7d7127781a7c5dbf709b6a9f65be1baa9f1f0f5fd1e93b531fcc61eaaf61a
  • Mounted executable SHA256: 27d39957070512e8849b876edaa736ebd89a05e46b04e3312a4ffa4995885b32

Note: after DMG creation, build/TagLauncher.app was no longer present in the build directory root. Freeze-time app metadata and signature checks were therefore performed against the app inside the mounted DMG.

CODEGRAPH Check

  • Checked: /Users/ar/Projects/Taglauncher/CODEGRAPH.md
  • Change type:
  • Pro entitlement policy and preview model changes.
  • Settings / Pro tab UI ownership and protected behavior.
  • Tag custom color data model and display propagation.
  • Custom hotkey storage / validation / registration behavior.
  • Quick Search key panel, Return fallback, and mouse-click launch fallback.
  • New QA script entries.
  • Conclusion: updated in this freeze.

Excluded Dirty Workspace Changes

The following dirty areas are intentionally not included in this freeze tag because they are unrelated to the 8.2.8 App build or their ownership is not established in this release handoff:

  • 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 and screenshots, which remain local evidence rather than release source.

Rollback

To inspect the frozen source without changing the current branch:

git switch --detach v8.2.8-build20260630.0128

To revert this freeze from a descendant branch:

git revert v8.2.8-build20260630.0128

App Store Handoff

This code freeze must be completed before any App Store submission work proceeds. App Store upload / submission is outside this freeze step and should start only after the freeze commit and tag exist.

Remote Push Status

  • Local freeze commit and local annotated tag were created successfully.
  • Remote push attempted:
  • git push origin codex/pro-custom-hotkeys-8.2.0
  • git push origin v8.2.8-build20260630.0128
  • Remote push result: not pushed.
  • Reason: GitHub HTTPS authentication is not available in this environment: fatal: could not read Username for 'https://github.com': Device not configured.
  • Impact: the local repository has a fixed commit and tag for freeze / rollback. Remote backup is still pending until GitHub credentials are available.