From 7ca0362745f5d3ffc744bdf5882cb618ffc650af Mon Sep 17 00:00:00 2001 From: Gabriel Brown Date: Sun, 1 Nov 2026 15:16:18 -0500 Subject: [PATCH] Watch: status, environment and notifications screens A gear on the feed opens a status overview that leads with what is wrong: offline hosts, hosts on a fallback route, tokens expiring within 7 days, and push problems, with healthy hosts folded into one row. Each host opens its route ladder with Reconnect. The notifications page shows registration, the last push, Send test and Unpair. Demo mode gains a Laptop on its VPN fallback, and snapshot tests render the three screens. --- watch/README.md | 21 +- watch/WristCode/API/GatewayClient.swift | 22 + watch/WristCode/API/Models.swift | 107 +++- watch/WristCode/API/Route.swift | 20 +- watch/WristCode/AppModel.swift | 38 +- watch/WristCode/Demo/DemoGateway.swift | 54 ++ .../Notifications/NotificationHandler.swift | 1 + watch/WristCode/Views/FeedView.swift | 6 + watch/WristCode/Views/StatusReport.swift | 185 +++++++ watch/WristCode/Views/StatusView.swift | 506 ++++++++++++++++++ watch/WristCode/Views/Theme.swift | 23 +- watch/WristCode/WristCodeApp.swift | 6 + watch/WristCodeTests/ModelsTests.swift | 65 +++ watch/WristCodeTests/SnapshotTests.swift | 23 + watch/screenshots/status-environment.png | Bin 0 -> 47033 bytes watch/screenshots/status-notifications.png | Bin 0 -> 45019 bytes watch/screenshots/status.png | Bin 0 -> 68181 bytes 17 files changed, 1063 insertions(+), 14 deletions(-) create mode 100644 watch/WristCode/Views/StatusReport.swift create mode 100644 watch/WristCode/Views/StatusView.swift create mode 100644 watch/screenshots/status-environment.png create mode 100644 watch/screenshots/status-notifications.png create mode 100644 watch/screenshots/status.png diff --git a/watch/README.md b/watch/README.md index e2d7699..0e372bd 100644 --- a/watch/README.md +++ b/watch/README.md @@ -45,10 +45,13 @@ the pairing screen has a "Try the demo" button, and launch arguments open a scre xcrun simctl launch org.gbrown.wristcode.watchkitapp -demo # feed xcrun simctl launch org.gbrown.wristcode.watchkitapp -demo -thread littleman/t-next # thread xcrun simctl launch org.gbrown.wristcode.watchkitapp -demo -screen new # new thread +xcrun simctl launch org.gbrown.wristcode.watchkitapp -demo -screen status # status overview +xcrun simctl launch org.gbrown.wristcode.watchkitapp -demo -host laptop # one environment +xcrun simctl launch org.gbrown.wristcode.watchkitapp -demo -screen notifications # notifications ``` -`screenshots/` holds the screens captured this way. The complication and the multi-select question -are rendered by `SnapshotTests` instead, which only run when given a directory: +`screenshots/` holds the screens captured this way. The complication, the multi-select question and +the status screens are rendered by `SnapshotTests` instead, which only run when given a directory: ```sh TEST_RUNNER_WC_SCREENSHOT_DIR=$PWD/screenshots xcodebuild -scheme WristCode \ @@ -58,6 +61,15 @@ TEST_RUNNER_WC_SCREENSHOT_DIR=$PWD/screenshots xcodebuild -scheme WristCode \ In demo mode the complication shows the demo counts too. +## Status and settings + +The gear at the top left of the feed opens the status overview (`GET /v1/status`). It leads with +"All connected" or "Needs attention", lists only the issues worst first (offline hosts, a host on a +fallback route, tokens expiring within 7 days, push problems), and folds the healthy hosts into one +row. Each host opens its route ladder with Reconnect. The Notifications row shows whether this watch +is registered, the last push, Send test, the gateway, and Unpair. Each screen loads once when it +appears; nothing polls. + ## Complication `WristCodeWidget` shows how many threads wait on you, from `GET /v1/summary`, in the circular, @@ -87,6 +99,7 @@ To add it: long-press the watch face, Edit, swipe to Complications, pick a slot, | `Auth/DeviceStore.swift` | Device token and gateway URL in the shared Keychain group | | `Shared/SharedState.swift` | Demo flag and last summary in the shared Keychain group, for the complication | | `Demo/DemoGateway.swift` | In-memory gateway with fixtures | -| `Views/` | Pair, Feed, Thread, New thread, and the mock B theme | -| `Notifications/NotificationHandler.swift` | Categories `approval`, `finished`, `failed`, `input`, `host` and their actions | +| `Views/` | Pair, Feed, Thread, New thread, Status, and the mock B theme | +| `Views/StatusReport.swift` | What the status overview says: headline, issues worst first, healthy hosts | +| `Notifications/NotificationHandler.swift` | Categories `approval`, `finished`, `failed`, `input`, `host`, `test` and their actions | | `../WristCodeWidget/` | The complication: timeline provider, and one view per family | diff --git a/watch/WristCode/API/GatewayClient.swift b/watch/WristCode/API/GatewayClient.swift index 150107a..55c9e93 100644 --- a/watch/WristCode/API/GatewayClient.swift +++ b/watch/WristCode/API/GatewayClient.swift @@ -52,6 +52,12 @@ protocol GatewayAPI: Sendable { func projects() async throws -> ProjectsResponse func newThread(_ request: NewThreadRequest) async throws -> NewThreadResponse func registerPush(_ registration: PushRegistration) async throws + func status() async throws -> StatusResponse + /// Connects the host again from its first route. + func reconnect(hostId: String) async throws + func testPush() async throws -> PushResult + /// Revokes this watch's device token. + func unpair() async throws } struct GatewayClient: GatewayAPI { @@ -101,6 +107,22 @@ struct GatewayClient: GatewayAPI { try await callIgnoringBody("PUT", ["v1", "device", "push"], body: registration) } + func status() async throws -> StatusResponse { + try await call("GET", ["v1", "status"]) + } + + func reconnect(hostId: String) async throws { + try await callIgnoringBody("POST", ["v1", "hosts", hostId, "reconnect"], body: nil as SendMessageRequest?) + } + + func testPush() async throws -> PushResult { + try await call("POST", ["v1", "device", "test-push"]) + } + + func unpair() async throws { + try await callIgnoringBody("DELETE", ["v1", "device"], body: nil as SendMessageRequest?) + } + // MARK: - Plumbing private func call(_ method: String, _ path: [String]) async throws -> Response { diff --git a/watch/WristCode/API/Models.swift b/watch/WristCode/API/Models.swift index 4c97c6b..aa3b79b 100644 --- a/watch/WristCode/API/Models.swift +++ b/watch/WristCode/API/Models.swift @@ -230,6 +230,111 @@ struct ProjectsResponse: Codable, Hashable, Sendable { var hosts: [Host] } +/// How a route reaches its host, guessed by the gateway from the URL. +struct RouteKind: RawRepresentable, Codable, Hashable, Sendable { + let rawValue: String + init(rawValue: String) { self.rawValue = rawValue } + + static let direct = RouteKind(rawValue: "direct") + static let vpn = RouteKind(rawValue: "vpn") + static let `public` = RouteKind(rawValue: "public") + + /// "direct", "VPN" or "public", for sentences like "Laptop is on its VPN route". + var name: String { self == .vpn ? "VPN" : rawValue } + + var symbol: String { + switch self { + case .direct: "house.fill" + case .vpn: "lock.shield.fill" + default: "cloud.fill" + } + } +} + +/// One way to reach a host. `Route` in the contract, renamed here because `Route` is the app's +/// navigation. +struct HostRoute: Codable, Hashable, Sendable { + struct Result: RawRepresentable, Codable, Hashable, Sendable { + let rawValue: String + init(rawValue: String) { self.rawValue = rawValue } + + static let ok = Result(rawValue: "ok") + static let failed = Result(rawValue: "failed") + static let untried = Result(rawValue: "untried") + } + + var url: String + var kind: RouteKind + /// From the latest connect. `untried` when an earlier route answered first. + var result: Result + var error: String? + var checkedAt: Date? + + /// The URL without its scheme, such as `laptop.gib:3773`. + var hostPort: String { + guard let components = URLComponents(string: url), let host = components.host else { return url } + return components.port.map { "\(host):\($0)" } ?? host + } +} + +/// One host as the status screens show it. +struct HostStatusDetail: Codable, Hashable, Sendable, Identifiable { + var id: String + var label: String + var status: HostStatus + var error: String? + /// The route in use. Null unless online. + var activeUrl: String? + /// Preferred first, the order the gateway tries them. + var routes: [HostRoute] + var onlineSince: Date? + var lastOnlineAt: Date? + /// When the gateway tries again, while it waits to retry. + var nextRetryAt: Date? + var tokenExpiresAt: Date? + var serverVersion: String? + + var activeRoute: HostRoute? { routes.first { $0.url == activeUrl } } + + /// Online, but not on the first route. + var onFallback: Bool { + status == .online && activeUrl != nil && activeUrl != routes.first?.url + } +} + +/// What Apple answered for one push. +struct PushResult: Codable, Hashable, Sendable { + var ok: Bool + var at: Date + /// Apple's HTTP status, or 0 when the push never reached Apple. + var status: Int + /// Apple's reason, such as `BadDeviceToken`, or why the gateway could not send. + var reason: String? +} + +/// `GET /v1/status`: everything the settings screens show. +struct StatusResponse: Codable, Hashable, Sendable { + struct Gateway: Codable, Hashable, Sendable { + var startedAt: Date + /// False when the gateway has no APNs key, so nothing can be pushed. + var pushConfigured: Bool + var lastPush: PushResult? + } + + /// The watch asking. + struct Device: Codable, Hashable, Sendable { + var name: String + var pairedAt: Date + /// True once the watch has sent its APNs token. + var pushRegistered: Bool + var apnsEnvironment: PushRegistration.Environment? + } + + var hosts: [HostStatusDetail] + var gateway: Gateway + var device: Device +} + struct PairRequest: Codable, Sendable { var code: String var deviceName: String @@ -303,7 +408,7 @@ struct ErrorResponse: Codable, Sendable { /// Notification categories the watch registers actions for. enum PushCategory: String, CaseIterable, Sendable { - case approval, finished, failed, input, host + case approval, finished, failed, input, host, test } enum JSON { diff --git a/watch/WristCode/API/Route.swift b/watch/WristCode/API/Route.swift index e73da50..c082f4f 100644 --- a/watch/WristCode/API/Route.swift +++ b/watch/WristCode/API/Route.swift @@ -5,10 +5,15 @@ import Foundation enum Route: Hashable, Sendable { case thread(hostId: String, threadId: String) case newThread + /// The status overview, and from it one host or the notifications page. + case status + case host(id: String) + case notifications static let scheme = "wristcode" - /// `wristcode://thread//` or `wristcode://new`. + /// `wristcode://thread//`, `wristcode://new`, `wristcode://status`, + /// `wristcode://host/` or `wristcode://notifications`. var url: URL { var components = URLComponents() components.scheme = Self.scheme @@ -20,6 +25,13 @@ enum Route: Hashable, Sendable { .joined(separator: "/") case .newThread: components.host = "new" + case .status: + components.host = "status" + case let .host(id): + components.host = "host" + components.percentEncodedPath = "/" + (id.addingPercentEncoding(withAllowedCharacters: .alphanumerics) ?? id) + case .notifications: + components.host = "notifications" } return components.url! } @@ -35,6 +47,12 @@ enum Route: Hashable, Sendable { self = .thread(hostId: parts[0], threadId: parts[1]) case "new": self = .newThread + case "status": + self = .status + case "host" where parts.count == 1 && !parts[0].isEmpty: + self = .host(id: parts[0]) + case "notifications": + self = .notifications default: return nil } diff --git a/watch/WristCode/AppModel.swift b/watch/WristCode/AppModel.swift index c57599a..d80113c 100644 --- a/watch/WristCode/AppModel.swift +++ b/watch/WristCode/AppModel.swift @@ -37,18 +37,29 @@ final class AppModel { self.path = path } - /// `-demo` starts in demo mode. `-screen new` or `-thread /` opens that - /// screen, which is how the screenshots in watch/screenshots are taken. + /// `-demo` starts in demo mode. `-screen new|status|notifications`, `-host ` or + /// `-thread /` opens that screen, which is how the screenshots in + /// watch/screenshots are taken. convenience init(launchArguments args: [String]) { DeviceStore.migrateToSharedGroup() let demo = args.contains("-demo") let mode: Mode = demo ? .demo : DeviceStore.load().map(Mode.paired) ?? .unpaired - var path: [Route] = [] - if demo, let i = args.firstIndex(of: "-screen"), i + 1 < args.count, args[i + 1] == "new" { - path = [.newThread] + func argument(_ flag: String) -> String? { + guard demo, let i = args.firstIndex(of: flag), i + 1 < args.count else { return nil } + return args[i + 1] } - if demo, let i = args.firstIndex(of: "-thread"), i + 1 < args.count { - let parts = args[i + 1].split(separator: "/", maxSplits: 1).map(String.init) + var path: [Route] = [] + switch argument("-screen") { + case "new": path = [.newThread] + case "status": path = [.status] + case "notifications": path = [.status, .notifications] + default: break + } + if let hostId = argument("-host") { + path = [.status, .host(id: hostId)] + } + if let thread = argument("-thread") { + let parts = thread.split(separator: "/", maxSplits: 1).map(String.init) if parts.count == 2 { path = [.thread(hostId: parts[0], threadId: parts[1])] } } self.init(mode: mode, path: path) @@ -101,6 +112,19 @@ final class AppModel { path = [] } + /// Revokes the device token on the gateway, then signs out. Signs out even when the gateway + /// cannot be reached, since the token is forgotten either way. + func unpair() async { + if isPaired { try? await api.unpair() } + signOut() + } + + /// The gateway's host name, such as `wristcode.gbrown.org`. Nil in demo mode. + var gatewayHost: String? { + if case let .paired(credentials) = mode { return credentials.gatewayURL.host() } + return nil + } + /// The message to show for a failed call. A 401 sends the app back to pairing and returns nil. func message(for error: any Error) -> String? { if error is CancellationError { return nil } diff --git a/watch/WristCode/Demo/DemoGateway.swift b/watch/WristCode/Demo/DemoGateway.swift index 043c902..c0a6d8b 100644 --- a/watch/WristCode/Demo/DemoGateway.swift +++ b/watch/WristCode/Demo/DemoGateway.swift @@ -11,6 +11,7 @@ actor DemoGateway: GatewayAPI { private var messages: [String: [Message]] private let hosts: [HostSummary] private let projectHosts: [ProjectsResponse.Host] + private var statusResponse: StatusResponse private var nextId = 1 init(now: Date = .now) { @@ -19,6 +20,7 @@ actor DemoGateway: GatewayAPI { messages = fixtures.messages hosts = fixtures.hosts projectHosts = fixtures.projectHosts + statusResponse = fixtures.status } func feed() async throws -> Feed { @@ -93,6 +95,20 @@ actor DemoGateway: GatewayAPI { func registerPush(_ registration: PushRegistration) async throws {} + func status() async throws -> StatusResponse { + statusResponse + } + + func reconnect(hostId: String) async throws {} + + func testPush() async throws -> PushResult { + let result = PushResult(ok: true, at: .now, status: 200, reason: nil) + statusResponse.gateway.lastPush = result + return result + } + + func unpair() async throws {} + // MARK: - Helpers private func item(_ hostId: String, _ threadId: String) -> FeedItem? { @@ -122,6 +138,7 @@ struct DemoFixtures { let messages: [String: [Message]] let hosts: [HostSummary] let projectHosts: [ProjectsResponse.Host] + let status: StatusResponse init(now: Date) { func ago(_ minutes: Double) -> Date { now.addingTimeInterval(-minutes * 60) } @@ -129,6 +146,7 @@ struct DemoFixtures { hosts = [ HostSummary(id: "mac-mini", label: "Mac mini", status: .online, error: nil), HostSummary(id: "server-gib", label: "server-gib", status: .online, error: nil), + HostSummary(id: "laptop", label: "Laptop", status: .online, error: nil), HostSummary(id: "littleman", label: "LittleMan", status: .offline, error: "Connection refused"), ] @@ -251,6 +269,42 @@ struct DemoFixtures { id: "littleman", label: "LittleMan", status: .offline, error: "Connection refused", projects: [.init(id: "p-site", title: "gbrown.org", model: "claude-opus-5-5")]), ] + + // Mac mini and server-gib on their first route, Laptop on its VPN fallback, LittleMan offline. + func route(_ url: String, _ kind: RouteKind, _ result: HostRoute.Result, _ error: String? = nil, _ minutes: Double? = nil) -> HostRoute { + HostRoute(url: url, kind: kind, result: result, error: error, checkedAt: minutes.map(ago)) + } + func days(_ count: Double) -> Date { now.addingTimeInterval(count * 86_400) } + status = StatusResponse( + hosts: [ + HostStatusDetail( + id: "mac-mini", label: "Mac mini", status: .online, error: nil, activeUrl: "http://mac.gib:3773", + routes: [route("http://mac.gib:3773", .direct, .ok, nil, 95), route("https://t3mac.gbrown.org", .public, .untried)], + onlineSince: ago(95), lastOnlineAt: nil, nextRetryAt: nil, tokenExpiresAt: days(29), serverVersion: "0.1.5"), + HostStatusDetail( + id: "server-gib", label: "server-gib", status: .online, error: nil, activeUrl: "http://server.gib:3773", + routes: [route("http://server.gib:3773", .direct, .ok, nil, 300), route("https://t3server.gbrown.org", .public, .untried)], + onlineSince: ago(300), lastOnlineAt: nil, nextRetryAt: nil, tokenExpiresAt: days(5.5), serverVersion: "0.1.5"), + HostStatusDetail( + id: "laptop", label: "Laptop", status: .online, error: nil, activeUrl: "http://laptopvpn.gib:3773", + routes: [ + route("http://laptop.gib:3773", .direct, .failed, "no answer in 5 s", 29), + route("http://laptopvpn.gib:3773", .vpn, .ok, nil, 29), + route("https://t3laptop.gbrown.org", .public, .untried), + route("https://t3laptopvpn.gbrown.org", .public, .untried), + ], + onlineSince: ago(29), lastOnlineAt: nil, nextRetryAt: nil, tokenExpiresAt: days(29.5), serverVersion: "0.1.5"), + HostStatusDetail( + id: "littleman", label: "LittleMan", status: .offline, error: "Connection refused", activeUrl: nil, + routes: [ + route("http://littleman.gib:3773", .direct, .failed, "refused", 0.3), + route("https://t3littleman.gbrown.org", .public, .failed, "502", 0.3), + ], + onlineSince: nil, lastOnlineAt: ago(4), nextRetryAt: now.addingTimeInterval(40), + tokenExpiresAt: days(29.5), serverVersion: "0.1.4"), + ], + gateway: .init(startedAt: ago(600), pushConfigured: true, lastPush: PushResult(ok: true, at: ago(2), status: 200, reason: nil)), + device: .init(name: "Apple Watch", pairedAt: days(-3), pushRegistered: true, apnsEnvironment: .production)) } /// A feed for previews, without going through the actor. diff --git a/watch/WristCode/Notifications/NotificationHandler.swift b/watch/WristCode/Notifications/NotificationHandler.swift index 341091b..dfdc5cf 100644 --- a/watch/WristCode/Notifications/NotificationHandler.swift +++ b/watch/WristCode/Notifications/NotificationHandler.swift @@ -76,6 +76,7 @@ final class NotificationHandler: NSObject, UNUserNotificationCenterDelegate { category(.finished, [reply, open]), category(.failed, [open]), category(.host, []), + category(.test, []), ] } diff --git a/watch/WristCode/Views/FeedView.swift b/watch/WristCode/Views/FeedView.swift index 11792f1..d4ca8de 100644 --- a/watch/WristCode/Views/FeedView.swift +++ b/watch/WristCode/Views/FeedView.swift @@ -38,6 +38,12 @@ struct FeedView: View { .listStyle(.plain) .refreshable { await model.refreshFeed() } .toolbar { + ToolbarItem(placement: .topBarLeading) { + NavigationLink(value: Route.status) { + Image(systemName: "gearshape.fill") + } + .accessibilityLabel("Status and settings") + } ToolbarItem(placement: .topBarTrailing) { NavigationLink(value: Route.newThread) { Image(systemName: "plus") diff --git a/watch/WristCode/Views/StatusReport.swift b/watch/WristCode/Views/StatusReport.swift new file mode 100644 index 0000000..9ca35aa --- /dev/null +++ b/watch/WristCode/Views/StatusReport.swift @@ -0,0 +1,185 @@ +// What the status overview says about a `StatusResponse`: a headline, the issues worst first, and +// the healthy hosts folded into one row. Worked out at render, so relative times stay current. + +import Foundation + +struct StatusIssue: Hashable, Identifiable { + enum Severity: Int, Comparable { + case warning, problem + static func < (a: Self, b: Self) -> Bool { a.rawValue < b.rawValue } + } + + enum Kind: Hashable { + case host, fallback, token, push + } + + var id: String + var severity: Severity + var kind: Kind + var title: String + var detail: String? + /// The screen that explains it. + var route: Route +} + +struct StatusReport { + let status: StatusResponse + let now: Date + + init(_ status: StatusResponse, now: Date = .now) { + self.status = status + self.now = now + } + + /// A host on its fallback route is still connected, so only that leaves the headline alone. + var allConnected: Bool { issues.allSatisfy { $0.kind == .fallback } } + + var worst: StatusIssue.Severity? { issues.map(\.severity).max() } + + /// "5 environments · pushes OK". + var subline: String { + let count = status.hosts.count + return "\(count) environment\(count == 1 ? "" : "s") · \(pushSummary)" + } + + var pushesOK: Bool { pushIssues.isEmpty } + + var pushSummary: String { + if !status.gateway.pushConfigured { return "pushes off" } + if !status.device.pushRegistered { return "watch not registered" } + if status.gateway.lastPush?.ok == false { return "last push failed" } + return "pushes OK" + } + + var issues: [StatusIssue] { + var issues = status.hosts.compactMap(hostIssue) + if let token = tokenIssue { issues.append(token) } + issues += pushIssues + // Stable within a severity, so hosts keep the gateway's order. + return issues.enumerated() + .sorted { a, b in + a.element.severity == b.element.severity ? a.offset < b.offset : a.element.severity > b.element.severity + } + .map(\.element) + } + + /// Hosts with nothing to say: online on their first route. + var healthy: [HostStatusDetail] { + status.hosts.filter { $0.status == .online && !$0.onFallback } + } + + /// "4 more, all direct", or "all online" when they use different kinds of route. + var healthySummary: String? { + let hosts = healthy + guard !hosts.isEmpty else { return nil } + let kinds = Set(hosts.compactMap { $0.activeRoute?.kind }) + let how = kinds.count == 1 ? "all \(kinds.first!.name)" : "all online" + let anyHostIssue = issues.contains { $0.kind == .host || $0.kind == .fallback } + if anyHostIssue { return "\(hosts.count) more, \(how)" } + return "\(hosts.count) environment\(hosts.count == 1 ? "" : "s"), \(how)" + } + + // MARK: - Issues + + private func hostIssue(_ host: HostStatusDetail) -> StatusIssue? { + let route = Route.host(id: host.id) + if host.onFallback, let active = host.activeRoute { + return StatusIssue( + id: "fallback-\(host.id)", severity: .warning, kind: .fallback, + title: "\(host.label) is on its \(active.kind.name) route", + detail: host.routes.first.map(Self.failure), route: route) + } + switch host.status { + case .online: + return nil + case .connecting: + return StatusIssue( + id: "host-\(host.id)", severity: .warning, kind: .host, + title: "\(host.label) connecting", detail: nil, route: route) + case .authInvalid: + return StatusIssue( + id: "host-\(host.id)", severity: .problem, kind: .host, + title: "\(host.label) needs a new token", detail: "Run renew-hosts.sh", route: route) + case .incompatible: + return StatusIssue( + id: "host-\(host.id)", severity: .problem, kind: .host, + title: "\(host.label) is incompatible", detail: host.error, route: route) + default: + return StatusIssue( + id: "host-\(host.id)", severity: .problem, kind: .host, + title: "\(host.label) offline", detail: offlineDetail(host), route: route) + } + } + + /// "Both routes failed · 4 min", or the error when no route was tried. + private func offlineDetail(_ host: HostStatusDetail) -> String? { + let failed = host.routes.filter { $0.result == .failed }.count + let cause: String? = switch failed { + case 0: host.error + case host.routes.count: host.routes.count == 1 ? "Its route failed" : host.routes.count == 2 ? "Both routes failed" : "All \(failed) routes failed" + default: "\(failed) of \(host.routes.count) routes failed" + } + let since = host.lastOnlineAt.map { Format.age(of: $0, now: now) } + return [cause, since].compactMap(\.self).joined(separator: " · ").nilIfEmpty + } + + /// Tokens that expire within 7 days, as one issue. + private var tokenIssue: StatusIssue? { + let soon = status.hosts.compactMap { host in + host.tokenExpiresAt.map { (host, $0) } + } + .filter { $0.1.timeIntervalSince(now) < 7 * 86_400 } + .sorted { $0.1 < $1.1 } + guard let (first, expiry) = soon.first else { return nil } + let when = Format.expiry(expiry, now: now) + let title = soon.count == 1 ? "\(first.label) token \(when)" : "\(soon.count) tokens \(when)" + return StatusIssue( + id: "token", severity: .warning, kind: .token, title: title, + detail: "Run renew-hosts.sh", route: soon.count == 1 ? .host(id: first.id) : .status) + } + + private var pushIssues: [StatusIssue] { + let gateway = status.gateway + if !gateway.pushConfigured { + return [StatusIssue( + id: "push", severity: .problem, kind: .push, title: "Pushes are off", + detail: "The gateway has no APNs key", route: .notifications)] + } + if !status.device.pushRegistered { + return [StatusIssue( + id: "push", severity: .warning, kind: .push, title: "This watch gets no pushes", + detail: "It has not registered with the gateway", route: .notifications)] + } + if let push = gateway.lastPush, !push.ok { + return [StatusIssue( + id: "push", severity: .problem, kind: .push, title: "Last push failed", + detail: push.reason ?? "Status \(push.status)", route: .notifications)] + } + return [] + } + + /// "laptop.gib did not answer", or the host and its error. + static func failure(of route: HostRoute) -> String { + guard let error = route.error else { return "\(route.hostPort) did not connect" } + if error.hasPrefix("no answer") { return "\(route.hostPort) did not answer" } + return "\(route.hostPort): \(error)" + } +} + +extension PushResult { + /// A short hint for a failed push, when the cause is a common one. + var hint: String? { + guard !ok else { return nil } + if status == 0 { return "The push never reached Apple." } + return switch reason { + case "BadDeviceToken": "Usually a sandbox/production mismatch. Re-pair this build." + case "Unregistered": "Apple no longer knows this watch. Reopen the app to register again." + case "DeviceTokenNotForTopic": "The gateway's APNs topic is not this app's bundle ID." + default: nil + } + } +} + +private extension String { + var nilIfEmpty: String? { isEmpty ? nil : self } +} diff --git a/watch/WristCode/Views/StatusView.swift b/watch/WristCode/Views/StatusView.swift new file mode 100644 index 0000000..e2937e0 --- /dev/null +++ b/watch/WristCode/Views/StatusView.swift @@ -0,0 +1,506 @@ +// Settings mock C: an overview that leads with what is wrong, an environment page with mock B's +// route ladder, and a notifications page with a test push and Unpair. Each screen loads +// `GET /v1/status` when it appears; nothing polls. + +import SwiftUI + +/// The overview: a headline, the issues worst first, then the healthy hosts folded into one row. +struct StatusView: View { + @Environment(AppModel.self) private var model + @State private var expanded = false + var status: StatusResponse? + var scrolls = true + + var body: some View { + StatusLoader(status: status, scrolls: scrolls) { status in + let report = StatusReport(status) + Headline(report: report) + + ForEach(report.issues) { issue in + Button { model.path.append(issue.route) } label: { + Card(edge: issue.severity == .problem ? Theme.bad : Theme.you) { + RowText(title: issue.title, detail: issue.detail) + } + } + .buttonStyle(.plain) + } + + if let summary = report.healthySummary { + Button { expanded.toggle() } label: { + Card(edge: Theme.done) { + HStack { + RowText(title: summary) + Spacer(minLength: 4) + Image(systemName: expanded ? "chevron.up" : "chevron.down") + .font(.system(size: 11, weight: .bold)) + .foregroundStyle(Theme.secondaryText) + } + } + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + + if expanded { + ForEach(report.healthy) { host in + Button { model.path.append(.host(id: host.id)) } label: { + Card(edge: Theme.work) { + HStack(spacing: 6) { + if let kind = host.activeRoute?.kind { + Image(systemName: kind.symbol) + .font(.system(size: 11)) + .foregroundStyle(Theme.work) + } + RowText(title: host.label) + } + } + } + .buttonStyle(.plain) + } + } + } + + Button { model.path.append(.notifications) } label: { + Card(edge: Theme.done) { + HStack(spacing: 6) { + Image(systemName: "bell.fill") + .font(.system(size: 11)) + .foregroundStyle(Theme.secondaryText) + RowText(title: "Notifications") + Spacer(minLength: 4) + Text(report.pushesOK ? "OK" : "Check") + .font(.system(size: 11, weight: .semibold)) + .foregroundStyle(report.pushesOK ? Theme.work : Theme.you) + } + } + } + .buttonStyle(.plain) + .padding(.top, 4) + } + .navigationTitle("Status") + } +} + +private struct Headline: View { + var report: StatusReport + + var body: some View { + VStack(alignment: .leading, spacing: 2) { + Text(report.allConnected ? "All connected" : "Needs attention") + .font(.system(size: 20, weight: .heavy, design: .rounded)) + .foregroundStyle(report.allConnected ? Theme.work : report.worst == .problem ? Theme.bad : Theme.you) + Text(report.subline) + .font(.system(size: 12)) + .foregroundStyle(Theme.secondaryText) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 8) + .padding(.bottom, 4) + .accessibilityElement(children: .combine) + } +} + +/// One environment: where it stands, its routes as a ladder, and Reconnect. +struct HostStatusView: View { + @Environment(AppModel.self) private var model + let hostId: String + var status: StatusResponse? + var scrolls = true + @State private var reload = 0 + @State private var reconnecting = false + @State private var error: String? + + var body: some View { + StatusLoader(reload: reload, status: status, scrolls: scrolls) { status in + if let host = status.hosts.first(where: { $0.id == hostId }) { + content(host, now: .now) + } else { + RowText(title: "This environment is gone.") + } + } + } + + @ViewBuilder + private func content(_ host: HostStatusDetail, now: Date) -> some View { + let line = statusLine(host) + Text(line.text) + .font(.system(size: 13, weight: .semibold)) + .foregroundStyle(line.color) + .padding(.horizontal, 4) + .navigationTitle(host.label) + + RouteLadder(host: host) + .padding(.horizontal, 4) + .padding(.vertical, 4) + + VStack(alignment: .leading, spacing: 2) { + if host.status != .online { + let parts = [ + host.nextRetryAt.map { "Next try in \(Format.countdown(to: $0, now: now))" }, + host.lastOnlineAt.map { "last online \($0.formatted(date: .omitted, time: .shortened))" }, + ].compactMap(\.self) + if !parts.isEmpty { + Text(parts.joined(separator: " · ")) + .foregroundStyle(Theme.secondaryText) + } + } + if let expiry = host.tokenExpiresAt { + let days = expiry.timeIntervalSince(now) / 86_400 + Text("Token \(Format.expiry(expiry, now: now))") + .foregroundStyle(days < 0 ? Theme.bad : days < 7 ? Theme.you : Theme.secondaryText) + } + if let version = host.serverVersion { + Text("T3 \(version)") + .foregroundStyle(Theme.secondaryText) + } + } + .font(.system(size: 11)) + .padding(.horizontal, 4) + + Button(reconnecting ? "Reconnecting" : "Reconnect") { reconnect() } + .buttonStyle(PillButtonStyle(fill: Theme.control, foreground: .white)) + .disabled(reconnecting) + .padding(.top, 6) + + if let error { + Text(error) + .font(.system(size: 11)) + .foregroundStyle(Theme.secondaryText) + } + } + + private func statusLine(_ host: HostStatusDetail) -> (text: String, color: Color) { + switch host.status { + case .online: + let kind = host.activeRoute?.kind.name ?? "direct" + return host.onFallback ? ("On its \(kind) route", Theme.you) : ("Online · \(kind)", Theme.work) + case .connecting: + return ("Connecting", Theme.secondaryText) + case .authInvalid: + return ("Needs a new token", Theme.bad) + case .incompatible: + return (host.error.map { "Incompatible: \($0)" } ?? "Incompatible", Theme.bad) + default: + return ("Offline", Theme.bad) + } + } + + /// Asks the gateway to start again from the first route, then looks again once it has had a + /// moment to try. + private func reconnect() { + reconnecting = true + error = nil + Task { + do { + try await model.api.reconnect(hostId: hostId) + try await Task.sleep(for: .seconds(2)) + reload += 1 + } catch { + self.error = model.message(for: error) + } + reconnecting = false + } + } +} + +/// The routes in the order the gateway walks them, each with its kind and what happened. +private struct RouteLadder: View { + var host: HostStatusDetail + + var body: some View { + VStack(alignment: .leading, spacing: 9) { + ForEach(Array(host.routes.enumerated()), id: \.offset) { _, route in + HStack(alignment: .top, spacing: 7) { + Image(systemName: route.kind.symbol) + .font(.system(size: 10)) + .foregroundStyle(color(route)) + .frame(width: 20, height: 20) + .background(Circle().fill(.black)) + VStack(alignment: .leading, spacing: 1) { + Text(route.hostPort) + .font(.system(size: 11, design: .monospaced)) + .foregroundStyle(route.result == .untried ? Theme.done : route.result == .ok ? Theme.work : .white) + .lineLimit(1) + .minimumScaleFactor(0.8) + if let detail = detail(route) { + Text(detail) + .font(.system(size: 11)) + .foregroundStyle(color(route)) + } + } + .padding(.top, 2) + } + } + } + .background(alignment: .leading) { + Rectangle() + .fill(Color.white.opacity(0.18)) + .frame(width: 2) + .padding(.leading, 9) + .padding(.vertical, 10) + } + .frame(maxWidth: .infinity, alignment: .leading) + } + + private func color(_ route: HostRoute) -> Color { + switch route.result { + case .ok: Theme.work + case .failed: Theme.bad + default: Theme.done + } + } + + private func detail(_ route: HostRoute) -> String? { + switch route.result { + case .failed: + return route.error ?? "failed" + case .ok: + let at = route.checkedAt ?? host.onlineSince + return at.map { "connected \($0.formatted(date: .omitted, time: .shortened))" } ?? "connected" + default: + return nil + } + } +} + +/// Whether this watch gets pushes, the last push, a test push, the gateway, and Unpair. +struct NotificationsView: View { + @Environment(AppModel.self) private var model + var status: StatusResponse? + var scrolls = true + @State private var reload = 0 + @State private var sending = false + @State private var result: PushResult? + @State private var error: String? + @State private var confirmingUnpair = false + + /// `status` and `result` start the screen loaded and after a test push, for snapshots. + init(status: StatusResponse? = nil, result: PushResult? = nil, scrolls: Bool = true) { + self.status = status + self.scrolls = scrolls + _result = State(initialValue: result) + } + + var body: some View { + StatusLoader(reload: reload, status: status, scrolls: scrolls) { status in + content(status, now: .now) + } + .navigationTitle("Notifications") + .confirmationDialog("Unpair this watch?", isPresented: $confirmingUnpair) { + Button("Unpair", role: .destructive) { Task { await model.unpair() } } + } message: { + Text("It stops getting notifications until you pair it again.") + } + } + + @ViewBuilder + private func content(_ status: StatusResponse, now: Date) -> some View { + let device = status.device + Card(edge: device.pushRegistered ? Theme.work : Theme.you) { + HStack { + RowText(title: "This watch", detail: device.apnsEnvironment?.rawValue) + Spacer(minLength: 4) + Text(device.pushRegistered ? "registered" : "not registered") + .font(.system(size: 11, weight: .semibold)) + .foregroundStyle(device.pushRegistered ? Theme.work : Theme.you) + } + } + + if !status.gateway.pushConfigured { + Card(edge: Theme.bad) { + RowText(title: "Pushes are off", detail: "The gateway has no APNs key") + } + } + + let last = status.gateway.lastPush + Card(edge: last.map { $0.ok ? Theme.work : Theme.bad } ?? Theme.done) { + HStack { + RowText(title: "Last push") + Spacer(minLength: 4) + if let last { + let age = Format.age(of: last.at, now: now) + Text("\(age == "now" ? "just now" : "\(age) ago") \(last.ok ? "✓" : "✗")") + .font(.system(size: 11, weight: .semibold)) + .foregroundStyle(last.ok ? Theme.work : Theme.bad) + } else { + Text("none yet") + .font(.system(size: 11)) + .foregroundStyle(Theme.secondaryText) + } + } + if let last, !last.ok { + Text([last.reason ?? "Status \(last.status)", last.hint].compactMap(\.self).joined(separator: ". ")) + .font(.system(size: 11)) + .foregroundStyle(Theme.secondaryText) + .padding(.top, 2) + } + } + + Button(sending ? "Sending" : "Send test") { sendTest() } + .buttonStyle(PillButtonStyle(fill: Theme.you)) + .disabled(sending) + .padding(.top, 4) + + if let result { + VStack(spacing: 2) { + if result.ok { + Text("Apple accepted it at \(result.at.formatted(.dateTime.hour().minute().second()))") + .foregroundStyle(Theme.work) + } else { + Text(result.reason ?? "Status \(result.status)") + .foregroundStyle(Theme.bad) + if let hint = result.hint { + Text(hint) + .foregroundStyle(Theme.secondaryText) + } + } + } + .font(.system(size: 11)) + .multilineTextAlignment(.center) + .frame(maxWidth: .infinity) + } + if let error { + Text(error) + .font(.system(size: 11)) + .foregroundStyle(Theme.secondaryText) + } + + HStack { + Text("Gateway") + .font(.system(size: 12, weight: .semibold)) + Spacer(minLength: 4) + Text(model.gatewayHost ?? "demo") + .font(.system(size: 11)) + .foregroundStyle(Theme.secondaryText) + .lineLimit(1) + .minimumScaleFactor(0.8) + } + .padding(.horizontal, 8) + .padding(.top, 8) + + Button("Unpair") { confirmingUnpair = true } + .buttonStyle(PillButtonStyle(fill: Theme.control, foreground: Theme.bad)) + } + + private func sendTest() { + sending = true + result = nil + error = nil + Task { + do { + result = try await model.api.testPush() + reload += 1 + } catch { + self.error = model.message(for: error) + } + sending = false + } + } +} + +/// Loads the status when it appears, and again whenever `reload` changes, then shows `content`. +/// The last status stays on screen while a reload runs. +private struct StatusLoader: View { + @Environment(AppModel.self) private var model + var reload: Int + /// Snapshots render the column without its ScrollView, which ImageRenderer leaves blank. + var scrolls: Bool + var content: (StatusResponse) -> Content + @State private var status: StatusResponse? + @State private var error: String? + + /// `status` starts the screen loaded, for snapshots and previews. + init( + reload: Int = 0, status: StatusResponse? = nil, scrolls: Bool = true, + @ViewBuilder content: @escaping (StatusResponse) -> Content + ) { + self.reload = reload + self.scrolls = scrolls + self.content = content + _status = State(initialValue: status) + } + + var body: some View { + if scrolls { + ScrollView { column } + .task(id: reload) { await load() } + } else { + column + } + } + + private var column: some View { + VStack(alignment: .leading, spacing: 6) { + if let status { + content(status) + } else if error == nil { + ProgressView() + .frame(maxWidth: .infinity) + .padding(.top, 20) + } + if let error { + Text(error) + .font(.system(size: 12)) + .foregroundStyle(Theme.secondaryText) + .padding(.horizontal, 4) + if status == nil { + Button("Try again") { Task { await load() } } + .buttonStyle(PillButtonStyle(fill: Theme.control, foreground: .white)) + } + } + } + .padding(.horizontal, 2) + } + + private func load() async { + do { + status = try await model.api.status() + error = nil + } catch { + self.error = model.message(for: error) + } + } +} + +/// A bold line and an optional grey one under it, as on mock C's issue cards. +private struct RowText: View { + var title: String + var detail: String? + + var body: some View { + VStack(alignment: .leading, spacing: 1) { + Text(title) + .font(.system(size: 14, weight: .semibold)) + .foregroundStyle(.white) + if let detail { + Text(detail) + .font(.system(size: 11)) + .foregroundStyle(Theme.secondaryText) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + } +} + +#Preview("Status") { + NavigationStack { + StatusView() + } + .environment(AppModel.preview()) + .fontDesign(.rounded) +} + +#Preview("Environment") { + NavigationStack { + HostStatusView(hostId: "laptop") + } + .environment(AppModel.preview()) + .fontDesign(.rounded) +} + +#Preview("Notifications") { + NavigationStack { + NotificationsView() + } + .environment(AppModel.preview()) + .fontDesign(.rounded) +} diff --git a/watch/WristCode/Views/Theme.swift b/watch/WristCode/Views/Theme.swift index 098d8bc..a401d7f 100644 --- a/watch/WristCode/Views/Theme.swift +++ b/watch/WristCode/Views/Theme.swift @@ -1,4 +1,5 @@ -// Mock B colors and the shared card. Amber means it needs you, teal means working, grey means done. +// Mock B colors and the shared card. Amber means it needs you, teal means working, grey means done, +// and red means broken. import SwiftUI @@ -10,6 +11,7 @@ enum Theme { static let control = Color(red: 0.173, green: 0.173, blue: 0.180) // #2c2c2e static let secondaryText = Color(red: 0.682, green: 0.682, blue: 0.698) // #aeaeb2 static let bodyText = Color(red: 0.898, green: 0.898, blue: 0.918) // #e5e5ea + static let bad = Color(red: 1.0, green: 0.420, blue: 0.369) // #ff6b5e } extension Phase { @@ -87,6 +89,25 @@ enum Format { return "\(hours / 24) d" } + /// How long until a date, such as "40 s", "3 min" or "2 h". + static func countdown(to date: Date, now: Date = .now) -> String { + let seconds = max(0, Int(date.timeIntervalSince(now).rounded())) + if seconds < 60 { return "\(seconds) s" } + if seconds < 3600 { return "\(seconds / 60) min" } + return "\(seconds / 3600) h" + } + + /// "expires in 29 days", "expires today" or "expired 2 days ago", for a token. + static func expiry(_ date: Date, now: Date = .now) -> String { + let days = Int((date.timeIntervalSince(now) / 86_400).rounded(.down)) + if date < now { + let ago = Int(now.timeIntervalSince(date) / 86_400) + return ago < 1 ? "expired today" : "expired \(ago) day\(ago == 1 ? "" : "s") ago" + } + if days < 1 { return "expires today" } + return "expires in \(days) day\(days == 1 ? "" : "s")" + } + /// A model id made readable: `claude-opus-5-5` becomes "Claude Opus 5.5". static func modelName(_ id: String) -> String { var words: [String] = [] diff --git a/watch/WristCode/WristCodeApp.swift b/watch/WristCode/WristCodeApp.swift index 9cdd53f..85387df 100644 --- a/watch/WristCode/WristCodeApp.swift +++ b/watch/WristCode/WristCodeApp.swift @@ -33,6 +33,12 @@ struct RootView: View { ThreadView(hostId: hostId, threadId: threadId) case .newThread: NewThreadView() + case .status: + StatusView() + case let .host(id): + HostStatusView(hostId: id) + case .notifications: + NotificationsView() } } } diff --git a/watch/WristCodeTests/ModelsTests.swift b/watch/WristCodeTests/ModelsTests.swift index 2f90138..3eaa950 100644 --- a/watch/WristCodeTests/ModelsTests.swift +++ b/watch/WristCodeTests/ModelsTests.swift @@ -139,6 +139,33 @@ private let feedItemJSON = """ #expect(try decode(ErrorResponse.self, #"{ "error": "That host is offline" }"#).error == "That host is offline") } + @Test func statusFromDocs() throws { + let status = try decode(StatusResponse.self, """ + { + "hosts": [{ + "id": "laptop", "label": "Laptop", "status": "online", "error": null, + "activeUrl": "http://laptopvpn.gib:3773", + "routes": [ + { "url": "http://laptop.gib:3773", "kind": "direct", "result": "failed", "error": "no answer in 5 s", "checkedAt": "2026-11-01T09:12:00.000Z" }, + { "url": "http://laptopvpn.gib:3773", "kind": "vpn", "result": "ok", "error": null, "checkedAt": "2026-11-01T09:12:00.000Z" }, + { "url": "https://t3laptop.gbrown.org", "kind": "public", "result": "untried", "error": null, "checkedAt": null } + ], + "onlineSince": "2026-11-01T09:12:00.000Z", "lastOnlineAt": null, "nextRetryAt": null, + "tokenExpiresAt": "2026-12-01T00:00:00.000Z", "serverVersion": "0.1.5" + }], + "gateway": { "startedAt": "2026-11-01T08:00:00.000Z", "pushConfigured": true, + "lastPush": { "ok": false, "at": "2026-11-01T09:40:00.000Z", "status": 400, "reason": "BadDeviceToken" } }, + "device": { "name": "Apple Watch", "pairedAt": "2026-10-30T08:00:00.000Z", "pushRegistered": true, "apnsEnvironment": null } + } + """) + let host = try #require(status.hosts.first) + #expect(host.onFallback) + #expect(host.activeRoute?.kind == .vpn) + #expect(host.routes.map(\.hostPort) == ["laptop.gib:3773", "laptopvpn.gib:3773", "t3laptop.gbrown.org"]) + #expect(status.device.apnsEnvironment == nil) + #expect(status.gateway.lastPush?.hint?.contains("sandbox/production") == true) + } + @Test func badDateFails() { #expect(throws: DecodingError.self) { try decode(Message.self, #"{ "id": "m", "role": "user", "text": "x", "createdAt": "yesterday" }"#) @@ -236,6 +263,9 @@ private let feedItemJSON = """ #expect(thread.url.absoluteString == "wristcode://thread/mac%20mini/t%2F1") #expect(Route(url: thread.url) == thread) #expect(Route(url: Route.newThread.url) == .newThread) + for route in [Route.status, .host(id: "mac mini"), .notifications] { + #expect(Route(url: route.url) == route) + } #expect(Route(url: URL(string: "wristcode://thread/only-host")!) == nil) #expect(Route(url: URL(string: "https://thread/h/t")!) == nil) } @@ -322,6 +352,41 @@ private let feedItemJSON = """ } } +@Suite struct StatusReportTests { + private let now = Date(timeIntervalSince1970: 1_800_000_000) + + @Test func demoListsIssuesWorstFirst() { + let report = StatusReport(DemoFixtures(now: now).status, now: now) + #expect(report.issues.map(\.title) == [ + "LittleMan offline", "Laptop is on its VPN route", "server-gib token expires in 5 days", + ]) + #expect(report.issues.map(\.detail) == ["Both routes failed · 4 min", "laptop.gib:3773 did not answer", "Run renew-hosts.sh"]) + #expect(!report.allConnected) + #expect(report.worst == .problem) + #expect(report.healthySummary == "2 more, all direct") + #expect(report.subline == "4 environments · pushes OK") + } + + @Test func fallbackAloneIsStillAllConnected() { + var status = DemoFixtures(now: now).status + status.hosts.removeAll { $0.id == "littleman" } + for i in status.hosts.indices { status.hosts[i].tokenExpiresAt = now.addingTimeInterval(30 * 86_400) } + let report = StatusReport(status, now: now) + #expect(report.allConnected) + #expect(report.issues.map(\.kind) == [.fallback]) + } + + @Test func pushProblems() { + var status = DemoFixtures(now: now).status + status.device.pushRegistered = false + #expect(StatusReport(status, now: now).pushSummary == "watch not registered") + status.gateway.pushConfigured = false + let report = StatusReport(status, now: now) + #expect(report.pushSummary == "pushes off") + #expect(report.issues.first { $0.kind == .push }?.route == .notifications) + } +} + @Suite struct DemoGatewayTests { @Test func allowMovesThreadToWorking() async throws { let gateway = DemoGateway() diff --git a/watch/WristCodeTests/SnapshotTests.swift b/watch/WristCodeTests/SnapshotTests.swift index ca69311..cf4caf3 100644 --- a/watch/WristCodeTests/SnapshotTests.swift +++ b/watch/WristCodeTests/SnapshotTests.swift @@ -42,6 +42,29 @@ struct SnapshotTests { try write(view, "thread-multiselect.png") } + @Test func statusScreens() async throws { + let status = try await DemoGateway().status() + try write(titled("Status", StatusView(status: status, scrolls: false)), "status.png") + try write(titled("Laptop", HostStatusView(hostId: "laptop", status: status, scrolls: false)), "status-environment.png") + let result = PushResult(ok: true, at: .now, status: 200, reason: nil) + try write(titled("Notifications", NotificationsView(status: status, result: result, scrolls: false)), "status-notifications.png") + } + + /// The screen under a title like the navigation bar's, which ImageRenderer leaves out. + private func titled(_ title: String, _ view: some View) -> some View { + VStack(alignment: .leading, spacing: 6) { + Text(title) + .font(.system(size: 17, weight: .semibold)) + .foregroundStyle(.white) + .padding(.horizontal, 10) + .padding(.top, 10) + view + } + .environment(AppModel.preview()) + .fontDesign(.rounded) + .tint(Theme.work) + } + /// Renders at the screen's width and as tall as the content, as if scrolled through. private func write(_ view: some View, _ name: String) throws { let renderer = ImageRenderer(content: view diff --git a/watch/screenshots/status-environment.png b/watch/screenshots/status-environment.png new file mode 100644 index 0000000000000000000000000000000000000000..c4bd55c8d9ddc4f55135e5f4e499f5ddf45a3b15 GIT binary patch literal 47033 zcmeGEWmjBH7d4FH?gXcS1PxBG;O_43?(S|OIKd^jyF+jb?v1+zcZbH_POkg;0q^;8 z&N$=w(4%+luG(d*s@9rw?v7BDmq0}#M1p{TK$VgdRfd3o%!Pn}5=4Ll-x)TA42d40s=Z05&|0h4f*$8F4X_| z6*4y$`u|)*34(uzV8|cofPfH$kP;PA^@KdtgZ0H3S`ZMd&F%g8tNnvVDipi+Xa(N! z>+!vHQdb+18i+OyC@fQ^h*YE)sj{XQ(%x>`eUrnSx!mdFa4zQ@=7`okb{;zwz~OQ~ zJZ?(Wl$tHApgr6R0>Yf(ALTn{qI@eVu1f!?EkYN!Qg;P;`4EDJ8NFGe0jWLvz#WQ zRj<@k<;I_s-re2p*Xl@O_%~fC5agrdq1_QNm$uDs~w8G|y}-B^H;{W?}q_ z9{qn4Z}m4*lKVWKJnaLnqI+<3? zVk)~RhKRF#^P>A*KH%-iq6ZF-Q8(@U*Djj%Og`-E%gq#oBi5X(0-|g8t zjtgbPk{bXzDk(+}ZgM+Wh(EEKFHaslpc&pZy8bhQyK4NB@;;}cz~ww&t+!fk(A|}s zl=KIIlhk}F+b)?#sgJQiFbHa4ra)qX!vDf%uGHvYS4i!_QP=adZm4p$MB#ZN9KpPL z!DWiiVsH3Ie+f!bGJ)TWT|xzZ*B&6=gKYFd&=ZcV00m*3x@u(Q=Lo0WifNte7ME3s zP{_{M)Efl__)Czo1!llA@JSy0FK6EqsegmM}4W+Z+;K!9{groVk6OA zqEBHrr>Tvfc>}_OE4B!C|2~|i0Ob&D1Fo`@l^gYg(F7))k2_HdrAh^rGiLGv-3vu}ZYdY^UV8uOlej@^^sw>MI z?k_eS>^8gBLB|y}^!Kq1H)I!boa=uiA6=5)wbE0G6C5HXLK>~L5; zoUg~SwZ)uE5qafeRjQUHWbrdHPI?~|rH=2+z0Q@XoUyg>GJi^3sMOj`6fX%owp(v= zGk2z3uHzg10Z%K`EW`!Oi?LVJHGdFmQK{a3;=#~`)$oFc>Vk$O2PB%(2%0BB8tru6 z0%aK71#6ea#v1@xJRa_{OP+?*usMz3iW3xe2V?wzc_i+Zj!B3k2(rIVeP~ch_1fKI zuP=MhkYlf1m(h7I0~JvL;$-W!G4PoP#HX`gZokVj|GZX9-K#-USx{2heY z!^guH+MEf4cdb^To-TCHcWn5K)qAI#$kUCsxF~rqw)k1&-zNVBIw;Ltu+o^k8CL0L ze(!=(`>iOQLf!oj`peY8Bz4d zsZ6fBKa9&%oP!6aqz>!9qYe(^yA)jLnZ5JDq@4${J2wA@ke!AJ z{I%TO@%)5@8)-BQ=5Xy)JH=zthy>$fC@c{~a)y-R$W=Ac?~}A~LpO9a(u=Mwgo7rr zSc?Y{iszkbo$P=6#V`UC%Mt8isS>$F4wYQSpMKx?T-{dZSl3>DL*QhNK)1#9LX{3r z-_%bo5&c+1^L#;f>Qk+Q;`_7J_K>*-Jl3mG2lL6(t~9f;&VOUIElNg3fWZOFjyOd6 zOHJi__x3lUanoad4A$w0yk^jLIO+FA!Xq*_Sd(AxZ_fauu~eo9Cql=H`Pv_40&4iW z6<(>(66w(JXsQ;7=|PviJ_lJI<77L~7vJ$#x%<}83C^P0dA)G|p7&(R2%@sE@T*7; zKD#Xj%xNM(uh+XpKcJA=fX>bIR&R*aN~6`N%xPXYN&egG^D_fe6@vaB=?3!&Wo%yF z%`K1;{qh@I;j!`aS2pXRL)Y=fM-S)Y0v(u+16cL;EA%S(Q_q8_!UQK5$EjL#1 zcl6v0oc_4AQG2!`g3lz*XXW2YXe&RK{hS`;vRMya@rYq1yx@WU@O{O>&u`Bc5!AXQ zA=BTf^;YUk;Me`1&tRUTGRf=$w*cRm0#pcvG;oQf+EF)td&g z0^_U^JmD}G7}CS%0Q|n1SzI3^q1a9|Tb+xzp+DmvQ5X2JoFx1FTUDQ80;e=MILTD{ z9&0(9c3D@y0AC(0aDKv$gz~MPwmHG{JzniHunGW;uz_%>gr%;w@X85D?uq`}VR)w< z=A>)N{p}ZB6+pMc>E1r^lHw1rh*4_hxRWSf#vC_Aq<2G3d_iIEwcHb|Og{HzH@+`Y zB9%yu;3t_53=R40OAz(V;CXER;d0ps=v8t|@*un93ABS|ULIiU)yf4Q&ZGR$KB&<* zR9BNrqoq?r^l82Kdj(3WF`Kphh@AzVD znpW$NkZo^uc9OCk`AJa_oC{_vf%fnE5y$*xiLV&F!!&{Q&wtJr+sdzn)N3rD1N_(F zZL>`*yB0r$9dawdL z<@6^t9=M7}q0EyB^T4v|Y$5da?2-&01fnw)ol;vY#*m`286T zuZpmC4zG)0t@g`z8*Oi-B(x2e>&1Bo_Ij9$rdv&wj~46&ib8y=VRu~=FQ{NG&)cv+ z&;Y(PS7pUHAB>9!FmOq$f7^t~DVF>%X!6JWenW&U3PV-h@|>E-(}t6$>r|FlI0?EB z{4ySjHUl8FD}t7QR`|`W;9XPXS-%j9*lrm_%#U)ozB;N{;{9|KljAYlqJnn(C*8YB z<0JZnS3^1NO@_Ke>0%VoYf4Vc$LHNv>A75GeQvkG{OgvQ!u9aU@>|mNWXXqH8fnR0 zF(34tq9eMv*;kR~r(2iNvE;Iksb1HvUz&W(p(pfw)+!L%ZWEx`QcmF4@3+-K&O827 zu6W9Z6oZe#eIhHg2*1BT9jW&QJ;{34eR(yQ%FiB$&zhV}q^2lnbx>1DQ2H9wgZC08 zaGJkt6FZCjzA6;O$yF3V7}0u^Hx{Y%8tHZT6p)Ofqf(waVwbw!-~>5;=n|>Sn?*#Yg>{55Uo?&$KN-M6M$PyS#H* zBUeNIM~qV6MOrlnf4l}EgUw$>Z0k2i9C|ekHCKdtART)8AtMf6T zX8Oi+)J-5*cMv^}k)qH$oS!yEQm=2%q5+%9?6_(>1*>41Hi3nzhzNJ?)j0;78dBz* zZjy#N^IB%lfuOO%*vew)8(T#dCK*C5)z?`K5)~BO=ua4VRje9-f`umKv>P=BBw){l zJIE9=1d1xdKg&N2QDl15A)T+=OGT}R8%R8Ull$| zAb-%uj1KxH6ad~a&e!Hj0*5#)^ucz8DB(u03oGyE)K1sndH;;-KcnJu<-b{RujcZ_ z`HS>__I`!RapUo|3yDvAZf2~cXse+4}A=Tn4t#~n5sug}(syKvy zLAa6XZVPSG>)w3FqcA(SC-LMFeIKr+XUnN=4-*tc3?A5A8*Q9?;xvZISvLoV=JYr; zp8i+}zs)7t6M?EcRUw3n#p3vhKxV7hfUX4TjRfkFc7bK--6ax83#ddmeVt%?{{Up8 zU^LM*MXHw)EF9yJ?fYu6(mnuPvS=V8)?Nk-(ad!CXc?I#-a|l_-ue*h?DK85D3puy zY#^gpQn+3>CnsI;UMy!$FB?0wa6oyT_T(ALbcZ*uP{z#d`W!Tfqx1yNw#KX4KuQM~ ze2^mm2V?%Q`8=xp3comgrBa6SsWdWLG=ld@;Zea%jru2^|4%PTsb=nx*jEe0GblB~ z5gVWkeLBIhQ0V5!z3_Bam+ccmMm)XvL7WnaeB#@43DA#r+rQs;En< zxay*(69q*YlW1Qtw zhKXrOufy{BjkVEOro1I3y#^;h%*J{YI0)}S0b(ZoErN5m`A#Pzc3o0l=*oYCv@4K? zUaDL7Q?*MoGUIGG!c^KF>8m*hw7n=<1n!lG15mc^0c`+xw@(GEe=aj_`x^Y_uXWiAR<8 zsUl~$@o*cjs|Pxdcwnw`7AP|DsRwc3H%#JdxChnB-bVu)k)jHMuYGdY(%7T;ArWt9 z#?d{>GWK4}_V=r-IEcX3c(5NGiuZRV{z9|4ewaVQF=&%K#_P@=j<5F2`w#*m61d1) zP^eb9kKFsljR^O!aavCNy`Bh*0B9z#$y(}*1z(wq*X6PDjhnY2`*^K;P(4lv6f_%1 zwNydI(g=FsE_a`@1{sM*E)tK*jp;)vaC{ZB{E{An76KhaC5aV}FY-|`_c39SZD>jY zf)|5DD1_utFIp|XEZX2;V4fJAb**E{sDmN?EAsw?(8X(Ws&{u|#OQi+g7}ow4`l%p zpPc3fBjbzv7dTq?S!Y`R8zj)n)CWYwy}qC#i(OUX+q939>^~8d|0Gi_v4}&GHhAPU z=LntYJa^5HKG$B}jU82VE3d#E#MF?`WGd&q{6%DpM0(PcgKPSe#5vB9Iu_vWKgyZ& z1Bz>EVpind%`ez1!=G;B{9Je2l=PYGL*T0TFPR+3cO^G zbGPjC{#3eQ{kCb{)ODyy=uY;Bh@X9ag6JO6*UKi@d*n1OUA+X+H4N#hDN_bBt(fX| zC@SIpXC8I%|>Sl#U$%N{Alegn2U7}q{TEX!m*sY7_4hd5< z=h$^w1_spmUlV1N1{y4H5@2&g1|KY$n_$u{+=V7yvR5Kv-=$g50h_9jKYLgJy1Z9E zlj@|#x){_UXz*}CFskgd)_awMP{$`oZ>G)oeZ8E_Y@V*)>dW<{auy4Rs_Cl>yn+R= zrj>TF%@0*likM3?#$UdSp{~0^O~*iza}pGMM*M_I{bZxZ8? zd0JpNcPu6@0Zpriolkj5nlD(;8$)uwC@g+;Zf`e=6C=I4>)@qQ3^oyHKWMJ?=)G7@ zEQ_{H!3;(JJG223;lBKWv?lj_`y=}|zM0&7ry3?@MBX=^-_3P(H|UA#-MuQO1$ED= z(w>7>;61yS&4Vn^B1a&2rD9V@>MdXGYZs>dyCpJ%S2uU>Aml!5lYzL^*}ZCU)tI#| z<-nc3K!{cQ2#U?PzVnZK8C|=~Yv<%Zwai!!NNnjs@Omml4sw+eEY?PidWZT!P!ltE zemgQARO=^ChBUqpwTHrgJ{i}7sVdHc_H{mzxm;k_{vc|jLS8{n@6#dFHfjlCIaMjy zRnvN*^>HB)c!2lp44d{57@yy!T4v^JsOu6%4Nv3Y?Wdr-*uYXM1V-^gdBz|F*h-q}TMJ!$xmR4<5Vnm~kR>*!uxixG0RLB#JjBjH; ztA0QM-AXLcjRXzH|REN&X}XevNlt3vmG4y z8|9mlKpiCn%7*Y$nOBZKe8MlNAi_#mCD}@*#_eN%dg(u3ba-zIul9Arp8w_1)G0x< zVnJ9B-GoPC*gY<<<|c${u@W4d>|gtclSu70tCI|Xn<}n?n@SgAU8*+5 za;Nc7(c3LBg}bmQK_sfO4i3**)ynt1`l(6*-7GlU72@3!7!>hLJuVR!tP2}-`6-?e z?v_=dyqFMe^_0zcw?RsgJ;u8}_)I=Zz`8UhU(8-D{-`gSqjwjPBViL>{aP#cJD^jp z*oQuJ;3rjLP^Jg9i3FUA7~W^yt*3Cln?A8i@sJ5wY+^=PD>#l%E-^79wd3n_WGox* z8zkZNx%@t@;E?KHn{bG2(KH9%Zd7p8 zPA)0=-p{P9nOHr)1`)KzVR|NdA(NUAk?U%4P_4;!b4R?C#eQJ-nYHR1A!7@|iu+YG%r3zEuMw&O8BeB$Ut3f}V|SalV7^mk#q zp^aeq z@%s#`(WC5MF}tpN5kAJm75?a+Zrl?O#45lvRx8&i~mbulFh1xNQK(*I@a4N=TK=n2o&u1(RAJ@4e{FyR4d7sSI~SO`8! zZ@nzm?UF72nhidbjtoChtPKMh$6QH=AwpB zy^7jq#qh|*wKl;A|H?kE)r zdiPPAfN4mo%{2A;=RXVySX5X3!UKcKeCbxTmf_>(y4M8__==}A#gGH|6A<; zt3$F2_#PEiz;n@&_!q1V9kpXd_yDFa%GIlmB{O(D?87X|l#7VBum4RL1jhF$T$C!A z)Laj3&b&1)=V@%#gV`LNW{HZ=?wt%e&4p9^&(WjFbP`}NyRo0#N#&QL5x3{1Aw@Zo z44}bcsyKt)Mj1>ESb>SK@>npSPRA>gL?gu1d8_>Gr1Ne;=O~h{I(IOJXf^_y+VXs@ z_4ce~6Zp$%_q5*S^7$6b{wW(9=L7b;xO^X(`QBe{8o>m{@pK;ay3-IKG!8w0&Hu#{ zbUnrdnDLZ&d%XxynJtzp1CuL_w##3@b>nv4uh@iMhk=cb>?;htJnqcq1bewA^+ngr ziocBk-O+wU73;%>>AFUZx#;TF{DBNp=Nwe$^Laa_-B=V;mt_{0%ivA~cmAEXQT#@2 zPQcspN~cfDKw{l`ctv%a^!C#zUColw(PsgjX4{2YqkdJb=lin;|Myo9n~4neV=gYP zWn*!}R0A+aYXfGa7LI01_yP_lvs9kW+b{T&53YttTVhEC&eL(t0`Je)ZBpazTkO|Y zRvIkgA~V6X+T9RofF`v{=l)1Ke+eE9-0P zrP^&+J|{B)0e4UwR|CFcyZhM(e((@BU}0g|Mr*Fr%V%*H?TjXUHVHogbym|eXc=nL zR~4m`?1g+oCq0+su>w-y_@6Z`u54EZH-19{l=o>xHura~kQx2Rbb&cp8ss+S$o1vg zJscuAJ1QG=vwB>KnY&88QtcAtFHctd?j4;iDUwoCvc1+?Y88>MN@c*S z#;6*&nRkeND$Kd&2+empEpl5E@ETRFRO`tDeWYo9jjA1CTORSD06b z=X$FZOqw-MAky}Lo37;R+d&Q>$-NfRYFTqeRx48;pw@>ERqmeLy%) zx8qhI0JdopUEn1*+von&D*U-!h>OqrR*|+H+=3?=^Kg*?IBzhya>~30kyz9Hwo*-G zq}X0ZAu}FS3I^U0u>N{aWEcp~i`vUCR|_vTJ~|`xPrQqbU9iccta8U%BM%#u6gi7J z?9F5VzPa2Kx0HD&x|(j`FcIapR`cZAmN*t=x5vc5B@)vtJ|A_z_2c*4(Wk?LINucx zKai^pc-^TlR_j%Xgrgn(Id1cNcCYZhJ9Z~2b?!Kfpw6zHt+g8#PPf;tH;ot=^yA4o z7ooX3;niORGjuvOi`8zb$T&J+Q>_A%rdrrkvW|0n)^jvP;`EBSfq-ht+(mel!z0b<^rc&*?tf;K;YUg*01{VYl#jjv1SJjqOHUG89M?uku35?~*PA^Gj zwUE!b1XKNV5h%w(9wc6|XG~56Ii)cQo^- zG*!qZ6CaQElgpqMA035u`1!BN*zisoWu|aEXyYlRp zjqZQ|iRT`CL-eIqmy!%at^B&jidE3&`Q@l6Pqy1=jLI+nG-J#(g z`dGduaGRIxFevcR@RM*8X_(2;QzjD~8K|!Z>9NmkrJH8B6?>I!V#qo~4#x$+n9~`4 z;8?41he$!}E)a+SoD-w+>U z_67o9<`Es};(b0Xpg_RcdTh|ubSUpVfeAB!(;GepFo-PZ*H|zGBq57&C^@*B?PKPt zCTjO)se1b~L`O^JMLTP+XcUmG^KNZjVaRyp^-KPyiz+qxd?!C7Na_M>t0qI}3Ps&lo0raa`xPf#K_vR|xs7w)gw*R)U%#f&s_SLzvIfLr$~M3i zzu^g7B9x@^pG^m!SE^+BFW08q|NNT8O_@^c(B6~>#pP10Md33zv#H@$uu3&iIN2?q z`w^f6EI_qUfpynBd>%?-y9p7Dt)|z*+&CW<2w$;+;0c!Hh*1h@ z2OMc7OE^*lLW_V^8f6ZfUDke+(CEB^wu>KA8av9BV#&R(|Kzo7ct<~eNKFQ5&UIJpy47Fls((chJ>;=p>k8{*sY+&-v}hNyMo6%; z>0iu{t~A){P=y%uMb+N$iH`@mKST!H+DYdMr!xJydsP`ZImElleGvS$a+66TZ{9_jAhQ z2Vr>niUu1U!||6DY85H=og6m|0GcSu`BQo*K+Y07f z#E&i7BWe3Po6w+?97;nG*Q07hplCFCJ4OvHAa|Mse@{Z`&qO};0N%hPvC0uIb{4uQ zPj6u0XC7S`>0^R$bQDSc(~lBh#`RW~JO~^I#77Eh;wxHTZFrnck1J0=YS&tHgBXkv z4_pb$F)tGONRe>x3K4DV`t0Z3!-ATWa9Xx8>HQcq7r6R@hX&8gb=wS9`0 z-;JG;d_5hlioD4X%{xX))^4=iPKWiZeGOg0{X`(>Dlx~+Q`lt*Z8*U(EvBU^VWl;EFlTuHm|3>RDhN1&n`F}0bA{JZ)*9U zrBt^k_{cRG!y)(O*XccowM9+yswdZdgt(rG_DCplR8dNtnq3V9enM$L+6Z@S*7UPPYkgeh8L&GA}o@5WGI_ z#x>fna~ro9G(nn?g>cN7Fz=j1{NNi^CD~w&S?XM#aqpxhC34?ECYtJg1JTtzq}99h z45O7HR=lw&<D=fF z3ApzNCQb3=eAmXkpDTc_$~IR!1F>vipC{|F3j1$crD{DhSLc*N+ zPs^HR^flH*MLThUy2&ttJZrj@9@)_!Bq!Om#qegw&Yok0Vblxfwd8>-bJ$*WSG1!y z&Npvh5sR9@a{mM){2oicn%6ksGc#3(O4C6shU4xazmxt+o$K>B-GaAKCzfvKgkz15 zxjioKw6Te5V(k`glwIewq$cP9vzPJ282%Oa&9F~+JkaunLE|~;6%=fC`-i>+5K4g2 z3C#bYpj~=w$Q1dZ*FKQRg;OYhOG=xdw21)$h`_t+iB+H2FN55ST6*T0uU5`l+8TWI zJ=lkZ7>%P2nR(O=do<|TBe&*6@g)2Mj8)&7$%J0b6Uu{y?-M$~mr&1o_JUz#9##~e zF`;$%1EhdhcuD9cf{uj_1Z%ma-&=X`RxtR_g7Nk@%@cqXi z>5Y(H?M&^hsrtzS{|9p@DjaEVz0Y%rkBDGcL+}tGG#RpY!G&Wv|JSL!1QfBb26L*5 zl65xm#v2B_!c%n#VrOOo`3D%yWbuv?qTc9!|O^}eEP6MaQY(Miq40*7a zks&MsxMi`MPjgvW+W3bJR*hr=?S@tPo@9t(FUPA%&v$G6dd;D63au`XB%X_8!N}7u zPYeVe=r+&Xr0oCUGoitOE!&hySQP)Y{qJ6n2G*$*L9>l~`UldG#XEu1X2c?&h5kxl zzy}!s4C6?{TPBG8FTML$$ny1@a`1n!jvzM%23!)_G)2_^(t}`0O_CEz5e&Eie`U(9 zf2HVvT&a{{a>Wu!qdr`D;lI_oVIZ8S^9C9ARS$Wqb$XG~#QoO$iSSaPEk?Le1&EPb z5$_y)Nj@T5(`(^&W7Ju>Iedif$eJ@@-N&r{_kdOe(HO|1-7+^1$LPR#vaPV5g@U1@ z%OlptW5MGehx$iAY;|y)3Hs%S%srI3pDoXSpaOHx>gy*&VkF2v4AzT)yP7{3_+`WO z^R}@NL?)2x#RG(>z^$cq$4a25B%0@ zVwb0g%pdfxc%VgT0!P{fe2Zbz=Jx%r-&jRk_6HV$T ztA6uiPX9>mUCD4GC{YsGEh>g}kNCEjY(bv59Oe+e^9o#A!S4H0(Wa;m&cE$=eUnZy zj?=bgXS?>t1ts)Wg0OA|ct&%2Wv?>?ic9bF&SpWkxtw^6CDi7VEwdk|`usbs@E-E| zrj=s-yJw3L*OeQPa6rCa0X&J$-Zt;rYDWd`6Q3P)%Nu(1&GGpHp2ud;RhcVgh|2r? z-c6USy_=={)GXFNA-YZ_1)PHJP}8=4jd3^7j(a7XgTuS|a?~W_a-Ln03 zFYW^53j|th7lpDlCIa0p0wG~T>MZvD`Wb%^zT^G8f}*%|TFdQHqnmb{rv--0?kle5 zyya?Wv4=4I;ZGi$g}zgnV(H8C4$zyCW69aJ;Z%N@!7kfn3ILXjEhu*8hgprPt(Tel zk`%yguEwo!YK&W4CaBFlhO^8)EhfD@CXjAaG3@=>1+ay!@Jq@D=q`jsUTeHDU|T3I z*91@yJMmllC0O53+de~_aSJ@@YkySID5~b1E3GW-{xbf(=S5a{1u!JPG+siwd$$?O zU^V-rz;*c|v2?$sdwK%9q=J5z=|b2|>(iId9~BtqtHX)riY+XdRL56L{bL)){|Jdq z%FuB$2K8S-G8c--q;PvEIaK4x5)FCgPQ9N1Gsx0m@{PSz2H|&+zj<0@9lI*56G{iW zkQ5y1N!Q~09Hc0MEk>N|(%?WWQf_xgtn4Yy#OmoS1PQWqj#;XEvG{Yv;pj9^lzOS7 zY+q{a@!?{O&LP~}O7r9{d%BuuTAF>0UJOXROp=sQZx3(eV$nYTy;@U-e35e5ipp+X z3ZRvx8lonv$a>^{2-Dk)Ud}8#ZBVHxA)-;EvD^aSsiw%0AX;c%ZNJ|#TIs>kI13f7 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 LTet9F;rc@G6? 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 Vg1M<1k~jkRQ;=1WDUmV_{6C0ukMjTk literal 0 HcmV?d00001