b121a02416
_expand_parent_toolsets built the parent's tool surface from each toolset's declared `tools` only, so a composite parent's `includes` were invisible: a child of a `debugging` parent (terminal/process_manage + includes web/file) asking for `file` or `web` was refused, and `safe` / `hermes-gateway` parents could grant nothing but their own name. Same root cause as the `_strip_blocked_tools` fix in the previous commit (#111700, "Related" section). Both sides of the subset check now use the resolved static surface (`resolve_toolset(name, include_registry=False)`), so a child may request any toolset whose real tools the parent genuinely holds, and still never gains a tool the parent lacks. Candidates that resolve to nothing are not expanded into (they cannot be a meaningful subset). Co-authored-by: DresvyanskiyDenis <dresvyanskiydenis@gmail.com>