Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions ui/desktop/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -763,6 +763,34 @@ export default function App() {
// Check for session resume first - this takes priority over other navigation
if (resumeSessionId) {
console.log('Session resume detected, letting useChat hook handle navigation');

// Even when resuming a session, we need to initialize the system
const initializeForSessionResume = async () => {
try {
await initConfig();
await readAllConfig({ throwOnError: true });

const config = window.electron.getConfig();
const provider = (await read('GOOSE_PROVIDER', false)) ?? config.GOOSE_DEFAULT_PROVIDER;
const model = (await read('GOOSE_MODEL', false)) ?? config.GOOSE_DEFAULT_MODEL;

if (provider && model) {
await initializeSystem(provider as string, model as string, {
getExtensions,
addExtension,
});
} else {
throw new Error('No provider/model configured for session resume');
}
} catch (error) {
console.error('Failed to initialize system for session resume:', error);
setFatalError(
`Failed to initialize system for session resume: ${error instanceof Error ? error.message : 'Unknown error'}`
);
}
};

initializeForSessionResume();
return;
}

Expand Down
8 changes: 8 additions & 0 deletions ui/desktop/src/agent/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,13 @@ export async function initializeAgent({ model, provider }: initializeAgentProps)
model: model,
}),
});

if (!response.ok) {
const responseText = await response.text();
throw new Error(
`Failed to initialize agent: ${response.status} ${response.statusText} - ${responseText}`
);
}

