| src/Apptag/ContentView.swift | ●●●●● patch | view | raw | blame | history | |
| src/Apptag/Info.plist | ●●●●● patch | view | raw | blame | history | |
| src/CHANGELOG.md | ●●●●● patch | view | raw | blame | history | |
| src/Scripts/app_grid_material_background_qa.sh | ●●●●● patch | view | raw | blame | history |
src/Apptag/ContentView.swift
@@ -492,7 +492,7 @@ var body: some View { ZStack { if shouldRenderAppGridBehindQuickSearch { VisualEffectView(material: .hudWindow, blendingMode: .behindWindow) VisualEffectView(material: .contentBackground, blendingMode: .behindWindow) .ignoresSafeArea() .allowsHitTesting(false) } src/Apptag/Info.plist
@@ -19,9 +19,9 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> <string>7.9.2</string> <string>7.9.3</string> <key>CFBundleVersion</key> <string>20260617.2028</string> <string>20260619.2012</string> <key>LSApplicationCategoryType</key> <string>public.app-category.utilities</string> <key>LSMinimumSystemVersion</key> src/CHANGELOG.md
@@ -1,5 +1,12 @@ # TagLauncher Changelog ## [7.9.3] — 2026-06-19 - 优化 App Grid 背景材质:底层从 HUD 风格切换为更适合内容区域的 macOS `contentBackground` material,让容器之间的空白区域更像统一的原生材质表面 - 保持 App Grid 交互不变:不改布局、拖拽、Quick Search、卡片绘制、窗口层级和点击命中逻辑 - 新增 `app_grid_material_background_qa.sh`,防止 App Grid 背景材质回退并确认背景层保持不可点击 - 版本号更新为 `7.9.3`,Build 更新为 `20260619.2012` ## [7.9.2] — 2026-06-17 - 恢复 App Grid 标签列表 hover 自动滚动:鼠标停到某个标签时会自动滚动到对应容器,点击标签仍保持立即滚动 src/Scripts/app_grid_material_background_qa.sh
New file @@ -0,0 +1,50 @@ #!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" CONTENT_VIEW_SWIFT="$ROOT_DIR/Apptag/ContentView.swift" fail() { printf 'FAIL: %s\n' "$*" >&2 exit 1 } [[ -f "$CONTENT_VIEW_SWIFT" ]] || fail "missing ContentView.swift" python3 - "$CONTENT_VIEW_SWIFT" <<'PY' import pathlib import re import sys content = pathlib.Path(sys.argv[1]).read_text(encoding="utf-8") def fail(message: str) -> None: print(f"FAIL: {message}", file=sys.stderr) sys.exit(1) def require(pattern: str, source: str, message: str) -> None: if not re.search(pattern, source, re.S): fail(message) require( r"if\s+shouldRenderAppGridBehindQuickSearch\s*\{\s*" r"VisualEffectView\(material:\s*\.contentBackground,\s*blendingMode:\s*\.behindWindow\)" r"(?P<body>.*?)\.ignoresSafeArea\(\)" r"(?P<body2>.*?)\.allowsHitTesting\(false\)", content, "App Grid must use a non-interactive contentBackground material behind all content", ) if re.search( r"if\s+shouldRenderAppGridBehindQuickSearch\s*\{\s*" r"VisualEffectView\(material:\s*\.hudWindow,\s*blendingMode:\s*\.behindWindow\)", content, re.S, ): fail("App Grid background must not regress to hudWindow material") print("PASS: App Grid material background semantics are guarded") PY