Commit Graph

259 Commits

Author SHA1 Message Date
Yurii Chukhlib
3aaadea9d9 fix(build): remove non-functional smoke test from package-mac-app.sh
The --smoke qr argument was removed from the relay CLI, but the smoke
test remained in the macOS app packaging script. This caused the build
to fail with exit code 1 when the bundled relay didn't recognize the
argument.

Removes the 2-line smoke test section to fix the build.

Fixes #317

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-09 23:37:57 +01:00
Peter Steinberger
a9677bc137 fix: harden onboarding for non-systemd environments 2026-01-09 22:17:09 +01:00
Peter Steinberger
e64f0aedd1 docs: comment doctor switch e2e 2026-01-09 18:16:59 +01:00
Peter Steinberger
d77e19e8c4 fix: repair doctor service install switches 2026-01-09 17:50:28 +01:00
Peter Steinberger
ef5021a760 fix(status): use claude-cli token for usage 2026-01-09 16:24:55 +00:00
Peter Steinberger
402c588f4f ci: drop output sanitize wrapper 2026-01-09 16:49:12 +01:00
Peter Steinberger
c54af0658f feat(status): add claude.ai usage fallback 2026-01-09 15:34:58 +00:00
Peter Steinberger
7eba5be1f3 fix: land #569 (thanks @bjesuiter) 2026-01-09 15:32:55 +01:00
Peter Steinberger
947844117c feat: wire multi-agent config and routing
Co-authored-by: Mark Pors <1078320+pors@users.noreply.github.com>
2026-01-09 12:48:42 +00:00
Tobias Bischoff
89ff9aa65a Onboarding: add MiniMax hosted API key option 2026-01-09 13:39:28 +01:00
Josh Palmer
9d56b06c98 Adjust UI install for offline pnpm fetch (#568)
* 🤖 codex: make ui build install prod deps for offline pnpm (issue-pnpm-offline)

* 🤖 codex: ensure ui:test installs dev deps (issue-pnpm-offline)
2026-01-09 13:38:46 +01:00
Peter Steinberger
276f0b0407 feat: add usage cost reporting 2026-01-09 02:29:54 +00:00
Peter Steinberger
e91b36f89e feat(models): add oauth auth health 2026-01-09 00:34:38 +00:00
L36 Server
175ee23e9d scripts: add auth management and Termux widget scripts 2026-01-09 00:34:38 +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
497816dc80 refactor: simplify cli commands 2026-01-08 07:16:12 +01:00
Peter Steinberger
1e275be315 docs: keep steipete first 2026-01-08 07:02:17 +01:00
Peter Steinberger
970aae8b79 docs: trim clawtributors overrides 2026-01-08 06:30:08 +01:00
Peter Steinberger
1002668185 docs: infer logins from email local 2026-01-08 06:26:50 +01:00
Peter Steinberger
e3e84940c8 docs: prioritize steipete in clawtributors 2026-01-08 06:22:34 +01:00
Peter Steinberger
d62f008428 docs: dedupe clawtributors names 2026-01-08 06:20:47 +01:00
Peter Steinberger
7f453762d3 docs: keep full clawtributors list 2026-01-08 06:16:52 +01:00
Peter Steinberger
38f4a7facc docs: refresh clawtributors list 2026-01-08 05:48:29 +01:00
Peter Steinberger
fff3593984 fix: harden session caching and topic transcripts 2026-01-07 22:51:26 +00:00
hsrvc
9b56d89c7b Optimize multi-topic performance with TTL-based session caching
Add in-memory TTL-based caching to reduce file I/O bottlenecks in message processing:

1. Session Store Cache (45s TTL)
   - Cache entire sessions.json in memory between reads
   - Invalidate on writes to ensure consistency
   - Reduces disk I/O by ~70-80% for active conversations
   - Controlled via CLAWDBOT_SESSION_CACHE_TTL_MS env var

2. SessionManager Pre-warming
   - Pre-warm .jsonl conversation history files into OS page cache
   - Brings SessionManager.open() from 10-50ms to 1-5ms
   - Tracks recently accessed sessions to avoid redundant warming

3. Configuration Support
   - Add SessionCacheConfig type with cache control options
   - Enable/disable caching and set custom TTL values

4. Testing
   - Comprehensive unit tests for cache functionality
   - Test cache hits, TTL expiration, write invalidation
   - Verify environment variable overrides

This fixes the slowness reported with multiple Telegram topics/channels.

Expected performance gains:
- Session store loads: 99% faster (1-5ms → 0.01ms)
- Overall message latency: 60-80% reduction for multi-topic workloads
- Memory overhead: < 1MB for typical deployments
- Disk I/O: 70-80% reduction in file reads

Rollback: Set CLAWDBOT_SESSION_CACHE_TTL_MS=0 to disable caching

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-07 22:51:26 +00:00
Peter Steinberger
4c28ab602b refactor(relay): add --smoke entrypoint 2026-01-07 03:12:30 +00:00
Peter Steinberger
eeed6ca96e fix(ui): self-heal ui builds 2026-01-06 16:03:04 +01:00
Peter Steinberger
67b2f07bfb build(control-ui): prefer bun for UI build 2026-01-06 09:08:25 +01:00
Ayaan Zaidi
757c19e6e7 refactor: replace tsx with bun for TypeScript execution (#278) 2026-01-06 07:14:08 +00:00
Ayaan Zaidi
233c318b39 fix: targetDir symlink handling in postinstall script (#272) 2026-01-05 23:36:11 -06:00
Peter Steinberger
7ba5ef9760 docs: add bun install support 2026-01-06 03:41:56 +01:00
Peter Steinberger
5adf62f706 test: ignore SIGPIPE in docker e2e 2026-01-06 02:49:45 +01:00
Peter Steinberger
7244cb7b46 test: stabilize docker onboarding e2e 2026-01-06 02:49:45 +01:00
Peter Steinberger
0e6b3e6a7e fix: patch qrcode-terminal import for Node 22 2026-01-06 02:23:55 +01:00
Peter Steinberger
e7f62c120b docs: default mac build arch to host 2026-01-05 06:45:23 +01:00
Peter Steinberger
2e1ac125db chore: default mac packaging to notarize 2026-01-05 04:22:58 +01:00
Peter Steinberger
aec8c93590 fix: bundle qr renderer in relay 2026-01-05 02:19:49 +01:00
Andranik Sahakyan
9ade229e09 fix(mac): add Sendable conformance to generated Swift protocol structs (#195)
* fix(mac): add Sendable conformance to generated Swift protocol structs

* fix(mac): make generated protocol types Sendable

* chore(mac): drop redundant Sendable extensions

* docs(changelog): thank @andranik-sahakyan for Sendable fix

* chore(swiftformat): exclude generated protocol models

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-04 22:39:21 +00:00
Peter Steinberger
f7cb3846f1 chore: rename project to clawdbot 2026-01-04 14:38:51 +00:00
Peter Steinberger
e63c9a97cc build: add homebrew to sandbox image 2026-01-04 06:12:06 +00:00
Peter Steinberger
c7e1a69a77 build: add pkg-config + libasound2-dev to sandbox image 2026-01-04 05:28:08 +00:00
Peter Steinberger
a547db2f4f build: add sandbox common image builder 2026-01-04 04:17:13 +00:00
Peter Steinberger
bb4082b7a5 fix: set writable home for sandbox browser 2026-01-04 03:49:39 +00:00
Peter Steinberger
8ff81c5b07 fix: stabilize sandbox browser startup 2026-01-04 03:45:14 +00:00
Peter Steinberger
3caae04b1a fix: drop stale ClawdisCLI build flag 2026-01-04 00:42:22 +01:00
Peter Steinberger
f4c20d44da feat: add sandbox browser support 2026-01-03 22:14:18 +01:00
Peter Steinberger
28ec06cddc feat: add per-session agent sandbox 2026-01-03 21:41:58 +01:00
Peter Steinberger
294e831297 fix: document macOS permission requirements 2026-01-03 20:05:22 +01:00
Jake
12938be78b Scripts: Make ad-hoc fallback opt-in with stronger TCC warnings 2026-01-03 20:05:22 +01:00
Jake
375d97323f Scripts: Fallback to ad-hoc signing in codesign-mac-app.sh 2026-01-03 20:05:22 +01:00
Peter Steinberger
870f627c53 build: lock x86_64 relay to AVX2 2026-01-03 16:52:06 +01:00
Peter Steinberger
79d21b58e4 refactor: rename bundle identifiers to com.clawdis 2026-01-03 12:26:22 +01:00
Peter Steinberger
5dc3ee35b3 fix: use x86_64 bun for relay builds 2026-01-03 11:06:49 +01:00
Peter Steinberger
7c1baf5d08 fix: skip duplicate arch merge for Sparkle 2026-01-03 11:06:49 +01:00
Peter Steinberger
5cc8c0bfd5 fix: make Sparkle builds numeric + universal 2026-01-03 11:06:48 +01:00
Peter Steinberger
d34f9855c6 test: silence docker onboarding noise 2026-01-02 20:46:26 +01:00
Peter Steinberger
b4224050ba test: annotate onboarding docker e2e 2026-01-02 20:41:47 +01:00
Peter Steinberger
8fd433adb2 test: stabilize docker onboarding e2e 2026-01-02 20:40:33 +01:00
Peter Steinberger
bb01ad2b17 fix: add camera entitlement to macOS signing 2026-01-02 17:31:59 +01:00
Peter Steinberger
a6101b5600 test: harden wizard e2e flow 2026-01-01 21:09:32 +01:00
Peter Steinberger
b41fbd8e41 chore: pin ElevenLabsKit + wizard note 2026-01-01 20:19:00 +01:00
Peter Steinberger
45942f03de feat: expand wizard setup flow 2026-01-01 19:14:14 +01:00
Peter Steinberger
77a93a125d feat: expand onboarding wizard 2026-01-01 18:23:59 +01:00
Peter Steinberger
0390b6a15a test: add onboarding e2e harness 2026-01-01 18:01:42 +01:00
Petter Blomberg
a61fb5bcc9 macOS: move rpath configuration to build step for reliability 2026-01-01 17:44:39 +01:00
Petter Blomberg
0620f7380b scripts: fix ad-hoc signing crashes and bash unbound variable error 2026-01-01 15:29:01 +01:00
Peter Steinberger
2d7b457b21 Merge remote-tracking branch 'origin/main' into upstream-preview-nix-2025-12-20 2026-01-01 09:15:28 +01:00
Peter Steinberger
3c66c83f2f chore: add bench-model script 2026-01-01 08:59:31 +01:00
Peter Steinberger
8d7b29f261 Merge pull request #64 from mbelinky/fix-instances-crash
Fix Instances crash by bundling device model resources
2026-01-01 08:58:35 +01:00
Mariano Belinky
a676f8c60e Bundle Control UI in Mac app 2026-01-01 08:55:09 +01:00
Mariano Belinky
f81f9c4a17 Fix device model resources for Instances 2025-12-31 16:45:35 +01:00
Peter Steinberger
4d063ddb7f chore: harden restart script 2025-12-29 18:09:27 +01:00
Josh Palmer
f8e2670e70 chore(macos): harden mktemp templates in codesign 2025-12-29 17:49:13 +01:00
Josh Palmer
2e9ff2ef73 feat: Nix mode config, UX, onboarding, SwiftPM plist, docs 2025-12-29 17:49:13 +01:00
Peter Steinberger
41b67fd3af chore: harden release checks 2025-12-27 19:35:39 +01:00
Peter Steinberger
6fdefd9441 refactor: node tools and canvas host url 2025-12-27 01:36:29 +01:00
Peter Steinberger
d22f60573c fix(macos): allow http loads in canvas webview 2025-12-27 00:20:58 +01:00
Peter Steinberger
a0a2ec51ee chore(ios): add team id helper 2025-12-26 18:16:13 +01:00
Peter Steinberger
356093dfce fix(a2ui): skip bundle when inputs unchanged 2025-12-26 18:11:00 +01:00
Peter Steinberger
1ba6bccf77 docs: add Sparkle HTML release notes 2025-12-25 04:27:20 +01:00
Peter Steinberger
fdecdfcafa chore: resolve docs list from cwd 2025-12-23 00:28:55 +00:00
Peter Steinberger
5e4084d0d3 build(mac): add notarize flow for release artifacts 2025-12-21 12:33:45 +01:00
Peter Steinberger
bf8f47e304 fix(mac): allow tailscale localapi http 2025-12-21 02:17:55 +00:00
Peter Steinberger
96dd222791 build: silence mac packaging warnings 2025-12-21 02:06:12 +01:00
Peter Steinberger
b1d89ab7fa perf(dmg): shrink rw image before lzma convert 2025-12-20 19:44:26 +00:00
Peter Steinberger
da8385745d refactor(macos): bundle single relay binary 2025-12-20 19:35:30 +00:00
Peter Steinberger
257d85c615 build(macos): bundle playwright in embedded gateway 2025-12-20 19:16:52 +00:00
Peter Steinberger
9adf4530b6 fix(macos): validate embedded CLI helper 2025-12-20 15:12:57 +00:00
Peter Steinberger
87ae486266 feat(skills): load bundled skills 2025-12-20 12:23:53 +00:00
Peter Steinberger
ad3fef6b6b refactor(canvas): host A2UI via gateway 2025-12-20 12:17:27 +00:00
Peter Steinberger
da1f09324d refactor(cli): unify on clawdis CLI + node permissions 2025-12-20 02:08:04 +00:00
Peter Steinberger
f6357c109b fix: align DMG background and icon layout 2025-12-19 22:38:36 +01:00
Peter Steinberger
8ce9e39874 build(macos): add dmg+zip packaging 2025-12-19 22:22:09 +01:00
Peter Steinberger
2a08560e76 perf(macos): compile embedded gateway with bytecode 2025-12-19 22:11:41 +01:00
Peter Steinberger
ec93b56c9d fix(macos): sign bun gateway with jit entitlements 2025-12-19 19:24:49 +01:00
Peter Steinberger
4327b01cfe build(macos): bundle bun gateway 2025-12-19 19:21:26 +01:00
Peter Steinberger
0a7299eb77 chore: prep 2.0.0-beta1 release 2025-12-19 18:02:30 +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
c6b52a0172 Canvas: fix A2UI push rendering 2025-12-17 14:36:42 +01:00
Peter Steinberger
ce32693b3f feat(camera): add snap/clip capture 2025-12-14 00:48:58 +00:00
Peter Steinberger
b1a340c5c2 feat(macos): add clawdis://agent deep link 2025-12-12 23:33:38 +00:00
Peter Steinberger
65a5294e4b feat(gateway)!: switch handshake to req:connect (protocol v2) 2025-12-12 23:29:57 +00:00
Peter Steinberger
745e31a0cd fix(mac): open settings for microphone permission 2025-12-12 19:25:21 +00:00
Peter Steinberger
7502b35552 fix(mac): disable restricted time-sensitive entitlement 2025-12-12 19:20:47 +00:00
Peter Steinberger
427cf1580f fix(mac): treat timeSensitive as best-effort 2025-12-12 18:58:07 +00:00
Peter Steinberger
bf6f03547c build(mac): enable time-sensitive notifications 2025-12-12 18:40:09 +00:00
Peter Steinberger
2de432c3ea fix(mac): harden gateway frame decoding 2025-12-12 17:30:21 +00:00
Peter Steinberger
62402d8f44 fix(presence): hide cli sessions; use numeric mac build 2025-12-12 17:27:11 +00:00
Peter Steinberger
f92b8535b1 fix(mac): prevent crash decoding GatewayFrame 2025-12-12 16:37:59 +00:00
Peter Steinberger
ee6120c325 feat(voicewake): route replies to last channel 2025-12-12 16:22:30 +00:00
Peter Steinberger
18bb334c66 chore(gateway): use ws bind as lock 2025-12-11 15:17:40 +00:00
Peter Steinberger
efaa1ac75a test: add test:force helper 2025-12-10 01:00:29 +00:00
Peter Steinberger
f847d86da7 chore: rename relay to gateway 2025-12-09 18:00:01 +00:00
Peter Steinberger
83bb7ce859 docs: add docs:list helper and front matter 2025-12-09 17:51:05 +00:00
Peter Steinberger
6f96473e8a chore(mac): make package/restart skip ts relay 2025-12-09 17:36:24 +00:00
Peter Steinberger
1e84ca69a0 chore: drop runner shim and add committer helper 2025-12-09 17:24:25 +00:00
Peter Steinberger
6855a7bb82 Mac: build GatewayProtocol target and typed presence handling 2025-12-09 15:35:06 +01:00
Peter Steinberger
c10babc2c5 Mac: use typed GatewayFrame + forward-compatible Swift generator 2025-12-09 15:26:31 +01:00
Peter Steinberger
10ffb13aba Protocol: add TypeBox-driven Swift generator 2025-12-09 15:21:16 +01:00
Peter Steinberger
a3425a4cf3 Gateway: discriminated protocol schema + CLI updates 2025-12-09 15:01:13 +01:00
Peter Steinberger
b966585d7a Gateway: finalize WS control plane 2025-12-09 14:41:41 +01:00
Peter Steinberger
6b9251265b Runtime: drop bun support 2025-12-09 04:13:56 +00:00
Peter Steinberger
2d6140ac50 fix merge; add control logging 2025-12-09 01:46:09 +00:00
Peter Steinberger
85fdcfe0de chore: guard host runtime and simplify packaging 2025-12-09 00:59:56 +01:00
Peter Steinberger
fc2f4f225d chore: launch app in restart script instead of launch agent 2025-12-08 19:01:29 +01:00
Peter Steinberger
abee148535 webchat: make remote mode load history and send via rpc 2025-12-08 01:27:18 +01:00
Peter Steinberger
93eea879bd feat(macos): add Sparkle updates and release docs 2025-12-08 00:18:16 +01:00
Peter Steinberger
5a9bf87dba Add Bun bundle docs and Telegram grammY support 2025-12-07 22:47:05 +01:00
Peter Steinberger
1b888af439 Launch agent: disable autostart without killing running app 2025-12-07 19:01:14 +01:00
Peter Steinberger
8d2fd382e4 build: add local node bin to restart script PATH 2025-12-07 19:01:14 +01:00
Peter Steinberger
8135e76372 VoiceWake: add escaping regression tests 2025-12-07 19:01:14 +01:00
Peter Steinberger
eb8312daa6 VoiceWake: document escape path and reset stale forward command 2025-12-07 18:23:34 +01:00
Peter Steinberger
c674f8696c VoiceWake: document escape path and reset stale forward command 2025-12-07 18:23:34 +01:00
Peter Steinberger
dd524781f8 webchat: bundle assets with rolldown 2025-12-07 17:44:37 +01:00
Peter Steinberger
a6871a6097 build: require signing identity for mac packaging 2025-12-07 04:38:45 +01:00
Peter Steinberger
9dcc39b56e fix(mac): bundle WebChat resources when packaging 2025-12-07 03:36:47 +01:00
Peter Steinberger
061bea4055 Mac: secure XPC and register mach service via launchd 2025-12-07 02:27:17 +00:00
Peter Steinberger
aac1622d06 Mac: stabilize XPC and voice wake handling 2025-12-07 02:09:54 +00:00
Peter Steinberger
10f73b3d51 feat(mac): add automation permission 2025-12-07 02:34:21 +01:00
Peter Steinberger
7ffb6b5006 tools: add clawlog helper for unified logs 2025-12-07 02:25:55 +01:00
Peter Steinberger
0af18749a9 scripts: make restart clean step resilient 2025-12-07 02:17:17 +01:00
Peter Steinberger
5c863ecac9 Mac: run via launchd agent with mach service 2025-12-07 01:05:05 +00:00
Peter Steinberger
dd42fc7aa6 Mac: align app version with package.json 2025-12-07 01:00:47 +00:00
Peter Steinberger
c97f0737e9 CLI: fix --version by reading app Info.plist 2025-12-07 00:59:37 +00:00
Peter Steinberger
66d255d310 Mac: add mic entitlement to signing helper 2025-12-06 23:52:54 +00:00
Peter Steinberger
ba18680a09 mac: add signing helper and document debug bundle 2025-12-07 00:30:58 +01:00
Peter Steinberger
17c74e2f71 build: sign debug app and use stable bundle id 2025-12-06 23:46:19 +01:00
Peter Steinberger
9db9e30168 build: add mac icon pipeline 2025-12-06 21:00:32 +01:00
Peter Steinberger
7b8f8a2563 mac: add app icon and tidy voice picker 2025-12-06 03:55:47 +01:00
Peter Steinberger
25a300cac9 chore: vendor swabble and add speech usage strings 2025-12-06 03:55:46 +01:00