return response;
}
16 changes: 0 additions & 16 deletions ui/desktop/src/components/schedule/ScheduleDetailView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -449,21 +449,6 @@ const ScheduleDetailView: React.FC<ScheduleDetailViewProps> = ({ scheduleId, onN
loadAndShowSessionDetails(sessionIdFromCard);
};

const handleResumeViewedSession = () => {
if (selectedSessionDetails) {
const { session_id, metadata } = selectedSessionDetails;
if (metadata.working_dir) {
console.log(
`Resuming session ID ${session_id} in new chat window. Dir: ${metadata.working_dir}`
);
window.electron.createChatWindow(undefined, metadata.working_dir, undefined, session_id);
} else {
console.error('Cannot resume session: working directory is missing.');
toastError({ title: 'Cannot Resume Session', msg: 'Working directory is missing.' });
}
}
};

if (selectedSessionDetails) {
return (
<SessionHistoryView
Expand All @@ -474,7 +459,6 @@ const ScheduleDetailView: React.FC<ScheduleDetailViewProps> = ({ scheduleId, onN
setSelectedSessionDetails(null);
setSessionDetailsError(null);
}}
onResume={handleResumeViewedSession}
onRetry={() => loadAndShowSessionDetails(selectedSessionDetails.session_id)}
showActionButtons={true}
/>
Expand Down
9 changes: 1 addition & 8 deletions ui/desktop/src/components/sessions/SessionHistoryView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import {
Target,
LoaderCircle,
AlertCircle,
ExternalLink,
} from 'lucide-react';
import { type SessionDetails } from '../../sessions';
import { Button } from '../ui/button';
Expand Down Expand Up @@ -53,7 +52,6 @@ interface SessionHistoryViewProps {
isLoading: boolean;
error: string | null;
onBack: () => void;
onResume: () => void;
onRetry: () => void;
showActionButtons?: boolean;
}
Expand Down Expand Up @@ -148,7 +146,6 @@ const SessionHistoryView: React.FC<SessionHistoryViewProps> = ({
isLoading,
error,
onBack,
onResume,
onRetry,
showActionButtons = true,
}) => {
Expand Down Expand Up @@ -271,14 +268,10 @@ const SessionHistoryView: React.FC<SessionHistoryViewProps> = ({
</>
)}
</Button>
<Button onClick={onResume} size="sm" variant="outline">
<Button onClick={handleLaunchInNewWindow} size="sm" variant="outline">
<Sparkles className="w-4 h-4" />
Resume
</Button>
<Button onClick={handleLaunchInNewWindow} size="sm" variant="outline">
<ExternalLink className="w-4 h-4" />
New Window
</Button>
</>
) : null;

Expand Down
12 changes: 0 additions & 12 deletions ui/desktop/src/components/sessions/SessionsView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,6 @@ const SessionsView: React.FC<SessionsViewProps> = ({ setView }) => {
setError(null);
};

const handleResumeSession = () => {
if (selectedSession) {
console.log('Resuming session in current window:', selectedSession.session_id);

// Navigate to pair view with the session data
setView('pair', {
resumedSession: selectedSession,
});
}
};

const handleRetryLoadSession = () => {
if (selectedSession) {
loadSessionDetails(selectedSession.session_id);
Expand All @@ -99,7 +88,6 @@ const SessionsView: React.FC<SessionsViewProps> = ({ setView }) => {
isLoading={isLoadingSession}
error={error}
onBack={handleBackToSessions}
onResume={handleResumeSession}
onRetry={handleRetryLoadSession}
/>
) : (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,25 @@ export default function ProviderSettings({ onClose, isOnboarding }: ProviderSett
getExtensions,
addExtension,
});

toastService.configure({ silent: false });
toastService.success({
title: 'Success!',
msg: `Started goose with ${model} by ${provider.metadata.display_name}. You can change the model via the lower right corner.`,
});

onClose();
} catch (error) {
console.error(`Failed to initialize with provider ${provider_name}:`, error);

// Show error toast
toastService.configure({ silent: false });
toastService.error({
title: 'Initialization Failed',
msg: `Failed to initialize with ${provider.metadata.display_name}: ${error instanceof Error ? error.message : String(error)}`,
traceback: error instanceof Error ? error.stack || '' : '',
});
}
toastService.configure({ silent: false });
toastService.success({
title: 'Success!',
msg: `Started goose with ${model} by ${provider.metadata.display_name}. You can change the model via the lower right corner.`,
});
onClose();
},
[onClose, upsert, getExtensions, addExtension]
);
Expand Down
8 changes: 0 additions & 8 deletions ui/desktop/src/hooks/useMessageStream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -449,12 +449,6 @@ export function useMessageStream({
// Filter out messages where sendToLLM is explicitly false
const filteredMessages = requestMessages.filter((message) => message.sendToLLM !== false);

// Log request details for debugging
console.log('Request details:', {
messages: filteredMessages,
body: extraMetadataRef.current.body,
});

// Send request to the server
const response = await fetch(api, {
method: 'POST',
Expand Down Expand Up @@ -529,8 +523,6 @@ export function useMessageStream({
// If a string is passed, convert it to a Message object
const messageToAppend = typeof message === 'string' ? createUserMessage(message) : message;

console.log('Appending message:', JSON.stringify(messageToAppend, null, 2));

const currentMessages = [...messagesRef.current, messageToAppend];
mutate(currentMessages, false);
await sendRequest(currentMessages);
Expand Down
4 changes: 1 addition & 3 deletions ui/desktop/src/utils/providerUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ export const initializeSystem = async (
: desktopPrompt,
}),
});

if (!response.ok) {
console.warn(`Failed to extend system prompt: ${response.statusText}`);
} else {
Expand All @@ -229,8 +230,6 @@ export const initializeSystem = async (
});
if (!sessionConfigResponse.ok) {
console.warn(`Failed to configure session: ${sessionConfigResponse.statusText}`);
} else {
console.log('Configured session with response schema');
}
}

Expand All @@ -244,7 +243,6 @@ export const initializeSystem = async (
const configVersion = localStorage.getItem('configVersion');
const shouldMigrateExtensions = !configVersion || parseInt(configVersion, 10) < 3;

console.log(`shouldMigrateExtensions is ${shouldMigrateExtensions}`);
if (shouldMigrateExtensions) {
await migrateExtensionsToSettingsV3();
}
Expand Down
Loading