Robby (AI-assisted)
16a7964493
security(web): sanitize WhatsApp accountId to prevent path traversal
...
Add normalizeAccountId() to sanitize account IDs before use in path.join(),
preventing potential path traversal attacks via malicious config values.
This follows the same pattern already used in src/telegram/update-offset-store.ts
for Telegram account ID sanitization.
Fixes #2692
2026-01-27 09:24:24 +00:00
Peter Steinberger
875b018ea1
fix: stop sending tool summaries to channels
2026-01-25 11:54:29 +00:00
Seb Slight
d4f60bf16a
TTS: gate auto audio on inbound voice notes ( #1667 )
...
Co-authored-by: Sebastian <sebslight@gmail.com>
2026-01-25 04:35:20 +00:00
Peter Steinberger
458e731f8b
fix: newline chunking across channels
2026-01-25 04:11:36 +00:00
Peter Steinberger
4b6cdd1d3c
fix: normalize session keys and outbound mirroring
2026-01-24 11:57:11 +00:00
Peter Steinberger
dbf139d14e
test: cover explicit mention gating across channels
2026-01-24 11:09:33 +00:00
Peter Steinberger
d905ca0e02
fix: enforce explicit mention gating across channels
2026-01-24 11:09:33 +00:00
Dave Lauer
f9cf508cff
feat(heartbeat): add configurable visibility for heartbeat responses
...
Add per-channel and per-account heartbeat visibility settings:
- showOk: hide/show HEARTBEAT_OK messages (default: false)
- showAlerts: hide/show alert messages (default: true)
- useIndicator: emit typing indicator events (default: true)
Config precedence: per-account > per-channel > channel-defaults > global
This allows silencing routine heartbeat acks while still surfacing
alerts when something needs attention.
2026-01-24 09:07:03 +00:00
Peter Steinberger
350131b4d7
fix: improve web image optimization
2026-01-24 01:18:58 +00:00
Peter Steinberger
1113f17d4c
refactor: share reply prefix context
2026-01-23 23:34:30 +00:00
Peter Steinberger
521ea4ae5b
refactor: unify pending history helpers
2026-01-23 23:33:32 +00:00
Peter Steinberger
892197c43e
refactor: reuse ack reaction helper for whatsapp
2026-01-23 22:24:31 +00:00
Peter Steinberger
b77e730657
fix: add per-channel markdown table conversion ( #1495 ) (thanks @odysseus0)
2026-01-23 18:39:25 +00:00
Peter Steinberger
e817c0cee5
fix: preserve PNG alpha fallback ( #1491 ) (thanks @robbyczgw-cla)
2026-01-23 08:45:50 +00:00
Robby
e634791585
fix(media): preserve alpha channel for transparent PNGs ( #1473 )
2026-01-23 08:43:01 +00:00
Peter Steinberger
b63175d822
Merge remote-tracking branch 'origin/main' into feature/agent-avatar-support
2026-01-22 06:27:45 +00:00
Peter Steinberger
d425f1ebea
test: align envelope timestamp expectations ( #1329 ) (thanks @dlauer)
2026-01-22 05:51:42 +00:00
Peter Steinberger
a59ac5cf6f
feat: add agent identity avatars ( #1329 ) (thanks @dlauer)
2026-01-22 05:37:15 +00:00
Peter Steinberger
b60db040e2
test: align envelope timestamps with local tz
2026-01-22 04:49:41 +00:00
Peter Steinberger
0f7f7bb95f
fix: msteams attachments + plugin prompt hints
...
Co-authored-by: Christof <10854026+Evizero@users.noreply.github.com>
2026-01-22 03:37:29 +00:00
Echo
c415ccaed5
feat(sessions): add channelIdleMinutes config for per-channel session idle durations ( #1353 )
...
* feat(sessions): add channelIdleMinutes config for per-channel session idle durations
Add new `channelIdleMinutes` config option to allow different session idle
timeouts per channel. For example, Discord sessions can now be configured
to last 7 days (10080 minutes) while other channels use shorter defaults.
Config example:
sessions:
channelIdleMinutes:
discord: 10080 # 7 days
The channel-specific idle is passed as idleMinutesOverride to the existing
resolveSessionResetPolicy, integrating cleanly with the new reset policy
architecture.
* fix
* feat: add per-channel session reset overrides (#1353 ) (thanks @cash-echo-bot)
---------
Co-authored-by: Cash Williams <cashwilliams@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-21 19:10:31 +00:00
Tyler Yust
199fef2a5e
feat: enhance BlueBubbles group message handling by adding account-specific logging and improving typing signal conditions
2026-01-20 12:07:54 +00:00
Tyler Yust
14a072f5fa
feat: add support for setting group icons in BlueBubbles, enhancing group management capabilities
2026-01-20 12:07:54 +00:00
Peter Steinberger
6d5195c890
refactor: normalize cli command hints
2026-01-20 07:43:00 +00:00
Peter Steinberger
50fdd514ae
refactor(logging): split config + subsystem imports
2026-01-19 00:15:44 +00:00
Peter Steinberger
690bb192e6
style: format code
2026-01-18 19:36:46 +00:00
Peter Steinberger
744d1329cb
feat: make inbound envelopes configurable
...
Co-authored-by: Shiva Prasad <shiv19@users.noreply.github.com>
2026-01-18 18:50:37 +00:00
Peter Steinberger
ab340c82fb
fix: stabilize tests and logging
2026-01-18 18:43:31 +00:00
Peter Steinberger
65bed815a8
fix: resolve ci failures
2026-01-18 08:45:29 +00:00
Tyler Yust
ddcc05f5f4
fix: improve error handling for file URL processing
...
- Enhanced error handling in image reference detection to skip malformed file URLs without crashing.
- Updated media loading logic to throw an error for invalid file URLs, ensuring better feedback for users.
2026-01-18 08:15:21 +00:00
Tyler Yust
8c0e290db1
fix: enhance image reference detection and optimize image processing
...
- Added support for detecting file URLs in prompts using fileURLToPath for accurate path resolution.
- Updated image loading logic to default to JPEG format for optimized image processing.
- Improved error handling in image optimization to continue processing on failures.
2026-01-18 08:15:21 +00:00
Tyler Yust
7bfc77db25
fix: improve file URL handling and enhance image loading logic
...
- Added handling for file URLs using fileURLToPath for proper resolution.
- Updated logic to skip relative path resolution if ref.resolved is already absolute.
- Enhanced cap calculation for image loading to handle undefined maxBytes more gracefully.
2026-01-18 08:15:21 +00:00
Peter Steinberger
d3b15c6afa
ci: stabilize vitest runs
2026-01-18 06:58:54 +00:00
Peter Steinberger
f86b24c511
refactor(session): centralize thread reset detection
...
Co-authored-by: Austin Mudd <austinm911@gmail.com>
2026-01-18 06:55:04 +00:00
Peter Steinberger
367826f6e4
feat(session): add daily reset policy
...
Co-authored-by: Austin Mudd <austinm911@gmail.com>
2026-01-18 06:37:37 +00:00
Peter Steinberger
82e49af5a7
fix: resolve plugin tool meta typing
2026-01-18 04:24:16 +00:00
Peter Steinberger
0d9172d761
fix: persist session origin metadata
2026-01-18 03:41:51 +00:00
Peter Steinberger
67f63ecd7e
chore: remove tracked artifacts
2026-01-18 02:55:07 +00:00
Peter Steinberger
1420d113d8
refactor: migrate extensions to plugin sdk
2026-01-18 02:55:07 +00:00
Peter Steinberger
34590d2144
feat: persist session origin metadata across connectors
2026-01-18 02:42:10 +00:00
Peter Steinberger
c7ea47e886
feat(channels): add resolve command + defaults
2026-01-18 01:00:24 +00:00
Peter Steinberger
69ba2765de
refactor(security): harden CommandAuthorized plumbing
2026-01-17 10:19:34 +00:00
Peter Steinberger
b6ea5895b6
fix: gate image tool and deepgram audio payload
2026-01-17 09:34:40 +00:00
Peter Steinberger
13b931c006
refactor: prune legacy group prefixes
2026-01-17 08:47:25 +00:00
Peter Steinberger
56f3a2de25
fix(security): default-deny command execution
2026-01-17 08:28:09 +00:00
Peter Steinberger
7cebe7a506
style: run oxfmt
2026-01-17 08:00:05 +00:00
Peter Steinberger
1f3a09b43b
fix: persist deliveryContext on last-route updates
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz>
2026-01-17 06:54:31 +00:00
Peter Steinberger
6a3ed5c850
fix(security): gate slash/control commands
2026-01-17 06:49:34 +00:00
Peter Steinberger
e59d8c5436
style: oxfmt format
2026-01-17 05:48:56 +00:00
Peter Steinberger
f7089cde54
fix: unify inbound sender labels
2026-01-17 05:21:09 +00:00