Peter Steinberger
546f386735
fix: harden heartbeat acks + gateway reconnect
2025-12-27 20:02:27 +00:00
Peter Steinberger
98de257496
fix: skip whatsapp heartbeat when provider inactive
2025-12-27 19:34:10 +00:00
Peter Steinberger
41ff47c0fc
chore: release 2.0.0-beta4
2025-12-27 19:43:43 +01:00
Peter Steinberger
b2dae3d007
chore: release 2.0.0-beta3
2025-12-27 19:02:35 +01:00
Peter Steinberger
9694cf17fa
fix(macos): boost light mode usage bar contrast
2025-12-27 14:03:45 +01:00
Peter Steinberger
096b48077b
fix: treat /model status as model list
2025-12-27 12:10:44 +00:00
Peter Steinberger
1bf2e888ae
docs: update changelog
2025-12-27 03:21:25 +01:00
Peter Steinberger
324c31e011
fix: enqueue system event on model switch
2025-12-27 01:17:12 +00:00
Peter Steinberger
310c9bd083
fix(macos): lock menu width on hover
2025-12-27 01:50:25 +01:00
Peter Steinberger
6fdefd9441
refactor: node tools and canvas host url
2025-12-27 01:36:29 +01:00
Peter Steinberger
048c87a07e
fix: drop identity emoji response prefix
2025-12-27 00:36:04 +00:00
Peter Steinberger
f4ed7b401b
fix: allow empty responsePrefix
2025-12-27 00:33:04 +00:00
Peter Steinberger
1f3ddf8850
fix: enable lmstudio responses and drop think tags
2025-12-27 00:28:52 +00:00
Peter Steinberger
497b5b8ab1
fix(macos): refresh menu sessions without resizing
2025-12-26 22:48:58 +01:00
Peter Steinberger
173cefd0f0
feat(mac): add allow camera toggle
2025-12-26 21:33:22 +00:00
Peter Steinberger
8596b70813
fix(macos): expand menu hover highlight width
2025-12-26 22:30:29 +01:00
Peter Steinberger
a2b465a181
fix(macos): keep menu width stable while open
2025-12-26 22:27:24 +01:00
Peter Steinberger
14f06a2216
fix(macos): detect and reset stale SSH tunnels
2025-12-26 22:12:33 +01:00
Peter Steinberger
84f77a7a17
feat(mac): add node ssh and compact versions
2025-12-26 20:42:49 +00:00
Peter Steinberger
c680f3bac5
fix: use final heartbeat payload
2025-12-26 20:39:20 +00:00
Peter Steinberger
bcfd8bd9a3
fix(mac): refine node submenu copy behavior
2025-12-26 20:05:23 +00:00
Peter Steinberger
72c09f4769
refactor: make browser actions ref-only
2025-12-26 19:02:27 +00:00
Peter Steinberger
8d6874d952
fix: gate libsignal session logs behind verbose
2025-12-26 19:02:27 +00:00
Peter Steinberger
8062ab3db2
fix: provider startup order and enable flags
2025-12-26 16:54:53 +00:00
Peter Steinberger
f15089482c
docs: update beta3 changelog
2025-12-26 17:21:29 +01:00
Peter Steinberger
4d9a1ca818
test: isolate vitest home
2025-12-26 11:45:16 +00:00
Peter Steinberger
12928f8002
fix: extract quoted WhatsApp reply text
2025-12-26 10:51:08 +01:00
Peter Steinberger
7c92830838
fix: log heartbeat failure reasons
2025-12-26 08:34:42 +00:00
Peter Steinberger
4cb41565e9
feat: unify gateway heartbeat
2025-12-26 02:35:40 +01:00
Peter Steinberger
fd933373d7
docs: note hour durations
2025-12-26 01:36:08 +01:00
Peter Steinberger
3ffd1c9bba
feat: move heartbeat config to agent.heartbeat
2025-12-26 01:13:42 +01:00
Peter Steinberger
0e3e0d2873
fix(webchat): refresh bubbles on theme change
2025-12-25 22:35:46 +01:00
Peter Steinberger
60a36c5d1e
docs: update beta3 changelog
2025-12-25 21:15:45 +00:00
Peter Steinberger
fabed34e88
feat: line-based process logs
2025-12-25 18:03:57 +00:00
Peter Steinberger
b9bf1c2697
docs: add background bash changelog
2025-12-25 00:54:08 +00:00
Peter Steinberger
bf6cfd3aff
docs: clarify reply threading change
2025-12-24 22:37:32 +01:00
Peter Steinberger
e6dcc8be8f
feat: add gmail hooks wizard
2025-12-24 19:48:35 +00:00
Peter Steinberger
ad2671a83c
chore: update changelog
2025-12-24 14:39:26 +00:00
Peter Steinberger
c58e926852
feat: add gateway webhooks
2025-12-24 14:33:05 +00:00
Peter Steinberger
42a7b5e98e
docs: update changelog
2025-12-24 13:52:41 +01:00
Peter Steinberger
d0312fa562
docs: note config refactor
2025-12-24 00:24:05 +00:00
Peter Steinberger
7bda787266
docs: update routing/messages/session config
2025-12-24 00:22:57 +00:00
Peter Steinberger
7df28dcff2
fix: tag owner numbers in system prompt
2025-12-23 14:19:41 +00:00
Peter Steinberger
a24d541abc
fix: suppress thinking stream + typing
2025-12-23 14:17:18 +00:00
Peter Steinberger
4e1c03b6fe
fix: delay typing until reply payload
2025-12-23 13:55:01 +00:00
Peter Steinberger
80ed2ad7c0
fix: inject group activation in system prompt
2025-12-23 13:32:07 +00:00
Peter Steinberger
3fd7570aac
fix: honor /new resets with mentions in groups
2025-12-23 13:20:11 +00:00
Peter Steinberger
8486a9652b
refactor: drop PAM auth and require password for funnel
2025-12-23 13:13:09 +00:00
Peter Steinberger
aada8f7c84
fix: honor group requireMention default
2025-12-23 12:53:30 +00:00
Peter Steinberger
46ff27c8a1
fix: strip repeated heartbeat ok tails
2025-12-23 03:12:24 +01:00
Peter Steinberger
5d1e92e95d
fix: preserve whatsapp group JIDs
2025-12-23 03:05:59 +01:00
Peter Steinberger
1dd8345d89
docs: add beta3 changelog
2025-12-23 03:02:30 +01:00
Peter Steinberger
e0706949a7
fix: inject reply context into body
2025-12-23 02:44:38 +01:00
Peter Steinberger
317d4ddbac
fix: add whatsapp reply context
2025-12-23 02:30:21 +01:00
Peter Steinberger
4216b4dedf
fix: add A2UI inset vars
2025-12-21 03:21:49 +01:00
Peter Steinberger
4f031c22a1
docs: add 2.0.0-beta2 changelog
2025-12-21 01:54:27 +01:00
Peter Steinberger
0a7299eb77
chore: prep 2.0.0-beta1 release
2025-12-19 18:02:30 +01:00
Peter Steinberger
8b3495bf0c
chore(naming): remove Iris codename
2025-12-18 13:18:33 +01:00
Peter Steinberger
15442560a4
Docs: document canvas.* node.invoke commands
2025-12-18 01:20:20 +00:00
Peter Steinberger
d723235b34
docs(changelog): note macOS voice audio fix
2025-12-16 09:35:02 +00:00
Peter Steinberger
3a5687aeb0
docs(changelog): add 2.0.0-beta1 entry
2025-12-14 00:34:22 +00:00
Peter Steinberger
a3ce3b056d
docs: pi-only terminology
2025-12-13 13:26:44 +00:00
Peter Steinberger
0c76800935
docs: clarify voice wake last-channel routing
2025-12-12 16:26:19 +00:00
Peter Steinberger
525e678f2f
chore: drop gateway ipc remnants
2025-12-09 20:21:41 +00:00
Peter Steinberger
f847d86da7
chore: rename relay to gateway
2025-12-09 18:00:01 +00:00
Peter Steinberger
1e84ca69a0
chore: drop runner shim and add committer helper
2025-12-09 17:24:25 +00:00
Peter Steinberger
a832b90aae
IPC: rename relay socket to gateway.sock
2025-12-09 17:04:58 +00:00
Peter Steinberger
daa699c7c0
feat(cli): unify relay providers and heartbeat flag
2025-12-08 16:34:06 +01:00
Peter Steinberger
c872256d72
refactor(cli): drop tmux helpers and update help copy
2025-12-08 12:43:13 +01:00
Peter Steinberger
8bf33dd2d4
Telegram: enable grammY throttler and webhook tests
2025-12-07 22:52:57 +01:00
Peter Steinberger
8d2fd382e4
build: add local node bin to restart script PATH
2025-12-07 19:01:14 +01:00
Peter Steinberger
4b857def36
auto-reply: enrich chat status
2025-12-07 16:53:33 +00:00
Peter Steinberger
4a813b8794
voice wake: keep default key when identity is blank
2025-12-07 16:23:35 +01:00
Peter Steinberger
b662fcc9d2
chore: purge warelay references
2025-12-07 03:36:57 +00:00
Peter Steinberger
ad15614a4e
fix: remove legacy relay references
2025-12-06 23:21:25 +00:00
Peter Steinberger
6727870873
CLI: compact sessions table output
2025-12-06 00:49:21 +00:00
Peter Steinberger
20a780a8c0
fix: harden directive handling
2025-12-05 23:43:30 +00:00
Peter Steinberger
2b2e545ef5
fix: broaden prompt-echo guard and add heartbeat directive test
2025-12-05 22:56:07 +00:00
Peter Steinberger
3a14da2e3b
fix: avoid echoing prompts when rpc returns empty
2025-12-05 22:52:21 +00:00
Peter Steinberger
b9497a7d3a
fix: ignore directives inside history blocks
2025-12-05 22:49:41 +00:00
Peter Steinberger
13da616a9a
docs: note directive short-circuit
2025-12-05 21:30:01 +00:00
Peter Steinberger
8c6e73dcb4
chore: remove twilio and expand pi cli detection
2025-12-05 21:13:23 +00:00
Peter Steinberger
b7f4470c23
docs: update for web-only pi rpc
2025-12-05 19:04:09 +00:00
Peter Steinberger
f980b0af1c
chore: make pi-only rpc with fixed sessions
2025-12-05 17:50:02 +00:00
Peter Steinberger
07c7353ccb
branding: default to clawdis paths and launchd label
2025-12-04 18:01:30 +00:00
Peter Steinberger
8b9587938c
docs: document agent CLI and changelog
2025-12-04 17:55:38 +00:00
Peter Steinberger
195af6408b
chore: bump version to 1.4.0
2025-12-03 15:45:43 +00:00
Peter Steinberger
ac7310fc13
docs: note media-only mention fix
2025-12-03 15:45:43 +00:00
Peter Steinberger
c5a1020fa4
fix(web): surface media fetch failures
2025-12-03 15:45:43 +00:00
Peter Steinberger
d5ef1c76ae
changelog: note verbose tool emoji/previews
2025-12-03 15:45:43 +00:00
Peter Steinberger
0bdb3b718e
feat(web): prime group sessions with member roster
2025-12-03 15:45:43 +00:00
Peter Steinberger
4d6bc8eeaf
fix(web): annotate group replies with sender
2025-12-03 13:25:34 +00:00
Peter Steinberger
9f1c1e7b7d
changelog: note logging capture and verbose trace
2025-12-03 13:09:29 +00:00
Peter Steinberger
46f2e39142
fix(web): allow group replies past allowFrom
2025-12-03 13:08:54 +00:00
Peter Steinberger
cee6618fd6
feat(web): add group chat mention support
2025-12-03 12:35:18 +00:00
Peter Steinberger
7a7395fc99
Add /restart WhatsApp command to restart warelay
2025-12-03 12:14:32 +00:00
Peter Steinberger
cee09fa3e5
Tau RPC: resolve on agent_end or exit
2025-12-03 11:34:00 +00:00
Peter Steinberger
b6a04aadd2
Pi: resume Tau sessions with --continue
2025-12-03 11:33:51 +00:00
Peter Steinberger
ff625f0b63
Docs: note 1s tool coalescing window
2025-12-03 10:19:10 +00:00
Peter Steinberger
040c991ce9
Verbose: batch rapid tool results
2025-12-03 10:11:41 +00:00
Peter Steinberger
c9fd48de31
Verbose: include tool arg metadata in prefixes
2025-12-03 09:57:41 +00:00
Peter Steinberger
01185952e6
Verbose: send tool result metadata only
2025-12-03 09:40:05 +00:00
Peter Steinberger
c8309e73aa
Tau RPC: resolve on agent_end
2025-12-03 09:39:26 +00:00
Peter Steinberger
4143c2be2d
Docs: note streaming verbose tool results
2025-12-03 09:22:43 +00:00
Peter Steinberger
05ce99d557
Docs: mention verbose hints
2025-12-03 09:08:03 +00:00
Peter Steinberger
e33c7a813d
Auto-reply: add /verbose directives and tool result replies
2025-12-03 09:04:37 +00:00
Peter Steinberger
e5fff1d374
Auto-reply: ack think directives
2025-12-03 08:54:38 +00:00
Peter Steinberger
6ec2335bae
Docs: document thinking levels
2025-12-03 08:45:30 +00:00
Peter Steinberger
2fbd0b9f74
Changelog: heartbeat array handling
2025-12-03 01:03:59 +00:00
Peter Steinberger
d25d12ca8a
Auto-reply: smarter chunking breaks
2025-12-03 00:25:01 +00:00
Peter Steinberger
0f378bb640
limits: chunk replies for twilio/web
2025-12-02 23:10:16 +00:00
Peter Steinberger
f374561579
auto-reply: support multi-text RPC outputs
2025-12-02 23:03:55 +00:00
Peter Steinberger
088887c8fe
chore: cut 1.3.1 in changelog
2025-12-02 21:13:47 +00:00
Peter Steinberger
8c7f4e4ab0
docs: note media cleanup and tau rpc typing
2025-12-02 21:13:21 +00:00
Peter Steinberger
5e5adbfc8f
test(media): add redirect coverage and update changelog
2025-12-02 21:09:26 +00:00
Peter Steinberger
873ba41650
docs: update agent guidance and changelog
2025-12-02 20:10:43 +00:00
Peter Steinberger
65c7078abb
chore: credit media fix contributor
2025-12-02 18:38:02 +00:00
Peter Steinberger
dc226c4ee0
fix(media): block symlink traversal
2025-12-02 18:37:15 +00:00
Peter Steinberger
5b5eebe015
chore(logs): rotate daily and prune after 24h
2025-12-02 17:11:43 +00:00
Peter Steinberger
1f0c022b96
chore(security): purge session store on logout
2025-12-02 16:33:44 +00:00
Peter Steinberger
241941fb70
chore(security): harden ipc socket
2025-12-02 16:09:40 +00:00
Peter Steinberger
bdaf64e6dc
Changelog: note multi-agent and batching
...
Co-authored-by: RealSid08 <RealSid08@users.noreply.github.com>
2025-12-02 11:11:50 +00:00
Peter Steinberger
6c12d50895
chore: bump version to 1.3.0
2025-12-02 07:54:49 +00:00
Peter Steinberger
32564ca6d3
Add typing indicator after IPC send
...
After sending via IPC, automatically show "composing" indicator so
user knows more messages may be coming from the running session.
2025-12-02 06:58:17 +00:00
Peter Steinberger
030968e2de
Add IPC to prevent Signal session corruption from concurrent connections
...
When the relay is running, `warelay send` and `warelay heartbeat` now
communicate via Unix socket IPC (~/.warelay/relay.sock) to send messages
through the relay's existing WhatsApp connection.
Previously, these commands created new Baileys sockets that wrote to the
same auth state files, corrupting the Signal session ratchet and causing
the relay's subsequent sends to fail silently.
Changes:
- Add src/web/ipc.ts with Unix socket server/client
- Relay starts IPC server after connecting
- send command tries IPC first, falls back to direct
- heartbeat uses sendWithIpcFallback helper
- inbound.ts exposes sendMessage on listener object
- Messages sent via IPC are added to echo detection set
2025-12-02 06:31:07 +00:00
Peter Steinberger
f2d2d3dce6
web: isolate session fixtures and skip heartbeat when busy
2025-12-02 06:17:16 +00:00
Peter Steinberger
a052d535a0
Update changelog with error message and test isolation fixes
2025-12-02 05:59:31 +00:00
Peter Steinberger
8a94bc1b30
Fix empty result JSON dump and missing heartbeat prefix
...
Bug fixes:
- Empty result field handling: Changed truthy check to explicit type
check (`typeof parsed?.text === "string"`) in command-reply.ts.
Previously, Claude CLI returning `result: ""` would cause raw JSON
to be sent to WhatsApp.
- Response prefix on heartbeat: Apply `responsePrefix` to heartbeat
alert messages in runReplyHeartbeat, matching behavior of regular
message handler.
2025-12-02 04:29:17 +00:00
Peter Steinberger
4c4a08fade
Increase watchdog timeout to 30 minutes
...
Changed from 10 to 30 minutes to avoid false positives when
heartbeatMinutes is set to 10. The watchdog should be significantly
longer than the heartbeat interval to account for:
- Network latency
- Slow command responses
- Brief connection hiccups
With heartbeatMinutes=10, a 30-minute watchdog gives 3x buffer before
triggering auto-restart.
2025-11-30 18:03:19 +00:00
Peter Steinberger
9f1c2169eb
Fix test isolation to prevent loading real user config
...
Tests were picking up real ~/.warelay/warelay.json with emojis and
prefixes (like "🦞 "), causing test assertions to fail. Added proper
config mocks to all test files.
Changes:
- Mock loadConfig() in index.core.test.ts, inbound.media.test.ts,
monitor-inbox.test.ts
- Update test-helpers.ts default mock to disable all prefixes
- Tests now use clean config: no messagePrefix, no responsePrefix,
no timestamp, allowFrom=["*"]
This ensures tests validate core behavior without user-specific config.
The responsePrefix feature itself is already fully config-driven - this
only fixes test isolation.
2025-11-30 18:00:57 +00:00
Peter Steinberger
a7b6914a64
feat: same-phone mode with echo detection and configurable marker
...
Adds full support for self-messaging setups where you chat with yourself
and an AI assistant replies in the same WhatsApp bubble.
Changes:
- Same-phone mode (from === to) always allowed, bypasses allowFrom check
- Echo detection via bounded Set (max 100) prevents infinite loops
- Configurable samePhoneMarker in config (default: "[same-phone]")
- Messages prefixed with marker so assistants know the context
- fromMe filter removed from inbound.ts (echo detection in auto-reply)
- Verbose logging for same-phone detection and echo skips
Tests:
- Same-phone allowed without/despite allowFrom configuration
- Body prefixed only when from === to
- Non-same-phone rejected when not in allowFrom
2025-11-29 04:52:21 +00:00
Peter Steinberger
f13519d277
chore: release 1.2.2
2025-11-28 08:17:22 +01:00
Peter Steinberger
9486f06adb
chore: move heartbeat notes to unreleased 1.2.2
2025-11-28 08:14:51 +01:00
Peter Steinberger
258bb716c5
chore: release 1.2.1
2025-11-28 08:11:07 +01:00
Peter Steinberger
83f03a9b23
docs: document mime-first media handling
2025-11-28 08:07:53 +01:00
Peter Steinberger
0866974e59
Release 1.2.0
2025-11-27 18:52:26 +01:00
Peter Steinberger
bb21763957
Docs: refresh 1.2.0 changelog; fix webhook host import
2025-11-27 18:46:46 +01:00
Peter Steinberger
2a4f56e66b
Fix WebSocket crash + heartbeat default 10min + docs refresh
...
- Wrap Baileys connection.update listeners in try-catch to prevent
unhandled exceptions from crashing the relay process
- Add WebSocket-level error handlers in session.ts
- Add global unhandledRejection/uncaughtException handlers in index.ts
- Make listener.onClose error-safe with .catch() in auto-reply.ts
- Change default heartbeat from 30min to 10min
- Rewrite claude-config.md with personality, better explain personal
assistant features, add recommended MCPs section
2025-11-27 18:21:14 +01:00
Peter Steinberger
cb050b022f
Heartbeat: session-id override and safer fallback
2025-11-26 18:19:54 +01:00
Peter Steinberger
f3604a4a28
Changelog: bump to 1.2.0 unreleased
2025-11-26 18:18:13 +01:00
Peter Steinberger
ba543640d3
Heartbeat: harden targeting and support lid mapping
2025-11-26 18:15:57 +01:00
Peter Steinberger
b13fa6bcc3
CLI: rename heartbeat tmux helper and log file path
2025-11-26 18:00:23 +01:00
Peter Steinberger
1c64f83b31
Heartbeat: add relay helper and fix CLI tests
2025-11-26 17:49:34 +01:00
Peter Steinberger
4c58baa14b
docs: document heartbeat idle override and tests
2025-11-26 17:31:56 +01:00
Peter Steinberger
a6af33d262
docs: document heartbeat triggers
2025-11-26 17:05:09 +01:00
Peter Steinberger
5d0c5c7a50
docs: open 1.1.x unreleased section
2025-11-26 03:33:44 +01:00
Peter Steinberger
0833760d78
chore: update changelog and surface web relay settings
2025-11-26 02:43:24 +01:00
Peter Steinberger
c687d41f82
docs: trim changelog to user-facing auto-reply changes
2025-11-26 02:19:21 +01:00
Peter Steinberger
268ab0480f
docs: note auto-reply helper split
2025-11-26 02:18:39 +01:00
Peter Steinberger
9fa3cbab8a
chore: format to 2-space and bump changelog
2025-11-26 00:53:53 +01:00
Peter Steinberger
41dc5ed5eb
feat: keep typing indicators alive during commands
2025-11-26 00:05:11 +01:00
Peter Steinberger
1dfc2ccf6e
feat: send session prompt once
2025-11-25 23:52:38 +01:00
Peter Steinberger
cb61b9ff84
docs: document media caps and tidy web tests
2025-11-25 23:43:57 +01:00
Peter Steinberger
9992f778e6
docs: clarify transcript prompt and config
2025-11-25 23:14:23 +01:00
Peter Steinberger
9b8bcf36c3
feat: optional audio transcription via CLI
2025-11-25 23:06:54 +01:00
Peter Steinberger
87f9b1f0f4
web: compress auto-reply media
2025-11-25 20:09:03 +01:00
Peter Steinberger
49c21e9f6f
Release 1.0.4
2025-11-25 18:12:44 +01:00
Peter Steinberger
51f3be9230
Web relay: auto-reconnect Baileys and test
2025-11-25 18:09:57 +01:00
Peter Steinberger
7dc5681102
Auto-reply: send timeout fallback and tests
2025-11-25 17:52:57 +01:00
Peter Steinberger
5bbae8c435
Chore: prep 0.1.4 unreleased placeholder and release guardrails
2025-11-25 17:08:13 +01:00
Peter Steinberger
47a79e7a93
Release 0.1.3
2025-11-25 16:53:30 +01:00
Peter Steinberger
0fef193518
Add cwd option for command replies
2025-11-25 16:19:24 +01:00
Peter Steinberger
5e4d430db1
chore: trim 0.1.2 changelog entry
2025-11-25 14:50:34 +01:00
Peter Steinberger
7dbbfcf54f
chore: reorder changelog and add 0.1.3 stub
2025-11-25 14:47:48 +01:00
Peter Steinberger
93d9e932fb
chore: bump to 0.1.2 and fix commander typings
2025-11-25 14:26:55 +01:00
Peter Steinberger
8b5500474f
chore: document 0.1.1 changes in changelog
2025-11-25 14:10:42 +01:00
Peter Steinberger
137fd4293b
Cleanup: remove deprecated up alias and update ingress docs
2025-11-25 12:40:56 +01:00
Peter Steinberger
78e53b53f1
CLI: unify webhook ingress and keep up as tailscale alias
2025-11-25 12:38:38 +01:00
Peter Steinberger
91c01847c6
CLI: drop web:login alias and simplify web quickstart
2025-11-25 12:30:43 +01:00
Peter Steinberger
ab6b11dd1b
Prepare 0.1.0 changelog and npm-focused quickstart
2025-11-25 12:00:48 +01:00