Commit Graph

808 Commits

Author SHA1 Message Date
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