Chris Herold
6e33f3f0f3
iOS: implement dual-connection gateway architecture with deadlock fix
...
Aligns the iOS app with the Clawnet refactor by implementing proper role
separation for gateway connections. Uses separate operator and node sessions
to match the gateway's authorization requirements.
Changes:
- New GatewayOperatorSession: Wraps GatewayChannelActor for operator-role
RPC requests (chat.*, health, sessions.list) without invoke handling
- Dual-connection architecture: Operator session for requests, node session
for node.event calls (e.g., chat.subscribe)
- Separate websocket sessions: Each connection gets its own URLSession to
prevent response cross-talk
- Updated chat transport: IOSGatewayChatTransport uses operator session for
requests, node session for subscriptions
ClawdbotKit (shared):
- Deadlock fix in GatewayChannel.swift: Moved connection finalization
(listen(), connected=true, isConnecting=false, waiter resumption) to occur
before calling pushHandler. This fixes a latent bug where requests made
from onConnected callbacks would deadlock. Does not affect macOS (its
callback doesn't make requests).
- Package.swift: Fixed argument order for Swift 6.2 compatibility
iOS chat is now working. This is the base PR to unlock further work on
the iOS app.
2026-01-27 14:46:27 -08:00
Peter Steinberger
6d16a658e5
refactor: rename clawdbot to moltbot with legacy compat
2026-01-27 12:21:02 +00:00
Ryan Lisse
e14ff8f407
fix(ios): replace FileManager.default with FileManager() for Swift 6.2 compatibility
2026-01-20 07:37:01 +00:00
Peter Steinberger
79c93b2cf8
style: resolve swift lint warnings
2026-01-19 13:37:28 +00:00
Peter Steinberger
3776de906f
fix: stabilize gateway ws + iOS
2026-01-19 10:09:04 +00:00
Peter Steinberger
795985d339
refactor: migrate iOS gateway to unified ws
2026-01-19 10:08:33 +00:00
Peter Steinberger
1ab1e312b2
feat: add TLS for node bridge
2026-01-16 05:28:40 +00:00
Peter Steinberger
b77b47bb98
fix: use canonical main session keys in apps
2026-01-15 08:59:05 +00:00
Peter Steinberger
e2733d21bf
refactor(ios): require bridge stable ID
2026-01-10 16:23:53 +00:00
Peter Steinberger
f428ed9038
fix(ios): enable strict concurrency checks
2026-01-10 16:04:32 +00:00
Peter Steinberger
92cc7a841c
refactor: centralize main session key normalization in apps
2026-01-09 22:38:17 +01:00
Peter Steinberger
fd95ededaa
refactor: streamline node invoke handling
2026-01-04 16:24:17 +01:00
Peter Steinberger
246adaa119
chore: rename project to clawdbot
2026-01-04 14:38:51 +00:00
Peter Steinberger
e1dd764504
feat: add node location support
2026-01-04 00:54:44 +01:00
Peter Steinberger
74db53d939
feat: add camera list and device selection
2026-01-02 18:23:26 +01:00
Peter Steinberger
312443235d
fix(ios): unblock device builds
2025-12-30 11:16:15 +01:00
Peter Steinberger
f86772f26c
fix(talk): harden TTS + add system fallback
2025-12-30 07:40:02 +01:00
Peter Steinberger
7612a83fa2
fix(talk): align sessions and chat UI
2025-12-30 06:47:19 +01:00
Peter Steinberger
fb8f72d5a9
feat(ui): add centered talk orb
2025-12-30 05:27:29 +01:00
Peter Steinberger
d2ac672f47
feat: add ui.seamColor accent
2025-12-30 04:14:36 +01:00
Peter Steinberger
9846c46434
fix: tag A2UI platform and boost Android canvas
2025-12-30 03:49:24 +01:00
Peter Steinberger
303954ae8c
feat: extend status activity indicators
2025-12-29 23:42:22 +01:00
Peter Steinberger
20d7882033
feat: add talk mode across nodes
2025-12-29 23:21:05 +01:00
Peter Steinberger
14fae5af9e
test: add ios coverage hooks
2025-12-24 20:00:45 +01:00
Peter Steinberger
5adec0eae0
fix: align canvas defaults and A2UI auto-nav
2025-12-21 12:32:36 +01:00
Peter Steinberger
406a94bf76
fix: use A2UI message context
2025-12-21 01:48:21 +01:00
Peter Steinberger
2b2f13ca79
fix: restore canvas action bridge
2025-12-21 01:07:35 +01:00
Peter Steinberger
cf96ad8ef9
fix: route voice wake to main
2025-12-20 15:33:28 +01:00
Peter Steinberger
ed001a5f55
refactor(canvas): host A2UI via gateway
2025-12-20 12:17:27 +00:00
Peter Steinberger
d67bec0740
style: polish logging and lint hints
2025-12-20 01:48:29 +01:00
Peter Steinberger
22f9322905
fix(ios): refine canvas and screen handling
2025-12-19 17:47:04 +01:00
Peter Steinberger
beefda7f60
refactor: replace canvas.show with canvas.present
2025-12-19 03:35:33 +01:00
Peter Steinberger
74cdc1cf3e
feat: route mac control via nodes
2025-12-19 03:16:25 +01:00
Peter Steinberger
7f3be083c1
feat: add node screen recording across apps
2025-12-19 02:57:00 +01:00
Peter Steinberger
b5a89e8907
iOS: support jpeg canvas snapshots
2025-12-18 19:48:29 +01:00
Peter Steinberger
801e44f4eb
feat(node): show camera capture HUD
2025-12-18 14:49:07 +01:00
Peter Steinberger
790079c3b6
feat(canvas): remove setMode; host A2UI in scaffold
2025-12-18 13:18:24 +01:00
Peter Steinberger
c61bd6c84d
A2UI: share web UI and action bridge
2025-12-18 11:38:32 +01:00
Peter Steinberger
6f58a9d643
iOS: support canvas.a2ui push/reset
2025-12-18 10:44:32 +01:00
Peter Steinberger
efed2ae30f
Nodes: advertise canvas invoke commands
2025-12-18 02:06:35 +00:00
Peter Steinberger
21a27e3b65
Nodes: handle canvas.* commands on iOS/Android
2025-12-18 01:20:20 +00:00
Peter Steinberger
33bf5cf42a
iOS: centralize canvas commands and capabilities
2025-12-18 02:16:31 +01:00
Peter Steinberger
f8bea661fc
iOS: alias canvas.* invoke commands
2025-12-18 01:57:31 +01:00
Peter Steinberger
d3f4db649f
style(ios): use Offline bridge status
2025-12-18 00:20:37 +01:00
Peter Steinberger
4cbaee59cd
style(ios): swiftformat
2025-12-14 05:17:59 +00:00
Peter Steinberger
a48aebc78c
iOS: Fix canvas touch events and auto-hide status bubble
...
- Disable scroll on WKWebView to allow touch events to reach canvas
- Add WKNavigationDelegate to intercept clawdis:// deep links from canvas
- Wire up onDeepLink callback to handle taps on canvas buttons
- Auto-hide status bubble after 3 seconds
2025-12-14 05:14:26 +00:00
Peter Steinberger
b48a556de5
refactor(observation): migrate SwiftUI state
2025-12-14 05:06:34 +00:00
Peter Steinberger
0cef22ef83
feat(ios): sync wake words via gateway
2025-12-14 05:06:27 +00:00
Peter Steinberger
e2451484d9
feat(ios): unify manual bridge config and auto-reconnect
2025-12-14 01:55:40 +00:00
Peter Steinberger
a92eb1f33d
feat(camera): add snap/clip capture
2025-12-14 00:48:58 +00:00