Peter Steinberger
cadaf2c835
feat: add sessions preview rpc and menu prewarm
2026-01-22 10:21:50 +00:00
Peter Steinberger
8544df36b8
feat: extend Control UI assistant identity
2026-01-22 07:08:13 +00:00
Peter Steinberger
9d7087168f
fix(gateway): improve validation errors ( #1347 )
...
Thanks @vignesh07.
Co-authored-by: Vignesh <vignesh07@users.noreply.github.com>
2026-01-21 02:28:33 +00:00
Vignesh Natarajan
daceeaa24c
fix(gateway): clarify schema validation errors
...
Improve validation error formatting for strict schemas.
In particular, additionalProperties errors now surface the
unexpected property name and where it occurred, which makes
handshake/connect failures easier to debug.
2026-01-21 02:28:33 +00:00
Peter Steinberger
d88b239d3c
feat: add device token auth and devices cli
2026-01-20 10:30:53 +00:00
Peter Steinberger
c440cc2f84
fix: preserve gateway presence instanceId
2026-01-20 09:52:26 +00:00
Peter Steinberger
9dbc1435a6
fix: enforce ws3 roles + node allowlist
2026-01-20 09:24:01 +00:00
Peter Steinberger
2f8206862a
refactor: remove bridge protocol
2026-01-19 10:08:29 +00:00
Peter Steinberger
73e9e787b4
feat: unify device auth + pairing
2026-01-19 10:07:56 +00:00
Peter Steinberger
3686bde783
feat: add exec approvals tooling and service status
2026-01-18 15:23:41 +00:00
Peter Steinberger
4de3c3a028
feat: add exec approvals editor in control ui and mac app
2026-01-18 08:54:38 +00:00
Peter Steinberger
a4b347b454
feat: refine subagents + add chat.inject
...
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com>
2026-01-15 23:44:31 +00:00
Peter Steinberger
31d3aef8d6
fix: prevent config clobbering
2026-01-15 04:06:11 +00:00
Peter Steinberger
c379191f80
chore: migrate to oxlint and oxfmt
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
2026-01-14 15:02:19 +00:00
Peter Steinberger
90342a4f3a
refactor!: rename chat providers to channels
2026-01-13 08:40:39 +00:00
Peter Steinberger
7acd26a2fc
Move provider to a plugin-architecture ( #661 )
...
* refactor: introduce provider plugin registry
* refactor: move provider CLI to plugins
* docs: add provider plugin implementation notes
* refactor: shift provider runtime logic into plugins
* refactor: add plugin defaults and summaries
* docs: update provider plugin notes
* feat(commands): add /commands slash list
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* Tests: align google shared expectations
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* refactor: move provider routing into plugins
* test: align agent routing expectations
* docs: update provider plugin notes
* refactor: route replies via provider plugins
* docs: note route-reply plugin hooks
* refactor: extend provider plugin contract
* refactor: derive provider status from plugins
* refactor: unify gateway provider control
* refactor: use plugin metadata in auto-reply
* fix: parenthesize cron target selection
* refactor: derive gateway methods from plugins
* refactor: generalize provider logout
* refactor: route provider logout through plugins
* refactor: move WhatsApp web login methods into plugin
* refactor: generalize provider log prefixes
* refactor: centralize default chat provider
* refactor: derive provider lists from registry
* refactor: move provider reload noops into plugins
* refactor: resolve web login provider via alias
* refactor: derive CLI provider options from plugins
* refactor: derive prompt provider list from plugins
* style: apply biome lint fixes
* fix: resolve provider routing edge cases
* docs: update provider plugin refactor notes
* fix(gateway): harden agent provider routing
* refactor: move provider routing into plugins
* refactor: move provider CLI to plugins
* refactor: derive provider lists from registry
* fix: restore slash command parsing
* refactor: align provider ids for schema
* refactor: unify outbound target resolution
* fix: keep outbound labels stable
* feat: add msteams to cron surfaces
* fix: clean up lint build issues
* refactor: localize chat provider alias normalization
* refactor: drive gateway provider lists from plugins
* docs: update provider plugin notes
* style: format message-provider
* fix: avoid provider registry init cycles
* style: sort message-provider imports
* fix: relax provider alias map typing
* refactor: move provider routing into plugins
* refactor: add plugin pairing/config adapters
* refactor: route pairing and provider removal via plugins
* refactor: align auto-reply provider typing
* test: stabilize telegram media mocks
* docs: update provider plugin refactor notes
* refactor: pluginize outbound targets
* refactor: pluginize provider selection
* refactor: generalize text chunk limits
* docs: update provider plugin notes
* refactor: generalize group session/config
* fix: normalize provider id for room detection
* fix: avoid provider init in system prompt
* style: formatting cleanup
* refactor: normalize agent delivery targets
* test: update outbound delivery labels
* chore: fix lint regressions
* refactor: extend provider plugin adapters
* refactor: move elevated/block streaming defaults to plugins
* refactor: defer outbound send deps to plugins
* docs: note plugin-driven streaming/elevated defaults
* refactor: centralize webchat provider constant
* refactor: add provider setup adapters
* refactor: delegate provider add config to plugins
* docs: document plugin-driven provider add
* refactor: add plugin state/binding metadata
* refactor: build agent provider status from plugins
* docs: note plugin-driven agent bindings
* refactor: centralize internal provider constant usage
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize default chat provider
* refactor: centralize WhatsApp target normalization
* refactor: move provider routing into plugins
* refactor: normalize agent delivery targets
* chore: fix lint regressions
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* feat: expand provider plugin adapters
* refactor: route auto-reply via provider plugins
* fix: align WhatsApp target normalization
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize WhatsApp target normalization
* feat: add /config chat config updates
* docs: add /config get alias
* feat(commands): add /commands slash list
* refactor: centralize default chat provider
* style: apply biome lint fixes
* chore: fix lint regressions
* fix: clean up whatsapp allowlist typing
* style: format config command helpers
* refactor: pluginize tool threading context
* refactor: normalize session announce targets
* docs: note new plugin threading and announce hooks
* refactor: pluginize message actions
* docs: update provider plugin actions notes
* fix: align provider action adapters
* refactor: centralize webchat checks
* style: format message provider helpers
* refactor: move provider onboarding into adapters
* docs: note onboarding provider adapters
* feat: add msteams onboarding adapter
* style: organize onboarding imports
* fix: normalize msteams allowFrom types
* feat: add plugin text chunk limits
* refactor: use plugin chunk limit fallbacks
* feat: add provider mention stripping hooks
* style: organize provider plugin type imports
* refactor: generalize health snapshots
* refactor: update macOS health snapshot handling
* docs: refresh health snapshot notes
* style: format health snapshot updates
* refactor: drive security warnings via plugins
* docs: note provider security adapter
* style: format provider security adapters
* refactor: centralize provider account defaults
* refactor: type gateway client identity constants
* chore: regen gateway protocol swift
* fix: degrade health on failed provider probe
* refactor: centralize pairing approve hint
* docs: add plugin CLI command references
* refactor: route auth and tool sends through plugins
* docs: expand provider plugin hooks
* refactor: document provider docking touchpoints
* refactor: normalize internal provider defaults
* refactor: streamline outbound delivery wiring
* refactor: make provider onboarding plugin-owned
* refactor: support provider-owned agent tools
* refactor: move telegram draft chunking into telegram module
* refactor: infer provider tool sends via extractToolSend
* fix: repair plugin onboarding imports
* refactor: de-dup outbound target normalization
* style: tidy plugin and agent imports
* refactor: data-drive provider selection line
* fix: satisfy lint after provider plugin rebase
* test: deflake gateway-cli coverage
* style: format gateway-cli coverage test
* refactor(provider-plugins): simplify provider ids
* test(pairing-cli): avoid provider-specific ternary
* style(macos): swiftformat HealthStore
* refactor(sandbox): derive provider tool denylist
* fix(sandbox): avoid plugin init in defaults
* refactor(provider-plugins): centralize provider aliases
* style(test): satisfy biome
* refactor(protocol): v3 providers.status maps
* refactor(ui): adapt to protocol v3
* refactor(macos): adapt to protocol v3
* test: update providers.status v3 fixtures
* refactor(gateway): map provider runtime snapshot
* test(gateway): update reload runtime snapshot
* refactor(whatsapp): normalize heartbeat provider id
* docs(refactor): update provider plugin notes
* style: satisfy biome after rebase
* fix: describe sandboxed elevated in prompt
* feat(gateway): add agent image attachments + live probe
* refactor: derive CLI provider options from plugins
* fix(gateway): harden agent provider routing
* fix(gateway): harden agent provider routing
* refactor: align provider ids for schema
* fix(protocol): keep agent provider string
* fix(gateway): harden agent provider routing
* fix(protocol): keep agent provider string
* refactor: normalize agent delivery targets
* refactor: support provider-owned agent tools
* refactor(config): provider-keyed elevated allowFrom
* style: satisfy biome
* fix(gateway): appease provider narrowing
* style: satisfy biome
* refactor(reply): move group intro hints into plugin
* fix(reply): avoid plugin registry init cycle
* refactor(providers): add lightweight provider dock
* refactor(gateway): use typed client id in connect
* refactor(providers): document docks and avoid init cycles
* refactor(providers): make media limit helper generic
* fix(providers): break plugin registry import cycles
* style: satisfy biome
* refactor(status-all): build providers table from plugins
* refactor(gateway): delegate web login to provider plugin
* refactor(provider): drop web alias
* refactor(provider): lazy-load monitors
* style: satisfy lint/format
* style: format status-all providers table
* style: swiftformat gateway discovery model
* test: make reload plan plugin-driven
* fix: avoid token stringification in status-all
* refactor: make provider IDs explicit in status
* feat: warn on signal/imessage provider runtime errors
* test: cover gateway provider runtime warnings in status
* fix: add runtime kind to provider status issues
* test: cover health degradation on probe failure
* fix: keep routeReply lightweight
* style: organize routeReply imports
* refactor(web): extract auth-store helpers
* refactor(whatsapp): lazy login imports
* refactor(outbound): route replies via plugin outbound
* docs: update provider plugin notes
* style: format provider status issues
* fix: make sandbox scope warning wrap-safe
* refactor: load outbound adapters from provider plugins
* docs: update provider plugin outbound notes
* style(macos): fix swiftformat lint
* docs: changelog for provider plugins
* fix(macos): satisfy swiftformat
* fix(macos): open settings via menu action
* style: format after rebase
* fix(macos): open Settings via menu action
---------
Co-authored-by: LK <luke@kyohere.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Xin <xin@imfing.com>
2026-01-11 11:45:25 +00:00
Peter Steinberger
c892fd174e
refactor(sessions): add sessions.resolve + label helper ( #570 )
2026-01-09 17:02:57 +01:00
Peter Steinberger
714e170c16
feat(tui): add agent picker and agents list rpc
2026-01-09 01:05:10 +01:00
Peter Steinberger
64fc3c068d
feat: add gateway logs tab
2026-01-08 03:44:08 +00:00
Peter Steinberger
71c31266a1
feat: add gateway config/update restart flow
2026-01-08 01:30:02 +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
53d954695e
style: format agent.wait imports
2026-01-04 01:22:22 +01:00
Peter Steinberger
e3c543ec06
fix: wait on agent.wait for sessions_send
2026-01-04 01:15:23 +01:00
Peter Steinberger
53baba71fa
feat: unify onboarding + config schema
2026-01-03 16:48:08 +01:00
Peter Steinberger
db36f0105d
fix(gateway): validate event/response frames
2026-01-03 13:37:40 +01:00
Peter Steinberger
e119a82334
feat: talk mode key distribution and tts polling
2025-12-30 01:57:58 +01:00
Peter Steinberger
c54e4d0900
refactor: node tools and canvas host url
2025-12-27 01:36:29 +01:00
Peter Steinberger
9717f2d374
fix: bump pi deps and fix lint
2025-12-22 20:45:38 +00:00
Peter Steinberger
a0dd504991
feat(mac): sessions submenus
2025-12-22 19:29:24 +01:00
Peter Steinberger
817abd8b5f
feat(gateway): add models.list
2025-12-20 23:43:27 +01:00
Peter Steinberger
e0cd5650c5
style: biome formatting
2025-12-20 12:52:14 +00:00
Peter Steinberger
cc0075e988
feat: add skills settings and gateway skills management
2025-12-20 13:33:42 +01:00
Peter Steinberger
df0c51a63b
Gateway: add browser control UI
2025-12-18 22:41:06 +00:00
Peter Steinberger
742027a447
Gateway: list/describe node capabilities and commands
2025-12-18 02:06:35 +00:00
Peter Steinberger
428a82e734
feat(chat): Swift chat parity (abort/sessions/stream)
2025-12-17 20:51:27 +01:00
Peter Steinberger
aef18b7359
fix(gateway): resolve iOS node invokes
2025-12-14 00:00:05 +00:00
Peter Steinberger
3fcee21ff7
feat(gateway): add node.invoke for iOS canvas
2025-12-13 23:45:16 +00:00
Peter Steinberger
7d89fa2591
feat(gateway): add sessions list/patch RPC
2025-12-13 16:32:42 +00:00
Peter Steinberger
eace21dcae
feat(discovery): gateway bonjour + node pairing bridge
2025-12-13 03:47:53 +00:00
Peter Steinberger
415cb857d9
feat(cron): add scheduler status endpoint
2025-12-13 03:43:40 +00:00
Peter Steinberger
f9409cbe43
Cron: add scheduler, wakeups, and run history
2025-12-13 02:34:38 +00:00
Peter Steinberger
d5d80f4247
feat(gateway)!: switch handshake to req:connect (protocol v2)
2025-12-12 23:29:57 +00:00
Peter Steinberger
1dd5c97ae0
feat: add ws chat attachments
2025-12-09 23:16:57 +01:00
Peter Steinberger
cf5769753a
Protocol: lint fixes for client/program
2025-12-09 15:18:34 +01:00
Peter Steinberger
172ce6c79f
Gateway: discriminated protocol schema + CLI updates
2025-12-09 15:01:13 +01:00