Peter Steinberger
c4c0f1349a
fix: keep build green after main rebase ( #570 ) (thanks @azade-c)
2026-01-09 15:40:36 +01:00
Peter Steinberger
56e77f6843
fix: sessions label lookup and persistence ( #570 ) (thanks @azade-c)
2026-01-09 15:32:49 +01:00
Azade
e24e0cf364
test(sessions): add tests for sessions_send label lookup
...
- Test finding session by label
- Test error when label not found
- Test error when neither sessionKey nor label provided
2026-01-09 15:32:49 +01:00
Azade
3133c7c84e
feat(sessions): expose label in sessions.list and support label lookup in sessions_send
...
- Add `label` field to session entries and expose it in `sessions.list`
- Display label column in the web UI sessions table
- Support `label` parameter in `sessions_send` for lookup by label instead of sessionKey
- `sessions.patch`: Accept and store `label` field
- `sessions.list`: Return `label` in session entries
- `sessions_spawn`: Pass label through to registry and announce flow
- `sessions_send`: Accept optional `label` param, lookup session by label if sessionKey not provided
- `agent` method: Accept `label` and `spawnedBy` params (stored in session entry)
- Add `label` column to sessions table in web UI
- Changed session store writes to merge with existing entry (`{ ...existing, ...new }`)
to preserve fields like `label` that might be set separately
We attempted to implement label persistence "properly" by passing the label
through the `agent` call and storing it during session initialization. However,
the auto-reply flow has multiple write points that overwrite the session entry,
and making all of them merge-aware proved unreliable.
The working solution patches the label in the `finally` block of
`runSubagentAnnounceFlow`, after all other session writes complete.
This is a workaround but robust - the patch happens at the very end,
just before potential cleanup.
A future refactor could make session writes consistently merge-based,
which would allow the cleaner approach of setting label at spawn time.
```typescript
// Spawn with label
sessions_spawn({ task: "...", label: "my-worker" })
// Later, find by label
sessions_send({ label: "my-worker", message: "continue..." })
// Or use sessions_list to see labels
sessions_list() // includes label field in response
```
2026-01-09 15:32:49 +01:00
Peter Steinberger
b0672da396
fix(gateway): fix wide-area discovery update
2026-01-09 13:55:27 +01:00
Peter Steinberger
1716c01bdf
feat(gateway): improve wide-area discovery
2026-01-09 13:54:53 +01:00
Peter Steinberger
7b81d97ec2
feat: wire multi-agent config and routing
...
Co-authored-by: Mark Pors <1078320+pors@users.noreply.github.com>
2026-01-09 12:48:42 +00:00
Peter Steinberger
e55358c65d
feat: finalize msteams polls + outbound parity
2026-01-09 11:07:32 +01:00
Onur
eb908985f7
Gateway: fix reload tests for MS Teams provider
2026-01-09 11:07:00 +01:00
Onur
1df7bfefe7
MSTeams: stop on shutdown and honor chunk limit
2026-01-09 11:07:00 +01:00
Onur
8d096ef85d
Tests: stabilize file watchers
2026-01-09 11:06:39 +01:00
Onur
269a3c4000
feat(msteams): add outbound sends and fix reply delivery
...
- Add sendMessageMSTeams for proactive messaging via CLI/gateway
- Wire msteams into outbound delivery, heartbeat targets, and gateway send
- Fix reply delivery to use SDK's getConversationReference() for proper
bot info, avoiding "Activity Recipient undefined" errors
- Use proactive messaging for replies to post as top-level messages
(not threaded) by omitting activityId from conversation reference
- Add lazy logger in send.ts to avoid test initialization issues
2026-01-09 11:06:14 +01:00
Onur
e0812f8c4d
feat(msteams): add config reload, DM policy, proper shutdown
...
- Add msteams to config-reload.ts (ProviderKind, ReloadAction, rules)
- Add msteams to PairingProvider for pairing code support
- Create conversation-store.ts for storing ConversationReference
- Implement DM policy check (disabled/pairing/open/allowlist)
- Fix WasMentioned to check actual bot mentions via entities
- Fix server shutdown by using custom Express server with httpServer.close()
- Pass authConfig to CloudAdapter for outbound call authentication
- Improve error logging with JSON serialization
2026-01-09 11:05:34 +01:00
Onur
d9cbecac7f
feat(msteams): add MS Teams provider skeleton
...
- Add Microsoft 365 Agents SDK packages (@microsoft/agents-hosting,
@microsoft/agents-hosting-express, @microsoft/agents-hosting-extensions-teams)
- Add MSTeamsConfig type and zod schema
- Create src/msteams/ provider with monitor, token, send, probe
- Wire provider into gateway (server-providers.ts, server.ts)
- Add msteams to all provider type unions (hooks, queue, cron, etc.)
- Update implementation guide with new SDK and progress
2026-01-09 11:05:34 +01:00
Peter Steinberger
5b50c97939
feat(cli): improve gateway status output
2026-01-09 09:27:42 +01:00
Peter Steinberger
581da80209
chore: log gateway reload and signals
2026-01-09 08:13:04 +01:00
Peter Steinberger
c46bab35df
fix: drop explicit ui:install step
2026-01-09 07:02:42 +00:00
Shadow
95c2ccbd7b
fix: remove incorrect discord limited warning
2026-01-08 23:59:40 -06:00
Peter Steinberger
9114331218
fix: serialize claude cli runs
2026-01-09 04:58:21 +00:00
Peter Steinberger
64fc5fa9fc
fix: allow default model outside allowlist
2026-01-09 04:18:30 +00:00
Peter Steinberger
151523f47b
feat: add usage cost reporting
2026-01-09 02:29:54 +00:00
Peter Steinberger
714e170c16
feat(tui): add agent picker and agents list rpc
2026-01-09 01:05:10 +01:00
Peter Steinberger
4e92ccc0dd
style: format
2026-01-09 00:33:09 +01:00
Peter Steinberger
69f8af530d
feat(providers): improve doctor + status probes
2026-01-08 23:48:37 +01:00
Peter Steinberger
ed80860c34
chore(format): apply biome fixes
2026-01-08 22:22:17 +00:00
Peter Steinberger
36fa3c3cd3
fix: improve ws close diagnostics
2026-01-08 22:18:07 +00:00
Peter Steinberger
cd2f3bd355
feat(status): add Telegram/WhatsApp troubleshooting warnings
2026-01-08 23:14:11 +01:00
Peter Steinberger
7392387ec1
feat(status): warn on Discord message content intent
2026-01-08 23:07:34 +01:00
Peter Steinberger
73988506fe
feat: allow hook model overrides
2026-01-08 09:33:42 +00:00
Peter Steinberger
44441dd5d8
fix: clarify daemon status probe target
2026-01-08 08:50:09 +01:00
Peter Steinberger
c7cade5232
style: tidy gateway auth imports
2026-01-08 08:26:40 +01:00
Peter Steinberger
a676e16fbb
feat: expand daemon status diagnostics
2026-01-08 08:26:40 +01:00
Peter Steinberger
b367ed75bf
fix: wire gateway auth diagnostics into doctor
2026-01-08 08:26:40 +01:00
Peter Steinberger
5565dcd447
fix: tighten gateway bind auth diagnostics
2026-01-08 08:26:40 +01:00
Peter Steinberger
19595a8f99
refactor: simplify cli commands
2026-01-08 07:16:12 +01:00
Peter Steinberger
0bcf3f40f4
fix(ci): sync logs tail protocol artifacts
2026-01-08 03:49:19 +00:00
Peter Steinberger
64fc3c068d
feat: add gateway logs tab
2026-01-08 03:44:08 +00:00
Peter Steinberger
fbeb9e6775
fix(ci): stabilize windows tests
2026-01-08 02:44:19 +00:00
Peter Steinberger
7f0f82e869
ci: enforce lf line endings
2026-01-08 02:29:20 +00:00
Peter Steinberger
92a62bc300
style: format providers docs output
2026-01-08 02:01:43 +00:00
Peter Steinberger
313925b357
fix: restore gateway connection details helper
2026-01-08 02:00:27 +00:00
Peter Steinberger
440a5b82cf
fix(gateway): honor local auth password for CLI (PR #301 , thanks @jeffersonwarrior)
2026-01-08 02:59:06 +01:00
Peter Steinberger
2f707ad4ad
style: format gateway call helpers
2026-01-08 01:53:28 +00:00
Peter Steinberger
6aa6c837e7
fix: add gateway connection debug output
2026-01-08 02:51:39 +01:00
Peter Steinberger
2fe3b483b1
fix: add gateway close context
2026-01-08 02:42:32 +01:00
Peter Steinberger
05b8679c8b
feat: add providers CLI and multi-account onboarding
2026-01-08 01:55:59 +01:00
Peter Steinberger
6cd32ec7f6
test: stabilize cron auto-run test
2026-01-08 01:38:48 +01:00
Peter Steinberger
71c31266a1
feat: add gateway config/update restart flow
2026-01-08 01:30:02 +01:00
Peter Steinberger
8b4bcc6b7a
refactor: centralize message provider normalization
2026-01-07 23:53:38 +00:00
Peter Steinberger
da5481e878
fix: route agent messageProvider from resolved provider ( #389 , thanks @imfing)
2026-01-07 23:34:43 +00:00
Shadow
7e5cef29a0
Threads: add Slack/Discord thread sessions
2026-01-07 19:30:30 +01:00
Peter Steinberger
937e0265a3
fix: preserve sessionKey for agent runs
2026-01-07 17:53:59 +01:00
Peter Steinberger
eef90b47a3
chore: satisfy lint
2026-01-07 11:49:01 +01:00
Peter Steinberger
9bf6684366
feat: add provider usage tracking
2026-01-07 11:42:46 +01:00
Peter Steinberger
a700f9896d
feat: telegram draft streaming
2026-01-07 11:08:32 +01:00
Peter Steinberger
34cac1beb0
fix: land PR #350
2026-01-07 07:19:48 +00:00
Peter Steinberger
1673a221f8
feat: add /reasoning reasoning visibility
2026-01-07 06:17:31 +01:00
Peter Steinberger
6ffece68b0
fix(doctor): add headless flags + auto-migrate sessions
2026-01-07 04:43:24 +01:00
Sash Zats
eb8d7a19af
Cron: enqueue system events in main session
2026-01-06 19:55:03 -05:00
Azade
274f408e6f
feat(sessions_spawn): add model parameter for sub-agent model override
2026-01-06 23:17:35 +00:00
Peter Steinberger
2771001720
fix(state): auto-migrate legacy agent dir
2026-01-06 22:04:23 +00:00
Shadow
9b22e1f6e9
feat(commands): unify chat commands ( #275 )
...
* Chat commands: registry, access groups, Carbon
* Chat commands: clear native commands on disable
* fix(commands): align command surface typing
* docs(changelog): note commands registry (PR #275 )
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 20:17:56 +00:00
Peter Steinberger
dbfa316d19
feat: multi-agent routing + multi-account providers
2026-01-06 18:33:37 +00:00
Peter Steinberger
3693449d7e
feat: sandbox session tool visibility
2026-01-06 08:40:30 +00:00
Peter Steinberger
ed2075ce69
test(gateway): deflake cron finished event wait
2026-01-06 09:25:31 +01:00
Peter Steinberger
c27dd75135
build(control-ui): prefer bun for UI build
2026-01-06 09:08:25 +01:00
Peter Steinberger
a279bcfeb1
feat: add sessions_spawn sub-agent tool
2026-01-06 08:41:45 +01:00
Peter Steinberger
aa16b679ad
fix: improve auth profile failover
2026-01-06 07:18:06 +01:00
Peter Steinberger
7d896b5f67
fix: doctor memory hint
2026-01-06 06:01:24 +00:00
Shadow
69f285c5ca
chore: fixed CI
2026-01-05 23:36:48 -06:00
Peter Steinberger
35a2140e48
fix: clean up poll merge
2026-01-06 04:51:05 +00:00
Peter Steinberger
0b27964693
feat: unify poll support
...
Co-authored-by: DBH <5251425+dbhurley@users.noreply.github.com>
2026-01-06 04:51:05 +00:00
DBH
2737e17c67
feat: Add WhatsApp poll support ( #248 )
...
Implements issue #123 - WhatsApp Poll Support
## Gateway Protocol
- Add `poll` RPC method with params: to, question, options (2-12), selectableCount
## ActiveWebListener
- Add `sendPoll(to, poll)` method to interface
- Implementation uses Baileys poll message type
## CLI Command
- `clawdbot poll --to <jid> -q <question> -o <opt1> -o <opt2> [-s count]`
- Supports --dry-run, --json, --verbose flags
- Validates 2-12 options
## Changes
- src/gateway/protocol/schema.ts: Add PollParamsSchema
- src/gateway/protocol/index.ts: Export validator and types
- src/web/active-listener.ts: Add sendPoll to interface
- src/web/inbound.ts: Implement sendPoll using Baileys
- src/web/outbound.ts: Add sendPollWhatsApp function
- src/gateway/server-methods/send.ts: Add poll handler
- src/commands/poll.ts: New CLI command
- src/cli/program.ts: Register poll command
Closes #123
2026-01-06 04:44:15 +00:00
Peter Steinberger
9d656f4269
style: satisfy lint
2026-01-06 03:11:42 +00:00
Peter Steinberger
20a361a3cf
refactor: centralize agent timeout defaults
2026-01-06 02:48:44 +00:00
Martin Schürrer
d83ca74c18
gateway: honor agent timeout for chat.send ( #229 )
...
Co-authored-by: clawd@msch <clawd@msch>
2026-01-06 02:45:02 +00:00
Peter Steinberger
9623bd7763
fix: route agent CLI via gateway
2026-01-06 03:41:56 +01:00
Peter Steinberger
0398f684e7
fix: add gateway stop/restart commands
2026-01-06 03:25:32 +01:00
Marcus Neves
67e1452f4a
Cron: normalize cron.add inputs + align channels ( #256 )
...
* fix: harden cron add and align channels
* fix: keep cron tool id params
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 02:09:48 +00:00
Peter Steinberger
b7e708c764
fix(chat): stabilize web UI tool runs
2026-01-05 17:22:29 +00:00
Peter Steinberger
995f5959af
fix: stage sandbox media for inbound attachments
2026-01-05 06:18:11 +01:00
Peter Steinberger
a7d33c06f9
refactor: align agent lifecycle
2026-01-05 05:55:02 +01:00
Peter Steinberger
d92a9e351e
style: fix linting order and formatting
2026-01-05 02:33:59 +01:00
Peter Steinberger
0c632f4855
fix: prefer tailnet IP for local gateway calls
2026-01-05 02:19:26 +01:00
Peter Steinberger
359cb66e68
fix: allow wildcard control commands
2026-01-05 02:06:18 +01:00
Peter Steinberger
17422608b2
fix: gate /activation to owners in groups
2026-01-05 02:03:29 +01:00
Peter Steinberger
c6de1b1f7d
feat: add --dev/--profile CLI profiles
2026-01-05 01:27:13 +01:00
Peter Steinberger
bcdfe461d4
fix(ci): resolve lint and docs build failures
2026-01-05 00:17:14 +00:00
Peter Steinberger
0716a624a8
chore(lint): apply biome fixes
2026-01-04 19:08:22 +01:00
Peter Steinberger
2110cac5d6
fix(cli): add config alias and reduce probe noise
2026-01-04 17:23:34 +00:00
Peter Steinberger
5d17b84e8a
test(gateway): allow webchat chat.send without node
2026-01-04 17:12:49 +00:00
Peter Steinberger
2694e59ba6
fix(gateway): allow Control UI chat without node
2026-01-04 17:12:49 +00: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
d48dc71fa4
feat: add canvasHost liveReload option
2026-01-04 15:22:47 +01:00
Peter Steinberger
1e555e693a
fix: dedupe canvas host watcher
2026-01-04 15:15:46 +01:00
Peter Steinberger
5ce1eb791e
chore: align rebase with main
2026-01-04 14:41:52 +01:00
Peter Steinberger
529cf91ac3
fix: keep node presence fresh
2026-01-04 14:41:52 +01:00
Mariano Belinky
672700f2b3
docs: add PR template + node presence beacon
2026-01-04 14:41:52 +01:00
Peter Steinberger
ec6980cda0
fix: wire slack into delivery routing
2026-01-04 11:44:41 +00:00
Shadow
8c38a7fee8
Slack: add some fixes and connect it all up
2026-01-04 01:53:26 -06:00
Peter Steinberger
fe0b3500cc
feat: add elevated bash mode
2026-01-04 05:15:59 +00:00
Peter Steinberger
fd91da2b7f
fix: log dynamic config reloads
2026-01-04 04:24:50 +00:00
Peter Steinberger
0e75aa2716
test: add sessions_send loopback test
2026-01-04 04:30:57 +01:00
Peter Steinberger
24aa3e3311
test: stabilize gateway tests
2026-01-04 04:16:38 +01:00
Peter Steinberger
3c4c2aa98c
refactor: split gateway server methods
2026-01-04 04:05:18 +01:00
Peter Steinberger
add1301a51
feat(sessions): add agent-to-agent post step
2026-01-04 03:04:55 +01:00
Peter Steinberger
1d06164e18
refactor: use per-send run ids for gateway agent
2026-01-04 02:08:52 +01:00
Peter Steinberger
fe67073b74
fix: avoid sessions_send timeouts
2026-01-04 01:52:01 +01:00
Peter Steinberger
cbf41859aa
test: relax cron default scheduler timeout
2026-01-04 01:45:50 +01:00
Peter Steinberger
fbaa109a3a
fix: stabilize lint and test timeouts
2026-01-04 01:42:08 +01:00
Peter Steinberger
70d68d29d0
fix: warm agent.wait cache
2026-01-04 01:35:02 +01:00
Peter Steinberger
53d954695e
style: format agent.wait imports
2026-01-04 01:22:22 +01:00
Peter Steinberger
8724c2aea8
fix: satisfy gate checks
2026-01-04 01:16:53 +01:00
Peter Steinberger
e3c543ec06
fix: wait on agent.wait for sessions_send
2026-01-04 01:15:23 +01:00
Peter Steinberger
5862f95bd2
fix: lock main session deletion
2026-01-03 23:57:17 +00:00
Peter Steinberger
e17c038d18
fix: add gif playback for WhatsApp sends
2026-01-03 23:56:40 +00:00
Peter Steinberger
86038ec165
chore: apply lint fixes
2026-01-04 00:06:02 +01:00
Peter Steinberger
e7c9b9a749
feat: add sessions tools and send policy
2026-01-03 23:44:42 +01:00
Peter Steinberger
9d2d0c64c2
test(gateway): cover config reload
2026-01-03 21:01:26 +00:00
Peter Steinberger
3b075dff8a
feat: add per-session agent sandbox
2026-01-03 21:41:58 +01:00
Peter Steinberger
16e3535ac0
refactor: remove bash pty mode
2026-01-03 20:15:10 +00:00
Peter Steinberger
a15cffb7de
fix: stream tool summaries early and tool output
2026-01-03 21:04:40 +01:00
Peter Steinberger
e9d7ac8e84
feat(gateway): add config hot reload
2026-01-03 19:52:24 +00:00
Peter Steinberger
55a07a0ef0
style: fix lint formatting
2026-01-03 18:51:25 +00:00
Peter Steinberger
cdfbd6e7eb
test(gateway): align config constants in auth test
2026-01-03 19:37:09 +01:00
Peter Steinberger
5e156135a1
test(gateway): avoid hoisted export errors
2026-01-03 19:37:09 +01:00
Peter Steinberger
b7ec9ae475
fix(gateway): format status/code errors
2026-01-03 19:37:09 +01:00
Peter Steinberger
8a18af409d
test(gateway): cover helper registries
2026-01-03 19:37:09 +01:00
Peter Steinberger
6a125b554b
refactor(gateway): split server helpers
2026-01-03 19:37:09 +01:00
Peter Steinberger
73fa2e10bc
refactor: split gateway server methods
2026-01-03 18:14:07 +01:00
Peter Steinberger
4a6b33d799
refactor: add gateway server helper modules
2026-01-03 18:00:45 +01:00
Peter Steinberger
1d6de24ab3
feat: configurable control ui base path
2026-01-03 17:55:31 +01:00
Peter Steinberger
6ae51ae3de
refactor: split gateway server helpers and tests
2026-01-03 17:34:52 +01:00
Peter Steinberger
53baba71fa
feat: unify onboarding + config schema
2026-01-03 16:48:08 +01:00
Peter Steinberger
733e86516e
fix: address runtime warnings in build
2026-01-03 15:01:38 +00:00
Peter Steinberger
db36f0105d
fix(gateway): validate event/response frames
2026-01-03 13:37:40 +01:00
Peter Steinberger
bb54e60179
fix(logging): decouple file logs from console verbose
2026-01-03 12:32:14 +00:00
Peter Steinberger
b6301c719b
fix: default low thinking for reasoning models
2026-01-03 12:19:06 +00:00
Peter Steinberger
f47c7ac369
feat: support configurable gateway port
2026-01-03 12:00:17 +01:00
Peter Steinberger
662208949f
fix: align sessions.patch and tui typing
2026-01-03 06:37:40 +01:00
Peter Steinberger
61b67f6301
feat: extend gateway session patch
2026-01-03 06:16:49 +01:00
Peter Steinberger
b914eaa6fa
chore: apply biome lint fixes
2026-01-03 05:10:09 +01:00
Peter Steinberger
0ed5b82389
fix: prefer explicit hook mappings
2026-01-03 05:09:54 +01:00
Jared Verdi
ca9b0dbc88
Gmail watcher: start when gateway (re)starts
2026-01-03 03:49:53 +01:00
Peter Steinberger
d8201f8436
fix: handle null action in hooks-mapping mergeAction call
2026-01-03 02:05:01 +00:00
Peter Steinberger
a9eb31e8fe
fix: satisfy discord and gateway typing
2026-01-03 02:55:43 +01:00
Jared Verdi
12e27f9e5e
Gateway: ack skipped hook transforms with 204
2026-01-03 02:32:50 +01:00
Peter Steinberger
5cf1a9535e
feat: move group mention gating to provider groups
2026-01-02 22:24:26 +01:00
Peter Steinberger
118a6d7421
fix: align discord config ui
2026-01-02 21:15:59 +01:00