feat: improve model connections and settings workflow
Model settings can now duplicate saved connections with encrypted API-key copying, while settings navigation stays usable across long forms and preserves the separate Platform Features tabs. The assistant storage startup worker now gates historical migration and compaction on actual pending legacy data, so ordinary chat free pages do not reopen the migration screen. Desktop and Agent release metadata is prepared for 0.13.8 and 0.13.2. Release note: 改进模型连接复制、长表单设置导航和历史数据迁移判断;普通聊天退出并重开后不再重复显示迁移页面。
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
# 工作栏实现与验证进度
|
||||
|
||||
## 2026-09-21 修复重复历史迁移
|
||||
|
||||
- 启动时历史优化 Worker 之前只判断 `assistant.sqlite` 是否存在,没有先判断
|
||||
`PRAGMA user_version` 是否已经达到当前 Assistant schema,因此已完成迁移的数据库仍会
|
||||
重复进入启动准备流程。现在仅对低于当前 schema 的数据库启动 Worker;已完成迁移的
|
||||
数据库直接进入正常启动,聊天、退出和再次打开不会重新显示历史迁移页面。
|
||||
- 该问题来自 `49377206` 引入的启动迁移入口;本次修复不改变旧数据库的实际迁移逻辑,
|
||||
仍保留首次升级、取消后重试和已提交批次续跑行为。
|
||||
- `npx vitest run src/main/assistant-storage-startup.test.ts src/main/assistant/assistant-storage-upgrade.test.ts src/main/assistant/assistant-database.test.ts`:
|
||||
**115 项通过**;`npm run typecheck`、`npm run lint`:通过。
|
||||
|
||||
## 2026-09-19 问答位置持久化
|
||||
|
||||
- Main 在收到问题时保存消息位置块,而不是等回答成功才追加;前台及重启恢复的实时待答
|
||||
|
||||
@@ -42,6 +42,7 @@ User Stories 和逻辑设计;本页定义产品边界,技术设计定义唯
|
||||
认证信息。
|
||||
- 自定义值作为普通连接设置保存。API Key 和其他密钥必须使用专用凭据字段,不应写入
|
||||
自定义请求头或请求体。
|
||||
- LLM 连接可以复制,已保存的 API Key 由 Main 进程安全复制到新连接。
|
||||
|
||||
## 相关功能
|
||||
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# 模型连接请求定制进度
|
||||
|
||||
## 2026-09-20:模型设置可用性修复
|
||||
|
||||
- 模型接口 URL 保存失败时按连接名称显示错误,URL 字段同步提供 `aria-invalid` 和就地
|
||||
错误;共享契约同时拒绝空值、非 HTTP/HTTPS 地址和超长地址。
|
||||
- 模型连接分类标题与 LLM、向量、重排、语音分段页签在模型内容滚动时共同固定;自定义
|
||||
Header/Body 默认收纳在折叠的“高级设置”中,无效时自动展开。
|
||||
- LLM 连接新增复制入口。复制保留当前草稿、请求定制和认证设置;已保存 API Key 由 Main
|
||||
进程从加密凭据复制,不进入 Renderer 或错误信息。
|
||||
- 已新增 SettingsPanel 与 RuntimeSettingsStore 回归覆盖;完整验证结果见后续条目。
|
||||
|
||||
## 2026-09-11:发布前固定模型说明修复
|
||||
|
||||
- 项目已保存固定 Runtime 模型时,恢复显示实际固定模型的帮助文字,保留简化后的菜单;
|
||||
|
||||
@@ -76,6 +76,15 @@ API Key 继续由现有 Main 加密设置和 Prompt-scoped Agent 凭据路径管
|
||||
Body 是普通可见连接设置,不提供第二套通用秘密存储;UI 必须提示不要把密钥放入这两个
|
||||
JSON 对象,标准认证 Header 也由 schema 拒绝。
|
||||
|
||||
模型连接输入使用 `modelConnectionUrlSchema`,先在 Renderer 以连接名称标识无效 URL,
|
||||
再由共享契约拒绝空值、超过 2048 个字符或非 HTTP/HTTPS 地址。页头错误保留完整错误上下文,
|
||||
字段错误通过 `aria-describedby` 关联到 URL 控件。
|
||||
|
||||
复制连接不在 Renderer 读取或暴露已保存 API Key。复制草稿提交
|
||||
`{ action: 'copy', sourceProfileId }`,Main 在同一设置更新事务中从当前加密凭据或默认连接
|
||||
的环境凭据创建目标凭据。源连接不存在时整个更新失败;目标连接的其他字段仍由普通输入
|
||||
校验。正在编辑但尚未保存的 Key 仍以一次性 `replace` 值提交,因而不与旧凭据混合。
|
||||
|
||||
## 7. 验证
|
||||
|
||||
- 共享 schema:JSON 类型、边界、保留字段和优先级。
|
||||
@@ -84,7 +93,8 @@ JSON 对象,标准认证 Header 也由 schema 拒绝。
|
||||
- Runtime:真实 bundled OpenCode/Continue 对 loopback Provider 的请求探针;DeepSeek
|
||||
Utility 启动配置和 Pi-AI Provider 配置。
|
||||
- 远程:Main/Agent 网关合并、认证优先级、摘要绑定、大小限制和不重放。
|
||||
- UI:默认值、保存、无效 JSON 保留和 Runtime 支持说明。
|
||||
- UI:默认值、保存、无效 JSON 保留、连接级 URL 错误、粘附标题/页签、折叠高级设置和
|
||||
包含凭据的连接复制。
|
||||
|
||||
## 8. 通道直连模型选择修复
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
## 信息架构
|
||||
|
||||
“自定义请求头”和“自定义请求体”位于当前 LLM 连接详情的最底部、连接兼容性摘要之前。
|
||||
它们不新增页签、弹窗或高级模式。每个编辑器使用可纵向调整大小的等宽文本域,默认值为
|
||||
它们收纳在默认折叠的“高级设置”中,不新增页签或弹窗。只要其中一项无效,保存时自动
|
||||
展开该区域并保留对应字段错误。每个编辑器使用可纵向调整大小的等宽文本域,默认值为
|
||||
`{}`。
|
||||
|
||||
## 编辑与保存
|
||||
@@ -17,6 +18,13 @@
|
||||
`aria-invalid` 和就地错误;点击保存时阻止写入,并在现有设置错误区域显示对应连接。
|
||||
- 保存成功后,编辑器使用两个空格缩进重新格式化已保存对象。
|
||||
- 新连接从两个空对象开始。
|
||||
- 保存前校验失败时,页头错误和对应字段错误都显示连接名称;模型接口 URL 同时标记
|
||||
`aria-invalid` 并关联就地错误,避免只显示无法定位的“Invalid URL”。
|
||||
- LLM 模型连接的分类标题和模型类型分段页签在内容滚动时共同粘附在内容区顶部;左侧连接
|
||||
列表仍可独立滚动。
|
||||
- 每个已保存或正在编辑的 LLM 连接提供“复制连接”。复制会生成新的连接名称和 ID,保留
|
||||
地址、模型、协议、请求定制、认证方式及当前草稿 API Key。已保存的 API Key 通过 Main
|
||||
进程的加密凭据复制路径保存,不回传到 Renderer;原连接和默认连接不改变。
|
||||
|
||||
## 兼容性说明
|
||||
|
||||
|
||||
Reference in New Issue
Block a user