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
Shadow
ab27d7b05a
Discord: fix voice command typing
2026-02-20 16:31:41 -06:00
Shadow
4ab946eebf
Discord VC: voice channels, transcription, and TTS ( #18774 )
2026-02-20 16:06:07 -06:00
Shadow
30a0d3fce1
Status reactions: fix stall timers and gating ( #22190 )
...
* feat: add shared status reaction controller
* feat: add statusReactions config schema
* feat: wire status reactions for Discord and Telegram
* fix: restore original 10s/30s stall defaults for Discord compatibility
* Status reactions: fix stall timers and gating
* Format status reaction imports
---------
Co-authored-by: Matt <mateus.carniatto@gmail.com >
2026-02-20 15:27:42 -06:00
Shadow
09e6970386
Discord: implement stream preview mode ( #22111 )
...
* Discord: implement stream preview mode
* Changelog: note Discord stream preview mode
* Tests: type discord draft stream mocks
* Docs: document Discord stream preview
2026-02-20 12:37:15 -06:00
Shadow
f7a8c2df2c
Discord: handle gateway 4014 close
2026-02-19 13:47:28 -06:00
Peter Steinberger
a1cb700a05
test: dedupe and optimize test suites
2026-02-19 15:19:38 +00:00
David Rudduck
ee6d0bd321
fix(security): escape backticks in exec-approval command previews ( #20854 )
...
Command text displayed in Discord exec-approval embeds was not sanitized,
allowing crafted commands containing backticks to break out of the markdown
code block and inject arbitrary Discord formatting. This fix inserts a
zero-width space before each backtick to neutralize markdown injection.
2026-02-19 03:17:06 -08:00
Peter Steinberger
4c68a09f08
test(discord): dedupe gateway proxy runtime fixture
2026-02-19 07:33:16 +00:00
Peter Steinberger
9092d783a4
perf(test): tighten discord stall reaction test timing
2026-02-18 22:25:19 +00:00
Peter Steinberger
ba49b970df
perf(test): reduce discord stall timer advance window
2026-02-18 22:16:23 +00:00