diff --git a/backend/services/agent_service.py b/backend/services/agent_service.py index 462886acd..164b2965e 100644 --- a/backend/services/agent_service.py +++ b/backend/services/agent_service.py @@ -1140,7 +1140,8 @@ async def import_agent_impl( for sub_agent_id in managed_agents: insert_related_agent(parent_agent_id=mapping_agent_id[need_import_agent_id], child_agent_id=mapping_agent_id[sub_agent_id], - tenant_id=tenant_id) + tenant_id=tenant_id, + user_id=user_id) else: # Current agent still has sub-agents that haven't been imported agent_stack.append(need_import_agent_id) diff --git a/frontend/app/[locale]/agents/components/agentManage/AgentList.tsx b/frontend/app/[locale]/agents/components/agentManage/AgentList.tsx index 3c7009e34..961363247 100644 --- a/frontend/app/[locale]/agents/components/agentManage/AgentList.tsx +++ b/frontend/app/[locale]/agents/components/agentManage/AgentList.tsx @@ -97,6 +97,12 @@ export default function AgentList({ return; } + // First check if there are unsaved changes BEFORE switching to new agent + const canSwitch = await checkUnsavedChanges.saveWithModal(); + if (!canSwitch) { + return; + } + // Load agent detail and set as current try { const result = await searchAgentInfo(Number(agent.id)); @@ -115,12 +121,6 @@ export default function AgentList({ log.error("Failed to load agent detail:", error); message.error(t("agentConfig.agents.detailsLoadFailed")); } - - // Check if can switch (has unsaved changes) - const canSwitch = await checkUnsavedChanges.saveWithModal(); - if (!canSwitch) { - return; - } }; // Handle export agent diff --git a/frontend/app/[locale]/space/components/AgentCard.tsx b/frontend/app/[locale]/space/components/AgentCard.tsx index 9b9cff7a0..5152b0b41 100644 --- a/frontend/app/[locale]/space/components/AgentCard.tsx +++ b/frontend/app/[locale]/space/components/AgentCard.tsx @@ -239,7 +239,7 @@ export default function AgentCard({ agent, onRefresh }: AgentCardProps) {
)}
-

+

{agent.description || t("space.noDescription", "No description")}

diff --git a/frontend/app/[locale]/space/page.tsx b/frontend/app/[locale]/space/page.tsx index 9bc72eb90..58fdb06a7 100644 --- a/frontend/app/[locale]/space/page.tsx +++ b/frontend/app/[locale]/space/page.tsx @@ -139,14 +139,13 @@ export default function SpacePage() { initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ duration: 0.5, delay: 0.2 }} - className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 pb-8" + className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-4 gap-4 pb-8" > {/* Create/Import agent card - only for admin */}
{/* Create new agent - top half */} @@ -187,7 +186,6 @@ export default function SpacePage() { initial={{ opacity: 0, scale: 0.9 }} animate={{ opacity: 1, scale: 1 }} transition={{ duration: 0.3, delay: 0.3 + (index + 1) * 0.05 }} - className="aspect-[4/3]" > diff --git a/test/backend/services/test_agent_service.py b/test/backend/services/test_agent_service.py index 5ac00d027..790def658 100644 --- a/test/backend/services/test_agent_service.py +++ b/test/backend/services/test_agent_service.py @@ -3370,6 +3370,7 @@ async def test_import_agent_impl_imports_all_agents_and_links_relations( parent_agent_id=202, child_agent_id=101, tenant_id="test_tenant", + user_id="test_user", ) @@ -6535,8 +6536,8 @@ async def fake_import_agent_by_agent_id(import_agent_info, tenant_id, user_id, s relationships = [] - def fake_insert_related_agent(parent_agent_id, child_agent_id, tenant_id): - relationships.append((parent_agent_id, child_agent_id, tenant_id)) + def fake_insert_related_agent(parent_agent_id, child_agent_id, tenant_id, user_id): + relationships.append((parent_agent_id, child_agent_id, tenant_id, user_id)) async def fake_update_tool_list(tenant_id, user_id): return None @@ -6563,7 +6564,7 @@ async def fake_update_tool_list(tenant_id, user_id): # Child (2) must be imported before parent (1) assert imported_ids == [2, 1] # Relationship should be created between new IDs 101 (child) and 100 (parent) - assert relationships == [(100 + 1, 100 + 2, "tenant1")] + assert relationships == [(100 + 1, 100 + 2, "tenant1", "user1")] # =====================================================================