feat(keyboard): harden polish/clipboard guards and ship 1.6.6 (build 59)

Keep marketing version at 1.6.6 and bump build to 59. Strengthen never-answer
polish safeguards, clipboard reply-intent continuity, voice undo UX, device
UITests harness, eval fixtures, and What's New assets.
This commit is contained in:
Rocky
2026-08-09 12:45:33 +08:00
parent bfe2cd2001
commit 5d7fcdf24e
41 changed files with 2876 additions and 464 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

+12
View File
@@ -8,6 +8,18 @@
"hidden" : false,
"layers" : [
{
"image-name" : "OSGKeyboard Icon2.png",
"name" : "OSGKeyboard Icon2",
"position" : {
"scale" : 0.505,
"translation-in-points" : [
8,
6
]
}
},
{
"hidden" : true,
"image-name" : "Group 29 3.png",
"name" : "Group 29 3",
"position" : {
@@ -25,7 +25,7 @@ struct RemoteWebView: UIViewRepresentable {
Self.applyScrollInsets(webView)
webView.navigationDelegate = context.coordinator
context.coordinator.loadedURL = url
webView.load(URLRequest(url: url))
webView.load(Self.request(for: url))
return webView
}
@@ -34,7 +34,14 @@ struct RemoteWebView: UIViewRepresentable {
Self.applyScrollInsets(uiView)
guard context.coordinator.loadedURL != url else { return }
context.coordinator.loadedURL = url
uiView.load(URLRequest(url: url))
uiView.load(Self.request(for: url))
}
/// The pages we host send no `Cache-Control`, so the default policy lets
/// WebKit serve a heuristically-fresh copy without contacting the server
/// edited release notes could stay stale for hours. Always revalidate.
static func request(for url: URL) -> URLRequest {
URLRequest(url: url, cachePolicy: .reloadRevalidatingCacheData)
}
/// Kill automatic safe-area insets that leave a dead band under the page.