Kyle Carberry
f4a7fa5b95
fix(chatd): block subagents from spawning workspaces ( #22603 )
...
## Summary
Subagent (child) chats were previously given access to workspace
provisioning tools (`list_templates`, `read_template`,
`create_workspace`), which could lead to uncontrolled resource
consumption. This PR moves those tools behind the same
`!chat.ParentChatID.Valid` gate that already protects the subagent tools
(`spawn_agent`, `wait_agent`, etc.).
## Changes
- **`coderd/chatd/chatd.go`**: Moved `list_templates`, `read_template`,
and `create_workspace` tool registration into the root-chat-only block
alongside subagent tools.
- **`coderd/chatd/chatd_test.go`**: Added
`TestSubagentChatExcludesWorkspaceProvisioningTools` — an E2E test that
spawns a subagent via a root chat and verifies the subagent's LLM call
does not include workspace provisioning or subagent tools.
- **`coderd/chatd/chattest/openai.go`**: Added `Tools` field to
`OpenAIRequest` and supporting `OpenAITool`/`OpenAIToolFunction` types
so tests can inspect which tools are sent to the model.
2026-03-04 15:49:14 +00:00
..
2026-02-24 13:26:55 +04:00
2026-01-21 19:06:19 +00:00
2026-03-04 12:54:39 +02:00
2026-03-02 16:02:01 +01:00
2026-01-08 15:24:11 +04:00
2026-02-24 16:45:56 +00:00
2025-12-15 13:44:44 -09:00
2026-02-06 09:52:17 -07:00
2026-02-06 10:12:58 +04:00
2026-03-04 15:49:14 +00:00
2026-03-03 13:48:58 +00:00
2025-10-16 01:56:43 +11:00
2026-01-08 15:24:11 +04:00
2026-03-04 12:54:39 +02:00
2026-02-19 09:02:19 +00:00
2026-02-03 17:52:07 +00:00
2026-01-29 13:50:15 +01:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-02-23 12:18:44 +01:00
2026-02-28 16:46:51 -05:00
2026-02-03 17:52:07 +00:00
2026-02-23 22:46:17 -06:00
2026-02-23 12:18:44 +01:00
2026-01-08 15:24:11 +04:00
2026-02-18 16:30:16 +00:00
2026-02-23 12:18:44 +01:00
2025-10-15 17:37:37 +00:00
2026-02-19 09:02:19 +00:00
2026-02-25 08:58:50 +00:00
2026-01-30 13:30:06 +01:00
2026-03-03 18:13:00 +00:00
2025-10-23 15:38:49 -05:00
2026-02-27 18:06:54 -05:00
2026-03-04 12:47:39 +00:00
2026-02-19 09:02:19 +00:00
2026-02-26 02:40:45 +11:00
2026-02-27 17:46:37 +00:00
2026-02-24 17:04:42 +00:00
2025-12-14 03:00:03 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-08-22 16:32:35 +10:00
2026-02-27 17:46:37 +00:00
2026-01-08 15:24:11 +04:00
2026-02-24 23:46:43 -06:00
2026-01-08 15:24:11 +04:00
2026-02-27 14:26:48 +00:00
2025-12-15 11:26:41 -06:00
2025-11-17 13:24:12 +00:00
2026-02-25 13:14:32 +02:00
2026-03-03 16:34:33 +03:00
2025-09-26 11:56:34 +02:00
2026-02-24 15:27:03 +00:00
2026-02-24 15:27:03 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-10-27 17:14:16 -06:00
2026-02-27 16:50:56 +00:00
2026-03-04 14:08:12 +00:00
2026-03-03 20:39:19 +00:00
2026-01-08 15:24:11 +04:00
2026-03-03 16:34:33 +03:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-01-15 16:37:05 +00:00
2026-01-12 18:19:19 -08:00
2025-12-15 17:41:47 +00:00
2025-09-04 14:28:29 +10:00
2026-01-08 15:24:11 +04:00
2025-12-15 11:26:41 -06:00
2026-01-26 09:24:45 +00:00
2026-03-04 12:54:39 +02:00
2026-03-04 12:54:39 +02:00
2026-01-08 15:24:11 +04:00
2026-02-03 12:48:25 -06:00
2026-02-03 12:48:25 -06:00
2026-02-13 08:19:07 -06:00
2026-01-08 15:24:11 +04:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2026-02-23 12:18:44 +01:00
2025-10-22 15:18:42 -05:00
2026-02-03 17:52:07 +00:00
2026-02-02 09:03:18 -06:00
2026-02-03 17:52:07 +00:00
2026-02-19 09:02:19 +00:00
2025-08-21 16:03:34 -04:00
2026-02-03 17:52:07 +00:00
2026-03-03 10:19:00 -05:00
2026-02-03 17:52:07 +00:00
2026-01-12 18:19:19 -08:00
2025-09-26 11:43:32 +02:00
2025-09-26 11:43:32 +02:00
2026-01-08 15:24:11 +04:00
2026-02-13 19:44:50 -05:00
2026-02-13 19:44:50 -05:00
2026-03-03 16:50:18 +00:00
2026-03-03 16:50:18 +00:00
2026-02-20 09:01:00 -06:00
2026-02-20 09:01:00 -06:00
2026-02-13 08:19:07 -06:00
2026-02-03 17:52:07 +00:00
2026-03-03 09:49:04 +00:00
2026-03-03 09:49:04 +00:00
2026-01-12 18:19:19 -08:00
2026-01-19 12:36:33 +00:00
2026-02-25 08:45:00 -07:00
2026-03-02 22:52:39 -05:00
2025-12-22 10:21:39 +04:00
2026-02-18 09:44:06 +01:00
2026-02-18 09:44:06 +01:00
2025-09-26 11:56:34 +02:00
2026-02-03 09:45:23 +00:00
2026-02-23 22:46:17 -06:00
2025-12-15 11:26:41 -06:00
2026-01-08 15:24:11 +04:00
2026-03-03 02:04:55 +00:00
2026-02-27 16:50:56 +00:00
2026-01-08 15:24:11 +04:00