openclaw/src/plugins
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
..
runtime fix(ci): resolve format drift and acp mock typing 2026-02-19 15:11:27 +00:00
bundled-dir.ts chore: Enable "curly" rule to avoid single-statement if confusion/errors. 2026-01-31 16:19:20 +09:00
cli.test.ts chore: Enable `typescript/no-explicit-any` rule. 2026-02-02 16:18:09 +09:00
cli.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
commands.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
config-schema.ts chore: Enable "curly" rule to avoid single-statement if confusion/errors. 2026-01-31 16:19:20 +09:00
config-state.test.ts test: merge duplicate plugin memory-none cases 2026-02-19 08:51:38 +00:00
config-state.ts Gateway/Plugins: device pairing + phone control plugins (#11755) 2026-02-08 18:07:13 +01:00
discovery.test.ts refactor(test): dedupe plugin env overrides via env helpers 2026-02-21 13:03:41 +00:00
discovery.ts fix(security): enforce plugin and hook path containment 2026-02-19 15:37:29 +01:00
enable.ts refactor: centralize plugin allowlist mutation 2026-02-17 00:45:02 +00:00
hook-runner-global.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
hooks.before-agent-start.test.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
hooks.model-override-wiring.test.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
hooks.phase-hooks.test.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
hooks.test-helpers.ts refactor(test): share plugin hook registry helper 2026-02-15 14:44:15 +00:00
hooks.ts feat: thread-bound subagents on Discord (#21805) 2026-02-21 16:14:55 +01:00
http-path.ts chore: Enable "curly" rule to avoid single-statement if confusion/errors. 2026-01-31 16:19:20 +09:00
http-registry.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
install.e2e.test.ts chore: fix formatting drift and stabilize cron tool mocks 2026-02-19 15:41:38 +01:00
install.ts refactor: eliminate jscpd clones and boost tests 2026-02-19 15:08:54 +00:00
installs.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
loader.test.ts refactor(test): dedupe plugin env overrides via env helpers 2026-02-21 13:03:41 +00:00
loader.ts fix(security): enforce plugin and hook path containment 2026-02-19 15:37:29 +01:00
logger.test.ts refactor(plugins): reuse plugin loader logger adapter 2026-02-18 23:48:32 +00:00
logger.ts refactor(plugins): reuse plugin loader logger adapter 2026-02-18 23:48:32 +00:00
manifest-registry.test.ts test: dedupe registry/session tests and add install source coverage 2026-02-18 05:05:04 +00:00
manifest-registry.ts refactor(plugins): extract safety and provenance helpers 2026-02-19 15:24:14 +01:00
manifest.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
path-safety.ts refactor(plugins): extract safety and provenance helpers 2026-02-19 15:24:14 +01:00
providers.ts refactor(plugins): reuse plugin loader logger adapter 2026-02-18 23:48:32 +00:00
registry.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
runtime.ts refactor(plugins): reuse createEmptyPluginRegistry 2026-02-15 19:05:00 +00:00
schema-validator.ts chore: Enable "curly" rule to avoid single-statement if confusion/errors. 2026-01-31 16:19:20 +09:00
services.test.ts refactor(plugins): reuse plugin service runtime context 2026-02-18 17:23:44 +00:00
services.ts refactor(plugins): reuse plugin service runtime context 2026-02-18 17:23:44 +00:00
slots.test.ts chore: Enable "experimentalSortImports" in Oxfmt and reformat all imorts. 2026-02-01 10:03:47 +09:00
slots.ts chore: Enable "curly" rule to avoid single-statement if confusion/errors. 2026-01-31 16:19:20 +09:00
source-display.test.ts fix(cli): improve plugins list source display 2026-02-09 13:05:48 -06:00
source-display.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
status.ts refactor(plugins): reuse plugin loader logger adapter 2026-02-18 23:48:32 +00:00
tools.optional.test.ts test: speed up plugin optional tools suite 2026-02-16 05:56:26 +00:00
tools.ts refactor(plugins): reuse plugin loader logger adapter 2026-02-18 23:48:32 +00:00
types.ts feat: thread-bound subagents on Discord (#21805) 2026-02-21 16:14:55 +01:00
uninstall.test.ts refactor(test): dedupe channel and monitor action suites 2026-02-18 04:49:22 +00:00
uninstall.ts CLI: add plugins uninstall command (#5985) (openclaw#6141) thanks @JustasMonkev 2026-02-12 20:11:26 -06:00
update.ts refactor: share npm integrity drift handling 2026-02-19 15:08:14 +00:00
voice-call.plugin.test.ts test: remove duplicated scenario scaffolding across runtime tests 2026-02-18 04:04:14 +00:00
wired-hooks-after-tool-call.e2e.test.ts chore: Fix types in tests 23/N. 2026-02-17 12:24:03 +09:00
wired-hooks-compaction.test.ts test: dedupe and optimize test suites 2026-02-19 15:19:38 +00:00
wired-hooks-gateway.test.ts refactor(test): share plugin hook registry helper 2026-02-15 14:44:15 +00:00
wired-hooks-llm.test.ts refactor(agent): dedupe harness and command workflows 2026-02-16 14:59:30 +00:00
wired-hooks-message.test.ts refactor(test): share plugin hook registry helper 2026-02-15 14:44:15 +00:00
wired-hooks-session.test.ts refactor(test): share plugin hook registry helper 2026-02-15 14:44:15 +00:00
wired-hooks-subagent.test.ts feat: thread-bound subagents on Discord (#21805) 2026-02-21 16:14:55 +01:00