feat(model): Update auto-select model description and behavior

This commit is contained in:
cogwheel
2025-12-22 16:19:50 +05:30
parent 5fd68f86fe
commit 51d9412876
15 changed files with 84 additions and 75 deletions

View File

@@ -12,6 +12,7 @@ import '../../../core/models/chat_message.dart';
import '../../../core/models/conversation.dart';
import '../../../core/providers/app_providers.dart';
import '../../../core/services/conversation_delta_listener.dart';
import '../../../core/services/settings_service.dart';
import '../../../core/services/streaming_helper.dart';
import '../../../core/services/streaming_response_controller.dart';
import '../../../core/services/worker_manager.dart';
@@ -904,11 +905,20 @@ void startNewChat(dynamic ref) {
}
/// Restores the selected model to the user's configured default model.
/// Call this when starting a new conversation.
/// Call this when starting a new conversation or when settings change.
Future<void> restoreDefaultModel(dynamic ref) async {
// Mark that this is not a manual selection
ref.read(isManualModelSelectionProvider.notifier).set(false);
// If auto-select (no explicit default), clear the cached default model
// so defaultModelProvider will fetch from server
final settingsDefault = ref.read(appSettingsProvider).defaultModel;
if (settingsDefault == null || settingsDefault.isEmpty) {
final storage = ref.read(optimizedStorageServiceProvider);
await storage.saveLocalDefaultModel(null);
DebugLogger.log('cleared-cached-default', scope: 'chat/model');
}
// Invalidate and re-read to force defaultModelProvider to use settings priority
ref.invalidate(defaultModelProvider);

View File

@@ -16,6 +16,7 @@ import '../../../shared/widgets/sheet_handle.dart';
import '../../../shared/widgets/conduit_components.dart';
import '../../../core/providers/app_providers.dart';
import '../../../core/services/navigation_service.dart';
import '../../chat/providers/chat_providers.dart' show restoreDefaultModel;
import '../../auth/providers/unified_auth_providers.dart';
import '../../../core/services/settings_service.dart';
import '../../../core/models/model.dart';
@@ -648,6 +649,9 @@ class ProfilePage extends ConsumerWidget {
await ref
.read(appSettingsProvider.notifier)
.setDefaultModel(modelIdToSave);
// Immediately apply the new default model selection
await restoreDefaultModel(ref);
}
}