From d77d35981ccd3f64c34727b8d21ac599012007bb Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Thu, 02 Jul 2026 02:42:34 +0800
Subject: [PATCH] Update App Store release records
---
src/Scripts/theme_settings_qa.sh | 38 +++++++++++++++++++++++++++++++++++++-
1 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/src/Scripts/theme_settings_qa.sh b/src/Scripts/theme_settings_qa.sh
index 868816d..e548dbe 100755
--- a/src/Scripts/theme_settings_qa.sh
+++ b/src/Scripts/theme_settings_qa.sh
@@ -53,6 +53,28 @@
raise SystemExit("legacy dark preference migration is missing")
if "var usesVisualEffectBackdrop: Bool" not in theme_source:
raise SystemExit("theme visual-effect backdrop policy is missing")
+if "static let settingsDisplayOrder: [AppGridTheme]" not in theme_source:
+ raise SystemExit("settings theme display order is missing")
+if "var supportsColorTuning: Bool" not in theme_source:
+ raise SystemExit("colorful theme tuning policy is missing")
+if "func backgroundBaseColors(tuning: Double?)" not in theme_source or "func backgroundAccentColors(tuning: Double?)" not in theme_source:
+ raise SystemExit("tunable AppGrid background color functions are missing")
+if "AppGridTheme.settingsDisplayOrder" not in preferences_source:
+ raise SystemExit("Preferences theme grid does not use the curated theme order")
+if "themeColorTuningSection" not in preferences_source or "Slider(value: themeTuningBinding" not in preferences_source:
+ raise SystemExit("Preferences theme tuning slider is missing")
+if 'Text(tr("settings.theme"))\n .font(.headline)' in preferences_source:
+ raise SystemExit("Theme content area must not repeat the Theme heading")
+if 'Text(tr("settings.themeScopeDesc"))' in preferences_source:
+ raise SystemExit("Theme scope copy must be merged into the tuning description, not rendered as a standalone bottom line")
+if not re.search(r"case\s+\.colorful:\s*return\s+0\b", theme_source):
+ raise SystemExit("Light Colorful default tuning must start at the far left of the slider")
+if "AppGridTheme.deepBlueTuningStorageKey" not in defaults_source or "AppGridTheme.colorfulTuningStorageKey" not in defaults_source:
+ raise SystemExit("theme tuning defaults are missing")
+if "static let iconSize: Double = 56" not in defaults_source:
+ raise SystemExit("new-install default icon size must be 56")
+if 'static let displayMode = "gridContainer"' not in defaults_source:
+ raise SystemExit("new-install default display mode must remain a free mode")
if "var isPureBlackBackground: Bool" not in theme_source or "self == .black" not in theme_source:
raise SystemExit("pure black background policy is missing")
if "case .deepBlue, .black:" not in theme_source or "return true" not in theme_source:
@@ -83,10 +105,19 @@
raise SystemExit(f"AppGridTheme missing edit-mode contrast tokens: {missing_tokens}")
if "private var renderedAppGridTheme: AppGridTheme" not in content_source:
raise SystemExit("ContentView is missing the runtime theme override")
-if "editPhase == .none ? appGridTheme : .defaultLight" not in content_source:
+if not re.search(
+ r"private\s+var\s+renderedAppGridTheme\s*:\s*AppGridTheme\s*\{.*?"
+ r"editPhase\s*==\s*\.none.*?"
+ r"ProEntitlementPolicy\.effectiveTheme\(for:\s*appGridTheme\).*?"
+ r":\s*\.defaultLight",
+ content_source,
+ re.S,
+):
raise SystemExit("edit mode must temporarily render with the default light AppGrid theme")
if "let theme = renderedAppGridTheme" not in content_source:
raise SystemExit("AppGrid background does not use the runtime rendered theme")
+if "let tuning = renderedAppGridThemeTuning" not in content_source:
+ raise SystemExit("AppGrid background does not use runtime theme tuning")
if "AppGridCollectionView(" in content_source and "appGridTheme: renderedAppGridTheme" not in content_source:
raise SystemExit("AppGridCollectionView is not passed the runtime rendered theme")
if "EditAppsHeaderView(" in content_source and "theme: renderedAppGridTheme" not in content_source:
@@ -110,6 +141,9 @@
"settings.theme",
"settings.themeDesc",
"settings.themeScopeDesc",
+ "theme.tuning.dark",
+ "theme.tuning.light",
+ "theme.tuning.desc",
"theme.default",
"theme.deepBlue",
"theme.black",
@@ -136,6 +170,8 @@
]
if raw_values:
raise SystemExit(f"{path.name} has raw key values: {raw_values}")
+ if data["settings.themeScopeDesc"].strip() not in data["theme.tuning.desc"]:
+ raise SystemExit(f"{path.name} theme tuning description must include the theme scope copy")
print("PASS theme settings QA: 8 themes, Theme tab, migration, AppGrid-only rendering, glass policy, edit-mode default-theme override, and 29-language keys are present")
PY
--
Gitblit v1.9.3