Commit Graph

981 Commits

Author SHA1 Message Date
Peter Steinberger
0fdc21cfb3 fix(android): use system DNS for wide-area discovery 2025-12-18 01:04:13 +01:00
Peter Steinberger
9b09d765b2 Android: reorder settings sections 2025-12-18 01:00:50 +01:00
Peter Steinberger
f61d88542a iOS: reorder settings sections 2025-12-18 01:00:36 +01:00
Peter Steinberger
851220a148 fix(android): show idle background under WebView 2025-12-18 00:53:31 +01:00
Peter Steinberger
4b7e1f629b macOS: unify device + OS chip 2025-12-18 00:43:58 +01:00
Peter Steinberger
afc1c34cee style(android): improve idle background 2025-12-18 00:41:21 +01:00
Peter Steinberger
4b05aeeee2 style(android): use tonal surfaces for overlays 2025-12-18 00:34:11 +01:00
Peter Steinberger
18969e2379 macOS: remove Instances row duplication 2025-12-18 00:28:45 +01:00
Peter Steinberger
0b3e141c54 macOS: compact Instances row 2025-12-18 00:24:10 +01:00
Peter Steinberger
1d1d42f1da style(ios): use Offline bridge status 2025-12-18 00:20:37 +01:00
Peter Steinberger
52c3a8d340 style(android): use Offline bridge status 2025-12-18 00:20:28 +01:00
Peter Steinberger
03ed0f3509 refactor(android): unify chat status label 2025-12-18 00:20:19 +01:00
Peter Steinberger
a9e17fe0ae Android: enable immersive fullscreen 2025-12-18 00:07:58 +01:00
Peter Steinberger
d26e7919d5 Android: polish settings UI 2025-12-18 00:07:52 +01:00
Peter Steinberger
6dd59a6641 style(android): make chat more Material 2025-12-17 23:57:14 +01:00
Peter Steinberger
484ee2b38d feat(android): chat parity + wide-area discovery 2025-12-17 23:49:29 +01:00
Peter Steinberger
fc6ea62736 macOS: remove stale WebChat exclude 2025-12-17 23:31:46 +01:00
Peter Steinberger
15d9e5d443 chore(webchat): remove legacy bundled web assets 2025-12-17 23:27:27 +01:00
Peter Steinberger
e9ea394f3e nodes: better default display names 2025-12-17 23:15:15 +01:00
Peter Steinberger
75eeb3750e refactor(webchat): SwiftUI-only WebChat UI
# Conflicts:
#	apps/macos/Package.swift
2025-12-17 23:05:28 +01:00
Peter Steinberger
ac757375d9 ChatUI: swiftformat fixes 2025-12-17 23:01:31 +01:00
Peter Steinberger
d615cb33f3 ui(chat): reduce padding 2025-12-17 23:01:31 +01:00
Peter Steinberger
14562535cc ui(chat): align status pill with send 2025-12-17 23:01:31 +01:00
Peter Steinberger
66e967450b ui(chat): tighten padding + keep status in composer 2025-12-17 23:01:31 +01:00
Peter Steinberger
2ef77bf66b ui(chat): move connection pill into composer 2025-12-17 23:01:30 +01:00
Peter Steinberger
670d8b7662 test(chat): harden abort/stream + hide session switching 2025-12-17 23:01:30 +01:00
Peter Steinberger
cbdd1ad654 macOS: load device model names from dataset 2025-12-17 22:55:50 +01:00
Peter Steinberger
e1b5e4fb85 fix(android): canvas idle background + tailscale DNS 2025-12-17 22:27:16 +01:00
Peter Steinberger
bbe686b1cf macOS: show friendly device names in Instances 2025-12-17 22:23:57 +01:00
Peter Steinberger
23b5392011 style(android): format bridge hello 2025-12-17 22:04:51 +01:00
Peter Steinberger
a0e9e8fe13 feat(android): iOS canvas background 2025-12-17 22:03:11 +01:00
Peter Steinberger
3c0bd39718 feat(android): add status pill overlay 2025-12-17 22:00:12 +01:00
Peter Steinberger
2a1d3b6326 fix(android): dedupe hello fields 2025-12-17 21:53:38 +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
278ea0984e Docs/tests: node list hardware fields 2025-12-17 20:11:13 +00:00
Peter Steinberger
d7ea011621 clawdis-mac: show hardware model in node list 2025-12-17 20:11:05 +00:00
Peter Steinberger
aa4f32eabc Android: advertise device model to bridge 2025-12-17 20:10:58 +00:00
Peter Steinberger
aaffc72f19 macOS: include node hardware identifiers 2025-12-17 20:10:50 +00:00
Peter Steinberger
c53d9f1476 Tests: cover clawdis-mac node list 2025-12-17 20:03:56 +00:00
Peter Steinberger
391a8870df clawdis-mac: enrich node list output 2025-12-17 20:03:56 +00:00
Peter Steinberger
dfcdc4a07a Bridge: advertise node capabilities 2025-12-17 20:03:56 +00:00
Peter Steinberger
10120a6824 macOS: fix InstanceInfo device fields 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
44d243dc95 fix(android): bonjour discovery parity 2025-12-17 20:57:04 +01:00
Peter Steinberger
38ba295496 feat(chat): Swift chat parity (abort/sessions/stream) 2025-12-17 20:51:27 +01:00
Peter Steinberger
e0f84b6b5d tools: add blucli 2025-12-17 20:39:34 +01:00
Peter Steinberger
3024056e0e Canvas: click progress + context-rich actions 2025-12-17 20:34:54 +01:00
Peter Steinberger
d8152f1ba0 fix(macos): improve canvas A2UI forwarding 2025-12-17 20:31:21 +01:00
Peter Steinberger
bc754f6a04 Menu: reopen canvas without reload 2025-12-17 20:31:21 +01:00
Peter Steinberger
37c931ae4a Canvas: fix A2UI click actions 2025-12-17 20:31:21 +01:00
Peter Steinberger
fc10e137d9 macOS: auto-start gateway for Canvas actions 2025-12-17 20:31:21 +01:00
Peter Steinberger
50d5c2f9dd macOS: fix gateway strict-concurrency issues 2025-12-17 20:31:21 +01:00
Peter Steinberger
7c931e34d6 macOS: fold agent control into GatewayConnection 2025-12-17 20:31:21 +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
6bad593b22 chore(canvas): rebuild CanvasA2UI bundle 2025-12-17 19:15:19 +00:00
Peter Steinberger
f149737cc2 feat(macos): show Anthropic auth mode + OAuth connect 2025-12-17 19:15:19 +00:00
Peter Steinberger
bf090ddcd1 fix(macos): sync node pairing approvals 2025-12-17 19:15:19 +00: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
c4bc45aa01 GatewayConnection: validate agent message 2025-12-17 16:09:22 +01:00
Peter Steinberger
93e3308e19 macOS: fold AgentRPC into GatewayConnection 2025-12-17 16:07:37 +01:00
Peter Steinberger
9acb6b54f1 Canvas: forward A2UI actions 2025-12-17 15:41:04 +01:00
Peter Steinberger
087837d874 Android: fix unicast discovery address resolution 2025-12-17 15:32:07 +01:00
Peter Steinberger
2018c1320f Android: add unicast discovery domain + app icon 2025-12-17 15:29:45 +01:00
Peter Steinberger
ef9a69870a Canvas: shrink close button 2025-12-17 14:52:32 +01:00
Peter Steinberger
732389f7ee Canvas: add vibrancy close pill 2025-12-17 14:50:29 +01:00
Peter Steinberger
c6b52a0172 Canvas: fix A2UI push rendering 2025-12-17 14:36:42 +01:00
Peter Steinberger
8a1710abf9 iOS: allow unicast DNS-SD discovery domain 2025-12-17 14:14:17 +01:00
Peter Steinberger
6387305319 Canvas: fix A2UI v0.8 rendering 2025-12-17 13:20:27 +01:00
Peter Steinberger
f8bdd6d785 feat(macos): add menu Canvas open/close 2025-12-17 11:53:57 +01:00
Peter Steinberger
7b2a45f0e2 fix(macos): avoid treating '/' as file target 2025-12-17 11:36:51 +01:00
Peter Steinberger
c6fcfd3865 macOS: update config settings copy 2025-12-17 11:36:21 +01:00
Peter Steinberger
a38b340e07 feat(macos): add Canvas A2UI renderer 2025-12-17 11:35:06 +01:00
Peter Steinberger
df6f032f86 Canvas: simplify show + report status 2025-12-17 10:37:35 +01:00
Peter Steinberger
d293c36c85 fix(macos): anchor canvas panel to active screen 2025-12-17 09:28:53 +01:00
Peter Steinberger
2351387916 fix(chat): reduce system spam and cap history 2025-12-16 20:35:03 +01:00
Peter Steinberger
428a55971b fix(chat-ui): improve typing dots and composer 2025-12-16 20:13:23 +01:00
Peter Steinberger
1764880037 test(macos): guard FileHandle read APIs 2025-12-16 10:41:47 +01:00
Peter Steinberger
2c97f97a3e fix(macos): use safe FileHandle reads 2025-12-16 10:41:47 +01:00
Tu Nombre Real
90c5fce647 fix(macos): lazy-init AVAudioEngine to prevent Bluetooth audio ducking
Creating AVAudioEngine at singleton init time causes macOS to switch
Bluetooth headphones from A2DP (high quality) to HFP (headset) profile,
resulting in degraded audio quality even when Voice Wake is disabled.

