diff --git a/src/backend/v3/api/router.py b/src/backend/v3/api/router.py index a4c0eb6c..746e9c27 100644 --- a/src/backend/v3/api/router.py +++ b/src/backend/v3/api/router.py @@ -274,6 +274,12 @@ async def process_request( team_id = None if user_current_team: team_id = user_current_team.team_id + team = await memory_store.get_team_by_id(team_id=team_id) + if not team: + raise HTTPException( + status_code=404, + detail=f"Team configuration '{team_id}' not found or access denied", + ) plan = Plan( id=plan_id, plan_id=plan_id, diff --git a/src/frontend/src/components/content/PlanPanelLeft.tsx b/src/frontend/src/components/content/PlanPanelLeft.tsx index e7447b7e..b6febf79 100644 --- a/src/frontend/src/components/content/PlanPanelLeft.tsx +++ b/src/frontend/src/components/content/PlanPanelLeft.tsx @@ -2,9 +2,6 @@ import PanelLeft from "@/coral/components/Panels/PanelLeft"; import PanelLeftToolbar from "@/coral/components/Panels/PanelLeftToolbar"; import { Body1Strong, - Button, - Subtitle1, - Subtitle2, Toast, ToastBody, ToastTitle, @@ -12,7 +9,6 @@ import { useToastController, } from "@fluentui/react-components"; import { - Add20Regular, ChatAdd20Regular, ErrorCircle20Regular, } from "@fluentui/react-icons"; @@ -22,7 +18,6 @@ import { useNavigate, useParams } from "react-router-dom"; import { Plan, PlanPanelLefProps, Task, UserInfo } from "@/models"; import { apiService } from "@/api"; import { TaskService } from "@/services"; -import MsftColor from "@/coral/imports/MsftColor"; import ContosoLogo from "../../coral/imports/ContosoLogo"; import "../../styles/PlanPanelLeft.css"; import PanelFooter from "@/coral/components/Panels/PanelFooter"; @@ -60,9 +55,10 @@ const PlanPanelLeft: React.FC = ({ const loadPlansData = useCallback(async (forceRefresh = false) => { try { + console.log("Loading plans, forceRefresh:", forceRefresh); setPlansLoading(true); setPlansError(null); - const plansData = await apiService.getPlans(undefined, !forceRefresh); + const plansData = await apiService.getPlans(undefined, forceRefresh); setPlans(plansData); } catch (error) { console.log("Failed to load plans:", error); @@ -74,12 +70,7 @@ const PlanPanelLeft: React.FC = ({ } }, []); - useEffect(() => { - if (reloadTasks) { - loadPlansData(); - restReload?.(); - } - }, [reloadTasks, loadPlansData, restReload]); + // Fetch plans @@ -131,6 +122,7 @@ const PlanPanelLeft: React.FC = ({ const handleTeamSelect = useCallback( (team: TeamConfig | null) => { // Use parent's team select handler if provided, otherwise use local state + loadPlansData(); if (onTeamSelect) { onTeamSelect(team); } else { @@ -160,7 +152,7 @@ const PlanPanelLeft: React.FC = ({ } } }, - [onTeamSelect, dispatchToast] + [onTeamSelect, dispatchToast, loadPlansData] ); return ( diff --git a/src/frontend/src/models/planPanelLeft.tsx b/src/frontend/src/models/planPanelLeft.tsx index 738e9f65..4bae471e 100644 --- a/src/frontend/src/models/planPanelLeft.tsx +++ b/src/frontend/src/models/planPanelLeft.tsx @@ -1,7 +1,7 @@ import { TeamConfig } from './Team'; export interface PlanPanelLefProps { - reloadTasks?: boolean; + reloadTasks: boolean; onNewTaskButton: () => void; restReload?: () => void; onTeamSelect?: (team: TeamConfig | null) => void; diff --git a/src/frontend/src/pages/HomePage.tsx b/src/frontend/src/pages/HomePage.tsx index 1fa84a13..3484c3d7 100644 --- a/src/frontend/src/pages/HomePage.tsx +++ b/src/frontend/src/pages/HomePage.tsx @@ -98,15 +98,17 @@ const HomePage: React.FC = () => { */ const handleTeamSelect = useCallback(async (team: TeamConfig | null) => { setSelectedTeam(team); + setReloadLeftList(true); + console.log('handleTeamSelect called with team:', true); if (team) { try { // TODO REFRACTOR THIS CODE setIsLoadingTeam(true); const initResponse = await TeamService.initializeTeam(true); - setReloadLeftList(true) + if (initResponse.data?.status === 'Request started successfully' && initResponse.data?.team_id) { - console.log('Team initialization completed:', initResponse.data?.team_id); + console.log('handleTeamSelect:', initResponse.data?.team_id); // Now fetch the actual team details using the team_id const teams = await TeamService.getUserTeams(); @@ -115,9 +117,9 @@ const HomePage: React.FC = () => { if (initializedTeam) { setSelectedTeam(initializedTeam); TeamService.storageTeam(initializedTeam); - - console.log('Team loaded successfully:', initializedTeam.name); - console.log('Team agents:', initializedTeam.agents?.length || 0); + setReloadLeftList(true) + console.log('Team loaded successfully handleTeamSelect:', initializedTeam.name); + console.log('Team agents handleTeamSelect:', initializedTeam.agents?.length || 0); showToast( `${initializedTeam.name} team initialized successfully with ${initializedTeam.agents?.length || 0} agents`,