picoclaw/pkg/tools
Achton Smidt Winther ec6da7a530
fix: reject empty task in spawn tool (#740)
The spawn tool accepts empty strings as valid task arguments, which
causes a subagent to run with no meaningful work. The subagent's
completion message is then routed back to the originating channel
(e.g. Signal, Discord), where the main agent processes it and may
hallucinate an unrelated response that gets sent to users.

Validate that the task parameter is non-empty after trimming whitespace.

Related: #545

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 07:39:49 +11:00
..
base.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
cron.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
edit.go fix(security): workspace sandbox avoid time-of-check/time-of-use (TOCTOU) races (#464) 2026-02-23 20:09:53 +11:00
edit_test.go fix(security): workspace sandbox avoid time-of-check/time-of-use (TOCTOU) races (#464) 2026-02-23 20:09:53 +11:00
filesystem.go fix(security): workspace sandbox avoid time-of-check/time-of-use (TOCTOU) races (#464) 2026-02-23 20:09:53 +11:00
filesystem_test.go fix(security): workspace sandbox avoid time-of-check/time-of-use (TOCTOU) races (#464) 2026-02-23 20:09:53 +11:00
i2c.go refactor: cleanup dead code and turn on dead code detection in CI (#515) 2026-02-24 21:52:25 +08:00
i2c_linux.go feat(linter): Fix govet linter 2026-02-20 22:35:16 +02:00
i2c_other.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
message.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
message_test.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
registry.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
registry_test.go feat: integrate Tavily search (#340) 2026-02-23 00:30:14 +08:00
result.go feat: US-002 - Modify Tool interface to return *ToolResult 2026-02-12 19:28:56 +08:00
result_test.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
shell.go fix(security): ensure custom deny patterns extend defaults instead of replacing them (#479) 2026-02-24 09:02:44 +11:00
shell_process_unix.go fix(exec): terminate process tree on timeout 2026-02-18 02:01:29 +08:00
shell_process_windows.go fix(exec): terminate process tree on timeout 2026-02-18 02:01:29 +08:00
shell_test.go fix: golangci-lint run --fix 2026-02-21 16:20:15 +08:00
shell_timeout_unix_test.go feat(fmt): Fix formatting 2026-02-20 20:03:11 +02:00
skills_install.go feat(fmt): Fix formatting 2026-02-20 20:03:11 +02:00
skills_install_test.go feat(fmt): Fix formatting 2026-02-20 20:03:11 +02:00
skills_search.go feat(fmt): Fix formatting 2026-02-20 20:03:11 +02:00
skills_search_test.go feat(fmt): Fix formatting 2026-02-20 20:03:11 +02:00
spawn.go fix: reject empty task in spawn tool (#740) 2026-02-25 07:39:49 +11:00
spawn_test.go fix: reject empty task in spawn tool (#740) 2026-02-25 07:39:49 +11:00
spi.go refactor: cleanup dead code and turn on dead code detection in CI (#515) 2026-02-24 21:52:25 +08:00
spi_linux.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
spi_other.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
subagent.go Merge branch 'main' into fix-formatting 2026-02-19 22:04:48 +02:00
subagent_tool_test.go feat(fmt): Fix formatting 2026-02-19 22:05:15 +02:00
toolloop.go Merge branch 'main' into fix-formatting 2026-02-20 20:02:53 +02:00
types.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
web.go feat: improve web proxy handling and coverage 2026-02-24 17:17:14 +08:00
web_test.go feat: improve web proxy handling and coverage 2026-02-24 17:17:14 +08:00