From 561effac2ea514121271e753d5bf87bc192564c3 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 17 Aug 2026 23:38:55 -0700 Subject: [PATCH] docs(apps): time-box the progress-card legacy plan fallback to 2026-10-18 (#125643) The stream:"plan" fallback on both native platforms is deliberate compatibility debt with a fixed expiry, not a permanent contract. Record the sunset date, point each platform at its twin and at the tracking issue, and correct the Android note to v2026.8.x (the newest released tag also lacks progressCard.get). Refs #125639 --- .../src/main/java/ai/openclaw/app/chat/ChatController.kt | 7 ++++--- .../OpenClawChatUI/ChatViewModel+TransportEvents.swift | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/android/app/src/main/java/ai/openclaw/app/chat/ChatController.kt b/apps/android/app/src/main/java/ai/openclaw/app/chat/ChatController.kt index 3b46fa2324e8..bbeefd5c7330 100644 --- a/apps/android/app/src/main/java/ai/openclaw/app/chat/ChatController.kt +++ b/apps/android/app/src/main/java/ai/openclaw/app/chat/ChatController.kt @@ -5885,9 +5885,10 @@ class ChatController internal constructor( } } "plan" -> { - // Released Gateways through v2026.7.x only emit stream:"plan" and lack progressCard.get. - // Remove this fallback with the Gateway's legacy dual-emit once the minimum supported - // Gateway ships the store (tracked follow-up). + // Released Gateways through v2026.8.x only emit stream:"plan" and lack progressCard.get. + // SUNSET 2026-10-18: this fallback is a fixed cutover window, not a permanent contract. + // On that date delete it together with the Gateway's legacy stream:"plan" dual-emit and + // the Apple twin in ChatViewModel+TransportEvents.swift. Tracked: #125639. if (gatewayAdvertisesProgressCard() != false) return val planData = data ?: return if (planData["phase"].asStringOrNull() != "update") return diff --git a/apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel+TransportEvents.swift b/apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel+TransportEvents.swift index 75a128703f5b..7d084b31033f 100644 --- a/apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel+TransportEvents.swift +++ b/apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel+TransportEvents.swift @@ -650,8 +650,9 @@ extension OpenClawChatViewModel { case "plan": // Released Gateways through v2026.8.x lack progressCard.get and only emit stream:"plan". // Rendering these only when the store is known-absent keeps a dual-emitting Gateway from - // fighting the durable card. Remove with the Gateway's legacy dual-emit once the minimum - // supported Gateway ships the store. + // fighting the durable card. SUNSET 2026-10-18: this fallback is a fixed cutover window, + // not a permanent contract. On that date delete it together with the Gateway's legacy + // stream:"plan" dual-emit and the Android twin in ChatController.kt. Tracked: #125639. guard self.progressCardStoreAvailable == false else { return } guard evt.data["phase"]?.value as? String == "update" else { return } let steps = Self.parseLegacyProgressCardSteps(evt.data["steps"])