feat: simplify navigation, make reload work (#4498)

This commit is contained in:
Jack Amadeo
2025-09-05 20:36:38 -04:00
committed by GitHub
parent 5410df3f1e
commit 7fb746bbcb
7 changed files with 235 additions and 306 deletions
+6 -2
View File
@@ -49,12 +49,16 @@ export function useAgent(): UseAgentReturn {
const [agentState, setAgentState] = useState<AgentState>(AgentState.UNINITIALIZED);
const [sessionId, setSessionId] = useState<string | null>(null);
const initPromiseRef = useRef<Promise<ChatType> | null>(null);
const [recipeFromAppConfig, setRecipeFromAppConfig] = useState<Recipe | null>(
(window.appConfig.get('recipe') as Recipe) || null
);
const { getExtensions, addExtension, read } = useConfig();
const resetChat = useCallback(() => {
setSessionId(null);
setAgentState(AgentState.UNINITIALIZED);
setRecipeFromAppConfig(null);
}, []);
const agentIsInitialized = agentState === AgentState.INITIALIZED;
@@ -112,7 +116,7 @@ export function useAgent(): UseAgentReturn {
: await startAgent({
body: {
working_dir: window.appConfig.get('GOOSE_WORKING_DIR') as string,
recipe: initContext.recipeConfig,
recipe: recipeFromAppConfig ?? initContext.recipeConfig,
},
throwOnError: true,
});
@@ -179,7 +183,7 @@ export function useAgent(): UseAgentReturn {
initPromiseRef.current = initPromise;
return initPromise;
},
[getExtensions, addExtension, read, agentIsInitialized, sessionId]
[agentIsInitialized, sessionId, read, recipeFromAppConfig, getExtensions, addExtension]
);
return {
+1 -1
View File
@@ -29,7 +29,7 @@ export const useRecipeManager = (chat: ChatType, recipeConfig?: Recipe | null) =
const finalRecipeConfig = chat.recipeConfig;
useEffect(() => {
if (!chatContext?.setRecipeConfig) return;
if (!chatContext) return;
// If we have a recipe from navigation state, persist it
if (recipeConfig && !chatContext.chat.recipeConfig) {