Peter Steinberger
fb8f72d5a9
feat(ui): add centered talk orb
2025-12-30 05:27:29 +01:00
Peter Steinberger
b5ae2ccc3c
fix(voice): sync talk mode chat events
2025-12-30 05:27:11 +01:00
Peter Steinberger
05efc3eace
fix: avoid iOS talk mode audio tap crash
2025-12-30 04:52:57 +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
e119a82334
feat: talk mode key distribution and tts polling
2025-12-30 01:57:58 +01:00
Peter Steinberger
7aabe73521
chore: sync pending changes
2025-12-30 00:59:30 +01:00
Peter Steinberger
c56292a6ec
feat: move talk mode to overlay button
2025-12-30 00:01:21 +01:00
Peter Steinberger
857cd6a28a
fix: align ios lint and android build
2025-12-29 23:45:58 +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
6927b0fb8d
fix: align camera payload caps
2025-12-29 23:20:55 +01:00
Peter Steinberger
8f0c8a6561
fix: cap camera snap payload size
2025-12-29 23:12:20 +01:00
Peter Steinberger
a61b7056d5
feat: surface camera activity in status pill
2025-12-29 23:12:03 +01:00
Peter Steinberger
b0396e196f
fix: refresh bridge tokens and enrich node settings
2025-12-29 22:11:12 +01:00
Peter Steinberger
cf42fabfd8
test: add ios swift testing + android kotest
2025-12-29 21:10:44 +01:00
Peter Steinberger
24151a2028
fix: mark screen recorder sendable
2025-12-29 20:28:06 +01:00
Peter Steinberger
c11e2d9e5e
fix: avoid self capture in ReplayKit start
2025-12-29 20:26:49 +01:00
Peter Steinberger
a8c9b2810b
fix: align ReplayKit stopCapture call
2025-12-29 20:25:44 +01:00
Peter Steinberger
7a849ab7d1
fix: isolate ReplayKit capture state
2025-12-29 20:24:34 +01:00
Peter Steinberger
c14d738d37
fix: avoid screen recorder data races
2025-12-29 20:22:26 +01:00
Peter Steinberger
65478a6ff3
fix: avoid main-actor stopCapture error
2025-12-29 20:20:14 +01:00
Peter Steinberger
41be9232fe
fix: prevent iOS screen capture crash
2025-12-29 20:10:36 +01:00
Peter Steinberger
aa2700ffa7
chore: set ios signing team for device builds
2025-12-29 17:38:21 +01:00
Peter Steinberger
ebfe55f909
fix: enable canvas webview scrolling on mobile nodes
2025-12-29 17:13:31 +01:00
Peter Steinberger
ba1626a5b9
fix(ios): accept truthy A2UI ready check
2025-12-26 21:17:37 +01:00
Peter Steinberger
f4d41ef254
chore(ios): auto team id fallback
2025-12-26 18:19:48 +01:00
Peter Steinberger
b9d80aa535
chore(ios): add team id helper
2025-12-26 18:16:13 +01:00
Peter Steinberger
541b8cbb6c
fix(ios): silence device build warnings
2025-12-26 18:09:44 +01:00
Peter Steinberger
3774494f7e
test: add ios coverage tests
2025-12-24 20:00:51 +01:00
Peter Steinberger
14fae5af9e
test: add ios coverage hooks
2025-12-24 20:00:45 +01:00
Peter Steinberger
01719b02e2
test: cover bridge settings discovery
2025-12-24 18:07:41 +01:00
Peter Steinberger
4ba86bbe00
test: cover bridge hello defaults
2025-12-24 18:07:38 +01:00
Peter Steinberger
88d20c5419
perf: gate idle pulse animations
2025-12-24 13:51:40 +01:00
Peter Steinberger
ef35868bef
feat: share wake gate via SwabbleKit
2025-12-23 01:31:59 +01:00
Peter Steinberger
30d84643db
feat(ios): toggle debug canvas status
2025-12-21 14:21:06 +01:00
Peter Steinberger
5adec0eae0
fix: align canvas defaults and A2UI auto-nav
2025-12-21 12:32:36 +01:00
Peter Steinberger
0197fb35fe
fix: clear canvas error banner on load
2025-12-21 03:21:48 +01:00
Peter Steinberger
406a94bf76
fix: use A2UI message context
2025-12-21 01:48:21 +01:00
Peter Steinberger
fef1841fee
build: update iOS lint scripts
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
1d715d7b1b
chore(ios): link AppIntents framework
2025-12-21 00:24:24 +01:00
Peter Steinberger
65329496a7
refactor: serve canvas host on gateway port
2025-12-20 17:13:36 +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
b2e11c504b
fix: tighten iOS main-actor handling
2025-12-20 01:48:29 +01:00
Peter Steinberger
1b38ee8b46
fix: harden device model decoding
2025-12-20 01:48:29 +01:00
Peter Steinberger
aec1869d32
fix(ios): make parseA2UIActionBody nonisolated
2025-12-19 18:10:10 +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
b8012a2281
fix(canvas): load A2UI resources across platforms
2025-12-19 01:53:55 +00:00
Peter Steinberger
8f0b5d2d97
iOS: fix camera clip clamp regression test
2025-12-19 00:53:06 +01:00
Peter Steinberger
0e3e4f269d
iOS: allow Tailnet/MagicDNS canvas actions
2025-12-19 00:52:52 +01:00
Peter Steinberger
9ace6af3df
iOS: allow A2UI actions from local canvas host
2025-12-18 23:31:49 +01:00
Peter Steinberger
2307756892
iOS: allow HTTP loads in WKWebView
2025-12-18 19:59:43 +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
16e2193911
fix(ios): restore ScreenController.mode
2025-12-18 13:56:40 +01:00
Peter Steinberger
982f85bf90
chore(naming): remove remaining iris references
2025-12-18 13:30:22 +01:00
Peter Steinberger
d182f7e4b2
chore(naming): remove Iris codename
2025-12-18 13:18:33 +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
402b04a68c
ci: raise iOS coverage
2025-12-18 10:34:09 +01:00
Peter Steinberger
2f21b94a76
iOS: fix BridgeClient SwiftFormat indent
2025-12-18 08:40:59 +01:00
Peter Steinberger
6f1ae147da
ui: improve idle background blend mode fallback
2025-12-18 08:32:06 +01:00
Peter Steinberger
efed2ae30f
Nodes: advertise canvas invoke commands
2025-12-18 02:06:35 +00:00
Peter Steinberger
3df53836ca
fix(ui): harden idle background animation
2025-12-18 02:27:11 +01: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
99325040f8
gateway: persist and surface node capabilities
2025-12-18 01:36:38 +01:00
Peter Steinberger
568fcbda54
iOS: allow settings light mode
2025-12-18 01:29:45 +01:00
Peter Steinberger
f4b186a9d3
ui(nodes): unify idle background animation
2025-12-18 01:22:26 +01:00
Peter Steinberger
7707e3d887
iOS: reorder settings sections
2025-12-18 01:00:36 +01:00
Peter Steinberger
d3f4db649f
style(ios): use Offline bridge status
2025-12-18 00:20:37 +01:00
Peter Steinberger
b3e466ccb6
nodes: better default display names
2025-12-17 23:15:15 +01:00
Peter Steinberger
2b2376d4c0
style(swift): fix lint
2025-12-17 21:51:36 +01:00
Peter Steinberger
51bdf01e2e
Presence: add device identity fields
2025-12-17 21:51:36 +01:00
Peter Steinberger
079c1d8786
Bridge: advertise node capabilities
2025-12-17 20:03:56 +00:00
Peter Steinberger
7fe7c30b17
Mobile: prevent sleep setting
2025-12-17 21:01:47 +01:00
Peter Steinberger
428a82e734
feat(chat): Swift chat parity (abort/sessions/stream)
2025-12-17 20:51:27 +01:00
Peter Steinberger
557ffdbe35
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
0a32610b37
iOS: satisfy SwiftFormat in bridge discovery
2025-12-17 18:01:01 +01:00
Peter Steinberger
2ce24fdbf8
Nodes: auto-discover clawdis.internal
2025-12-17 17:01:30 +01:00
Peter Steinberger
316a04f606
iOS: allow unicast DNS-SD discovery domain
2025-12-17 14:14:17 +01:00
Peter Steinberger
e82ee731bf
test(ios): bump app coverage
2025-12-14 06:09:28 +00:00
Peter Steinberger
5e09aae4ca
test(ios): cover RootCanvas bridge states
2025-12-14 05:51:48 +00:00
Peter Steinberger
740f7b0fb6
test(ios): exercise ScreenController eval
2025-12-14 05:51:12 +00:00
Peter Steinberger
7510a6f66a
test(ios): cover ScreenController webview setup
2025-12-14 05:42:39 +00:00
Peter Steinberger
08bfe2b263
Merge remote-tracking branch 'origin/main'
2025-12-14 05:31:06 +00:00
Peter Steinberger
7d4c8ef6b2
fix(camera): harden capture pipeline
2025-12-14 05:30:34 +00:00
Peter Steinberger
1b83fc85cd
fix(ios): update observation env in smoke tests
2025-12-14 05:27:19 +00:00
Peter Steinberger
4cbaee59cd
style(ios): swiftformat
2025-12-14 05:17:59 +00:00
Peter Steinberger
0d10aa4098
ui(ios): animate idle background
2025-12-14 05:17:59 +00:00
Peter Steinberger
f3f8aa5397
fix(ios): use Observation environment in settings
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
caaa79bb76
style(ios): swiftformat
2025-12-14 04:47:15 +00:00
Peter Steinberger
9e80764c2b
feat(ios): add discovery debug logs
2025-12-14 04:36:00 +00:00
Peter Steinberger
845b26a73b
fix(camera): retain capture delegates
2025-12-14 04:31:04 +00:00
Peter Steinberger
dde9fddae4
style(swift): fix lint and formatting warnings
2025-12-14 03:49:34 +00:00
Peter Steinberger
d0134722af
test(ios): cover bridge client + more views
2025-12-14 03:39:33 +00:00
Peter Steinberger
eec6212cdf
test(ios): add smoke coverage tests
2025-12-14 03:29:08 +00:00
Peter Steinberger
d7165b4720
feat(ios): add always-on status overlay
2025-12-14 03:00:55 +00:00
Peter Steinberger
7b1163f75c
fix(ios): satisfy Sendable in bridge timeout
2025-12-14 03:00:55 +00:00
Peter Steinberger
dbd3865e3b
test(ios): cover settings host/port parsing
2025-12-14 02:47:07 +00:00
Peter Steinberger
6bf1e6fa06
test(ios): cover voice trigger + camera clamps
2025-12-14 02:47:06 +00:00
Peter Steinberger
1c0170554e
fix(ios): timeout bridge connect
2025-12-14 02:41:51 +00:00
Peter Steinberger
974ab5a8dd
test(ios): add bridge session + keychain suites
2025-12-14 02:37:47 +00:00
Peter Steinberger
455fe15bd1
Merge remote-tracking branch 'origin/main'
2025-12-14 02:37:13 +00:00
Peter Steinberger
c4d0eb9350
fix(ios): make fastlane beta lane work
2025-12-14 02:35:59 +00:00
Peter Steinberger
10d95348b1
fix(ios): make fastlane beta lane work
2025-12-14 02:35:35 +00:00
Peter Steinberger
f86b1cf6a1
fix(camera): modernize mp4 export
2025-12-14 02:34:22 +00:00
Peter Steinberger
7318b20f55
chore(fastlane): support p8 key path
2025-12-14 02:20:25 +00:00
Peter Steinberger
322a36f365
chore(fastlane): support p8 key path
2025-12-14 02:19:51 +00:00
Peter Steinberger
b8b20eac6d
fix(ios): make connection badge visible
2025-12-14 02:19:20 +00:00
Peter Steinberger
1fb123d701
Merge remote-tracking branch 'origin/main' into tmp/ios-statusicon
2025-12-14 02:18:09 +00:00
Peter Steinberger
138f4bd850
fix(ios): show connection status badge
2025-12-14 02:17:54 +00:00
Peter Steinberger
20abf31093
test(ios): share scheme and add deep link tests
2025-12-14 02:17:44 +00:00
Peter Steinberger
a1d16c61ec
feat(ios): add fastlane setup
2025-12-14 02:10:31 +00:00
Peter Steinberger
64b5eb8279
test(ios): add unit test target
2025-12-14 02:05:50 +00:00
Peter Steinberger
c66122c255
fix(ios): set CFBundleIconName
2025-12-14 02:05:44 +00:00
Peter Steinberger
c3fa1fb736
feat(camera): share jpeg transcoder + default maxWidth
2025-12-14 02:00:48 +00:00
Peter Steinberger
e9eb9edc23
fix(ios): remove white border from app icon
2025-12-14 01:58:35 +00:00
Peter Steinberger
e2451484d9
feat(ios): unify manual bridge config and auto-reconnect
2025-12-14 01:55:40 +00:00
Peter Steinberger
66b05163e3
fix(ios): ensure app icon asset catalog
2025-12-14 01:50:51 +00:00
Peter Steinberger
0336c1fa37
fix(ios): use mac icon + avoid voice wake crash
2025-12-14 01:09:40 +00:00
Peter Steinberger
a92eb1f33d
feat(camera): add snap/clip capture
2025-12-14 00:48:58 +00:00
Peter Steinberger
2454e67e09
feat(ios): reconnect to last discovered gateway
2025-12-14 00:48:16 +00:00
Peter Steinberger
862a490038
feat(ios): pulse settings indicator
2025-12-14 00:48:09 +00:00
Peter Steinberger
f7076c38ea
feat(ios): reconnect to last bridge
2025-12-14 00:27:26 +00:00
Peter Steinberger
e6d522493b
feat(chat): share SwiftUI chat across macOS+iOS
2025-12-14 00:17:07 +00:00
Peter Steinberger
b508f642b2
iOS: configurable voice wake words
2025-12-13 23:49:22 +00:00
Peter Steinberger
b01cb41950
iOS: copy bridge URL/host/port
2025-12-13 23:40:12 +00:00
Peter Steinberger
7642cbb5b7
iOS: show local IP in settings
2025-12-13 23:37:02 +00:00
Peter Steinberger
7a6334d920
iOS: copy + clean bridge address
2025-12-13 23:32:57 +00:00
Peter Steinberger
ceb3980b93
iOS: disable VoiceWake on Simulator
2025-12-13 20:52:31 +00:00
Peter Steinberger
6143338116
chore(swift): run swiftformat and clear swiftlint
2025-12-13 19:53:17 +00:00
Peter Steinberger
e2a93e17f9
refactor: apply stashed bridge + CLI changes
2025-12-13 19:30:46 +00:00
Peter Steinberger
920cc9ac38
fix(ios): avoid actor-isolated access from audio tap
2025-12-13 19:14:36 +00:00
Peter Steinberger
3b853b329f
fix(bridge): prefer bonjour TXT displayName
2025-12-13 18:31:06 +00:00
Peter Steinberger
7c3502f031
fix(ios): improve bridge discovery and pairing UX
2025-12-13 17:58:03 +00:00
Peter Steinberger
86ed3de1c1
feat(browser): add clawdis-mac browser controls
2025-12-13 17:05:58 +00:00
Peter Steinberger
1ca77bee26
chore(ios): rename app to Clawdis
2025-12-13 13:11:31 +00:00
Peter Steinberger
3863fe6412
fix(ios): stabilize voice wake + bridge UI
2025-12-13 12:29:39 +00:00
Peter Steinberger
ec653b7b80
chore: share bonjour escapes + refresh webchat bundle
2025-12-13 10:59:48 +00:00
Peter Steinberger
1f37d94f9e
feat(discovery): bonjour beacons + bridge presence
2025-12-13 04:28:43 +00:00
Peter Steinberger
e95fdbbc37
fix(ios): prettify bonjour endpoint labels
2025-12-13 02:48:06 +00:00
Peter Steinberger
594315d90b
ui(ios): glassy settings button
2025-12-13 02:19:34 +00:00
Peter Steinberger
f84895f1f1
fix(ios): make canvas full-bleed
2025-12-13 02:15:03 +00:00
Peter Steinberger
73ccbedcdb
ui(ios): clean up connected bridge list
2025-12-13 02:02:38 +00:00
Peter Steinberger
7ef83311bb
feat(bridge): show node ip in pairing
2025-12-13 01:57:40 +00:00
Peter Steinberger
416c376077
feat(ios): add close button and ready canvas
2025-12-13 01:49:04 +00:00
Peter Steinberger
ae0c1573fd
refactor(swift): rename ClawdisNodeKit to ClawdisKit
2025-12-13 01:33:30 +00:00
Peter Steinberger
378e5acd23
feat(deeplink): forward agent links via bridge
2025-12-13 01:19:36 +00:00
Peter Steinberger
8cc2dc715c
refactor(ios): minimal full-screen canvas
2025-12-13 00:50:20 +00:00
Peter Steinberger
7f4f01009b
refactor(ios): remove manual URL controls
2025-12-13 00:31:52 +00:00
Peter Steinberger
117b01acbd
fix(ios): avoid MainActor isolation in audio tap
2025-12-13 00:27:15 +00:00
Peter Steinberger
2b38ddf78d
fix(ios): avoid actor isolation in audio tap
2025-12-13 00:27:15 +00:00
Peter Steinberger
e502ad13f9
fix(node): prevent iOS VoiceWake crash
2025-12-12 23:07:30 +00:00
Peter Steinberger
9cf457be0a
fix(bridge): use default Bonjour domain
2025-12-12 21:59:04 +00:00
Peter Steinberger
e31383a8f1
fix(ios): harden voice wake callbacks
2025-12-12 21:59:04 +00:00
Peter Steinberger
1d41129b6c
feat(ios): add settings UI
2025-12-12 21:19:39 +00:00
Peter Steinberger
6d6c3ad2c4
feat(ios): add ClawdisNode app scaffold
2025-12-12 21:19:39 +00:00