feat: add auto submit for recipes that have been accepted (#6325)

Signed-off-by: Abhijay007 <Abhijay007j@gmail.com>
This commit is contained in:
Abhijay Jain
2026-02-24 23:37:13 +05:30
committed by GitHub
parent c8b70b4bac
commit a6e9ba6f56
3 changed files with 19 additions and 7 deletions
+2 -1
View File
@@ -105,6 +105,8 @@ export default function BaseChat({
onStreamFinish,
});
const recipe = session?.recipe;
useAutoSubmit({
sessionId,
session,
@@ -169,7 +171,6 @@ export default function BaseChat({
session,
});
const recipe = session?.recipe;
const { setProviderAndModel } = useModelAndProvider();
useEffect(() => {
@@ -156,6 +156,7 @@ export default function RecipesView() {
setView('pair', {
disableAnimation: true,
resumeSessionId: session.id,
initialMessage: recipe.prompt ? { msg: recipe.prompt, images: [] } : undefined,
});
} catch (error) {
console.error('Failed to load recipe:', error);
+16 -6
View File
@@ -50,6 +50,11 @@ export function useAutoSubmit({
);
}, [sessionId]);
const hasUnfilledParameters = useCallback((session: Session) => {
const recipe = session.recipe;
return recipe?.parameters && recipe.parameters.length > 0 && !session.user_recipe_values;
}, []);
// Auto-submit logic
useEffect(() => {
const currentSessionId = searchParams.get('resumeSessionId');
@@ -60,7 +65,6 @@ export function useAutoSubmit({
return;
}
// Don't submit if already streaming or loading
if (chatState !== ChatState.Idle) {
return;
}
@@ -68,9 +72,11 @@ export function useAutoSubmit({
// Scenario 1: New session with initial message from Hub
// Hub always creates new sessions, so message_count will be 0
if (initialMessage && session.message_count === 0 && messages.length === 0) {
hasAutoSubmittedRef.current = true;
handleSubmit(initialMessage);
clearInitialMessage();
if (!hasUnfilledParameters(session)) {
hasAutoSubmittedRef.current = true;
handleSubmit(initialMessage);
clearInitialMessage();
}
return;
}
@@ -87,8 +93,11 @@ export function useAutoSubmit({
// Scenario 3: Resume with shouldStartAgent (continue existing conversation)
if (shouldStartAgent) {
hasAutoSubmittedRef.current = true;
handleSubmit({ msg: '', images: [] });
if (!hasUnfilledParameters(session)) {
hasAutoSubmittedRef.current = true;
handleSubmit({ msg: '', images: [] });
}
return;
}
}, [
session,
@@ -99,6 +108,7 @@ export function useAutoSubmit({
messages.length,
chatState,
clearInitialMessage,
hasUnfilledParameters,
]);
return {