fix(butler): wire verification gaps — pain storage init, cold start, UI mode switches
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
- Call init_pain_storage() in Tauri .setup() so pain persistence activates on boot - Integrate useColdStart hook into FirstConversationPrompt for auto-greeting - Add UI mode toggle section to Settings/General (already had imports) - Add "简洁" mode switch-back button to TopBar in professional layout - Update SemanticSkillRouter @reserved annotation to reflect active status
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
* - Horizontal quick-action chips (colored pills)
|
||||
* - Clean, minimal aesthetic
|
||||
*/
|
||||
import { useEffect } from 'react';
|
||||
import { motion } from 'framer-motion';
|
||||
import {
|
||||
Sparkles,
|
||||
@@ -21,6 +22,7 @@ import {
|
||||
generateWelcomeMessage,
|
||||
getScenarioById,
|
||||
} from '../lib/personality-presets';
|
||||
import { useColdStart } from '../lib/use-cold-start';
|
||||
import type { Clone } from '../store/agentStore';
|
||||
import { useChatStore } from '../store/chatStore';
|
||||
import { useClassroomStore } from '../store/classroomStore';
|
||||
@@ -56,6 +58,16 @@ export function FirstConversationPrompt({
|
||||
onSelectSuggestion,
|
||||
}: FirstConversationPromptProps) {
|
||||
const chatMode = useChatStore((s) => s.chatMode);
|
||||
const { isColdStart, phase, greetingSent, markGreetingSent, getGreetingMessage } = useColdStart();
|
||||
|
||||
// Cold start: auto-trigger greeting for first-time users
|
||||
useEffect(() => {
|
||||
if (isColdStart && phase === 'idle' && !greetingSent) {
|
||||
const greeting = getGreetingMessage(clone.nickname || clone.name, clone.emoji);
|
||||
onSelectSuggestion?.(greeting);
|
||||
markGreetingSent();
|
||||
}
|
||||
}, [isColdStart, phase, greetingSent, clone.nickname, clone.name, clone.emoji, onSelectSuggestion, markGreetingSent, getGreetingMessage]);
|
||||
|
||||
const modeGreeting: Record<string, string> = {
|
||||
flash: '快速回答,即时响应',
|
||||
|
||||
Reference in New Issue
Block a user