feat: 实现会话配置与多轮上下文
All checks were successful
Backend CI / ci (pull_request) Successful in 1m0s
Frontend CI / ci (pull_request) Successful in 1m0s

- 新增 ConfigPanel 组件:TTS 开关、detail level、语言选择
- 新增 storage.ts:配置持久化到 localStorage
- useVisionSession:连接后自动发送 config,维护最近 10 轮对话历史
- App:齿轮按钮展开配置面板,HD 角标,TTS 播放联动 ttsEnabled

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-13 14:19:47 +08:00
parent 8033807f7c
commit 7e3762b589
5 changed files with 267 additions and 18 deletions

View File

@@ -0,0 +1,35 @@
// ============================================================
// Storage — localStorage 封装
// 职责:会话配置持久化
// ============================================================
import type { SessionConfig } from "../types";
const CONFIG_KEY = "camtalk:config";
const DEFAULT_CONFIG: SessionConfig = {
ttsEnabled: true,
detailLevel: "low",
language: "zh-CN",
};
/** 加载配置,无存储时返回默认值 */
export function loadConfig(): SessionConfig {
try {
const raw = localStorage.getItem(CONFIG_KEY);
if (!raw) return DEFAULT_CONFIG;
const parsed = JSON.parse(raw) as Partial<SessionConfig>;
return { ...DEFAULT_CONFIG, ...parsed };
} catch {
return DEFAULT_CONFIG;
}
}
/** 保存配置到 localStorage */
export function saveConfig(config: SessionConfig): void {
try {
localStorage.setItem(CONFIG_KEY, JSON.stringify(config));
} catch {
// localStorage 不可用时静默失败
}
}