Commit Graph

186 Commits

Author SHA1 Message Date
Peter Steinberger
e9245837ea fix: enforce secure control ui auth 2026-01-21 23:58:42 +00:00
Peter Steinberger
7efa487150 fix: add explicit tailnet gateway bind 2026-01-21 20:36:09 +00:00
Peter Steinberger
b0b96fe731 feat: add heartbeat active hours 2026-01-21 20:30:37 +00:00
Peter Steinberger
112ba5de4b feat: add auth-aware cache defaults 2026-01-21 20:23:39 +00:00
Peter Steinberger
d89894365d fix: restore 1h cache ttl option 2026-01-21 20:00:32 +00:00
Peter Steinberger
496eea9412 docs: clarify cache-ttl pruning window 2026-01-21 20:00:32 +00:00
Peter Steinberger
b47d8624ff feat: add cache-ttl pruning mode 2026-01-21 19:46:24 +00:00
Echo
ba1f1f1e5d 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
Peter Steinberger
6350065f68 docs: align gateway service naming 2026-01-21 17:45:26 +00:00
Peter Steinberger
fcff0604c7 fix: harden bluebubbles short ids and fetch wrapper (#1369) (thanks @tyler6204) 2026-01-21 17:09:15 +00:00
Peter Steinberger
2d743b3a14 docs: update node CLI references 2026-01-21 16:48:42 +00:00
Peter Steinberger
1a9cfd5149 fix: add browser snapshot default mode (#1336)
Co-authored-by: Seb Slight <sbarrios93@gmail.com>
2026-01-21 03:03:10 +00:00
Peter Steinberger
f88e2abb5a fix: harden web fetch SSRF and redirects
Co-authored-by: Eli <fogboots@users.noreply.github.com>
2026-01-21 02:54:14 +00:00
Peter Steinberger
b246c0358b fix: default Anthropic API cache TTL to 1h 2026-01-20 15:48:53 +00:00
Peter Steinberger
8c2a478c6d fix: shorten bonjour gateway service type 2026-01-20 15:10:06 +00:00
Peter Steinberger
20c58a285b docs: update protocol + security notes 2026-01-20 13:04:20 +00:00
Peter Steinberger
de3168af2f feat: add device token auth and devices cli 2026-01-20 10:30:53 +00:00
Peter Steinberger
6aa974894e chore: raise default agent concurrency 2026-01-20 10:08:26 +00:00
Peter Steinberger
386309ddd0 fix: enforce ws3 roles + node allowlist 2026-01-20 09:24:01 +00:00
Peter Steinberger
159ab379f8 fix: expand /v1/responses inputs (#1229) (thanks @RyanLisse) 2026-01-20 07:37:30 +00:00
Peter Steinberger
b1c13b0eab fix: enforce strict config validation 2026-01-19 03:39:25 +00:00
Peter Steinberger
07180a8d00 feat: auto-recreate sandbox containers on config change 2026-01-19 01:35:27 +00:00
Peter Steinberger
9942636ba5 feat(session): add daily reset policy
Co-authored-by: Austin Mudd <austinm911@gmail.com>
2026-01-18 06:37:37 +00:00
Peter Steinberger
6ac6a3b3c7 feat(channels): add resolve command + defaults 2026-01-18 01:00:24 +00:00
Peter Steinberger
4e4febbec5 fix: add Kimi Code docs + defaults (#1085) (thanks @dan-dr) 2026-01-17 17:35:40 +00:00
Peter Steinberger
372ce23423 feat: unify hooks installs and webhooks 2026-01-17 07:08:04 +00:00
Peter Steinberger
ffd81e03ba feat: notify on exec exit 2026-01-17 05:43:34 +00:00
Peter Steinberger
f37b33c13e refactor: unify media understanding pipeline 2026-01-17 04:39:00 +00:00
Peter Steinberger
80f1e070cb feat: add inbound media understanding
Co-authored-by: Tristan Manchester <tmanchester96@gmail.com>
2026-01-17 03:54:46 +00:00
Peter Steinberger
12505d9c9e fix: align channel config schemas and env precedence 2026-01-17 00:43:05 +00:00
Shadow
cf35a6422c Docs: note schema-driven config UI 2026-01-17 00:43:05 +00:00
Peter Steinberger
66b0b6e3fc docs: expand iMessage remote setup 2026-01-17 00:39:48 +00:00
Peter Steinberger
1556f4c834 Merge pull request #1044 from sebslight/env-var-substitution
feat(config): add env var substitution in config values
2026-01-17 00:25:26 +00:00
Peter Steinberger
491f45f058 feat: enhance web_fetch fallbacks 2026-01-17 00:00:49 +00:00
Peter Steinberger
f89fb0eeb9 feat: improve web_fetch readability extraction 2026-01-16 23:18:01 +00:00
Sebastian
8e5237ce89 feat(config): add env var substitution in config values
Support ${VAR_NAME} syntax in any config string value, substituted at
config load time. Useful for referencing API keys and secrets from
environment variables without hardcoding them in the config file.

- Only uppercase env vars matched: [A-Z_][A-Z0-9_]*
- Missing/empty env vars throw MissingEnvVarError with path context
- Escape with $${VAR} to output literal ${VAR}
- Works with $include (included files also get substitution)

Closes #1009
2026-01-16 16:32:07 -05:00
Peter Steinberger
56c2830994 feat: enable telegram reaction notifications by default 2026-01-16 20:51:42 +00:00
Ruby
1ae19b55c9 feat: add session.identityLinks for cross-platform DM session linking (#1033)
Co-authored-by: Shadow <shadow@clawd.bot>
2026-01-16 14:23:22 -06:00
Peter Steinberger
c93b02d9d2 fix: scope whatsapp self-chat response prefix 2026-01-16 10:54:11 +00:00
Peter Steinberger
0725c8bb41 fix: add telegram custom commands (#860) (thanks @nachoiacovino)
Co-authored-by: Nacho Iacovino <50103937+nachoiacovino@users.noreply.github.com>
2026-01-16 08:22:09 +00:00
Peter Steinberger
d5b29a26d2 feat(browser): prefer default chromium browser 2026-01-16 05:37:53 +00:00
Peter Steinberger
c9154cfb11 feat: add TLS for node bridge 2026-01-16 05:28:40 +00:00
Ubuntu
7df03a2456 feat(session): add dmScope for multi-user DM isolation
Co-authored-by: Alphonse-arianee <Alphonse-arianee@users.noreply.github.com>
2026-01-16 04:13:10 +00:00
Peter Steinberger
804e7b2962 feat(browser): prefer Chrome default + add Brave/Edge fallbacks
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
2026-01-16 03:28:56 +00:00
Peter Steinberger
660829f9dd feat: add per-agent heartbeat config 2026-01-16 01:17:34 +00:00
juanpablodlc
ae2d725109 feat(whatsapp): add debounceMs for batching rapid messages (#971)
* feat(whatsapp): add debounceMs for batching rapid messages

Add a `debounceMs` configuration option to WhatsApp channel settings
that batches rapid consecutive messages from the same sender into a
single response. This prevents triggering separate agent runs for
each message when a user sends multiple short messages in quick
succession (e.g., "Hey!", "how are you?", "I was wondering...").

Changes:
- Add `debounceMs` config to WhatsAppConfig and WhatsAppAccountConfig
- Implement message buffering in `monitorWebInbox` with:
  - Map-based buffer keyed by sender (DM) or chat ID (groups)
  - Debounce timer that resets on each new message
  - Message combination with newline separator
  - Single message optimization (no modification if only one message)
- Wire `debounceMs` through account resolution and monitor tuning
- Add UI hints and schema documentation

Usage example:
{
  "channels": {
    "whatsapp": {
      "debounceMs": 5000  // 5 second window
    }
  }
}

Default behavior: `debounceMs: 0` (disabled by default)

Verified: All existing tests pass (3204 tests), TypeScript compilation
succeeds with no errors.

Implemented with assistance from AI coding tools.

Closes #967

* chore: wip inbound debounce

* fix: debounce inbound messages across channels (#971) (thanks @juanpablodlc)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-15 23:07:19 +00:00
Peter Steinberger
bf8d0d0b1c feat(date-time): standardize time context and tool timestamps 2026-01-15 22:27:06 +00:00
Benjamin Jesuiter
ecce98f312 docs: clarify multi-gateway rescue bot guidance 2026-01-15 22:10:27 +00:00
Peter Steinberger
91f0243a19 fix(browser): default to chrome extension takeover 2026-01-15 09:02:42 +00:00
Peter Steinberger
eb7149c0db fix: isolate Slack thread sessions (#758) 2026-01-15 08:11:03 +00:00