feat(app): add resilient Flow recovery and privacy-safe analytics
CI / Validate manifests (push) Has been cancelled
CI / SwiftLint (push) Has been cancelled
CI / iOS / Extension (push) Has been cancelled
CI / macOS (push) Has been cancelled

Unify PiP recovery across startup and foreground transitions, surface actionable status, and add privacy-safe analytics plus the refreshed onboarding and account experience. Update documentation assets and advance the release build to 84.
This commit is contained in:
Rocky
2026-08-20 20:22:20 +08:00
parent ee7de5c934
commit 10bc457c72
69 changed files with 7891 additions and 598 deletions
+13 -3
View File
@@ -58,15 +58,20 @@
element.setAttribute("content", element.dataset[`${lang}Content`] || "");
});
document.querySelectorAll("[data-shot]").forEach((image) => {
const theme = root.dataset.theme || "light";
image.src = `assets/screenshots/${lang}/${theme}/${image.dataset.shot}`;
});
document.title = lang === "zh"
? "OSGKeyboard — 语音打字与 AI 助手键盘"
: "OSGKeyboard — Voice, typing, and an AI assistant keyboard";
? "OSGKeyboard — 语音输入、中英打字与 AI 助手"
: "OSGKeyboard — Voice input, bilingual typing, and an AI assistant";
if (languageButton) {
languageButton.textContent = lang === "zh" ? "EN" : "中文";
languageButton.setAttribute(
"aria-label",
lang === "zh" ? "Switch to English" : "切换到中文"
lang === "zh" ? "切换到英文" : "Switch to Chinese"
);
}
@@ -131,6 +136,11 @@
themeColor?.setAttribute("content", resolved === "dark" ? "#0c0e0f" : "#eef2f6");
document.querySelectorAll("[data-shot]").forEach((image) => {
const lang = root.dataset.lang || "zh";
image.src = `assets/screenshots/${lang}/${resolved}/${image.dataset.shot}`;
});
if (persist) localStorage.setItem("osg-site-theme", resolved);
}