picoclaw/pkg
Paolo Anzani eb86e10e5c
fix(tools): propagate tool registry to subagents (#1711)
* fix(tools): propagate tool registry to subagents via Clone

SubagentManager was created with an empty ToolRegistry and SetTools()
was never called, causing all subagent tool invocations to fail with
"tool not found". This was a regression from the multi-agent refactor.

Fix: clone the parent agent's tool registry into the subagent manager
after creation but before spawn/spawn_status registration — giving
subagents access to file, exec, web, and other tools while preventing
recursive subagent spawning.

- Add ToolRegistry.Clone() for independent shallow copies
- Call subagentManager.SetTools(agent.Tools.Clone()) in registerSharedTools
- Add tests for Clone isolation, empty clone, and hidden tool state

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(tools): fix cron_test build error and add TTL clone test

- Fix cron_test.go:229 — replace non-existent SubscribeOutbound(ctx)
  with select on OutboundChan(), matching the MessageBus channel API
- Add TestToolRegistry_Clone_PreservesTTLValue per reviewer feedback
- Add version reset note to Clone() doc comment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 00:17:16 +08:00
..
agent fix(tools): propagate tool registry to subagents (#1711) 2026-03-19 00:17:16 +08:00
auth refactor: centralize environment variable key constants (#1730) 2026-03-18 18:03:24 +08:00
bus fix: Fixed the bug where the bus was closed and consumers had unfinished messages. (#1179) 2026-03-18 00:12:12 +08:00
channels feat: telegram use parse mode ModeMarkdownV2 instead of ModeHTML (#1018) 2026-03-18 21:29:21 +08:00
commands feat: add /clear command to clear chat history (#1266) 2026-03-09 16:39:33 +08:00
config feat: telegram use parse mode ModeMarkdownV2 instead of ModeHTML (#1018) 2026-03-18 21:29:21 +08:00
constants refactor: replace bool map with set-style map for internal channels (#472) 2026-02-19 11:48:17 +01:00
credential refactor: centralize environment variable key constants (#1730) 2026-03-18 18:03:24 +08:00
cron feat(cron): refactor scheduler to event-driven model and add unit tests (#1313) 2026-03-18 00:02:51 +08:00
devices refactor: cleanup dead code and turn on dead code detection in CI (#515) 2026-02-24 21:52:25 +08:00
fileutil refactor(pkg): move atomic file write to dedicated fileutil package 2026-02-24 23:57:13 +08:00
gateway feat: add web gateway hot reload and polling state sync (#1684) 2026-03-17 18:46:00 +08:00
health refactor gateway/helpers and add server.pid to health (#1646) 2026-03-17 09:35:52 +08:00
heartbeat enable dupl check 2026-03-01 18:17:32 +11:00
identity fix(identity): prevent allowlist ID entries from matching usernames (#1406) 2026-03-13 15:41:18 +08:00
logger feat(web): implement macOS app feature and file logger (#1723) 2026-03-18 14:43:58 +08:00
mcp Feat/add tool enable or disable configuration (#1071) 2026-03-05 14:53:26 +08:00
media refactor(media): centralize temp media dir path 2026-03-14 12:01:47 +08:00
memory fix: skip meta json files during session migration (#1340) 2026-03-11 14:29:42 +08:00
migrate feat: telegram use parse mode ModeMarkdownV2 instead of ModeHTML (#1018) 2026-03-18 21:29:21 +08:00
providers fix(anthropic): skip tool calls with empty names to prevent API errors (#1739) 2026-03-18 21:55:01 +08:00
routing fix(routing): address review feedback on CJK estimation and observability 2026-03-06 13:10:20 +08:00
session fix(security): harden unauthenticated tool-exec paths (#1360) 2026-03-11 19:22:20 +08:00
skills enhance skill installer (#1252) 2026-03-13 14:04:02 +08:00
state fix(security): harden unauthenticated tool-exec paths (#1360) 2026-03-11 19:22:20 +08:00
tools fix(tools): propagate tool registry to subagents (#1711) 2026-03-19 00:17:16 +08:00
utils Merge branch 'main' into feat/markdown-output-format-web-fetch 2026-03-17 16:37:22 +01:00
voice Fix lint 2026-03-04 10:21:59 +00:00