Commit Graph

219 Commits

Author SHA1 Message Date
Peter Steinberger
1cc85703dc feat(ui): add centered talk orb 2025-12-30 05:27:29 +01:00
Peter Steinberger
ada86eb1e8 fix(voice): sync talk mode chat events 2025-12-30 05:27:11 +01:00
Peter Steinberger
add1fbdb11 fix: avoid iOS talk mode audio tap crash 2025-12-30 04:52:57 +01:00
Peter Steinberger
093ba105cd feat: add ui.seamColor accent 2025-12-30 04:14:36 +01:00
Peter Steinberger
8b5e7234cf fix: tag A2UI platform and boost Android canvas 2025-12-30 03:49:24 +01:00
Peter Steinberger
53a648363c feat: talk mode key distribution and tts polling 2025-12-30 01:57:58 +01:00
Peter Steinberger
a0c9e7dd8a chore: sync pending changes 2025-12-30 00:59:30 +01:00
Peter Steinberger
d271fe67b7 feat: move talk mode to overlay button 2025-12-30 00:01:21 +01:00
Peter Steinberger
5dee007aec fix: align ios lint and android build 2025-12-29 23:45:58 +01:00
Peter Steinberger
49073ea950 feat: extend status activity indicators 2025-12-29 23:42:22 +01:00
Peter Steinberger
8d2a27e83d feat: add talk mode across nodes 2025-12-29 23:21:05 +01:00
Peter Steinberger
ae40eab072 fix: align camera payload caps 2025-12-29 23:20:55 +01:00
Peter Steinberger
919c4df0fe fix: cap camera snap payload size 2025-12-29 23:12:20 +01:00
Peter Steinberger
6bf6097f50 feat: surface camera activity in status pill 2025-12-29 23:12:03 +01:00
Peter Steinberger
20f687fa8a fix: refresh bridge tokens and enrich node settings 2025-12-29 22:11:12 +01:00
Peter Steinberger
a273dca171 test: add ios swift testing + android kotest 2025-12-29 21:10:44 +01:00
Peter Steinberger
24263f3cce fix: mark screen recorder sendable 2025-12-29 20:28:06 +01:00
Peter Steinberger
d7a75e26ae fix: avoid self capture in ReplayKit start 2025-12-29 20:26:49 +01:00
Peter Steinberger
b25a580d55 fix: align ReplayKit stopCapture call 2025-12-29 20:25:44 +01:00
Peter Steinberger
97364f9045 fix: isolate ReplayKit capture state 2025-12-29 20:24:34 +01:00
Peter Steinberger
69b5e768d9 fix: avoid screen recorder data races 2025-12-29 20:22:26 +01:00
Peter Steinberger
b4e7995def fix: avoid main-actor stopCapture error 2025-12-29 20:20:14 +01:00
Peter Steinberger
ea56c558d7 fix: prevent iOS screen capture crash 2025-12-29 20:10:36 +01:00
Peter Steinberger
68b80f61f0 chore: set ios signing team for device builds 2025-12-29 17:38:21 +01:00
Peter Steinberger
dc70386428 fix: enable canvas webview scrolling on mobile nodes 2025-12-29 17:13:31 +01:00
Peter Steinberger
564bd85cac fix(ios): accept truthy A2UI ready check 2025-12-26 21:17:37 +01:00
Peter Steinberger
cb49ca2e76 chore(ios): auto team id fallback 2025-12-26 18:19:48 +01:00
Peter Steinberger
a0a2ec51ee chore(ios): add team id helper 2025-12-26 18:16:13 +01:00
Peter Steinberger
86fd2dd484 fix(ios): silence device build warnings 2025-12-26 18:09:44 +01:00
Peter Steinberger
e97bf09535 test: add ios coverage tests 2025-12-24 20:00:51 +01:00
Peter Steinberger
5c0a1cf778 test: add ios coverage hooks 2025-12-24 20:00:45 +01:00
Peter Steinberger
2cc531c55a test: cover bridge settings discovery 2025-12-24 18:07:41 +01:00
Peter Steinberger
daf3665a10 test: cover bridge hello defaults 2025-12-24 18:07:38 +01:00
Peter Steinberger
96107ae85e perf: gate idle pulse animations 2025-12-24 13:51:40 +01:00
Peter Steinberger
eaac00ebc3 feat: share wake gate via SwabbleKit 2025-12-23 01:31:59 +01:00
Peter Steinberger
ba54a4eced feat(ios): toggle debug canvas status 2025-12-21 14:21:06 +01:00
Peter Steinberger
75c1b370da fix: align canvas defaults and A2UI auto-nav 2025-12-21 12:32:36 +01:00
Peter Steinberger
0df20f4208 fix: clear canvas error banner on load 2025-12-21 03:21:48 +01:00
Peter Steinberger
727741e70d fix: use A2UI message context 2025-12-21 01:48:21 +01:00
Peter Steinberger
7cdeed35ce build: update iOS lint scripts 2025-12-21 01:48:21 +01:00
Peter Steinberger
7359c5ca13 fix: restore canvas action bridge 2025-12-21 01:07:35 +01:00
Peter Steinberger
172a59e03e chore(ios): link AppIntents framework 2025-12-21 00:24:24 +01:00
Peter Steinberger
ec86e49a5b refactor: serve canvas host on gateway port 2025-12-20 17:13:36 +01:00
Peter Steinberger
5163e83c74 fix: route voice wake to main 2025-12-20 15:33:28 +01:00
Peter Steinberger
ad3fef6b6b refactor(canvas): host A2UI via gateway 2025-12-20 12:17:27 +00:00
Peter Steinberger
246ed17f08 style: polish logging and lint hints 2025-12-20 01:48:29 +01:00
Peter Steinberger
7c9005e3a4 fix: tighten iOS main-actor handling 2025-12-20 01:48:29 +01:00
Peter Steinberger
3d05589486 fix: harden device model decoding 2025-12-20 01:48:29 +01:00
Peter Steinberger
95369a949d fix(ios): make parseA2UIActionBody nonisolated 2025-12-19 18:10:10 +01:00
Peter Steinberger
d8d189c5f2 fix(ios): refine canvas and screen handling 2025-12-19 17:47:04 +01:00
Peter Steinberger
be5ea7a288 refactor: replace canvas.show with canvas.present 2025-12-19 03:35:33 +01:00
Peter Steinberger
3f680103a6 feat: route mac control via nodes 2025-12-19 03:16:25 +01:00
Peter Steinberger
6ae65abf8a feat: add node screen recording across apps 2025-12-19 02:57:00 +01:00
Peter Steinberger
cd8ffa8cf7 fix(canvas): load A2UI resources across platforms 2025-12-19 01:53:55 +00:00
Peter Steinberger
af143a6135 iOS: fix camera clip clamp regression test 2025-12-19 00:53:06 +01:00
Peter Steinberger
5879979f34 iOS: allow Tailnet/MagicDNS canvas actions 2025-12-19 00:52:52 +01:00
Peter Steinberger
e3ca38389a iOS: allow A2UI actions from local canvas host 2025-12-18 23:31:49 +01:00
Peter Steinberger
8e6ae25313 iOS: allow HTTP loads in WKWebView 2025-12-18 19:59:43 +01:00
Peter Steinberger
f69d61a4a6 iOS: support jpeg canvas snapshots 2025-12-18 19:48:29 +01:00
Peter Steinberger
7d2ab6cbf7 feat(node): show camera capture HUD 2025-12-18 14:49:07 +01:00
Peter Steinberger
9d8ec2ddb4 fix(ios): restore ScreenController.mode 2025-12-18 13:56:40 +01:00
Peter Steinberger
5e2ab06325 chore(naming): remove remaining iris references 2025-12-18 13:30:22 +01:00
Peter Steinberger
8b3495bf0c chore(naming): remove Iris codename 2025-12-18 13:18:33 +01:00
Peter Steinberger
2658900eca feat(canvas): remove setMode; host A2UI in scaffold 2025-12-18 13:18:24 +01:00
Peter Steinberger
f56ee14e11 A2UI: share web UI and action bridge 2025-12-18 11:38:32 +01:00
Peter Steinberger
11f525cd96 iOS: support canvas.a2ui push/reset 2025-12-18 10:44:32 +01:00
Peter Steinberger
356474c8f7 ci: raise iOS coverage 2025-12-18 10:34:09 +01:00
Peter Steinberger
5608efc2f0 iOS: fix BridgeClient SwiftFormat indent 2025-12-18 08:40:59 +01:00
Peter Steinberger
66ff9d78bc ui: improve idle background blend mode fallback 2025-12-18 08:32:06 +01:00
Peter Steinberger
bc5bf51bd8 Nodes: advertise canvas invoke commands 2025-12-18 02:06:35 +00:00
Peter Steinberger
3f3b59953a fix(ui): harden idle background animation 2025-12-18 02:27:11 +01:00
Peter Steinberger
390613b46f Nodes: handle canvas.* commands on iOS/Android 2025-12-18 01:20:20 +00:00
Peter Steinberger
ba44406989 iOS: centralize canvas commands and capabilities 2025-12-18 02:16:31 +01:00
Peter Steinberger
9bd9cc13ce iOS: alias canvas.* invoke commands 2025-12-18 01:57:31 +01:00
Peter Steinberger
81ee4d7e04 gateway: persist and surface node capabilities 2025-12-18 01:36:38 +01:00
Peter Steinberger
b3292e3124 iOS: allow settings light mode 2025-12-18 01:29:45 +01:00
Peter Steinberger
155830f104 ui(nodes): unify idle background animation 2025-12-18 01:22:26 +01:00
Peter Steinberger
f61d88542a iOS: reorder settings sections 2025-12-18 01:00:36 +01:00
Peter Steinberger
1d1d42f1da style(ios): use Offline bridge status 2025-12-18 00:20:37 +01:00
Peter Steinberger
e9ea394f3e nodes: better default display names 2025-12-17 23:15:15 +01:00
Peter Steinberger
a4656602db style(swift): fix lint 2025-12-17 21:51:36 +01:00
Peter Steinberger
3725d08d00 Presence: add device identity fields 2025-12-17 21:51:36 +01:00
Peter Steinberger
dfcdc4a07a Bridge: advertise node capabilities 2025-12-17 20:03:56 +00:00
Peter Steinberger
c6ce562072 Mobile: prevent sleep setting 2025-12-17 21:01:47 +01:00
Peter Steinberger
38ba295496 feat(chat): Swift chat parity (abort/sessions/stream) 2025-12-17 20:51:27 +01:00
Peter Steinberger
8d42bd7147 Discovery: wide-area bridge DNS-SD
# Conflicts:
#	apps/ios/Sources/Bridge/BridgeDiscoveryModel.swift
#	src/cli/dns-cli.ts
2025-12-17 20:31:02 +01:00
Peter Steinberger
f221f577ff iOS: satisfy SwiftFormat in bridge discovery 2025-12-17 18:01:01 +01:00
Peter Steinberger
a9de193625 Nodes: auto-discover clawdis.internal 2025-12-17 17:01:30 +01:00
Peter Steinberger
8a1710abf9 iOS: allow unicast DNS-SD discovery domain 2025-12-17 14:14:17 +01:00
Peter Steinberger
99e2d82751 test(ios): bump app coverage 2025-12-14 06:09:28 +00:00
Peter Steinberger
1384fbed97 test(ios): cover RootCanvas bridge states 2025-12-14 05:51:48 +00:00
Peter Steinberger
e3e474b724 test(ios): exercise ScreenController eval 2025-12-14 05:51:12 +00:00
Peter Steinberger
668514d29b test(ios): cover ScreenController webview setup 2025-12-14 05:42:39 +00:00
Peter Steinberger
0c5b7995a2 Merge remote-tracking branch 'origin/main' 2025-12-14 05:31:06 +00:00
Peter Steinberger
504990193b fix(camera): harden capture pipeline 2025-12-14 05:30:34 +00:00
Peter Steinberger
c80fbb3f71 fix(ios): update observation env in smoke tests 2025-12-14 05:27:19 +00:00
Peter Steinberger
96293461b6 style(ios): swiftformat 2025-12-14 05:17:59 +00:00
Peter Steinberger
86fac4bb86 ui(ios): animate idle background 2025-12-14 05:17:59 +00:00
Peter Steinberger
286c1865c0 fix(ios): use Observation environment in settings 2025-12-14 05:17:59 +00:00
Peter Steinberger
e941333d8c 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