fix(desktop): QA 驱动的 6 项缺陷修复
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
P0-C1: SecureStorage 解密失败上限 — 添加 per-key 失败计数器, 超过 2 次自动清除过期加密数据,阻断无限重试循环 P0-C2: Bootstrap 空指针防护 — connectionStore 中 relayModels[0]?.id 添加 null guard,抛出用户友好错误 P1-H1: 侧边栏对话列表去重 — ConversationList 添加按 ID 去重逻辑, 保留最新版本后按 updatedAt 排序 P1-H2: 搜索框过滤生效 — Sidebar 传递 searchQuery 给 ConversationList, 支持按标题和消息内容过滤 P1-H3: 模型选择器 fallback — 当 SaaS 和 config 均无模型时, 提供 6 个默认模型(GLM/GPT/DeepSeek/Qwen/Claude) P1-H4: 详情面板错误友好化 — RightPanel 中 JS 错误替换为 '连接状态获取失败,请重新连接' Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -503,7 +503,11 @@ export const useConnectionStore = create<ConnectionStore>((set, get) => {
|
||||
} catch {
|
||||
// conversationStore 可能尚未初始化
|
||||
}
|
||||
const modelToUse = preferredModel || fallbackModel.id;
|
||||
const fallbackId = fallbackModel?.id;
|
||||
if (!fallbackId) {
|
||||
throw new Error('可用模型数据格式异常,请刷新页面重试');
|
||||
}
|
||||
const modelToUse = preferredModel || fallbackId;
|
||||
|
||||
kernelClient.setConfig({
|
||||
provider: 'custom',
|
||||
@@ -538,7 +542,10 @@ export const useConnectionStore = create<ConnectionStore>((set, get) => {
|
||||
} else {
|
||||
// Non-Tauri (browser) — use SaaS relay gateway client for agent listing + chat
|
||||
const { createSaaSRelayGatewayClient } = await import('../lib/saas-relay-client');
|
||||
const fallbackModelId = relayModels[0].id;
|
||||
const fallbackModelId = relayModels[0]?.id;
|
||||
if (!fallbackModelId) {
|
||||
throw new Error('可用模型数据格式异常,请刷新页面重试');
|
||||
}
|
||||
const relayClient = createSaaSRelayGatewayClient(session.saasUrl, () => {
|
||||
// 每次调用时读取 conversationStore 的 currentModel,fallback 到第一个可用模型
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user