Peter Steinberger
721d8b2278
test(discord): stabilize parent-info + doctor migration assertions ( #25028 )
2026-02-24 04:10:52 +00:00
Peter Steinberger
6c1ed9493c
fix: harden queue retry debounce and add regression tests
2026-02-24 03:52:49 +00:00
Peter Steinberger
a216f2dabe
fix: extend discord thread parent fallback coverage ( #24897 ) (thanks @z-x-yang)
2026-02-24 03:52:43 +00:00
Zongxin Yang
d883ecade6
fix(discord): fallback thread parent lookup when parentId missing
2026-02-24 03:52:43 +00:00
Sid
38da3f40cb
fix(discord): suppress reasoning/thinking block payloads from delivery ( #24969 )
...
Block payloads (info.kind === "block") contain reasoning/thinking content
that should only be visible in the internal web UI. When streamMode is
"partial", these blocks were being delivered to Discord as visible
messages, leaking chain-of-thought to end users.
Add an early return for block payloads in the deliver callback,
consistent with the WhatsApp fix and Telegram's existing behavior.
Fixes #24532
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-24 03:33:40 +00:00
Peter Steinberger
161d9841dc
refactor(security): unify dangerous name matching handling
2026-02-24 01:33:08 +00:00
Peter Steinberger
cfa44ea6b4
fix(security): make allowFrom id-only by default with dangerous name opt-in ( #24907 )
...
* fix(channels): default allowFrom to id-only; add dangerous name opt-in
* docs(security): align channel allowFrom docs with id-only default
2026-02-24 01:01:51 +00:00
Peter Steinberger
a2dfe9879f
fix(security): harden regex compilation for filters and redaction
2026-02-23 23:54:50 +00:00
Peter Steinberger
0183610db3
refactor: de-duplicate channel runtime and payload helpers
2026-02-23 21:25:28 +00:00
Peter Steinberger
2081b3a3c4
refactor(channels): dedupe hook and monitor execution paths
2026-02-22 21:19:09 +00:00
Peter Steinberger
409a02691f
refactor(discord): dedupe directory and media send paths
2026-02-22 17:54:51 +00:00
Peter Steinberger
296b19e413
test: dedupe gateway browser discord and channel coverage
2026-02-22 17:11:54 +00:00
Peter Steinberger
adfbbcf1f6
chore: merge origin/main into main
2026-02-22 13:42:52 +00:00
Peter Steinberger
83597572df
test: speed up thread-bindings shared-state loader test
2026-02-22 13:09:59 +00:00
Peter Steinberger
6dd36a6b77
refactor(channels): reuse runtime group policy helpers
2026-02-22 12:44:23 +01:00
Peter Steinberger
85e5ed3f78
refactor(channels): centralize runtime group policy handling
2026-02-22 12:35:41 +01:00
Peter Steinberger
777817392d
fix: fail closed missing provider group policy across message channels ( #23367 ) (thanks @bmendonca3)
2026-02-22 12:21:04 +01:00
Brian Mendonca
3700151ec0
Channels: fail closed when Slack/Discord config is missing
2026-02-22 12:18:43 +01:00
Peter Steinberger
75c1bfbae8
refactor(channels): dedupe message routing and telegram helpers
2026-02-22 07:44:57 +00:00
Peter Steinberger
df35829810
test(inbound): share dispatch capture mock across channels
2026-02-22 07:44:57 +00:00
Peter Steinberger
8613b6c6ee
test(discord): share message handler draft fixtures
2026-02-22 07:44:57 +00:00
Peter Steinberger
cca4dba53b
test(discord): share model picker fallback fixtures
2026-02-22 07:44:57 +00:00
Peter Steinberger
3664d51b6f
test(discord): share thread binding sweep fixtures
2026-02-22 07:44:57 +00:00
Peter Steinberger
a9fa434191
test(discord): share provider lifecycle test harness
2026-02-22 07:44:56 +00:00
Peter Steinberger
856b8e28a6
test(discord): use lightweight clear for thread binding rest mock
2026-02-22 07:35:54 +00:00
Peter Steinberger
f4afa12054
test(discord): seed exec-approval rest mocks with lightweight clears
2026-02-22 07:35:54 +00:00
Peter Steinberger
7ed3ee0a26
test(discord): use lightweight clears in message-handler setup
2026-02-22 07:35:54 +00:00
Peter Steinberger
706837f6a3
test(discord): trim proxy and reply-delivery setup resets
2026-02-22 07:35:54 +00:00
Peter Steinberger
1e1851a991
test(discord): use lightweight clears for media utility mocks
2026-02-22 07:35:54 +00:00
Peter Steinberger
e2603aecf5
test(discord): use lightweight clears in provider setup
2026-02-22 07:35:54 +00:00
Peter Steinberger
10328892fa
test(discord): use mock clears in monitor setup defaults
2026-02-22 07:35:54 +00:00
Peter Steinberger
150c048b0a
refactor: unify discord listener slow-log flow and test helpers
2026-02-22 00:44:56 +01:00
Peter Steinberger
7707e3406c
fix: await DiscordMessageListener handler for queued messages ( #22396 )
...
Co-authored-by: Irene <huangxiyan2311@gmail.com >
2026-02-22 00:41:46 +01:00
Peter Steinberger
0bd9f0d4ac
fix: enforce strict allowlist across pairing stores ( #23017 )
2026-02-22 00:00:23 +01:00
Gustavo Madeira Santana
2f46308d5a
refactor(logging): migrate non-agent internal console calls to subsystem logger ( #22964 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: b4a5b12422
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-21 17:44:00 -05:00
Peter Steinberger
73d93dee64
fix: enforce inbound media max-bytes during remote fetch
2026-02-21 23:02:29 +01:00
Peter Steinberger
58254b3b57
test: dedupe channel and transport adapters
2026-02-21 21:44:01 +00:00
Peter Steinberger
22940b7b98
refactor(discord): split allowlist resolution flow
2026-02-21 20:01:21 +01:00
Peter Steinberger
2c14b0cf4c
refactor(config): unify streaming config across channels
2026-02-21 19:53:42 +01:00
Peter Steinberger
747bb581b3
fix(discord): canonicalize resolved allowlists to ids
2026-02-21 19:53:29 +01:00
Peter Steinberger
fa89ae8e9e
fix: stabilize swift protocol generation and flaky tests
2026-02-21 16:53:46 +01:00
Onur
8178ea472d
feat: thread-bound subagents on Discord ( #21805 )
...
* docs: thread-bound subagents plan
* docs: add exact thread-bound subagent implementation touchpoints
* Docs: prioritize auto thread-bound subagent flow
* Docs: add ACP harness thread-binding extensions
* Discord: add thread-bound session routing and auto-bind spawn flow
* Subagents: add focus commands and ACP/session binding lifecycle hooks
* Tests: cover thread bindings, focus commands, and ACP unbind hooks
* Docs: add plugin-hook appendix for thread-bound subagents
* Plugins: add subagent lifecycle hook events
* Core: emit subagent lifecycle hooks and decouple Discord bindings
* Discord: handle subagent bind lifecycle via plugin hooks
* Subagents: unify completion finalizer and split registry modules
* Add subagent lifecycle events module
* Hooks: fix subagent ended context key
* Discord: share thread bindings across ESM and Jiti
* Subagents: add persistent sessions_spawn mode for thread-bound sessions
* Subagents: clarify thread intro and persistent completion copy
* test(subagents): stabilize sessions_spawn lifecycle cleanup assertions
* Discord: add thread-bound session TTL with auto-unfocus
* Subagents: fail session spawns when thread bind fails
* Subagents: cover thread session failure cleanup paths
* Session: add thread binding TTL config and /session ttl controls
* Tests: align discord reaction expectations
* Agent: persist sessionFile for keyed subagent sessions
* Discord: normalize imports after conflict resolution
* Sessions: centralize sessionFile resolve/persist helper
* Discord: harden thread-bound subagent session routing
* Rebase: resolve upstream/main conflicts
* Subagents: move thread binding into hooks and split bindings modules
* Docs: add channel-agnostic subagent routing hook plan
* Agents: decouple subagent routing from Discord
* Discord: refactor thread-bound subagent flows
* Subagents: prevent duplicate end hooks and orphaned failed sessions
* Refactor: split subagent command and provider phases
* Subagents: honor hook delivery target overrides
* Discord: add thread binding kill switches and refresh plan doc
* Discord: fix thread bind channel resolution
* Routing: centralize account id normalization
* Discord: clean up thread bindings on startup failures
* Discord: add startup cleanup regression tests
* Docs: add long-term thread-bound subagent architecture
* Docs: split session binding plan and dedupe thread-bound doc
* Subagents: add channel-agnostic session binding routing
* Subagents: stabilize announce completion routing tests
* Subagents: cover multi-bound completion routing
* Subagents: suppress lifecycle hooks on failed thread bind
* tests: fix discord provider mock typing regressions
* docs/protocol: sync slash command aliases and delete param models
* fix: add changelog entry for Discord thread-bound subagents (#21805 ) (thanks @onutc)
---------
Co-authored-by: Shadow <hi@shadowing.dev >
2026-02-21 16:14:55 +01:00
Tak Hoffman
22ffde90bb
tests: align macmini suite expectations with current behavior (openclaw#22379) thanks @Takhoffman
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-20 21:45:04 -06:00
Wei He
122bdfa4e1
feat(discord): add configurable ephemeral option for slash commands
2026-02-20 21:19:21 -06:00
Shadow
b7644d61a2
fix: restore Discord model picker UX ( #21458 ) (thanks @pejmanjohn)
2026-02-20 21:04:04 -06:00
Shadow
f555835b09
Channels: add thread-aware model overrides
2026-02-20 19:26:25 -06:00
Shadow
ee8dd40509
Discord/Telegram: emit edit system events ( #22310 )
2026-02-20 19:20:07 -06:00
Shadow
eedea6cf34
Discord: add trusted channel topics on new sessions
2026-02-20 18:22:13 -06:00
Shadow
1eec2aee4f
Discord: ingest inbound stickers
2026-02-20 16:47:47 -06:00
Shadow
64c29c3755
Discord: avoid reply spam on chunked sends
2026-02-20 16:37:28 -06:00