This change makes audioEngine optional and only creates it when voice
recognition actually starts, preventing the profile switch for users
who don't use Voice Wake.

Fixes #30

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 09:35:02 +00:00
Peter Steinberger
672aab20c4 ui(macos): remove Claude auth skip button 2025-12-14 19:23:49 +00:00
Peter Steinberger
cb3b0ffd4b ui(macos): polish onboarding wording 2025-12-14 19:22:31 +00:00
Peter Steinberger
e69e5bbf60 fix(macos): hide skipped onboarding panes 2025-12-14 19:14:05 +00:00
Peter Steinberger
46aaa097da ui(macos): recommend Opus on Claude step 2025-12-14 19:13:55 +00:00
Peter Steinberger
3aef8aea20 ui(macos): tweak Claude sign-in copy 2025-12-14 19:12:52 +00:00
Peter Steinberger
5997653cfc fix(macos): clarify OAuth detection 2025-12-14 19:10:48 +00:00
Peter Steinberger
c6262f9dfb docs(macos): critter-first onboarding copy 2025-12-14 06:26:51 +00: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
dba10a46bb fix(android): avoid non-exhaustive sheet switch 2025-12-14 05:42:39 +00:00
Peter Steinberger
476fffc26f Merge remote-tracking branch 'origin/main' 2025-12-14 05:32:24 +00:00
Peter Steinberger
0c5b7995a2 Merge remote-tracking branch 'origin/main' 2025-12-14 05:31:06 +00:00
Peter Steinberger
355bf31580 test(macos): cover control/camera disabled paths 2025-12-14 05:30:39 +00:00
Peter Steinberger
504990193b fix(camera): harden capture pipeline 2025-12-14 05:30:34 +00:00
Peter Steinberger
0895ec5a34 refactor(macos): tidy gateway discovery naming 2025-12-14 05:30:07 +00:00
Peter Steinberger
a6544fd622 fix(android): respect insets and enable settings scroll 2025-12-14 05:30:07 +00:00
Peter Steinberger
c80fbb3f71 fix(ios): update observation env in smoke tests 2025-12-14 05:27:19 +00:00
Peter Steinberger
53740c56d9 fix(macos): fix oauth base64 helper visibility 2025-12-14 05:19:49 +00:00
Peter Steinberger
0e76a55661 fix(chat-ui): reflect gateway connection 2025-12-14 05:19:01 +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
aa597631c2 fix(macos): satisfy swiftformat 2025-12-14 05:16:03 +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
Peter Steinberger
7a5e9d8258 style(macos): swiftformat 2025-12-14 05:09:48 +00:00
Peter Steinberger
2c5a612329 refactor(observation): migrate SwiftUI state 2025-12-14 05:06:34 +00:00
Peter Steinberger
bd47aa4522 refactor(chat-ui): compact layout 2025-12-14 05:06:34 +00:00
Peter Steinberger
63fbafc80f feat(android): sync wake words via gateway 2025-12-14 05:06:27 +00:00
Peter Steinberger
1d16c110c1 feat(ios): sync wake words via gateway 2025-12-14 05:06:27 +00:00
Peter Steinberger
2c0a2a4d8b feat(macos): sync wake words via gateway 2025-12-14 05:06:27 +00:00
Peter Steinberger
db8278ea31 fix(macos): live-check Pi oauth.json 2025-12-14 04:48:03 +00:00
Peter Steinberger
9374c0b786 style(ios): swiftformat 2025-12-14 04:47:15 +00:00
Peter Steinberger
8ab161e1e4 style(macos): swiftformat 2025-12-14 04:42:04 +00:00
Peter Steinberger
1839f766b9 chore(protocol): sync generated artifacts 2025-12-14 04:42:04 +00:00
Peter Steinberger
a09fd319ef feat(ios): add discovery debug logs 2025-12-14 04:36:00 +00:00
Peter Steinberger
bbcf078dce fix(android): safe area + settings scroll 2025-12-14 04:35:06 +00:00
Peter Steinberger
8b25844f85 test(macos): boost Clawdis coverage to 40% 2025-12-14 04:31:04 +00:00
Peter Steinberger
84d466ed1a fix(camera): retain capture delegates 2025-12-14 04:31:04 +00:00
Peter Steinberger
0105786fe3 fix(chat): improve history + polish SwiftUI panel 2025-12-14 04:31:04 +00:00
Peter Steinberger
420e6040ed fix(macos): sane chat window placement 2025-12-14 04:31:04 +00:00
Peter Steinberger
c040262c78 chore(tools): match repo emojis 2025-12-14 04:31:04 +00:00
Peter Steinberger
92fa839c6b chore(tools): add emoji tool names 2025-12-14 04:31:04 +00:00
Peter Steinberger
7ebf20a098 fix(webchat): reconnect gateway ws 2025-12-14 04:31:04 +00:00
Peter Steinberger
526e04bbe5 fix(macos): suggest critter emojis only 2025-12-14 04:29:07 +00:00
Peter Steinberger
de890f66bc feat(macos): onboard Claude OAuth + identity 2025-12-14 04:22:38 +00:00
Peter Steinberger
c794c5a4cf ui(macos): skip whatsapp onboarding in remote mode 2025-12-14 04:20:16 +00:00
Peter Steinberger
4049ea0582 chore(macos): silence onboarding type length lint 2025-12-14 04:09:20 +00:00
Peter Steinberger
d21ca93b50 refactor(macos): simplify bridge frame handling 2025-12-14 04:09:20 +00:00
Peter Steinberger
044487f255 ui(macos): always enable deep links 2025-12-14 04:06:34 +00:00
Peter Steinberger
bc0c7f7c08 style: satisfy formatters 2025-12-14 04:03:32 +00:00
Peter Steinberger
2e94ceafc1 ui(macos): remove duplicate canvas toggle 2025-12-14 04:00:57 +00:00
Peter Steinberger
6f1e3d1d31 ui(macos): fix security notice wrapping 2025-12-14 03:57:32 +00:00
Peter Steinberger
91d9ba04c4 ui(macos): make master discovery selectable 2025-12-14 03:53:45 +00:00
Peter Steinberger
58b00c67c2 style(swift): fix lint and formatting warnings 2025-12-14 03:49:34 +00:00
Peter Steinberger
601b68cf33 ui(macos): skip local onboarding steps in remote mode 2025-12-14 03:49:17 +00:00
Peter Steinberger
1c5c8d3ac5 ui(macos): lower onboarding welcome content 2025-12-14 03:45:27 +00:00
Peter Steinberger
dd623e4607 test(ios): cover bridge client + more views 2025-12-14 03:39:33 +00:00
Peter Steinberger
1ece6a1e16 fix(macos): hide session store path in remote mode 2025-12-14 03:38:47 +00:00
Peter Steinberger
bceae364e9 feat(macos): move camera setting to General 2025-12-14 03:33:24 +00:00
Peter Steinberger
c8051f43a5 test(ios): add smoke coverage tests 2025-12-14 03:29:08 +00:00
Peter Steinberger
fc5d3e5a7e docs: recommend git repo for workspace backups 2025-12-14 03:19:02 +00:00
Peter Steinberger
d6eca6382a feat: bootstrap agent workspace and AGENTS.md 2025-12-14 03:14:58 +00:00
Peter Steinberger
715739d3d2 fix(android): make settings sheet scrollable 2025-12-14 03:13:36 +00:00
Peter Steinberger
0a45f8e8a0 fix(android): inset top buttons for status bar 2025-12-14 03:10:46 +00:00
Peter Steinberger
3357936f3b test(macos): cover settings + activity models 2025-12-14 03:06:12 +00:00
Peter Steinberger
610692f072 feat(ios): add always-on status overlay 2025-12-14 03:00:55 +00:00
Peter Steinberger
0b912bb312 fix(ios): satisfy Sendable in bridge timeout 2025-12-14 03:00:55 +00:00