Peter Steinberger
13eb9c9ee9
refactor: centralize reply dispatch
2026-01-06 04:55:00 +01:00
Peter Steinberger
5946f4c341
test: extend typing idle coverage
2026-01-06 03:42:33 +00:00
Peter Steinberger
ca8f66f844
refactor: unify group allowlist policy
2026-01-06 04:27:51 +01:00
Peter Steinberger
9d656f4269
style: satisfy lint
2026-01-06 03:11:42 +00:00
Peter Steinberger
d5f088978a
fix: stop typing after dispatcher idle
2026-01-06 03:09:49 +00:00
Peter Steinberger
cc0ef4d012
fix(telegram): improve gif handling
2026-01-06 02:22:19 +00:00
Peter Steinberger
811ec8b78b
fix: unify mention gating across providers
2026-01-06 01:32:17 +01:00
Peter Steinberger
291c6f3b60
test: cover WhatsApp DM senderE164
2026-01-06 00:55:41 +01:00
Xin
a6a45f4b84
fix(whatsapp): populate senderE164 for direct chats to enable owner commands ( #247 )
2026-01-05 23:54:35 +00:00
Peter Steinberger
ac3dedaa1b
feat: standardize timestamps to UTC
2026-01-05 23:03:59 +00:00
Peter Steinberger
f790f3f3ba
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
c75b2a7067
refactor: unify reply dispatch across providers
2026-01-05 19:43:54 +01:00
Peter Steinberger
f24fe4e9cd
fix(whatsapp): reconnect on crypto unhandled rejection
2026-01-05 13:55:37 +00:00
Peter Steinberger
995f5959af
fix: stage sandbox media for inbound attachments
2026-01-05 06:18:11 +01:00
Peter Steinberger
2eb78b8da7
fix: resolve qrcode ESM import for Node 25
2026-01-05 03:47:57 +01:00
Peter Steinberger
93bb0257f0
fix: include sessions in npm pack and update qrcode import
2026-01-05 03:28:25 +01:00
Peter Steinberger
d92a9e351e
style: fix linting order and formatting
2026-01-05 02:33:59 +01:00
Peter Steinberger
e4335ea094
fix: bundle qr renderer in relay
2026-01-05 02:19:49 +01:00
Peter Steinberger
1bad96aa2b
style: tidy auto-reply imports and formatting
2026-01-05 01:46:16 +01:00
Jake
65a55b97e0
WhatsApp: mark offline/history messages as read
2026-01-05 01:36:29 +01:00
Peter Steinberger
852f947b44
fix: unify control command handling
2026-01-05 01:31:36 +01:00
Peter Steinberger
c6de1b1f7d
feat: add --dev/--profile CLI profiles
2026-01-05 01:27:13 +01:00
Peter Steinberger
c6b8235862
style: format tests and helpers
2026-01-04 14:57:57 +00:00
Peter Steinberger
246adaa119
chore: rename project to clawdbot
2026-01-04 14:38:51 +00:00
Peter Steinberger
c9504a6f20
refactor: split config module
2026-01-04 07:05:17 +01:00
Shadow
3a28e3562c
Discord: tools for uploading emojis and stickers!
2026-01-03 21:20:01 -06:00
Peter Steinberger
8724c2aea8
fix: satisfy gate checks
2026-01-04 01:16:53 +01:00
Peter Steinberger
e17c038d18
fix: add gif playback for WhatsApp sends
2026-01-03 23:56:40 +00:00
Shadow
ce92fac983
chore: formatting
2026-01-03 12:35:16 -06:00
Peter Steinberger
591773715e
fix: honor whatsapp per-group mention overrides
2026-01-03 17:51:10 +01:00
Peter Steinberger
1a00175eb7
chore: fix lint formatting
2026-01-03 14:57:49 +00:00
Peter Steinberger
bb54e60179
fix(logging): decouple file logs from console verbose
2026-01-03 12:32:14 +00:00
Peter Steinberger
1ec3512925
refactor!: drop clawdis_ tool prefix
2026-01-03 12:39:52 +01:00
Peter Steinberger
772ada4308
fix: refine tool summaries and scope discord tool
2026-01-03 12:33:42 +01:00
Peter Steinberger
988b67aa30
test: refresh auto-reply expectations
2026-01-03 05:09:59 +01:00
Peter Steinberger
5684e2d658
feat: configurable outbound text chunk limits
2026-01-03 01:49:27 +01:00
Peter Steinberger
9616f4b2b1
feat: stream reply blocks immediately
2026-01-03 00:28:33 +01:00
Peter Steinberger
2c92ccd66e
feat: add reply tags and replyToMode
2026-01-02 23:18:41 +01:00
Peter Steinberger
5cf1a9535e
feat: move group mention gating to provider groups
2026-01-02 22:24:26 +01:00
Peter Steinberger
0766c5e3cb
refactor: move whatsapp allowFrom config
2026-01-02 13:00:29 +01:00
Peter Steinberger
b50df6eb1d
style: format linted files
2026-01-02 12:20:38 +01:00
Peter Steinberger
9adbf47773
refactor: normalize group session keys
2026-01-02 10:14:58 +01:00
Peter Steinberger
76e24653e9
fix(media): preserve GIF animation, skip JPEG optimization
...
- Skip JPEG optimization for image/gif content type (both local and URL)
- Preserves animation in uploaded GIFs to Discord/other providers
- Added tests for GIF preservation from local files and URLs
- Updated changelog
2026-01-02 00:56:04 +00:00
Peter Steinberger
4c2812b429
fix: refine HEARTBEAT_OK handling
2026-01-02 01:42:27 +01:00
Peter Steinberger
06e379a239
fix: suppress stray HEARTBEAT_OK replies
2026-01-01 23:53:29 +01:00
Peter Steinberger
b3f2416a09
test: reduce flaky timeouts
2025-12-30 05:27:18 +01:00
Peter Steinberger
10e1e7fd44
chore: apply biome formatting
2025-12-30 00:16:07 +00:00
Peter Steinberger
eb158545fc
fix: force web reconnect on stalled close
2025-12-28 12:04:20 +00:00
Peter Steinberger
e336b7f27e
fix: use final heartbeat payload
2025-12-26 20:39:20 +00:00
Peter Steinberger
8dda07a1e9
feat(queue): add queue modes and discord gating
2025-12-26 13:35:44 +01:00
Peter Steinberger
82ced33747
fix: align pi model discovery with auth storage
2025-12-26 11:49:13 +01:00
Peter Steinberger
d31c5d7a2c
style: format web inbound
2025-12-26 11:39:48 +01:00
Peter Steinberger
2045487d5e
fix: extract quoted WhatsApp reply text
2025-12-26 10:51:08 +01:00
Peter Steinberger
ffe9a2435b
fix: clean up web inbox listeners on close
2025-12-26 09:27:06 +00:00
Peter Steinberger
d6f07c9f91
chore: fix lint after logging tweaks
2025-12-26 09:08:37 +00:00
Peter Steinberger
461db9e469
fix: split whatsapp listen hint from subsystem log
2025-12-26 08:41:58 +00:00
Peter Steinberger
0d8e0ddc4f
feat: unify gateway heartbeat
2025-12-26 02:35:40 +01:00
Peter Steinberger
9f7b1f0942
feat: move heartbeat config to agent.heartbeat
2025-12-26 01:13:42 +01:00
Peter Steinberger
59443d7ec6
style: format reply changes
2025-12-24 23:06:20 +01:00
Peter Steinberger
cf8d1cf0e7
fix: avoid threaded replies for agent output
2025-12-24 22:36:42 +01:00
Peter Steinberger
93af424ce5
refactor: move inbound config
2025-12-24 00:22:52 +00:00
Peter Steinberger
364a6a9444
feat: add per-session model selection
2025-12-23 23:45:20 +00:00
Peter Steinberger
df5284beaf
fix: suppress thinking stream + typing
2025-12-23 14:17:18 +00:00
Peter Steinberger
96d57a18ee
chore: demote reply chunk logs
2025-12-23 13:25:56 +00:00
Peter Steinberger
cd6ed79433
fix: honor group requireMention default
2025-12-23 12:53:30 +00:00
Peter Steinberger
56245d5646
fix: strip repeated heartbeat ok tails
2025-12-23 03:12:24 +01:00
Peter Steinberger
4af08b1606
fix: preserve whatsapp group JIDs
2025-12-23 03:05:59 +01:00
Peter Steinberger
a5f4332f21
style: apply biome formatting
2025-12-23 02:49:49 +01:00
Peter Steinberger
67a3dda53a
fix: inject reply context into body
2025-12-23 02:44:38 +01:00
Peter Steinberger
950432eac0
test: update whatsapp reply quote assertions
2025-12-23 02:30:21 +01:00
Peter Steinberger
6550e7d562
fix: add whatsapp reply context
2025-12-23 02:30:21 +01:00
Peter Steinberger
918cbdcf03
refactor: lint cleanups and helpers
2025-12-23 00:28:55 +00:00
Peter Steinberger
9118884e92
fix(web): restore creds before auth check
2025-12-22 22:55:27 +00:00
Peter Steinberger
9717f2d374
fix: bump pi deps and fix lint
2025-12-22 20:45:38 +00:00
Peter Steinberger
f10c8f2b4c
feat: add group activation command
2025-12-22 20:36:29 +01:00
Peter Steinberger
15e468f5dd
feat: add group chat activation mode
2025-12-22 19:32:12 +01:00
Peter Steinberger
2d7c5f8c53
refactor: migrate embedded pi to sdk
2025-12-22 18:05:44 +01:00
Peter Steinberger
52e7a4456a
refactor(logging): streamline whatsapp console output
2025-12-21 17:36:24 +00:00
Peter Steinberger
ff63204d17
fix(web): harden WhatsApp creds persistence
2025-12-21 13:58:31 +00:00
Peter Steinberger
3b63d1cb77
fix: auto-restart WhatsApp QR login
2025-12-21 13:36:26 +01:00
Peter Steinberger
98891103d0
fix: streamline WhatsApp login flow
2025-12-21 01:07:35 +01:00
Peter Steinberger
873daf079c
feat(web): emit provider status updates
2025-12-20 23:43:27 +01:00
Peter Steinberger
50e817f193
fix: use local timestamps in agent envelope
2025-12-20 19:40:48 +01:00
Peter Steinberger
929a10e33d
fix(web): handle self-chat mode
2025-12-20 19:32:06 +01:00
Peter Steinberger
96cbab2b22
test: expand mime detection coverage
2025-12-20 19:16:53 +01:00
Peter Steinberger
36c85a617a
fix: use file-type for mime sniffing
2025-12-20 19:13:50 +01:00
Peter Steinberger
5687a03f0b
chore: biome format
2025-12-20 18:39:17 +01:00
Peter Steinberger
ea5333e5f7
fix: make web inbox non-blocking
2025-12-20 18:24:05 +01:00
Peter Steinberger
759ab8acbc
test: mock embedded queue in auto-reply tests
2025-12-20 18:01:09 +01:00
Peter Steinberger
4e491757ef
feat(web): add whatsapp QR login tool
2025-12-20 16:52:11 +00:00
Peter Steinberger
d95c09d94a
feat(gateway): enrich agent WS logs
2025-12-20 14:54:38 +00:00
Peter Steinberger
44c951e432
test(web): cover tool summary streaming
2025-12-20 13:53:56 +00:00
Peter Steinberger
70faa4ff36
feat(web): stream tool summaries
2025-12-20 13:47:07 +00:00
Peter Steinberger
0e94c6b025
fix(browser): restore tsc types
2025-12-20 01:27:51 +00:00
Peter Steinberger
afa4a234f9
fix: remove WhatsApp batching delay
2025-12-20 01:48:29 +01:00
Peter Steinberger
bb7f4abd4b
feat(gateway): support bun-compiled embedded gateway
2025-12-19 19:21:26 +01:00
Peter Steinberger
ae58838cc5
Web: fix lint/format for error formatter
2025-12-18 18:22:32 +00:00
Peter Steinberger
9a4fc3e086
Web: improve WhatsApp error formatting
2025-12-18 18:03:25 +00:00
Peter Steinberger
0241f1a29c
Web: harden WhatsApp creds handling
2025-12-18 17:19:53 +00:00
Peter Steinberger
a0c4b1e061
test(web): avoid ENOTEMPTY cleanup race
2025-12-17 19:15:19 +00:00
Peter Steinberger
fece42ce0a
feat: embed pi agent runtime
2025-12-17 11:29:04 +01:00
Peter Steinberger
c3528fb201
test(web): stabilize group heartbeat test
2025-12-14 05:36:01 +00:00
Peter Steinberger
357a1a982b
style: satisfy formatters
2025-12-14 04:03:32 +00:00
Peter Steinberger
38a773f245
test(web): make heartbeat call selection deterministic
2025-12-14 03:59:40 +00:00
Peter Steinberger
694a10f604
fix(web): use heartbeat inbound msg for delivery
2025-12-14 01:55:40 +00:00
Peter Steinberger
8b6abe0151
fix(web): heartbeat fallback after group inbound
2025-12-14 01:26:40 +00:00
Peter Steinberger
c17440f5b4
feat(mac): host PeekabooBridge for ui
2025-12-13 16:56:22 +00:00
Peter Steinberger
f9409cbe43
Cron: add scheduler, wakeups, and run history
2025-12-13 02:34:38 +00:00
Peter Steinberger
0484aba892
test(web): retry session tmp cleanup
2025-12-12 22:55:39 +00:00
Peter Steinberger
8fb3aef917
fix(gateway): handle SIGTERM shutdown cleanly
2025-12-12 18:28:08 +00:00
Peter Steinberger
0780859a4d
fix(auto-reply): prefer Pi RPC by default
2025-12-12 17:30:34 +00:00
Peter Steinberger
6e9d3092a7
fix(voice): persist WhatsApp last route
2025-12-12 17:28:07 +00:00
Peter Steinberger
7a1d64fff9
style(tests): format imports
2025-12-12 16:47:10 +00:00
Peter Steinberger
a524b9ae9b
feat(voicewake): route replies to last channel
2025-12-12 16:22:30 +00:00
Peter Steinberger
f1ff24d634
web: default to self-only without config
2025-12-12 01:22:03 +00:00
Peter Steinberger
47a1f757a9
lint: format and stabilize gateway health
2025-12-10 18:00:33 +00:00
Peter Steinberger
e9fd73141d
health: gateway-only status and stable reconnect
2025-12-10 16:47:38 +00:00
Peter Steinberger
55772eec5a
gateway: force ws-only clients
2025-12-10 16:27:54 +00:00
Peter Steinberger
1dd5c97ae0
feat: add ws chat attachments
2025-12-09 23:16:57 +01:00
Peter Steinberger
5a8d18edf3
web: reuse active listener for sends
2025-12-09 20:37:01 +00:00
Peter Steinberger
131864b940
gateway: drop ipc and simplify cli
2025-12-09 20:18:50 +00:00
Peter Steinberger
5e5845547e
gateway: improve conflict handling and logging
2025-12-09 20:07:24 +00:00
Peter Steinberger
ffc930b871
surface: envelope inbound messages for agent
2025-12-09 18:43:21 +00:00
Peter Steinberger
a3bf2bdd8c
chore: rename relay to gateway
2025-12-09 18:00:01 +00:00
Peter Steinberger
67f2bc1385
web: log disconnect error detail in reconnect loop
2025-12-09 17:38:49 +00:00
Peter Steinberger
1f19ca1665
chore: drop runner shim and add committer helper
2025-12-09 17:24:25 +00:00
Peter Steinberger
d04f7fc6e9
msg: retry web/telegram sends and add regression tests
2025-12-09 17:23:04 +00:00
Peter Steinberger
b6bd39660f
IPC: rename relay socket to gateway.sock
2025-12-09 17:04:58 +00:00
Peter Steinberger
1969e78d54
feat: surface system presence for the agent
2025-12-09 02:25:37 +01:00
Peter Steinberger
3fe68a051a
fix: block partial replies on external chat surfaces
2025-12-09 01:48:12 +01:00
Peter Steinberger
5bfecc6152
fix: stop partial replies for whatsapp/telegram surfaces
2025-12-09 01:41:05 +01:00
Peter Steinberger
22996854f7
relay: add control channel and heartbeat stream
2025-12-08 21:50:24 +01:00
Peter Steinberger
ab448988ff
RPC: stream heartbeat events to menu
2025-12-08 20:18:54 +01:00
Peter Steinberger
d73d571f19
Launch agent: disable autostart without killing running app
2025-12-07 19:01:14 +01:00
Peter Steinberger
d463c82c95
build: add local node bin to restart script PATH
2025-12-07 19:01:14 +01:00
Peter Steinberger
b30db08110
feat: add heartbeat toggle with live RPC control
2025-12-07 15:32:48 +01:00
Peter Steinberger
67fa82cf14
agent: deliver via rpc and voice forward
2025-12-07 06:05:00 +01:00
Peter Steinberger
cb5c932447
Health: CLI probe and mac UI surfacing
2025-12-07 04:38:20 +00:00
Peter Steinberger
31f788eb5e
CLI: allow --provider flag for login/logout (default whatsapp)
2025-12-07 03:41:27 +00:00
Peter Steinberger
6c3d3b98b8
chore: purge warelay references
2025-12-07 03:36:57 +00:00
Peter Steinberger
4b6325908b
feat: unify main session and icon cues
2025-12-06 23:16:23 +01:00
Peter Steinberger
5492845659
feat: stream turn completions and tighten rpc timeout
2025-12-05 21:13:17 +00:00
Peter Steinberger
29dfe89137
chore: redact long texts in web logs
2025-12-05 19:21:23 +00:00
Peter Steinberger
7c7314f673
chore: drop twilio and go web-only
2025-12-05 19:03:59 +00:00
Peter Steinberger
b3e50cbb33
Switch to clawdis RPC mode and complete rebrand
2025-12-05 17:22:53 +00:00
Peter Steinberger
916a41ed60
branding: default to clawdis paths and launchd label
2025-12-04 18:01:30 +00:00
Peter Steinberger
04ce98148d
web: fix mentioned JID extraction typing
2025-12-04 17:54:51 +00:00
Eng. Juan Combetto
4a35bcec21
fix: resolve lint errors (unused vars, imports, formatting)
...
- Prefix unused test variables with underscore
- Remove unused piSpec import and idleMs class member
- Fix import ordering and code formatting
2025-12-04 16:15:17 +00:00
Eng. Juan Combetto
518af0ef24
config: support clawdis.json path for rebranding
...
- Add CONFIG_PATH_CLAWDIS (~/.clawdis/clawdis.json) as preferred path
- Keep CONFIG_PATH_LEGACY (~/.warelay/warelay.json) for backward compatibility
- Update loadConfig() to check clawdis.json first, fallback to warelay.json
- Fix TypeScript type error in extractMentionedJids (null handling)
Part of the warelay → clawdis rebranding effort.
2025-12-04 16:15:17 +00:00
Peter Steinberger
07f323222b
fix(web): capture mentions from media captions
2025-12-03 15:45:43 +00:00