Peter Steinberger
48ab168df2
fix: bridge gateway anycodable payloads
2026-01-20 15:48:52 +00:00
Peter Steinberger
1f7cb4b853
fix: shorten bonjour gateway service type
2026-01-20 15:10:06 +00:00
Peter Steinberger
fa51294f65
fix: sync mobile gateway auth v3
2026-01-20 13:30:40 +00:00
Peter Steinberger
409a16060b
feat: enrich presence with roles
2026-01-20 13:04:20 +00:00
Peter Steinberger
d8cc7db5e6
feat: wire role-scoped device creds
2026-01-20 13:04:19 +00:00
Peter Steinberger
dfbf6ac263
feat: enforce device-bound connect challenge
2026-01-20 13:04:19 +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
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
2f8206862a
refactor: remove bridge protocol
2026-01-19 10:08:29 +00:00
Peter Steinberger
49d8ad3049
feat: surface node core/ui versions in macOS
2026-01-18 16:00:36 +00:00
Peter Steinberger
3686bde783
feat: add exec approvals tooling and service status
2026-01-18 15:23:41 +00:00
Peter Steinberger
ae0b4c4990
feat: add exec host routing + node daemon
2026-01-18 07:46:00 +00:00
Peter Steinberger
efdb33c975
feat: add exec host approvals flow
2026-01-18 04:27:41 +00:00
Peter Steinberger
0674f1fa3c
feat: add exec approvals allowlists
2026-01-18 01:34:31 +00:00
Peter Steinberger
949fa1051f
fix: wire markdown variant renderer
2026-01-16 09:19:25 +00:00
Peter Steinberger
7c34883267
refactor: consolidate chat markdown rendering
2026-01-16 09:16:43 +00:00
Peter Steinberger
1791c1a765
feat: render native chat markdown via Textual
2026-01-16 09:02:27 +00:00
Peter Steinberger
e96b939732
feat: add system.which bin probe
2026-01-16 07:31:41 +00:00
Peter Steinberger
b77b47bb98
fix: use canonical main session keys in apps
2026-01-15 08:59:05 +00:00
Peter Steinberger
21ba04755b
fix(macos): onboarding location + layout
2026-01-11 01:36:00 +01:00
Peter Steinberger
701e146c06
refactor(shared): default ToolDisplay config
2026-01-10 16:23:53 +00:00
Peter Steinberger
8bc9209094
refactor(apple): share AsyncTimeout helper
2026-01-10 16:23:53 +00:00
Peter Steinberger
870c9f0b99
refactor: stop pinning hardcoded main session in chat UI
2026-01-09 23:20:58 +01:00
Peter Steinberger
f1bc178141
fix: land macos resource bundle guard ( #473 ) — thanks @gupsammy
2026-01-08 19:24:20 +00:00
gupsammy
29e9a574b0
fix(macos): prevent crash from missing ClawdbotKit resources and Swift library
...
The macOS app was crashing in two scenarios:
1. Bundle.module crash (fixes #213 ): When the first tool event arrived,
ToolDisplayRegistry tried to load config via ClawdbotKitResources.bundle,
which used Bundle.module directly. In packaged apps, Bundle.module
couldn't find the resource bundle at the expected path, causing a
fatal assertion failure after ~40-80 minutes of runtime.
2. dyld crash (fixes #417 ): Swift 6.2 requires libswiftCompatibilitySpan.dylib
but SwiftPM doesn't bundle it automatically, causing immediate crash on
launch with "Library not loaded" error.
Changes:
- ClawdbotKitResources.swift: Replace direct Bundle.module access with a
safe locator that checks multiple paths and falls back gracefully
- package-mac-app.sh: Copy ClawdbotKit_ClawdbotKit.bundle to Resources
- package-mac-app.sh: Copy libswiftCompatibilitySpan.dylib from Xcode
toolchain to Frameworks
Tested on macOS 26.2 with Swift 6.2 - app launches and runs without crashes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 19:24:20 +00:00
Peter Steinberger
1e1293cc0a
style: swiftformat sweep
2026-01-08 02:36:29 +00:00
Peter Steinberger
9be7e1b332
fix(ClawdbotKit): bundle tool-display.json
2026-01-07 18:30:45 +00:00
Marcus Neves
67e1452f4a
Cron: normalize cron.add inputs + align channels ( #256 )
...
* fix: harden cron add and align channels
* fix: keep cron tool id params
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 02:09:48 +00:00
Peter Steinberger
026a25d164
chore: lint and format cleanup
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
052cec70ae
fix: render thinking text in italics
2026-01-04 02:44:11 +01:00
Peter Steinberger
e1dd764504
feat: add node location support
2026-01-04 00:54:44 +01:00
Peter Steinberger
6e16c0699a
feat: centralize tool display metadata
2026-01-03 13:18:27 +01:00
Peter Steinberger
7165c8a7e5
refactor: rename bundle identifiers to com.clawdis
2026-01-03 12:26:22 +01:00
Peter Steinberger
b417fe5727
fix: show rich session names in chat UIs
2026-01-03 05:07:13 +01:00
Peter Steinberger
49e89cf3f1
fix: satisfy swiftformat for ios build
2026-01-02 18:48:05 +01:00
Peter Steinberger
74db53d939
feat: add camera list and device selection
2026-01-02 18:23:26 +01:00
Peter Steinberger
d2e2077ada
fix: add top padding before first chat message
2026-01-02 10:23:40 +01:00
Peter Steinberger
9adbf47773
refactor: normalize group session keys
2026-01-02 10:14:58 +01:00
Peter Steinberger
9180cbe821
fix: keep chat scrolled to bottom on session switch
2026-01-02 00:21:48 +01:00
Peter Steinberger
7c0379ce05
feat: add recent session switchers
2026-01-01 23:50:26 +01:00
Peter Steinberger
6e3cb34024
chore: pin ElevenLabsKit + wizard note
2026-01-01 20:19:00 +01:00
Petter Blomberg
17009d28cf
build: fix hardcoded dependency path for ElevenLabsKit
2026-01-01 17:43:27 +01:00
Marc Beaupre
b51b24955c
fix(chat): clear input immediately after send to prevent duplicate messages
...
Two issues were causing the input field to retain text after sending:
1. ChatComposer's NSViewRepresentable was skipping all updates while the
text view was first responder. Now it allows clearing (empty binding)
even during editing, only skipping other updates to avoid cursor jumps.
2. ChatViewModel cleared input after awaiting the network response, leaving
text visible during the round trip. Now clears immediately after capturing
the message content, before the async send.
Together these prevent users from accidentally re-sending messages when
the input appeared unchanged after pressing Enter.
2026-01-01 17:42:05 +01:00
Peter Steinberger
0a4c2f91f5
fix: add bottom padding to macos web chat
2026-01-01 13:20:27 +01:00
Peter Steinberger
5b33a7dcbe
fix: polish macos web chat composer
2026-01-01 12:49:05 +01:00
Peter Steinberger
c7e2b1230c
fix: make composer pill full-width
2026-01-01 12:18:18 +01:00
Peter Steinberger
bdf6a23de9
fix: polish web chat empty/error state
2026-01-01 11:40:11 +01:00
Peter Steinberger
3addd3420b
fix: tidy web chat composer layout
2026-01-01 11:05:14 +01:00
Peter Steinberger
a2a26b26fb
fix: satisfy swiftformat in chat view
2025-12-30 20:41:12 +01:00
Peter Steinberger
7d1ec51df5
fix: modernize chat scroll position
2025-12-30 13:52:12 +01:00
Peter Steinberger
9fb74399c8
refactor: inject audio players
2025-12-30 13:46:14 +01:00
Peter Steinberger
bc0a6fffd1
fix: tighten macOS menu device rows
2025-12-30 13:31:11 +01:00
Peter Steinberger
83262a67b1
refactor: extract elevenlabs kit
2025-12-30 12:48:09 +01:00
Peter Steinberger
66952a682d
test: add pcm streaming smoke
2025-12-30 12:27:06 +01:00
Peter Steinberger
9df22c0093
fix: address talk streaming build
2025-12-30 12:20:32 +01:00
Peter Steinberger
27adfb76fa
fix: stream elevenlabs tts playback
2025-12-30 12:17:40 +01:00
Peter Steinberger
2814815312
feat: add talk voice alias map
2025-12-30 11:35:29 +01:00
Peter Steinberger
ab27586674
test: cover external chat completion
2025-12-30 11:23:45 +01:00
Peter Steinberger
2749c5cac3
fix: clear external streaming bubbles
2025-12-30 11:21:57 +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
b5ae2ccc3c
fix(voice): sync talk mode chat events
2025-12-30 05:27:11 +01:00
Peter Steinberger
c5d5c9fcb5
fix: make android canvas background visible
2025-12-30 04:02:52 +01:00
Peter Steinberger
2e040ee07a
fix: brighten android canvas
2025-12-30 03:58:18 +01:00
Peter Steinberger
9846c46434
fix: tag A2UI platform and boost Android canvas
2025-12-30 03:49:24 +01:00
Peter Steinberger
857cd6a28a
fix: align ios lint and android build
2025-12-29 23:45:58 +01:00
Peter Steinberger
20d7882033
feat: add talk mode across nodes
2025-12-29 23:21:05 +01:00
Peter Steinberger
8f0c8a6561
fix: cap camera snap payload size
2025-12-29 23:12:20 +01:00
Peter Steinberger
ec482ac867
fix(macos): tighten chat window chrome
2025-12-27 03:21:14 +01:00
Peter Steinberger
4016bc2416
fix(a2ui): center empty canvas text
2025-12-26 20:43:45 +01:00
Peter Steinberger
51b6a785e6
fix(canvas): center debug status overlay
2025-12-26 20:01:23 +01:00
Peter Steinberger
2868dc975c
chore: require node >=22.12 and fix swiftformat lint
2025-12-25 23:02:31 +01:00
Peter Steinberger
1c88d9575e
fix(webchat): refresh bubbles on theme change
2025-12-25 22:35:46 +01:00
Peter Steinberger
57090d4f8d
fix: align chat scroll anchor
2025-12-25 04:10:47 +01:00
Peter Steinberger
e8f24910bd
style: swiftformat chat ui
2025-12-24 15:10:31 +01:00
Peter Steinberger
8878fd3028
ui: merge tool call results
2025-12-24 14:38:43 +01:00
Peter Steinberger
a22d4e7962
fix: import AnyCodable for tool cards
2025-12-24 14:35:06 +01:00
Peter Steinberger
25d2d7389f
ui: render tool call cards
2025-12-24 14:29:40 +01:00
Peter Steinberger
816b784399
ui: constrain typing indicator width
2025-12-24 14:10:32 +01:00
Peter Steinberger
e158bee95f
perf: reduce chat animation churn
2025-12-24 13:51:40 +01:00
Peter Steinberger
926b6d9464
chore: format wake gate + chat theme
2025-12-23 01:41:13 +01:00
Peter Steinberger
ceeea359fc
chore: remove shared build artifacts
2025-12-23 01:32:02 +01:00
Peter Steinberger
ef35868bef
feat: share wake gate via SwabbleKit
2025-12-23 01:31:59 +01:00
Peter Steinberger
ce04308c17
refactor: remove session syncing metadata
2025-12-23 00:50:51 +01:00
Peter Steinberger
3412ff7003
style: add macos chat glass background
2025-12-22 19:55:17 +01:00
Peter Steinberger
19b847b23b
style: tighten macos chat composer
2025-12-22 19:08:23 +01:00
Peter Steinberger
79c0fd27a0
fix: center debug status overlay
2025-12-21 20:43:06 +01:00
Peter Steinberger
264c91e620
feat(canvas): gate debug status overlay
2025-12-21 14:21:06 +01:00
Peter Steinberger
4021da524c
fix(chat-ui): avoid animated initial scroll
2025-12-21 12:33:41 +01:00
Peter Steinberger
6496a288b8
fix: add A2UI inset vars
2025-12-21 03:21:49 +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
aae68e4f82
style(chatui): fix SwiftFormat warnings
2025-12-21 00:25:56 +01:00
Peter Steinberger
80f70a58e3
fix(chat): refine onboarding bubbles
2025-12-20 23:15:29 +00:00
Peter Steinberger
02f6cac9d6
style(chat): use integrated bubble tail
2025-12-20 23:00:21 +00:00
Peter Steinberger
16e4a0c4bd
style(onboarding): refine bubble tails
2025-12-20 22:23:06 +00:00
Peter Steinberger
94b89216f7
style(onboarding): add speech bubble tails
2025-12-20 22:08:01 +00:00
Peter Steinberger
238c0c1b86
fix(onboarding): clearer bubbles and tighter composer
2025-12-20 22:03:24 +00:00
Peter Steinberger
9076d543f3
fix(onboarding): restore bubbles and spacing
2025-12-20 21:56:03 +00:00
Peter Steinberger
cd77dc9563
fix(onboarding): restore chat bubble styling
2025-12-20 21:47:43 +00:00
Peter Steinberger
52a2dfe08b
feat(onboarding): hide kickoff bubble and tweak typing
2025-12-20 19:46:06 +00:00
Peter Steinberger
b13723d3d7
style: satisfy swiftformat in chat composer
2025-12-20 18:18:30 +01:00
Peter Steinberger
5936ed7941
feat(chat): restyle onboarding chat UI
2025-12-20 16:52:11 +00:00
Peter Steinberger
554d9bc6ce
fix: stabilize a2ui bundle output
2025-12-20 14:54:37 +01:00
Peter Steinberger
ed001a5f55
refactor(canvas): host A2UI via gateway
2025-12-20 12:17:27 +00:00
Peter Steinberger
529543b36d
build: refresh a2ui bundle
2025-12-20 13:00:03 +01:00
Peter Steinberger
13124542cf
fix(a2ui): improve modal styling
2025-12-20 11:12:11 +00:00
Peter Steinberger
cd5809d11f
fix(a2ui): stabilize canvas host
2025-12-20 10:58:13 +00:00
Peter Steinberger
28938ddb32
chore: update a2ui bundle
2025-12-20 11:32:20 +01:00
Peter Steinberger
849446ae17
refactor(cli): unify on clawdis CLI + node permissions
2025-12-20 02:08:04 +00:00
Peter Steinberger
a526d3c1f2
feat(browser): add native action commands
2025-12-20 00:53:56 +00:00
Peter Steinberger
2bc0c57f18
build(canvas): refresh a2ui bundle
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
95ea67de28
feat: add mac node screen recording and ssh tunnel
2025-12-19 02:33:43 +01:00
Peter Steinberger
77a67484ea
feat(pairing): add silent SSH auto-approve
2025-12-19 01:04:47 +01:00
Peter Steinberger
3146f8bdbc
CanvasA2UI: refresh bundled renderer
2025-12-18 23:08:07 +00:00
Peter Steinberger
9062f60e3d
ClawdisKit: accept jpg for canvas.snapshot
2025-12-18 23:31:34 +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
0913329b03
A2UI: share bundle via ClawdisKit
2025-12-18 10:44:06 +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
ca85d217ec
ChatUI: swiftformat fixes
2025-12-17 23:01:31 +01:00
Peter Steinberger
6652b1f4f3
ui(chat): reduce padding
2025-12-17 23:01:31 +01:00
Peter Steinberger
9fe04f5659
ui(chat): align status pill with send
2025-12-17 23:01:31 +01:00
Peter Steinberger
5b9e51bfaa
ui(chat): tighten padding + keep status in composer
2025-12-17 23:01:31 +01:00
Peter Steinberger
cdea744725
ui(chat): move connection pill into composer
2025-12-17 23:01:30 +01:00
Peter Steinberger
44365f2e27
test(chat): harden abort/stream + hide session switching
2025-12-17 23:01:30 +01:00
Peter Steinberger
2b2376d4c0
style(swift): fix lint
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
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
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
e1e3da946f
fix(chat): reduce system spam and cap history
2025-12-16 20:35:03 +01:00
Peter Steinberger
49a9f74753
fix(chat-ui): improve typing dots and composer
2025-12-16 20:13:23 +01:00
Peter Steinberger
f3db02018f
fix(chat-ui): reflect gateway connection
2025-12-14 05:19:01 +00:00
Peter Steinberger
b48a556de5
refactor(observation): migrate SwiftUI state
2025-12-14 05:06:34 +00:00
Peter Steinberger
aab5c490dc
refactor(chat-ui): compact layout
2025-12-14 05:06:34 +00:00
Peter Steinberger
e0545e2f94
fix(chat): improve history + polish SwiftUI panel
2025-12-14 04:31:04 +00:00
Peter Steinberger
c3fa1fb736
feat(camera): share jpeg transcoder + default maxWidth
2025-12-14 02:00:48 +00:00
Peter Steinberger
a92eb1f33d
feat(camera): add snap/clip capture
2025-12-14 00:48:58 +00:00
Peter Steinberger
e6d522493b
feat(chat): share SwiftUI chat across macOS+iOS
2025-12-14 00:17:07 +00:00
Peter Steinberger
5b608718bb
test(clawdiskit): cover BonjourEscapes decoding
2025-12-13 11:10:30 +00:00
Peter Steinberger
ec653b7b80
chore: share bonjour escapes + refresh webchat bundle
2025-12-13 10:59:48 +00:00
Peter Steinberger
7ef83311bb
feat(bridge): show node ip in pairing
2025-12-13 01:57:40 +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
0b532579d8
feat(bridge): add Bonjour node bridge
2025-12-12 21:19:39 +00:00