Peter Steinberger
cccd7c7b8e
test: stabilize windows pty expectations
2026-01-17 08:07:31 +00:00
Peter Steinberger
8f1132e8ec
fix: share skills watcher ignores
2026-01-17 08:07:06 +00:00
Peter Steinberger
e6477363e9
refactor: normalize channel capabilities typing
2026-01-17 08:06:35 +00:00
Peter Steinberger
1a4fc8dea6
fix: guard memory sync errors
2026-01-17 08:04:48 +00:00
Peter Steinberger
a3daf3d115
style: oxfmt
2026-01-17 08:01:46 +00:00
Peter Steinberger
f3f80509e3
test: cover tg/group/topic inline button targets ( #1072 ) — thanks @danielz1z
...
Co-authored-by: danielz1z <danielz1z@users.noreply.github.com>
2026-01-17 08:00:16 +00:00
Peter Steinberger
7cebe7a506
style: run oxfmt
2026-01-17 08:00:05 +00:00
Peter Steinberger
5986175268
fix: restore CI lint/build
2026-01-17 08:00:05 +00:00
Peter Steinberger
7630c6dccb
Merge pull request #1074 from roshanasingh4/fix/1056-ignore-heavy-watch-paths
...
Fix #1056 : prevent macOS FD exhaustion by ignoring node_modules in skills watcher
2026-01-17 07:56:54 +00:00
Peter Steinberger
d63cc1e8a7
fix: allow telegram prefixes/topics for inline buttons ( #1072 ) — thanks @danielz1z
...
Co-authored-by: danielz1z <danielz1z@users.noreply.github.com>
2026-01-17 07:49:57 +00:00
danielz1z
80bb6b712c
fix: handle telegram: prefix in resolveTelegramTargetChatType
...
When using inlineButtons="dm" or "group" scope, the validation check
resolveTelegramTargetChatType() failed for numeric chat IDs because
normalizeTelegramMessagingTarget() adds a "telegram:" prefix during
target resolution.
For example, target "5232990709" becomes "telegram:5232990709" after
normalization, but the regex /^-?\d+$/ expects a pure numeric string.
The fix strips the telegram: prefix before checking the numeric pattern.
Adds tests for resolveTelegramTargetChatType with various input formats.
2026-01-17 07:47:14 +00:00
Peter Steinberger
410b8f223e
fix: keep extension relay list current ( #1073 )
...
Thanks @roshanasingh4.
Co-authored-by: Roshan Singh <88576930+roshanasingh4@users.noreply.github.com>
2026-01-17 07:43:31 +00:00
Roshan Singh
693f152895
Fix #1035 : refresh extension tab metadata
...
Handle Target.targetInfoChanged in extension relay so /json/list reflects updated title/url after navigation. Adds regression coverage.
2026-01-17 07:43:09 +00:00
Peter Steinberger
78a4441ac2
test: stabilize bash send-keys submit
2026-01-17 07:41:24 +00:00
Peter Steinberger
c92265a51b
refactor: canonicalize gateway session store keys
2026-01-17 07:41:24 +00:00
Peter Steinberger
d5fdda8e28
refactor: prune room legacy
2026-01-17 07:41:24 +00:00
Dimitrios Ploutarchos
cddf198321
TUI: refresh token counts after agent runs complete. Closes #1078
2026-01-17 07:40:59 +00:00
Peter Steinberger
6d969fe58e
refactor: normalize media attachment selection
2026-01-17 07:38:11 +00:00
Peter Steinberger
68c7d577a4
chore: drop target format helper
2026-01-17 07:36:13 +00:00
Peter Steinberger
1ea8917e2b
refactor: trim resolver exports
2026-01-17 07:36:09 +00:00
Peter Steinberger
07c93dfd30
refactor: streamline target resolver helpers
2026-01-17 07:34:26 +00:00
Peter Steinberger
cf0ea6c756
refactor: unify target resolver metadata
2026-01-17 07:34:26 +00:00
Peter Steinberger
8c9e32c4a3
refactor: share sessions list row type
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz>
2026-01-17 07:34:21 +00:00
Peter Steinberger
34d59d7913
refactor: rename hooks docs and add tests
2026-01-17 07:32:54 +00:00
Peter Steinberger
0c0d9e1d22
Merge pull request #1071 from danielz1z/fix/capabilities-object-format
...
fix: handle object-format capabilities in normalizeCapabilities
2026-01-17 07:31:52 +00:00
Peter Steinberger
2ee45d50a4
refactor: tighten media diagnostics
2026-01-17 07:27:38 +00:00
Peter Steinberger
0c0e1e4226
refactor: extend media understanding
2026-01-17 07:17:13 +00:00
Peter Steinberger
86a46874da
fix: preserve discord chunk whitespace
2026-01-17 07:11:21 +00:00
Peter Steinberger
3a6ee5ee00
feat: unify hooks installs and webhooks
2026-01-17 07:08:04 +00:00
Peter Steinberger
5dc87a2ed4
fix: respond to PTY cursor queries
2026-01-17 07:05:24 +00:00
Peter Steinberger
a85ddf258c
fix: expose deliveryContext in sessions_list
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz>
2026-01-17 06:54:31 +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
7b31b280f8
refactor: reuse agent outbound target resolution
...
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
37a2eee837
refactor: drop legacy session store keys
2026-01-17 06:48:44 +00:00
Peter Steinberger
353d778988
refactor: centralize target normalization
2026-01-17 06:45:11 +00:00
Peter Steinberger
5a1ff5b9e7
refactor: tune media understanding
2026-01-17 06:44:19 +00:00
Peter Steinberger
3dc4a96330
feat: add process submit helper
2026-01-17 06:38:56 +00:00
Peter Steinberger
65a8a93854
fix: normalize delivery routing context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 06:38:33 +00:00
Peter Steinberger
eb8a0510e0
refactor: unify queue drop handling
2026-01-17 06:38:33 +00:00
Peter Steinberger
a4178e4062
fix: stabilize pty send-keys tests
2026-01-17 06:32:24 +00:00
Roshan Singh
e7953d8164
Fix #1056 : ignore heavy paths in skills watcher
...
On macOS, watching deep dependency trees can exhaust file descriptors and lead to spawn EBADF failures. The skills watcher only needs to observe skill changes, so ignore dotfiles, node_modules, and dist by default. Adds regression coverage.
2026-01-17 06:26:27 +00:00
Peter Steinberger
5ebfc0738f
feat: add session slug generator
2026-01-17 06:23:26 +00:00
Peter Steinberger
bd32cc40e6
feat: add keypad key mappings
2026-01-17 06:22:05 +00:00
Peter Steinberger
b31d8d3b10
feat: add tmux-style process key helpers
2026-01-17 06:12:56 +00:00
Peter Steinberger
331141ad77
refactor: centralize message target resolution
...
Co-authored-by: Thinh Dinh <tobalsan@users.noreply.github.com>
2026-01-17 06:04:49 +00:00
Peter Steinberger
c7ae5100fa
refactor: share queue helpers
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 06:02:27 +00:00
Peter Steinberger
285ed8bac3
fix: sync delivery routing context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 06:02:27 +00:00
Peter Steinberger
e59d8c5436
style: oxfmt format
2026-01-17 05:48:56 +00:00
Peter Steinberger
8b42902cee
refactor: drop legacy room chatType
2026-01-17 05:46:40 +00:00
Peter Steinberger
07a3db153d
feat: notify on exec exit
2026-01-17 05:43:34 +00:00
Peter Steinberger
68d35be383
feat: emit tool outputs for full verbose
2026-01-17 05:40:21 +00:00
Peter Steinberger
99dd428862
feat: extend verbose tool feedback
2026-01-17 05:33:39 +00:00
Peter Steinberger
4d314db750
refactor: extract subagent announce queue
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 05:29:07 +00:00
Peter Steinberger
ccea3a0615
refactor: unify delivery target resolution
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 05:29:06 +00:00
Peter Steinberger
f4f20c6762
refactor: normalize session route fields
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 05:29:06 +00:00
Peter Steinberger
a624878973
fix(security): gate slash commands by sender
2026-01-17 05:25:42 +00:00
Peter Steinberger
c8b826ea8c
fix: add media understanding decision types
2026-01-17 05:24:54 +00:00
Peter Steinberger
f7089cde54
fix: unify inbound sender labels
2026-01-17 05:21:09 +00:00
danielz1z
f42b12646d
fix: handle object-format capabilities in normalizeCapabilities
...
When capabilities is configured as an object (e.g., { inlineButtons: "dm" })
instead of a string array, normalizeCapabilities() would crash with
"capabilities.map is not a function".
This can occur when using the new Telegram inline buttons scoping feature:
channels.telegram.capabilities.inlineButtons = "dm"
The fix adds an Array.isArray() guard to return undefined for non-array
capabilities, allowing channel-specific handlers (like
resolveTelegramInlineButtonsScope) to process the object format separately.
Fixes crash when using object-format TelegramCapabilitiesConfig.
2026-01-17 05:11:57 +00:00
Peter Steinberger
572e04d5fb
refactor(cli): split outbound send deps
2026-01-17 05:06:39 +00:00
Peter Steinberger
bc49c20434
fix: finalize inbound contexts
2026-01-17 05:06:39 +00:00
Peter Steinberger
c4ea25a509
feat: add exec pty support
2026-01-17 04:57:11 +00:00
Peter Steinberger
312cb75c50
fix: trim /status oauth output
2026-01-17 04:54:28 +00:00
Peter Steinberger
ee738e6578
test: fix mocks for target resolver
2026-01-17 04:41:02 +00:00
Peter Steinberger
fcb7c9ff65
refactor: unify media understanding pipeline
2026-01-17 04:39:00 +00:00
Peter Steinberger
49ecbd8fea
test: expand accountId routing coverage
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 04:33:24 +00:00
Peter Steinberger
19ee6699d2
refactor: clarify subagent announce origin
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 04:33:24 +00:00
Peter Steinberger
5fcc9b3244
refactor: centralize target errors and cache lookups
2026-01-17 04:28:22 +00:00
Peter Steinberger
3efc5e54fa
fix: preserve account routing for explicit targets
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 04:24:59 +00:00
Peter Steinberger
780c811146
refactor: migrate subagent registry store v2
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 04:24:59 +00:00
Peter Steinberger
4f37f66264
refactor: normalize delivery context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com>
2026-01-17 04:24:59 +00:00
Peter Steinberger
8ebfa2950d
refactor: align message target wording
2026-01-17 04:18:59 +00:00
Peter Steinberger
6e4d86f426
refactor: require target for message actions
2026-01-17 04:15:46 +00:00
Peter Steinberger
87cecd0268
refactor: align channel chatType
2026-01-17 04:13:06 +00:00
Peter Steinberger
388b2bce01
refactor: add inbound context helpers
2026-01-17 04:05:34 +00:00
Peter Steinberger
a2b5b1f0cb
refactor: normalize inbound context
2026-01-17 04:05:33 +00:00
Peter Steinberger
9f4b7a1683
fix: normalize subagent announce delivery origin
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz>
2026-01-17 04:03:28 +00:00
Peter Steinberger
dd68faef23
refactor: split message tool schema + action handling
2026-01-17 03:58:55 +00:00
Peter Steinberger
97cfa0846c
chore: remove legacy transcription helpers
2026-01-17 03:54:46 +00:00
Peter Steinberger
1b973f7506
feat: add inbound media understanding
...
Co-authored-by: Tristan Manchester <tmanchester96@gmail.com>
2026-01-17 03:54:46 +00:00
Peter Steinberger
4b749f1b8f
refactor: share telegram caption splitting
2026-01-17 03:50:09 +00:00
Peter Steinberger
7f1f9473a0
refactor: dedupe message action helpers
2026-01-17 03:46:03 +00:00
Peter Steinberger
a32e5d040c
Merge pull request #1063 from mukhtharcm/fix/telegram-caption-split
...
fix(telegram): split long captions into follow-up messages
2026-01-17 03:42:13 +00:00
Peter Steinberger
a82217a5f3
chore: format + regenerate protocol
2026-01-17 03:40:49 +00:00
Peter Steinberger
09bed2ccde
refactor: centralize outbound policy + target schema
2026-01-17 03:33:56 +00:00
Peter Steinberger
3af391eec7
refactor: centralize group sender identity
2026-01-17 03:32:48 +00:00
Peter Steinberger
3fcd6fadf3
fix: land oxlint config follow-ups ( #1064 ) (thanks @connorshea)
2026-01-17 03:25:05 +00:00
Peter Steinberger
bc7d603867
test: expand accountId delivery coverage
...
Co-authored-by: Adam Holt <adam91holt@users.noreply.github.com>
2026-01-17 03:17:33 +00:00
Peter Steinberger
46015a3dd8
feat: add cross-context messaging resolver
...
Co-authored-by: Thinh Dinh <tobalsan@users.noreply.github.com>
2026-01-17 03:17:13 +00:00
Peter Steinberger
1481a3d90f
fix: include sender info for iMessage/Signal group messages
2026-01-17 02:52:01 +00:00
Peter Steinberger
96a1d03f08
fix: remove stale previousSessionEntry param
2026-01-17 02:52:01 +00:00
Peter Steinberger
0291105913
fix: thread accountId through subagent announce delivery
...
Co-authored-by: Adam Holt <adam91holt@users.noreply.github.com>
2026-01-17 02:45:18 +00:00
Muhammed Mukhthar CM
02184dd055
fix(telegram): split long captions into follow-up messages
2026-01-17 02:16:01 +00:00
Peter Steinberger
d5332ae29a
fix: thread accountId through subagent announce
...
Co-authored-by: Adam Holt <adam91holt@users.noreply.github.com>
2026-01-17 02:09:35 +00:00
Peter Steinberger
fdaeada3ec
feat: mirror delivered outbound messages ( #1031 )
...
Co-authored-by: T Savo <TSavo@users.noreply.github.com>
2026-01-17 02:03:18 +00:00
Peter Steinberger
3fb699a84b
style: apply oxfmt
2026-01-17 01:55:42 +00:00
Peter Steinberger
767f55b127
fix: wire previous session entry and stabilize jpeg test
2026-01-17 01:55:35 +00:00
Peter Steinberger
19016f16e0
fix: queue subagent announce delivery
2026-01-17 01:44:13 +00:00
Peter Steinberger
faba508fe0
feat: add internal hooks system
2026-01-17 01:31:57 +00:00
Peter Steinberger
a76cbc43bb
fix(browser): remote profile tab ops follow-up ( #1060 ) (thanks @mukhtharcm)
...
Landed via follow-up to #1057 .
Gate: pnpm lint && pnpm build && pnpm test
2026-01-17 01:28:22 +00:00
Peter Steinberger
e16ce1a0a1
style: format health/status files
2026-01-17 01:25:10 +00:00
Peter Steinberger
c592f395df
test: update health/status and legacy migration coverage
2026-01-17 01:19:43 +00:00
Peter Steinberger
f14d622c0f
refactor: centralize account bindings + health probes
2026-01-17 01:19:43 +00:00
Peter Steinberger
fd49f39a72
Merge pull request #1057 from mukhtharcm/feat/browser-persistent-tabs-remote-profiles
...
feat(browser): use persistent Playwright connections for remote profile tab operations
2026-01-17 00:57:58 +00:00
Peter Steinberger
bbef30daa5
fix: browser remote tab ops harden ( #1057 ) (thanks @mukhtharcm)
2026-01-17 00:57:35 +00:00
Peter Steinberger
0179717d61
feat: enhance web_fetch fallbacks
2026-01-17 00:43:37 +00:00
Peter Steinberger
7ecf733342
fix: align channel config schemas and env precedence
2026-01-17 00:43:05 +00:00
Shadow
1ad26d6fea
Config: schema-driven channels and settings
2026-01-17 00:43:05 +00:00
Muhammed Mukhthar CM
02a4de0029
feat(browser): use persistent Playwright connections for remote profile tab operations
...
For remote CDP profiles (e.g., Browserless), tab operations now use Playwright's
persistent connection instead of stateless HTTP requests. This ensures tabs
persist across operations rather than being terminated after each request.
Changes:
- pw-session.ts: Add listPagesViaPlaywright, createPageViaPlaywright, and
closePageByTargetIdViaPlaywright functions using the cached Playwright connection
- pw-ai.ts: Export new functions for dynamic import
- server-context.ts: For remote profiles (!cdpIsLoopback), use Playwright-based
tab operations; local profiles continue using HTTP endpoints
- server-context.ts: Fix ensureTabAvailable to not require wsUrl for remote
profiles since Playwright accesses pages directly
This is a follow-up to #895 which added authentication support for remote CDP
profiles. The original PR description mentioned switching to persistent Playwright
connections for tab operations, but only the auth changes were merged.
2026-01-17 00:42:53 +00:00
Peter Steinberger
1be0e9b9fb
Merge pull request #1054 from tyler6204/fix/imsg-remote-attachments
...
iMessage: Add remote attachment support for VM/SSH deployments
2026-01-17 00:37:21 +00:00
Peter Steinberger
6e5eddf292
fix: avoid imessage rpc restart loop
2026-01-17 00:35:24 +00:00
Peter Steinberger
64a2ef4a18
refactor: simplify env var substitution scan
2026-01-17 00:34:00 +00:00
Peter Steinberger
25399d39cb
fix: harden env var substitution parsing ( #1044 ) (thanks @sebslight)
2026-01-17 00:29:08 +00:00
Peter Steinberger
731080375a
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
Sash Catanzarite
89bbbe75a6
fix: honor message tool channel for tool dedupe ( #1053 )
...
- Treat message tool `channel` as provider hint for dedupe/suppression.
- Prefer NO_REPLY after message tool sends to avoid duplicate replies.
Co-authored-by: Sash Catanzarite <1166151+thesash@users.noreply.github.com>
2026-01-17 00:23:51 +00:00
Peter Steinberger
f69298d7eb
docs: clarify model key format
2026-01-17 00:15:37 +00:00
Peter Steinberger
1569db1754
style: format with oxfmt
2026-01-17 00:03:00 +00:00
Peter Steinberger
c54c665f97
feat: enhance web_fetch fallbacks
2026-01-17 00:00:49 +00:00
Peter Steinberger
13e2dd97a7
fix(session): preserve overrides on /new reset
...
Co-authored-by: Yurii Chukhlib <yuri.v.chu@gmail.com>
2026-01-16 23:59:04 +00:00
Yurii Chukhlib
6bba84b043
fix(channels): include linked field in WhatsApp describeAccount
...
Fixes #1030
The describeAccount function for WhatsApp was not returning the
linked field, causing the Channels status section to show
"Not linked" even when WhatsApp was properly linked and working.
The fix adds the linked field to describeAccount, set to the same
value as configured (Boolean(account.authDir)). This ensures that
the Channels section and Health section show consistent status.
2026-01-16 23:59:04 +00:00
Peter Steinberger
e31251293b
fix: scope history injection to pending-only
2026-01-16 23:52:42 +00:00
Tyler Yust
7a9ff18260
iMessage: Add remote attachment support for VM/SSH deployments
2026-01-16 15:51:42 -08:00
Peter Steinberger
37fa4f7eef
feat: improve web_fetch readability extraction
2026-01-16 23:18:01 +00:00
Yurii Chukhlib
171060541a
docs(web-search): document country and language parameters
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
003547c818
test(web-search): add tests for country and language parameters
...
Added three new test cases to verify the new country, search_lang, and ui_lang
parameters are correctly passed to the Brave Search API.
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
c4e1064066
feat(web-search): pass country and language params to Brave API
...
- Add country, search_lang, and ui_lang optional parameters to runWebSearch
- Pass new parameters to Brave Search API as URL query parameters
- Update cache key to include localization parameters
- Wire parameters through createWebSearchTool execute function
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
d163dbcfcd
feat(web-search): add country and language optional parameters to schema
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
b3b6d421cc
fix(session): reset compactionCount on /new and /reset
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
cf72b9db3c
fix(sessions): preserve 0600 permissions on sessions.json writes
2026-01-16 23:14:33 +00:00
Peter Steinberger
106e308953
fix: prefer config tokens over env for discord/telegram
2026-01-16 23:13:00 +00:00
Peter Steinberger
28a5d124c3
fix: stabilize transport-ready test timing
2026-01-16 23:03:12 +00:00
Peter Steinberger
a7bec3340f
fix: drop unsigned gemini tool calls from history
2026-01-16 22:43:16 +00:00
Peter Steinberger
e44f28bd4f
feat: unify directory across channels
2026-01-16 22:40:36 +00:00
Peter Steinberger
76d3d58b5c
chore: oxfmt
2026-01-16 22:33:47 +00:00
Peter Steinberger
500c75b4f0
fix: align ZAI thinking toggles
2026-01-16 22:26:43 +00:00
Peter Steinberger
3567dc4a47
fix: hard-stop sessions.delete cleanup
2026-01-16 22:24:13 +00:00
Peter Steinberger
05d149a49b
fix: treat reply-to-bot as implicit mention across channels
2026-01-16 21:51:01 +00:00
Peter Steinberger
97a41a6509
fix: suppress zero sub-agent stop note
2026-01-16 21:41:55 +00:00
Peter Steinberger
a0be85c34c
fix: /stop aborts subagents
2026-01-16 21:37:22 +00:00
Sebastian
a36735b913
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
tsu
390bd11f33
feat: add zalouser channel + directory CLI ( #1032 ) (thanks @suminhthanh)
...
- Unified UX: channels login + message send; no plugin-specific top-level command\n- Added generic directory CLI for channel identity/groups\n- Docs: channel + plugin pages
2026-01-16 21:28:18 +00:00
Peter Steinberger
16768a9998
fix: start fresh cron sessions each run
2026-01-16 21:27:56 +00:00
adityashaw2
e9d6869290
Telegram: Add reply-chain detection to bypass mention requirement ( #1038 )
...
* Telegram: add reply-chain detection to bypass mention requirement
* fix: allow telegram reply-chain mention bypass (#1038 ) (thanks @adityashaw2)
---------
Co-authored-by: Aditya Shaw <aditya@adityashaw.dev>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-16 21:24:45 +00:00
Peter Steinberger
9072e35f08
fix: hard-abort clears queues on /stop
2026-01-16 21:15:25 +00:00
Peter Steinberger
d887027e95
style: run oxfmt
2026-01-16 21:11:55 +00:00
Peter Steinberger
f3a37664d5
fix: tighten Vercel AI Gateway onboarding docs/tests ( #1016 ) (thanks @timolins)
2026-01-16 21:06:21 +00:00
Timo Lins
beb9eac5f7
Models: add Vercel AI Gateway auth
2026-01-16 21:00:15 +00:00
Peter Steinberger
0dcffcd5b0
fix: repair orphaned user turns before embedded prompts
2026-01-16 20:52:18 +00:00
Peter Steinberger
56efbce31e
feat: enable telegram reaction notifications by default
2026-01-16 20:51:42 +00:00
Peter Steinberger
e7c42884fc
test: cover transport readiness waits
2026-01-16 20:48:43 +00:00
Peter Steinberger
08c0405f0f
fix: quiet skill command normalization logs
2026-01-16 20:37:23 +00:00
Peter Steinberger
470add877c
feat: default telegram reaction level minimal
2026-01-16 20:35:47 +00:00
Peter Steinberger
aaa310c047
fix: bound signal/imessage transport readiness waits
...
Co-authored-by: Szpadel <1857251+Szpadel@users.noreply.github.com>
2026-01-16 20:33:04 +00:00
Ruby
0cd24137e8
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
Marc
5ee4456c6e
fix: merge subagent auth profiles
2026-01-16 20:20:26 +00:00
Marc
de31583021
fix: avoid format keyword in tool schemas
...
Co-authored-by: marcmarg <marcmarg@users.noreply.github.com>
2026-01-16 20:20:26 +00:00
Peter Steinberger
38b49aa0f6
feat: expand skill command registration
2026-01-16 20:17:32 +00:00
Peter Steinberger
69761e8a51
feat: scope telegram inline buttons
2026-01-16 20:16:41 +00:00
Peter Steinberger
3431d3d115
chore: tweak tool call narration guidance ( #1008 )
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
2026-01-16 19:56:04 +00:00
Peter Steinberger
fe9e027d58
test: deflake background exec timeout
2026-01-16 19:48:52 +00:00
Peter Steinberger
33d17957e5
test: cover doctor launchctl env overrides ( #1037 )
...
* test: cover doctor launchctl env overrides
* style(macos): fix swiftformat lint
2026-01-16 19:40:45 +00:00
Nima Karimi
25ae5f897e
fix(macos): check config file mode for gateway token/password resolution ( #1022 )
...
* fix: honor config gateway mode for credentials
* chore: oxfmt doctor platform notes
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-16 19:29:48 +00:00
Peter Steinberger
624ff09314
test: expand gateway auth probe coverage
2026-01-16 19:16:03 +00:00
Peter Steinberger
6bf627bce8
Merge pull request #1011 from ivanrvpereira/fix/security-audit-gateway-auth
...
fix(security): resolve local auth for gateway probe
2026-01-16 19:05:07 +00:00
Wilkins
bb14b19922
fix: truncate skill command descriptions to 100 chars for Discord ( #1018 )
...
* fix: truncate skill command descriptions to 100 chars for Discord
Discord slash commands have a 100 character limit for descriptions.
Skill descriptions were not being truncated, causing command registration
to fail with an empty error from the Discord API.
* style: format
* style: format
2026-01-16 10:01:59 -06:00
Ivan Pereira
544ca062a3
test(security): add coverage for gateway probe auth selection
2026-01-16 13:31:01 +00:00
Ivan Pereira
be9aa5494a
fix(security): resolve local auth for gateway probe
2026-01-16 13:19:55 +00:00
Peter Steinberger
0d6af15d1c
feat: add user-invocable skill commands
2026-01-16 12:10:29 +00:00
Peter Steinberger
eda9410bce
fix: stabilize docker test suite
2026-01-16 11:47:14 +00:00
Peter Steinberger
a51ed8a5dd
fix(cli): auto-update global installs
2026-01-16 11:45:37 +00:00
Peter Steinberger
19bcbf85df
fix: scope whatsapp self-chat response prefix
2026-01-16 10:54:11 +00:00
Peter Steinberger
f49d0e5476
fix: expand exec abort/timeout coverage
2026-01-16 10:43:22 +00:00
gerardward2007
0f34255359
chore: ignore local identity files ( #1001 ) (thanks @gerardward2007)
...
* chore: ignore local identity files (IDENTITY.md, USER.md)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: ignore local identity files (#1001 ) (thanks @gerardward2007)
* chore: format session status tool
* chore: format bash exec background abort test
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-16 10:30:04 +00:00
Roshan Singh
e773f84e39
fix: keep background exec aborts from killing sessions ( #1000 ) (thanks @roshanasingh4)
...
When exec returns early in background mode, the tool-call AbortSignal can fire and previously caused killProcessTree(SIGKILL). Ignore abort after yielding/backgrounding so background sessions keep running.
2026-01-16 10:01:39 +00:00
Peter Steinberger
30b3a9de30
fix: drop oauth status from session status
2026-01-16 09:39:12 +00:00
Peter Steinberger
0391f6553b
fix: correct minimax usage + show reset
2026-01-16 09:36:45 +00:00
Peter Steinberger
d0c986c4f0
feat: warn on weak model tiers
2026-01-16 09:34:37 +00:00
Peter Steinberger
384028e12e
refactor: unify session reset helper
2026-01-16 09:33:39 +00:00
Peter Steinberger
4c14d6c8db
chore: format web monitor inbox tests
2026-01-16 09:26:18 +00:00
Peter Steinberger
6fa437613b
fix: delete transcripts on role ordering reset
2026-01-16 09:20:16 +00:00
Peter Steinberger
4965727f39
chore: run format and fix sandbox browser timeouts
2026-01-16 09:18:58 +00:00
Peter Steinberger
072c3dc55c
fix: suppress WhatsApp pairing replies for historical DMs
2026-01-16 09:10:44 +00:00
Peter Steinberger
9838a2850f
fix: reset sessions after role ordering conflicts
2026-01-16 09:04:04 +00:00
Peter Steinberger
6e53c061ff
fix: tune remote CDP timeouts
2026-01-16 09:01:25 +00:00
Peter Steinberger
1773f8aea2
fix: upgrade ws to wss for https CDP
2026-01-16 08:44:08 +00:00
Peter Steinberger
3b1b14b0b1
Merge pull request #895 from mukhtharcm/feat/chrome-browser-improvements
...
feat(browser): add support for authenticated remote browser profiles
2026-01-16 08:32:02 +00:00
Peter Steinberger
bf15c87d2b
fix: support authenticated remote CDP URLs ( #895 ) (thanks @mukhtharcm)
2026-01-16 08:31:51 +00:00
Peter Steinberger
2dae4d382f
Merge pull request #860 from nachoiacovino/feat/telegram-custom-commands
...
feat(telegram): support custom commands in config
2026-01-16 08:26:26 +00:00
Peter Steinberger
e9a47a02d1
fix: stabilize macOS audio test and default browser detection
2026-01-16 08:25:39 +00:00
Peter Steinberger
929666a8c8
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
Muhammed Mukhthar CM
cd409e5667
fix: exclude google-antigravity from history downgrade hack ( #894 )
...
* Agent: exclude google-antigravity from history downgrade hack
* Lint: fix formatting in test
* Lint: formatting and unused vars in test
* fix: preserve google-antigravity tool calls (#894 ) (thanks @mukhtharcm)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-16 08:14:56 +00:00
Muhammed Mukhthar CM
8e80823b03
test(browser): fix missing getHeadersWithAuth mock in server tests
2026-01-16 08:11:00 +00:00
Muhammed Mukhthar CM
319afd192d
feat(browser): add support for remote playwright websocket auth
2026-01-16 08:11:00 +00:00
Muhammed Mukhthar CM
6e0daf0936
feat(browser): add support for authenticated remote CDP profiles
2026-01-16 08:10:32 +00:00
Peter Steinberger
d0cb4e092f
Merge pull request #845 from MatthieuBizien/fix/issue-841-openrouter-gemini
...
Agents: sanitize OpenRouter Gemini thoughtSignature
2026-01-16 08:03:40 +00:00
Peter Steinberger
f5a881c99d
fix: port OpenRouter Gemini sanitization to split files ( #845 ) (thanks @MatthieuBizien)
2026-01-16 08:02:56 +00:00
Matthieu Bizien
ef36e24522
Agents: sanitize OpenRouter Gemini thoughtSignature
2026-01-16 07:51:49 +00:00
Palash Oswal
d43d4fcced
Gateway auth: accept local Tailscale Serve hostnames and tailnet IPs ( #885 )
...
* Gateway auth: accept local Tailscale Serve hostnames and tailnet IPs
* fix: allow local Tailscale Serve hostnames (#885 ) (thanks @oswalpalash)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-16 07:51:25 +00:00
Peter Steinberger
d42b69df74
Merge pull request #982 from wes-davis/fix/gateway-connection-diagnostics
...
macOS: keep gateway connected (stop port flapping)
2026-01-16 07:36:46 +00:00
Peter Steinberger
1ec1f6dcbf
fix: sync remote ssh targets
2026-01-16 07:33:15 +00:00
Peter Steinberger
e96b939732
feat: add system.which bin probe
2026-01-16 07:31:41 +00:00
Peter Steinberger
e479c870fd
fix: handle MiniMax coding plan usage payloads
2026-01-16 07:28:48 +00:00
Peter Steinberger
f2db894685
Merge pull request #992 from tyler6204/fix/tool-typing-race-condition
...
fix: send text between tool calls to channel immediately
2026-01-16 07:26:10 +00:00
Peter Steinberger
dfa6c5c2b3
fix(google): scrub tool schemas for gemini
2026-01-16 06:57:54 +00:00
Peter Steinberger
028eed5fe8
fix(browser): surface detection details and docs
2026-01-16 06:57:54 +00:00
Peter Steinberger
2b16a87f04
feat: add config get/set/unset helpers
2026-01-16 06:57:54 +00:00
Jamie Openshaw
72f28be648
fix(config): allow discord action flags in schema
...
Ensure discord action flags survive config validation.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 06:48:25 +00:00
Peter Steinberger
c534390bc0
chore: update a2ui bundle
2026-01-16 06:35:05 +00:00
Peter Steinberger
0b3ebb0c63
test: stabilize slow and flaky tests
2026-01-16 06:24:58 +00:00
Peter Steinberger
f2e425dc2b
Merge pull request #995 from roshanasingh4/fix/systemd-execstart-whitespace
...
Fix systemd ExecStart whitespace parsing
2026-01-16 06:03:35 +00:00
Peter Steinberger
e48d68bbc7
Merge pull request #993 from cpojer/reminder-improvement
...
Improve reminder text generation.
2026-01-16 06:03:04 +00:00
Peter Steinberger
54ec14262b
feat: add plugin update tracking
2026-01-16 05:55:05 +00:00
Peter Steinberger
2b8ce3f06b
feat: add json output for daemon lifecycle
2026-01-16 05:40:47 +00:00
Peter Steinberger
41d44021e7
feat(browser): prefer default chromium browser
2026-01-16 05:37:53 +00:00
Peter Steinberger
1ab1e312b2
feat: add TLS for node bridge
2026-01-16 05:28:40 +00:00
Roshan Singh
fa9aafce83
Fix systemd ExecStart parsing whitespace
2026-01-16 05:25:13 +00:00
Tyler Yust
0d5dec4c66
fix: handle async tool start handler rejections
...
Add .catch() to handleToolExecutionStart call to prevent unhandled
promise rejections when onAgentEvent or typing signaling fails.
2026-01-15 21:10:52 -08:00
cpojer
b2d5889f6e
Improve reminder text generation.
2026-01-16 14:03:17 +09:00
Tyler Yust
2ee71e4154
fix: send text between tool calls to channel immediately
...
Previously, when block streaming was disabled (the default), text generated
between tool calls would only appear after all tools completed. This was
because onBlockReply wasn't passed to the subscription when block streaming
was off, so flushBlockReplyBuffer() before tool execution did nothing.
Now onBlockReply is always passed, and when block streaming is disabled,
block replies are sent directly during tool flush. Directly sent payloads
are tracked to avoid duplicates in final payloads.
Also fixes a race condition where tool summaries could be emitted before
the typing indicator started by awaiting onAgentEvent in tool handlers.
2026-01-15 20:55:52 -08:00
Peter Steinberger
1656f491fd
fix: normalize pairing aliases and webhook guard ( #991 ) (thanks @longmaba)
2026-01-16 04:55:16 +00:00
Peter Steinberger
a057b3c9e8
Merge pull request #991 from longmaba/fix/zalo-pairing-and-webhook
...
fix(zalo): fix pairing channel detection and webhook payload format
2026-01-16 04:54:08 +00:00
Ubuntu
ca9688b5cc
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
e6364d031d
fix: stabilize windows queue + pairing tests
2026-01-16 04:02:43 +00:00
Peter Steinberger
01c8d099ad
fix: repair CI formatting + launchd test
2026-01-16 03:52:47 +00:00
Peter Steinberger
f6e619f078
fix: normalize daemon unit paths
2026-01-16 03:47:26 +00:00
Peter Steinberger
b2b331230b
feat: mac node exec policy + remote skills hot reload
2026-01-16 03:45:06 +00:00
Long
c0c9742e44
fix(zalo): fix pairing channel detection and webhook payload format
...
Amp-Thread-ID: https://ampcode.com/threads/T-019bc4e0-fcb1-77be-b0b5-0d498f0c7197
Co-authored-by: Amp <amp@ampcode.com>
2026-01-16 10:43:14 +07:00
Peter Steinberger
abcca86e4e
chore: format and sync protocol outputs
2026-01-16 03:30:56 +00:00
Peter Steinberger
a5d8f89b53
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
a0d2a7232e
fix: allow media-only sends
2026-01-16 03:15:26 +00:00
Peter Steinberger
f449115ec5
test: extend vitest timeouts
2026-01-16 03:11:16 +00:00
Peter Steinberger
16bc4cdef3
chore: drop legacy Relay signing
2026-01-16 03:11:16 +00:00
Peter Steinberger
23e4ba845c
fix: sanitize user-facing errors and strip final tags
...
Co-authored-by: Drake Thomsen <drake.thomsen@example.com>
2026-01-16 03:01:23 +00:00
Peter Steinberger
d9f9e93dee
feat!: move msteams to plugin
2026-01-16 02:59:43 +00:00
Peter Steinberger
29476b222d
fix: restore status usage summary output
2026-01-16 02:49:18 +00:00
Peter Steinberger
3dddbe1053
fix: ignore properties in google tool schema warnings
2026-01-16 02:35:55 +00:00
Peter Steinberger
3e32050601
fix: correct final tag strip typing
2026-01-16 02:16:17 +00:00
Peter Steinberger
7fb45ed9b8
fix: strip final tags from session messages
2026-01-16 02:16:17 +00:00
Peter Steinberger
b7ba94f0c1
fix: harden antigravity claude support ( #968 )
...
Co-authored-by: Max <rdev@users.noreply.github.com>
2026-01-16 02:16:17 +00:00
Peter Steinberger
5b827528f8
fix: show oauth usage in /status
2026-01-16 02:06:27 +00:00
Nima Karimi
068dca3366
Tests: apply suite timeout in node bridge test
2026-01-16 01:56:23 +00:00
Nima Karimi
336a1ad9cf
Tests: extend node bridge server timeout
2026-01-16 01:56:23 +00:00
Peter Steinberger
af370ab23e
fix: align config types after upstream changes
2026-01-16 01:49:07 +00:00
Peter Steinberger
12afec953f
test: stabilize sandbox config tests
2026-01-16 01:44:12 +00:00
Peter Steinberger
8e2707e232
fix: cleanup suspended CLI processes ( #978 ) (thanks @Nachx639)
2026-01-16 01:39:33 +00:00
Tu Nombre Real
8befe7f8a7
fix: cleanup suspended Clawdbot CLI processes
...
Add cleanupSuspendedCliProcesses() to kill accumulated suspended processes
from isolated sessions that don't share sessionIds (e.g., cron jobs).
- Only targets Clawdbot processes (--session-id pattern)
- Only kills suspended processes (state T)
- Only triggers when >10 processes accumulated
- Does not affect user's Claude Code sessions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 01:38:03 +00:00
Peter Steinberger
a70fcc8ae0
chore(cli): set process title
2026-01-16 01:33:28 +00:00
Peter Steinberger
fa521154ff
fix: show disabled channels in onboarding picker
2026-01-16 01:29:25 +00:00
Peter Steinberger
dffc1a4dcd
fix: switch channel onboarding to single-select loop
2026-01-16 01:21:17 +00:00