mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-20 16:57:46 +00:00
feat: add enableWelcomeBack setting to control welcome back dialog
- Add enableWelcomeBack boolean setting to settings schema with default true - Update useWelcomeBack hook to respect the enableWelcomeBack setting - Pass settings to useWelcomeBack hook in App component - Update settings schema test to include the new enableWelcomeBack setting - Allow users to disable the welcome back dialog through settings
This commit is contained in:
@@ -52,6 +52,7 @@ describe('SettingsSchema', () => {
|
||||
'model',
|
||||
'hasSeenIdeIntegrationNudge',
|
||||
'folderTrustFeature',
|
||||
'enableWelcomeBack',
|
||||
];
|
||||
|
||||
expectedSettings.forEach((setting) => {
|
||||
|
||||
@@ -604,6 +604,16 @@ export const SETTINGS_SCHEMA = {
|
||||
description: 'Skip the next speaker check.',
|
||||
showInDialog: true,
|
||||
},
|
||||
enableWelcomeBack: {
|
||||
type: 'boolean',
|
||||
label: 'Enable Welcome Back',
|
||||
category: 'UI',
|
||||
requiresRestart: false,
|
||||
default: true,
|
||||
description:
|
||||
'Show welcome back dialog when returning to a project with conversation history.',
|
||||
showInDialog: true,
|
||||
},
|
||||
} as const;
|
||||
|
||||
type InferSettings<T extends SettingsSchema> = {
|
||||
|
||||
@@ -624,7 +624,7 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => {
|
||||
welcomeBackChoice,
|
||||
handleWelcomeBackSelection,
|
||||
handleWelcomeBackClose,
|
||||
} = useWelcomeBack(config, submitQuery, buffer);
|
||||
} = useWelcomeBack(config, submitQuery, buffer, settings.merged);
|
||||
|
||||
// Message queue for handling input during streaming
|
||||
const { messageQueue, addMessage, clearQueue, getQueuedMessagesText } =
|
||||
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
type ProjectSummaryInfo,
|
||||
type Config,
|
||||
} from '@qwen-code/qwen-code-core';
|
||||
import { type Settings } from '../../config/settingsSchema.js';
|
||||
|
||||
export interface WelcomeBackState {
|
||||
welcomeBackInfo: ProjectSummaryInfo | null;
|
||||
@@ -30,6 +31,7 @@ export function useWelcomeBack(
|
||||
config: Config,
|
||||
submitQuery: (query: string) => void,
|
||||
buffer: { setText: (text: string) => void },
|
||||
settings: Settings,
|
||||
): WelcomeBackState & WelcomeBackActions {
|
||||
const [welcomeBackInfo, setWelcomeBackInfo] =
|
||||
useState<ProjectSummaryInfo | null>(null);
|
||||
@@ -42,6 +44,11 @@ export function useWelcomeBack(
|
||||
|
||||
// Check for conversation history on startup
|
||||
const checkWelcomeBack = useCallback(async () => {
|
||||
// Check if welcome back is enabled in settings
|
||||
if (settings.enableWelcomeBack === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const info = await getProjectSummaryInfo();
|
||||
if (info.hasHistory) {
|
||||
@@ -52,7 +59,7 @@ export function useWelcomeBack(
|
||||
// Silently ignore errors - welcome back is not critical
|
||||
console.debug('Welcome back check failed:', error);
|
||||
}
|
||||
}, []);
|
||||
}, [settings.enableWelcomeBack]);
|
||||
|
||||
// Handle welcome back dialog selection
|
||||
const handleWelcomeBackSelection = useCallback(
|
||||
|
||||
Reference in New Issue
Block a user