Commit Graph

141 Commits

Author SHA1 Message Date
Peter Steinberger
767496255b fix: wire markdown variant renderer 2026-01-16 09:19:25 +00:00
Peter Steinberger
afd27925ce refactor: consolidate chat markdown rendering 2026-01-16 09:16:43 +00:00
Peter Steinberger
dbba858679 feat: render native chat markdown via Textual 2026-01-16 09:02:27 +00:00
Peter Steinberger
6c901fb7df feat: add system.which bin probe 2026-01-16 07:31:41 +00:00
Peter Steinberger
60b733794e fix: use canonical main session keys in apps 2026-01-15 08:59:05 +00:00
Peter Steinberger
7b49e1bb81 fix(macos): onboarding location + layout 2026-01-11 01:36:00 +01:00
Peter Steinberger
f012e08074 refactor(shared): default ToolDisplay config 2026-01-10 16:23:53 +00:00
Peter Steinberger
68927ca21c refactor(apple): share AsyncTimeout helper 2026-01-10 16:23:53 +00:00
Peter Steinberger
bd8b92a48e refactor: stop pinning hardcoded main session in chat UI 2026-01-09 23:20:58 +01:00
Peter Steinberger
d4e62f5d80 fix: land macos resource bundle guard (#473) — thanks @gupsammy 2026-01-08 19:24:20 +00:00
gupsammy
135fe4a148 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
bb2ad2abb0 style: swiftformat sweep 2026-01-08 02:36:29 +00:00
Peter Steinberger
3e5a784d04 fix(ClawdbotKit): bundle tool-display.json 2026-01-07 18:30:45 +00:00
Marcus Neves
9572f92a0f 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
fa4d5cb362 chore: lint and format cleanup 2026-01-04 16:24:17 +01:00
Peter Steinberger
f7cb3846f1 chore: rename project to clawdbot 2026-01-04 14:38:51 +00:00
Peter Steinberger
eda4540021 fix: render thinking text in italics 2026-01-04 02:44:11 +01:00
Peter Steinberger
df609cdd27 feat: add node location support 2026-01-04 00:54:44 +01:00
Peter Steinberger
38b755935c feat: centralize tool display metadata 2026-01-03 13:18:27 +01:00
Peter Steinberger
79d21b58e4 refactor: rename bundle identifiers to com.clawdis 2026-01-03 12:26:22 +01:00
Peter Steinberger
e9e1b83418 fix: show rich session names in chat UIs 2026-01-03 05:07:13 +01:00
Peter Steinberger
12b2e98f59 fix: satisfy swiftformat for ios build 2026-01-02 18:48:05 +01:00
Peter Steinberger
95a6c4bceb feat: add camera list and device selection 2026-01-02 18:23:26 +01:00
Peter Steinberger
c65ee8e1f9 fix: add top padding before first chat message 2026-01-02 10:23:40 +01:00
Peter Steinberger
ce319bef69 refactor: normalize group session keys 2026-01-02 10:14:58 +01:00
Peter Steinberger
19eb761f57 fix: keep chat scrolled to bottom on session switch 2026-01-02 00:21:48 +01:00
Peter Steinberger
1775fd3de9 feat: add recent session switchers 2026-01-01 23:50:26 +01:00
Peter Steinberger
b41fbd8e41 chore: pin ElevenLabsKit + wizard note 2026-01-01 20:19:00 +01:00
Petter Blomberg
c8a85014f5 build: fix hardcoded dependency path for ElevenLabsKit 2026-01-01 17:43:27 +01:00
Marc Beaupre
9813dfbe71 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
47c992c9e4 fix: add bottom padding to macos web chat 2026-01-01 13:20:27 +01:00
Peter Steinberger
0b9bc031d8 fix: polish macos web chat composer 2026-01-01 12:49:05 +01:00
Peter Steinberger
cb7a941efb fix: make composer pill full-width 2026-01-01 12:18:18 +01:00
Peter Steinberger
fd2ab7f089 fix: polish web chat empty/error state 2026-01-01 11:40:11 +01:00
Peter Steinberger
bc458e0599 fix: tidy web chat composer layout 2026-01-01 11:05:14 +01:00
Peter Steinberger
d9503d6163 fix: satisfy swiftformat in chat view 2025-12-30 20:41:12 +01:00
Peter Steinberger
3639a75e2c fix: modernize chat scroll position 2025-12-30 13:52:12 +01:00
Peter Steinberger
26f02543d6 refactor: inject audio players 2025-12-30 13:46:14 +01:00
Peter Steinberger
a39f30f7e7 fix: tighten macOS menu device rows 2025-12-30 13:31:11 +01:00
Peter Steinberger
fba012549c refactor: extract elevenlabs kit 2025-12-30 12:48:09 +01:00
Peter Steinberger
2a0b3ca2b2 test: add pcm streaming smoke 2025-12-30 12:27:06 +01:00
Peter Steinberger
3bac41c7ad fix: address talk streaming build 2025-12-30 12:20:32 +01:00
Peter Steinberger
0db06400e2 fix: stream elevenlabs tts playback 2025-12-30 12:17:40 +01:00
Peter Steinberger
1ee99b6f00 feat: add talk voice alias map 2025-12-30 11:35:29 +01:00
Peter Steinberger
f3b9c8fc7b test: cover external chat completion 2025-12-30 11:23:45 +01:00
Peter Steinberger
46fac79541 fix: clear external streaming bubbles 2025-12-30 11:21:57 +01:00
Peter Steinberger
b22ef01850 fix(ios): unblock device builds 2025-12-30 11:16:15 +01:00
Peter Steinberger
89ebff4da3 fix(talk): harden TTS + add system fallback 2025-12-30 07:40:02 +01:00
Peter Steinberger
e409c6f04c fix(talk): align sessions and chat UI 2025-12-30 06:47:19 +01:00
Peter Steinberger
ada86eb1e8 fix(voice): sync talk mode chat events 2025-12-30 05:27:11 +01:00