Commit Graph

285 Commits

Author SHA1 Message Date
Peter Steinberger
94df39738b fix(ci): stabilize windows tests 2026-01-08 02:44:19 +00:00
Peter Steinberger
b93e9dd5da refactor: split port diagnostics helpers 2026-01-08 02:42:43 +01:00
Peter Steinberger
ec69b34656 fix: improve gateway diagnostics 2026-01-08 02:29:32 +01:00
Peter Steinberger
03774b657f feat: add providers CLI and multi-account onboarding 2026-01-08 01:55:59 +01:00
Peter Steinberger
e7cac22aef feat: add gateway config/update restart flow 2026-01-08 01:30:02 +01:00
Peter Steinberger
1a16e0b0a5 fix: format slow listener logs 2026-01-08 01:28:21 +01:00
Peter Steinberger
52c2b8e679 refactor: share backoff helpers 2026-01-07 23:22:12 +00:00
Peter Steinberger
75bc1ad732 refactor: centralize unhandled rejection setup 2026-01-07 20:59:49 +00:00
Peter Steinberger
0949a61f60 fix: keep bonjour rejection handler through shutdown 2026-01-07 20:54:40 +00:00
Emanuel Stadler
f3e09e105f Bonjour: ignore ciao cancellation rejections 2026-01-07 20:51:54 +00:00
Peter Steinberger
44aea56b51 fix: add provider retry policy 2026-01-07 17:48:19 +00:00
Peter Steinberger
433ad58e88 chore: satisfy lint 2026-01-07 11:49:01 +01:00
Peter Steinberger
82458c2e9f feat: add provider usage tracking 2026-01-07 11:42:46 +01:00
Peter Steinberger
1981086f7a fix: refine bootstrap injections 2026-01-07 10:04:23 +00:00
Tobias Bischoff
4ae7b2bac6 Reduce prompt token overhead with leaner context injections 2026-01-07 10:04:23 +00:00
Peter Steinberger
b8c8a9551d fix: align heartbeat session store with default agent 2026-01-07 07:14:24 +00:00
Peter Steinberger
81c5d450e4 fix(doctor): add headless flags + auto-migrate sessions 2026-01-07 04:43:24 +01:00
Peter Steinberger
53879a88e1 refactor: unify outbound result envelopes 2026-01-07 02:36:05 +00:00
Peter Steinberger
a9371fa4eb refactor: streamline outbound payload handling 2026-01-07 02:30:42 +00:00
Peter Steinberger
9e1dc67ba1 fix(outbound): guard optional delivery fields 2026-01-07 02:19:42 +00:00
Peter Steinberger
bd73d288c2 refactor: reuse gateway output helpers 2026-01-07 01:43:02 +00:00
Peter Steinberger
7e0ed3e79b refactor: unify outbound delivery formatting 2026-01-07 01:26:09 +00:00
Peter Steinberger
99851cdec1 test: align outbound normalization 2026-01-07 01:22:55 +00:00
Peter Steinberger
5e75ea1ea2 style: align outbound delivery formatting 2026-01-07 01:20:40 +00:00
Peter Steinberger
ee1dfc589d refactor: normalize outbound payload delivery 2026-01-07 01:19:47 +00:00
Peter Steinberger
502c8e1297 refactor: centralize outbound target validation 2026-01-07 01:16:39 +00:00
Peter Steinberger
28fdd7ea00 refactor: unify outbound delivery 2026-01-07 01:13:04 +00:00
Peter Steinberger
b37edc7e2b fix: prefer home linuxbrew paths 2026-01-07 00:18:07 +01:00
Peter Steinberger
0f56d28c73 style: format lint offenders 2026-01-07 00:04:44 +01:00
Peter Steinberger
f288b3d618 fix: bootstrap linuxbrew for skills 2026-01-06 23:27:38 +01:00
Peter Steinberger
5e75f6365c fix(state): auto-migrate legacy agent dir 2026-01-06 22:04:23 +00:00
Peter Steinberger
b9ff5fb808 feat: update heartbeat defaults 2026-01-06 21:54:42 +00:00
Peter Steinberger
882bcaf414 feat: multi-agent routing + multi-account providers 2026-01-06 18:33:37 +00:00
Peter Steinberger
67b2f07bfb build(control-ui): prefer bun for UI build 2026-01-06 09:08:25 +01:00
Peter Steinberger
6f4fa6923e feat!: redesign model config + auth profiles 2026-01-06 00:56:58 +00:00
Peter Steinberger
33390d3a72 fix/heartbeat ok delivery filter (#246)
* cron: skip delivery for HEARTBEAT_OK responses

When an isolated cron job has deliver:true, skip message delivery if the
response is just HEARTBEAT_OK (or contains HEARTBEAT_OK at edges with
short remaining content <= 30 chars). This allows cron jobs to silently
ack when nothing to report but still deliver actual content when there
is something meaningful to say.

Media is still delivered even if text is HEARTBEAT_OK, since the
presence of media indicates there's something to share.

* fix(heartbeat): make ack padding configurable

* chore(deps): update to latest

---------

Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-01-05 22:52:13 +00:00
Peter Steinberger
d463edb17e fix(whatsapp): reconnect on crypto unhandled rejection 2026-01-05 13:55:37 +00:00
Peter Steinberger
da8ed6928d refactor: align agent lifecycle 2026-01-05 05:55:02 +01:00
Peter Steinberger
d0b7038d14 feat: opt-in login shell env fallback 2026-01-05 01:11:29 +01:00
Peter Steinberger
0715bc2216 fix: load global .env fallback 2026-01-05 01:11:29 +01:00
Peter Steinberger
544366800b fix: route system events per session 2026-01-04 22:11:04 +01:00
Peter Steinberger
6abf13653a fix(onboarding): auto-build Control UI assets 2026-01-04 21:53:23 +01:00
Peter Steinberger
a326430a94 style: format tests and helpers 2026-01-04 14:57:57 +00:00
Peter Steinberger
f7cb3846f1 chore: rename project to clawdbot 2026-01-04 14:38:51 +00:00
Peter Steinberger
89e6ed99be fix: wire slack deps and stabilize sigterm test 2026-01-04 15:13:23 +01:00
George Tsifrikas
f9e2d9d053 Fix duplicate sendMessageSlack imports
Remove duplicate import statements for sendMessageSlack that were
causing TypeScript compilation errors in deps.ts and heartbeat-runner.ts

Co-Authored-By: Warp <agent@warp.dev>
2026-01-04 14:47:17 +01:00
Peter Steinberger
82208a5078 fix: update lockfile and lint 2026-01-04 14:12:00 +01:00
Peter Steinberger
a8d7bde809 fix: wire slack into delivery routing 2026-01-04 11:44:41 +00:00
Shadow
33998f9570 Slack: add some fixes and connect it all up 2026-01-04 01:53:26 -06:00
Peter Steinberger
c1e015ce43 fix: add ~/.local/bin to PATH bootstrap for uv-installed tools (fixes #78) (#150) 2026-01-03 22:25:52 +01:00
Mariano Belinky
39cb8647b0 fix: add ~/.local/bin to PATH for uv tool binaries (#78) 2026-01-03 22:21:16 +01:00
Peter Steinberger
30cc7e5a10 fix: stream tool summaries early and tool output 2026-01-03 21:04:40 +01:00
Peter Steinberger
a77d89c99d fix: resolve gcloud python path 2026-01-03 14:36:48 +00:00
Peter Steinberger
3d22afea6f fix(logging): decouple file logs from console verbose 2026-01-03 12:32:14 +00:00
Peter Steinberger
79d21b58e4 refactor: rename bundle identifiers to com.clawdis 2026-01-03 12:26:22 +01:00
Peter Steinberger
561500e042 feat: configurable outbound text chunk limits 2026-01-03 01:49:27 +01:00
Peter Steinberger
611baa02d7 chore(gateway): quiet provider startup logs 2026-01-02 19:58:40 +00:00
Peter Steinberger
e98d9a8a98 refactor: move whatsapp allowFrom config 2026-01-02 13:00:29 +01:00
Peter Steinberger
6ee42e2fb2 fix(gateway): gate providers by config presence 2026-01-02 11:41:01 +00:00
Peter Steinberger
3e89059036 fix: refine HEARTBEAT_OK handling 2026-01-02 01:42:27 +01:00
Peter Steinberger
950340a634 style: apply biome formatting 2026-01-02 01:29:05 +01:00
Peter Steinberger
7f4ae6a690 feat: add imessage rpc adapter 2026-01-02 01:19:40 +01:00
Peter Steinberger
cbbd5b8cd7 fix(gateway): stream chat events for agent runs 2026-01-02 01:04:59 +01:00
Peter Steinberger
ef51c9a1b1 fix: align telegram token resolution 2026-01-01 21:22:59 +01:00
Peter Steinberger
e744cbc1cf feat: add remote gateway client config 2026-01-01 20:10:50 +01:00
Peter Steinberger
572c30bcce fix: satisfy bun biome formatting 2026-01-01 16:54:46 +00:00
Peter Steinberger
063e95fdc1 fix: restart via systemd on linux 2026-01-01 17:48:28 +01:00
Peter Steinberger
8a5ea157b8 fix(signal): stabilize daemon + add signal delivery 2026-01-01 15:31:41 +00:00
Peter Steinberger
dd97fab147 feat: add Signal provider support 2026-01-01 15:43:15 +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
15bda5d504 feat: add Z.AI env support and live test 2025-12-31 11:36:57 +01:00
Josh Palmer
93d75d6d33 feat: improve health checks (telegram tokenFile + hints) 2025-12-29 17:49:13 +01:00
Peter Steinberger
7e05abe2ee fix: report macos product version in presence 2025-12-28 14:34:07 +00:00
Peter Steinberger
98de257496 fix: skip whatsapp heartbeat when provider inactive 2025-12-27 19:34:10 +00:00
Peter Steinberger
3938e89642 fix: resolve CI lint and android build 2025-12-27 01:41:43 +01:00
Peter Steinberger
6fdefd9441 refactor: node tools and canvas host url 2025-12-27 01:36:29 +01:00
Peter Steinberger
7fba206832 fix(gateway): advertise reachable canvas host 2025-12-27 00:07:19 +01:00
Peter Steinberger
a97cb65e53 test: organize heartbeat test imports 2025-12-26 21:29:49 +00:00
Peter Steinberger
c680f3bac5 fix: use final heartbeat payload 2025-12-26 20:39:20 +00:00
Peter Steinberger
8062ab3db2 fix: provider startup order and enable flags 2025-12-26 16:54:53 +00:00
Peter Steinberger
15b3846aac fix: align discord types 2025-12-26 14:47:15 +01:00
Peter Steinberger
86b4816ac9 chore: fix lint after logging tweaks 2025-12-26 09:08:37 +00:00
Peter Steinberger
7c92830838 fix: log heartbeat failure reasons 2025-12-26 08:34:42 +00:00
Peter Steinberger
cf3c13ccc4 fix: correct heartbeat log formatting 2025-12-26 08:17:29 +00:00
Peter Steinberger
4cb41565e9 feat: unify gateway heartbeat 2025-12-26 02:35:40 +01:00
Peter Steinberger
a403e0e309 test: assert bridge does not add loopback listener 2025-12-25 01:41:09 +00:00
Peter Steinberger
883e99ae38 fix: bridge tailnet bind also listens on loopback 2025-12-25 01:37:47 +00:00
Peter Steinberger
d980ce77f2 refactor: move inbound config 2025-12-24 00:22:52 +00:00
Peter Steinberger
8486a9652b refactor: drop PAM auth and require password for funnel 2025-12-23 13:13:09 +00:00
Peter Steinberger
0b239f7b9a fix: resolve build errors 2025-12-23 03:00:04 +01:00
Peter Steinberger
7c759b959a refactor: lint cleanups and helpers 2025-12-23 00:28:55 +00:00
Peter Steinberger
d57ca24d4b feat(gateway): add tailscale auth + pam 2025-12-21 00:44:39 +00:00
Peter Steinberger
3be0641ff3 fix(gateway): avoid crash in handshake auth 2025-12-21 00:41:06 +00:00
Peter Steinberger
d589a46d3e fix: emit delta-only node system events 2025-12-21 01:07:35 +01:00
Peter Steinberger
da8385745d refactor(macos): bundle single relay binary 2025-12-20 19:35:30 +00:00
Peter Steinberger
055b14a5c5 feat(voicewake): add computer wake word 2025-12-20 20:33:03 +01:00
Peter Steinberger
32c49b7b94 fix: detect main module under PM2 2025-12-20 18:39:17 +01:00
Peter Steinberger
3c6c553d9b feat: advertise cli path for remote ssh 2025-12-20 16:45:26 +01:00
Peter Steinberger
90dca2ecfc fix(telegram): normalize chat ids and improve errors 2025-12-20 14:21:49 +00:00
Peter Steinberger
793a094abf fix: include tailnetDns in wide-area beacons 2025-12-20 15:02:23 +01:00
Peter Steinberger
0208825a71 style: fix lint formatting 2025-12-20 14:54:37 +01:00
Peter Steinberger
a807e83f04 feat(runtime): bootstrap PATH for clawdis 2025-12-20 13:31:46 +00:00
Peter Steinberger
f1c08ddc33 fix: auto-detect tailnet DNS hint 2025-12-20 14:23:53 +01: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
a758a59bbb refactor: unify gateway discovery on bridge 2025-12-19 23:12:52 +01:00
Peter Steinberger
824760e07c feat(pairing): add silent SSH auto-approve 2025-12-19 01:04:47 +01:00
Peter Steinberger
8b3495bf0c chore(naming): remove Iris codename 2025-12-18 13:18:33 +01:00
Peter Steinberger
a0089f669e Gateway: optional canvas host 2025-12-18 11:35:21 +01:00
Peter Steinberger
5f6c454dcb Bridge: persist advertised invoke commands 2025-12-18 02:05:40 +00:00
Peter Steinberger
c8acaaaaa2 Protocol: switch node.invoke screen.* to canvas.* 2025-12-18 01:20:20 +00:00
Peter Steinberger
81ee4d7e04 gateway: persist and surface node capabilities 2025-12-18 01:36:38 +01:00
Peter Steinberger
37d903c7a3 Gateway: include node caps + hardware in node.list 2025-12-18 00:16:36 +00: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
3725d08d00 Presence: add device identity fields 2025-12-17 21:51:36 +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
25779eb9ab Gateway: wide-area Bonjour via clawdis.internal 2025-12-17 17:01:10 +01:00
Peter Steinberger
66770b86a8 feat(voicewake): add gateway-owned wake words sync 2025-12-14 05:06:27 +00:00
Peter Steinberger
2795a42b86 test(bonjour): cover watchdog and failure modes 2025-12-14 04:36:00 +00:00
Peter Steinberger
836f011608 fix(bonjour): log advertise failures and watchdog 2025-12-14 04:36:00 +00:00
Peter Steinberger
6a9ad4abea feat(gateway): add bridge RPC chat history and push 2025-12-14 01:55:40 +00:00
Peter Steinberger
d46434ce40 feat(instances): show OS version 2025-12-13 23:51:18 +00:00
Peter Steinberger
8d10bf4176 feat(gateway): add node.invoke for iOS canvas 2025-12-13 23:45:16 +00:00
Peter Steinberger
ea79213d64 test: raise vitest coverage 2025-12-13 20:37:56 +00:00
Peter Steinberger
1b3283ae09 fix(ci): stabilize runners 2025-12-13 20:04:33 +00:00
Peter Steinberger
d552ce2584 fix(bridge): prefer bonjour TXT displayName 2025-12-13 18:31:06 +00:00
Peter Steinberger
55f65cd643 fix(ios): improve bridge discovery and pairing UX 2025-12-13 17:58:03 +00:00
Peter Steinberger
060eba1154 fix(cli): improve ui arg passthrough 2025-12-13 17:12:51 +00:00
Peter Steinberger
c03b2efe3c feat(browser): add clawdis-mac browser controls 2025-12-13 17:05:58 +00:00
Peter Steinberger
4b280f7a5c fix(gateway): advertise bonjour hostname 2025-12-13 12:29:39 +00:00
Peter Steinberger
2cf448cd31 fix(bonjour): normalize hostnames for beacons 2025-12-13 11:14:05 +00:00
Peter Steinberger
2f1209db1b feat(discovery): bonjour beacons + bridge presence 2025-12-13 04:28:43 +00:00
Peter Steinberger
2f51d0c3d9 fix(discovery): lazy-load bonjour; add tests 2025-12-13 03:55:36 +00:00
Peter Steinberger
f5ce0681bc feat(discovery): gateway bonjour + node pairing bridge 2025-12-13 03:47:53 +00:00
Peter Steinberger
2d51f515be style(tests): format imports 2025-12-12 16:47:10 +00:00
Peter Steinberger
ff4cf07631 fix(presence): stabilize instance identity 2025-12-12 16:47:07 +00:00
Peter Steinberger
18bb334c66 chore(gateway): use ws bind as lock 2025-12-11 15:17:40 +00:00
Peter Steinberger
cb56ab74fc gateway: force ws-only clients 2025-12-10 16:27:54 +00:00
Peter Steinberger
f68cbc4095 gateway: dedupe system-event presence 2025-12-10 11:48:17 +00:00
Peter Steinberger
228ee7cd8a test: isolate gateway lock per run 2025-12-10 00:58:59 +00:00
Peter Steinberger
ba9d93516a infra: use flock gateway lock 2025-12-10 00:46:50 +00:00
Peter Steinberger
5ab3b922ef feat: add ws chat attachments 2025-12-09 23:16:57 +01:00
Peter Steinberger
1291729e21 fix: improve app restart and gateway logs 2025-12-09 18:37:04 +00:00
Peter Steinberger
f847d86da7 chore: rename relay to gateway 2025-12-09 18:00:01 +00:00
Peter Steinberger
acce6e6c33 chore: format swift/ts and fix gateway lint 2025-12-09 17:11:25 +00:00
Peter Steinberger
ae260cc4fb Status: color provider lines 2025-12-09 16:31:38 +00:00
Peter Steinberger
b37cc6527a CLI: add gateway --force option 2025-12-09 16:28:26 +00:00
Peter Steinberger
28a970318e Docs: rename relay command to gateway 2025-12-09 17:24:57 +01:00
Peter Steinberger
3972e55944 tests: cover agent sequencing, tick watchdog, presence fingerprint 2025-12-09 17:05:47 +01:00
Peter Steinberger
4728dc0857 gateway: harden ws protocol and liveness 2025-12-09 17:02:58 +01:00