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
..
2026-02-19 21:06:13 -06:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 23:09:09 +00:00
2026-02-21 15:05:09 +01:00
2026-02-19 15:41:38 +01:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-17 15:50:07 +09:00
2026-02-21 16:14:55 +01:00
2026-02-21 16:14:55 +01:00
2026-02-16 16:52:53 +00:00
2026-02-18 01:34:35 +00:00
2026-02-16 14:59:30 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-19 00:06:19 +00:00
2026-02-13 14:28:22 +00:00
2026-02-16 16:52:53 +00:00
2026-02-18 01:34:35 +00:00
2026-01-19 10:44:18 +00:00
2026-02-14 05:58:26 +01:00
2026-02-21 15:05:09 +01:00
2026-02-21 15:05:09 +01:00
2026-02-18 01:34:35 +00:00
2026-01-31 16:19:20 +09:00
2026-02-15 13:46:13 +00:00
2026-02-18 04:37:58 +01:00
2026-02-18 23:34:15 +00:00
2026-02-21 15:05:09 +01:00
2026-01-18 16:35:52 +00:00
2026-02-18 01:34:35 +00:00
2026-01-18 16:35:52 +00:00
2026-01-18 16:35:52 +00:00
2026-02-16 16:10:18 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 23:34:15 +00:00
2026-02-19 21:16:26 -06:00
2026-02-20 16:01:09 +05:30
2026-02-18 23:34:15 +00:00
2026-02-18 01:34:35 +00:00
2026-01-18 16:35:52 +00:00
2026-02-21 15:05:09 +01:00
2026-02-14 15:39:46 +00:00
2026-02-21 15:05:09 +01:00
2026-02-18 01:34:35 +00:00
2026-02-05 16:54:44 -05:00
2026-02-19 21:16:26 -06:00
2026-02-18 01:34:35 +00:00
2026-02-16 16:48:55 +00:00
2026-02-21 15:05:09 +01:00
2026-01-14 05:39:47 +00:00
2026-01-31 16:19:20 +09:00
2026-02-16 16:03:22 +00:00
2026-02-19 15:09:19 +00:00
2026-02-19 15:08:14 +00:00
2026-02-19 15:16:09 +00:00
2026-02-16 14:59:30 +00:00
2026-01-18 01:00:24 +00:00
2026-02-17 09:43:41 -05:00
2026-02-18 01:34:35 +00:00
2026-02-15 17:49:30 +00:00
2026-02-16 00:18:27 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-19 08:15:32 +00:00
2026-02-18 04:37:58 +01:00
2026-02-20 17:51:35 +00:00
2026-02-20 17:51:35 +00:00
2026-02-15 04:42:00 +00:00
2026-02-15 14:20:06 +00:00
2026-02-13 14:28:22 +00:00
2026-02-18 18:37:17 +00:00
2026-02-21 13:04:39 +01:00
2026-02-21 13:04:39 +01:00
2026-02-18 23:09:09 +00:00
2026-02-18 23:09:09 +00:00
2026-01-14 15:02:19 +00:00
2026-02-16 16:52:53 +00:00
2026-02-14 15:00:58 -05:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 04:04:14 +00:00
2026-02-18 03:27:16 +01:00
2026-02-18 17:48:02 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 04:49:22 +00:00
2026-02-18 01:34:35 +00:00
2026-02-01 10:03:47 +09:00
2026-02-16 16:32:37 +00:00
2026-02-14 21:04:27 +01:00
2026-02-19 07:21:27 -06:00
2026-02-19 07:21:27 -06:00
2026-02-14 12:40:47 +01:00
2026-02-14 12:40:47 +01:00
2026-02-01 10:03:47 +09:00
2026-02-18 01:34:35 +00:00
2026-02-13 16:43:39 +01:00
2026-02-18 23:58:11 +00:00
2026-02-16 23:59:22 +01:00
2026-02-16 23:48:43 +00:00
2026-02-18 00:09:51 -08:00
2026-02-16 16:48:55 +00:00
2026-01-28 00:16:00 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-01 10:03:47 +09:00
2026-02-16 22:55:59 +00:00
2026-02-18 04:51:25 +01:00
2026-02-14 21:04:27 +01:00
2026-02-17 15:50:07 +09:00
2026-02-17 23:46:40 -05:00
2026-02-16 16:32:37 +00:00
2026-02-16 16:32:37 +00:00
2026-02-15 04:04:33 +00:00
2026-02-19 03:13:08 -08:00
2026-02-18 01:34:35 +00:00
2026-02-15 17:41:14 +00:00
2026-01-31 16:19:20 +09:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-19 15:19:38 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-17 15:50:07 +09:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-15 17:41:14 +00:00
2026-02-17 09:15:55 +01:00
2026-02-21 15:05:09 +01:00
2026-02-14 00:54:46 +01:00
2026-02-16 21:00:59 -05:00
2026-02-19 15:19:38 +00:00
2026-02-16 16:48:55 +00:00
2026-01-16 00:42:28 +00:00
2026-02-18 23:09:09 +00:00
2026-01-18 07:46:00 +00:00
2026-01-17 18:19:55 +00:00
2026-02-14 23:33:56 +01:00
2026-02-21 07:35:09 -06:00
2026-02-18 01:34:35 +00:00
2026-02-15 06:33:37 +00:00
2026-02-16 14:59:30 +00:00
2026-02-18 01:34:35 +00:00
2026-02-16 14:59:30 +00:00
2026-02-20 16:01:09 +05:30
2026-02-20 16:01:09 +05:30
2026-02-18 01:34:35 +00:00
2026-02-14 13:25:54 +01:00
2026-02-17 12:23:12 +09:00
2026-02-18 01:34:35 +00:00
2026-02-15 14:21:28 +00:00
2026-02-16 16:48:55 +00:00
2026-02-19 15:04:49 -08:00
2026-02-19 08:26:43 +00:00
2026-02-18 01:34:35 +00:00
2026-02-20 20:19:29 -08:00
2026-02-20 20:19:29 -08:00
2026-02-19 15:19:38 +00:00
2026-02-18 01:34:35 +00:00
2026-02-17 15:50:07 +09:00
2026-02-21 15:05:09 +01:00
2026-02-17 11:22:49 +09:00
2026-02-18 01:34:35 +00:00
2026-02-21 15:05:09 +01:00
2026-02-18 01:34:35 +00:00
2026-02-17 15:50:07 +09:00
2026-02-18 01:34:35 +00:00
2026-02-21 15:05:09 +01:00
2026-02-18 01:34:35 +00:00
2026-02-05 16:54:44 -05:00
2026-02-13 17:18:49 +00:00
2026-02-13 17:18:49 +00:00
2026-02-17 15:50:07 +09:00
2026-02-05 16:54:44 -05:00
2026-02-15 17:41:14 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 17:48:02 +00:00
2026-02-18 01:34:35 +00:00
2026-02-13 14:28:22 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 23:19:33 +00:00
2026-02-08 04:53:31 -08:00
2026-02-17 15:50:07 +09:00
2026-02-18 01:34:35 +00:00
2026-02-18 05:30:51 +00:00
2026-02-18 05:30:51 +00:00
2026-02-18 05:30:51 +00:00
2026-02-17 23:59:20 -05:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-01 10:03:47 +09:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-19 21:06:13 -06:00
2026-02-19 21:06:13 -06:00
2026-02-15 04:04:33 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-19 21:06:13 -06:00
2026-01-14 05:39:47 +00:00
2026-02-19 21:06:13 -06:00
2026-02-16 02:54:06 +00:00
2026-02-16 02:41:30 +00:00
2026-02-18 01:34:35 +00:00
2026-02-17 11:22:49 +09:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-18 01:34:35 +00:00
2026-02-13 14:28:22 +00:00
2026-02-12 19:16:04 +01:00