Stream dictation via OpenAI Realtime and simplify retry UI

This commit is contained in:
Mohamed Boudra
2026-01-23 18:55:14 +07:00
parent 912a694221
commit 0ff0293a97
22 changed files with 1885 additions and 582 deletions
+10 -7
View File
@@ -251,6 +251,10 @@ export function useAgentFormState(
model: "",
workingDir: "",
}));
const formStateRef = useRef(formState);
useEffect(() => {
formStateRef.current = formState;
}, [formState]);
// Track if we've done initial resolution (to avoid flickering)
const hasResolvedRef = useRef(false);
@@ -299,16 +303,16 @@ export function useAgentFormState(
preferences,
availableModels,
userModified,
formState
formStateRef.current
);
// Only update if something changed
if (
resolved.serverId !== formState.serverId ||
resolved.provider !== formState.provider ||
resolved.modeId !== formState.modeId ||
resolved.model !== formState.model ||
resolved.workingDir !== formState.workingDir
resolved.serverId !== formStateRef.current.serverId ||
resolved.provider !== formStateRef.current.provider ||
resolved.modeId !== formStateRef.current.modeId ||
resolved.model !== formStateRef.current.model ||
resolved.workingDir !== formStateRef.current.workingDir
) {
setFormState(resolved);
}
@@ -322,7 +326,6 @@ export function useAgentFormState(
preferences,
availableModels,
userModified,
formState,
]);
// Persist inferred serverId so reloads keep the selection (e.g. URL serverId or first-time load).