diff --git a/skills b/skills index 1d26ee894..2275afb46 160000 --- a/skills +++ b/skills @@ -1 +1 @@ -Subproject commit 1d26ee89479769962f8284d4f3f53c2c725271fe +Subproject commit 2275afb4668ef99d5e6ac4246d4a1d150605444f diff --git a/src/components/skills/SkillSetupWizard.tsx b/src/components/skills/SkillSetupWizard.tsx index 7b059153c..1f75a9a62 100644 --- a/src/components/skills/SkillSetupWizard.tsx +++ b/src/components/skills/SkillSetupWizard.tsx @@ -43,21 +43,22 @@ export default function SkillSetupWizard({ }: SkillSetupWizardProps) { const [state, setState] = useState({ phase: "loading" }); - // Watch skill state for OAuth completion (skill pushes connected: true) + // Watch skill state for OAuth completion (skill pushes connection_status: "connected") const skillState = useAppSelector( (s) => s.skills.skillStates[skillId], ); + const isConnected = skillState?.connection_status === "connected"; // When skill state changes to connected during OAuth waiting, mark complete useEffect(() => { if ( (state.phase === "oauth" || state.phase === "oauth_waiting") && - skillState?.connected === true + isConnected ) { store.dispatch(setSkillSetupComplete({ skillId, complete: true })); setState({ phase: "complete", message: "Successfully connected!" }); } - }, [skillState?.connected, state.phase, skillId]); + }, [isConnected, state.phase, skillId]); // Start the skill (if not running) then start the setup flow on mount useEffect(() => {