From f1881540d18facb8f967e1ab5ca1a4f9b50bb986 Mon Sep 17 00:00:00 2001 From: wgnrai Date: Thu, 23 Jul 2026 14:11:11 -0400 Subject: [PATCH] fix: forward project_name to get_agents_dict for project agent discovery MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get_available_agents_dict(project_name) receives the project name but drops it before calling get_agents_dict(), so the project agent scan block (if project_name:) never executes. All project-level agent profiles under .a0proj/agents/ are invisible to call_subordinate. Same bug in _normalize_subagents() in projects.py — project_name not forwarded to get_agents_dict(), and the function signature doesn't accept it. Fix: forward project_name in both call sites. Thread project_name through _normalize_subagents as a new parameter from both callers (load_project_subagents and save_project_subagents). --- helpers/projects.py | 9 +++++---- helpers/subagents.py | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/helpers/projects.py b/helpers/projects.py index 41bbf9d44d..c373268027 100644 --- a/helpers/projects.py +++ b/helpers/projects.py @@ -648,7 +648,7 @@ def load_project_subagents(name: str) -> dict[str, SubAgentSettings]: abs_path = files.get_abs_path(get_project_meta(name), "agents.json") data = dirty_json.parse(files.read_file(abs_path)) if isinstance(data, dict): - return _normalize_subagents(data) # type: ignore[arg-type,return-value] + return _normalize_subagents(data, name) # type: ignore[arg-type,return-value] return {} except Exception: return {} @@ -656,17 +656,18 @@ def load_project_subagents(name: str) -> dict[str, SubAgentSettings]: def save_project_subagents(name: str, subagents_data: dict[str, SubAgentSettings]): abs_path = files.get_abs_path(get_project_meta(name), "agents.json") - normalized = _normalize_subagents(subagents_data) + normalized = _normalize_subagents(subagents_data, name) content = dirty_json.stringify(normalized) files.write_file(abs_path, content) def _normalize_subagents( - subagents_data: dict[str, SubAgentSettings] + subagents_data: dict[str, SubAgentSettings], + project_name: str, ) -> dict[str, SubAgentSettings]: from helpers import subagents - agents_dict = subagents.get_agents_dict() + agents_dict = subagents.get_agents_dict(project_name) normalized: dict[str, SubAgentSettings] = {} for key, value in subagents_data.items(): diff --git a/helpers/subagents.py b/helpers/subagents.py index df9d5ae209..98e869fcfa 100644 --- a/helpers/subagents.py +++ b/helpers/subagents.py @@ -319,7 +319,7 @@ def get_available_agents_dict( project_name: str | None, ) -> dict[str, SubAgentListItem]: # all available agents - all_agents = get_agents_dict() + all_agents = get_agents_dict(project_name) # filter by project settings from helpers import projects