| Apptag/ApptagApp.swift | ●●●●● patch | view | raw | blame | history | |
| Apptag/Info.plist | ●●●●● patch | view | raw | blame | history | |
| CHANGELOG.md | ●●●●● patch | view | raw | blame | history | |
| Release/AppStore-7.8.4-20260530.1727/APP_STORE_ASSET_INVENTORY.md | ●●●●● patch | view | raw | blame | history | |
| Release/AppStore-7.8.4-20260530.1727/Archive/TagLauncher-7.8.4-20260530.1727-local-QA.dmg | patch | view | raw | blame | history | |
| Release/AppStore-7.8.4-20260530.1727/QA_RELEASE_EVIDENCE.md | ●●●●● patch | view | raw | blame | history | |
| Release/AppStore-7.8.4-20260530.1727/README.md | ●●●●● patch | view | raw | blame | history |
Apptag/ApptagApp.swift
@@ -900,6 +900,18 @@ private func handleOverlayEscapeKey() -> Bool { if isQuickSearchOpen || quickSearchOnlyOverlaySession { dismissQuickSearchFromKeyboard() return true } guard !isSettingsVisible, !isEditingAppNote, !isModalInteractionActive else { return false } hideOverlay(force: true) return true } private func dismissQuickSearchFromKeyboard() { let shouldHideOverlayAfterDismiss = quickSearchShouldHideOverlayOnClose || quickSearchOnlyOverlaySession isQuickSearchOpen = false removeQuickSearchExternalMouseMonitor() @@ -912,14 +924,6 @@ self?.hideOverlay(force: true) } } return true } guard !isSettingsVisible, !isEditingAppNote, !isModalInteractionActive else { return false } hideOverlay(force: true) return true } private func requestQuickSearch(source: String) { @@ -1072,6 +1076,12 @@ private func showQuickSearchFromGlobalHotkey() { let now = Date() if overlayWindow?.isVisible == true, isQuickSearchOpen || quickSearchOnlyOverlaySession { lastQuickSearchHotkeyAt = now dismissQuickSearchFromKeyboard() return } if now.timeIntervalSince(lastQuickSearchHotkeyAt) < 0.28 { promoteOverlayToForegroundInput() updateOverlayLevelForTextInput() @@ -1079,11 +1089,6 @@ } lastQuickSearchHotkeyAt = now if overlayWindow?.isVisible == true, isQuickSearchOpen || quickSearchOnlyOverlaySession { promoteOverlayToForegroundInput() updateOverlayLevelForTextInput() return } if overlayWindow?.isVisible == true { refreshLauncherChromeState( activate: !overlayAvoidsSpaceSwitch, Apptag/Info.plist
@@ -19,9 +19,9 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> <string>7.8.3</string> <string>7.8.4</string> <key>CFBundleVersion</key> <string>20260530.1652</string> <string>20260530.1727</string> <key>LSApplicationCategoryType</key> <string>public.app-category.utilities</string> <key>LSMinimumSystemVersion</key> CHANGELOG.md
@@ -1,5 +1,11 @@ # TagLauncher Changelog ## [7.8.4] — 2026-05-30 - 修复全局 `Fn + Space` Quick Search 快捷键不能像 Spotlight 一样反复开关的问题;现在连续按会按 `出现 -> 消失 -> 出现 -> 消失` 循环 - 复用键盘关闭路径,Quick Search-only 模式关闭时会同步隐藏 overlay,避免残留透明窗口 - 版本号更新为 `7.8.4`,Build 更新为 `20260530.1727` ## [7.8.3] — 2026-05-30 - 修复设置窗口宽度不足导致系统 `Navigation Tab Bar` 折叠入口固定出现的问题,设置页签恢复直接可见 Release/AppStore-7.8.4-20260530.1727/APP_STORE_ASSET_INVENTORY.md
New file @@ -0,0 +1,17 @@ # App Store Asset Inventory This release pack freezes TagLauncher `7.8.4` build `20260530.1727`. ## Included - `Archive/TagLauncher-7.8.4-20260530.1727-local-QA.dmg` - `README.md` - `QA_RELEASE_EVIDENCE.md` - `APP_STORE_ASSET_INVENTORY.md` ## External Items Still Required For App Store Upload - Apple Developer Bundle ID selection/confirmation in App Store Connect. - Mac App Store signing certificate and provisioning profile. - Final App Store screenshots and metadata review before submission. Release/AppStore-7.8.4-20260530.1727/Archive/TagLauncher-7.8.4-20260530.1727-local-QA.dmgBinary files differ
Release/AppStore-7.8.4-20260530.1727/QA_RELEASE_EVIDENCE.md
New file @@ -0,0 +1,34 @@ # QA Release Evidence ## Build Under Test - Version: `7.8.4` - Build: `20260530.1727` - App: `/Users/ar/Projects/Taglauncher/build/TagLauncher.app` - DMG: `/Users/ar/Projects/Taglauncher/build/TagLauncher.dmg` - Archived DMG: `Archive/TagLauncher-7.8.4-20260530.1727-local-QA.dmg` - DMG SHA-256: `c843d06ed620bd2dd776fafef5e5de38d4abdb623e41e1ebc73ea525b63bf56c` ## Checks - Version metadata: - `CFBundleShortVersionString = 7.8.4` - `CFBundleVersion = 20260530.1727` - Code signing: - `codesign --verify --deep --strict --verbose=2 build/TagLauncher.app` - Result: passed - Disk image: - `hdiutil verify build/TagLauncher.dmg` - Result: passed - Window logic: - `APP_BUILD=20260530.1727 Scripts/window_logic_qa.sh` - Result: `ALL WINDOW LOGIC QA PASSED` - Quick Search toggle: - Four consecutive `Fn + Space` invocations produced on-screen TagLauncher window counts `2, 0, 2, 0` - Result: passed ## Targeted Fix Coverage - The Quick Search global hotkey now dismisses an already-open Quick Search instead of only refocusing it. - Quick Search-only dismissal hides the backing overlay window, matching the Spotlight-style toggle behavior. Release/AppStore-7.8.4-20260530.1727/README.md
New file @@ -0,0 +1,26 @@ # TagLauncher 7.8.4 Release Pack This folder freezes TagLauncher `7.8.4` build `20260530.1727` for local QA distribution and Mac App Store submission preparation. ## Release Identity - Product: `TagLauncher` - Version: `7.8.4` - Build: `20260530.1727` - Branch: `codex/fix-quick-search-focus-routing` - Local QA DMG: `Archive/TagLauncher-7.8.4-20260530.1727-local-QA.dmg` - DMG SHA-256: `c843d06ed620bd2dd776fafef5e5de38d4abdb623e41e1ebc73ea525b63bf56c` ## Changes Since 7.8.3 - Fixed the global `Fn + Space` Quick Search shortcut so repeated presses toggle Quick Search like Spotlight. - Reused the keyboard-dismiss path so Quick Search-only sessions also close the backing overlay window. ## Verification - App version metadata verified: `7.8.4 (20260530.1727)` - `codesign --verify --deep --strict --verbose=2 build/TagLauncher.app`: passed - `hdiutil verify build/TagLauncher.dmg`: passed - `Scripts/window_logic_qa.sh`: passed - Targeted `Fn + Space` loop: window counts `2 -> 0 -> 2 -> 0`