feat: enhance suggestion generation with model and thinking level overrides

- Updated the generateSuggestions function to accept model and thinking level overrides, allowing for more flexible suggestion generation.
- Modified the API client and UI components to support passing these new parameters, improving user control over the suggestion process.
- Introduced a new phase model for AI Suggestions in settings, enhancing the overall functionality and user experience.
This commit is contained in:
Shirone
2026-01-03 02:56:08 +01:00
parent 6d4f28575f
commit d13a16111c
6 changed files with 93 additions and 17 deletions

View File

@@ -34,6 +34,8 @@ import {
import { useAppStore, Feature } from '@/store/app-store';
import { toast } from 'sonner';
import { LogViewer } from '@/components/ui/log-viewer';
import { useModelOverride } from '@/components/shared/use-model-override';
import { ModelOverrideTrigger } from '@/components/shared/model-override-trigger';
const logger = createLogger('FeatureSuggestions');
@@ -104,6 +106,11 @@ export function FeatureSuggestionsDialog({
const { features, setFeatures } = useAppStore();
// Model override for suggestions
const { effectiveModelEntry, isOverridden, setOverride } = useModelOverride({
phase: 'suggestionsModel',
});
// Initialize selectedIds when suggestions change
useEffect(() => {
if (suggestions.length > 0 && selectedIds.size === 0) {
@@ -173,7 +180,13 @@ export function FeatureSuggestionsDialog({
setCurrentSuggestionType(suggestionType);
try {
const result = await api.suggestions.generate(projectPath, suggestionType);
// Pass model and thinkingLevel from the effective model entry
const result = await api.suggestions.generate(
projectPath,
suggestionType,
effectiveModelEntry.model,
effectiveModelEntry.thinkingLevel
);
if (!result.success) {
toast.error(result.error || 'Failed to start generation');
setIsGenerating(false);
@@ -184,7 +197,7 @@ export function FeatureSuggestionsDialog({
setIsGenerating(false);
}
},
[projectPath, setIsGenerating, setSuggestions]
[projectPath, setIsGenerating, setSuggestions, effectiveModelEntry]
);
// Stop generating
@@ -330,6 +343,14 @@ export function FeatureSuggestionsDialog({
AI Suggestions
</>
)}
<ModelOverrideTrigger
currentModelEntry={effectiveModelEntry}
onModelChange={setOverride}
phase="suggestionsModel"
isOverridden={isOverridden}
size="sm"
variant="icon"
/>
</DialogTitle>
<DialogDescription>
{currentConfig