← Back to PRs

#22271: feat(watchos): implement liquid glass UI and voice-first orb

by Rocuts open 2026-02-20 23:42 View on GitHub →
channel: discord channel: msteams channel: whatsapp-web app: ios scripts size: M
### Summary - **Problem:** The OpenClaw watchOS extension operated purely as a passive notification mirror with generic UI buttons. Additionally, a recent PR upstream introduced a TypeScript `TS2556` spread-argument build failure. - **Why it matters:** 2026 Top Tier standards require "Liquid Glass" physics, standalone fallback networking for the Apple Watch, and Voice-First/Zero-Mouse interactions. Green CI builds are also a strict requirement. - **What changed:** Re-styled watch action prompts into `UltraThinMaterial` capsules (`LiquidGlassButtonStyle`), integrated an "Oracle Orb" for native voice-dictated notes context, added a Double-Tap gesture intent for quick approvals, implemented a standalone WebSocket connection fallback stub in `WatchConnectivityReceiver`, and fixed the `TS2556` TS bug in `send.components.test.ts`. - **What did NOT change (scope boundary):** Did not modify the core push notification behavior or the APNs `WatchInboxStore` consumer pipeline. ### Change Type (select all) - [x] Bug fix - [x] Feature - [x] Refactor - [ ] Docs - [ ] Security hardening - [ ] Chore/infra ### Scope (select all touched areas) - [ ] Gateway / orchestration - [ ] Skills / tool execution - [ ] Auth / tokens - [ ] Memory / storage - [ ] Integrations - [ ] API / contracts - [x] UI / DX - [ ] CI/CD / infra ### Linked Issue/PR - Closes # (Add if applicable) ### User-visible / Behavior Changes - Apple Watch notifications now feature squishy glass capsules that physically react to taps. - A glowing waveform "Oracle Orb" allows dictating voice context directly from the Watch to attach to the default action. - Added Double Tap physical gesture support to execute the first non-destructive action immediately. - High-risk prompts (marked `risk: "high"`) now pulse with an interactive red/orange `Luminous Edge` border. ### Security Impact (required) - New permissions/capabilities? **No** - Secrets/tokens handling changed? **No** - New/changed network calls? **Yes** (The watch app introduces a pathway to attempt a standalone direct fallback WebSocket over Wi-Fi/Cellular if `WCSession` is unreachable). - Command/tool execution surface changed? **No** - Data access scope changed? **No** - If any Yes, explain risk + mitigation: The standalone fallback is currently stubbed (alpha), delaying connection drops rather than exposing any local context keys unauthorized. ### Repro + Verification - **Environment** - OS: `watchOS 11 / iOS 26 Standards` - Runtime/container: `SwiftUI / watchOS Simulator` - Relevant config (redacted): N/A #### Human Verification (required) - **Verified scenarios:** Fixed the `TS2556` typescript spread bug locally allowing tests to compile. Refactored the `WatchInboxView` UI layout, confirmed standard modifier compatibility, and cleared Greptile hit-testing blocks by replacing overlays with functional `ZStack` routing. Fixed unreachable dead code flow on `fallbackResult` in the iOS target. - **Edge cases checked:** Addressed overlapping touch target areas ensuring the Voice-First `TextField` correctly catches dictation inputs without obscuring capsule bounds. - **What you did not verify:** Did not fully verify the standalone Fallback connecting exclusively via detached cellular scenarios (stub in place). > **🤖 AI/Vibe-Coded PR:** > - **Assisted by:** Claude/AI Agent > - **Degree of testing:** Lightly tested (compilation + UI layout review). > - **Confirm understanding:** I fully understand what the code does (Swift 6 strict concurrency modifications, `UltraThinMaterial` styling, hit-testing layers).

Most Similar PRs