Skip to content

2.0 模型设置界面 + macOS 修复批次(合入 beta 最新四项) - #1050

Merged
appergb merged 33 commits into
betafrom
feat/ui-2.0-model-settings
Sep 10, 2026
Merged

2.0 模型设置界面 + macOS 修复批次(合入 beta 最新四项)#1050
appergb merged 33 commits into
betafrom
feat/ui-2.0-model-settings

Conversation

@appergb

@appergb appergb commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

概要

2.0 模型设置分支(feat/ui-2.0-model-settings)合入 beta 最新四个提交并完成适配:

本分支原有工作

  • 2.0 渠道/模型设置 UI:设置页重写(ChannelList 渠道卡片、编辑弹窗、模型目录),八语对齐
  • typeless 胶囊:放大到原版 1/5 面积(206×57 + CSS zoom 0.447)、黑底白波纹、Siri 预览改用真实 SiriGL 光效舞台
  • ASR 误报修复:volcengine 配置判定不再要求 resource id(运行时留空回落默认资源)
  • macOS 修复批次:红绿灯视觉顶距对齐左侧(y=26,tao 几何下 x==y 并不相等)、Keychain 节流(单条目 credentials.v2 + 每进程一次门)、构建脚本加固(qwen3-asr-rs 目录剪枝、BUILD_START_TS 新鲜度)
  • 本地 ASR 模型目录:状态透出目录元数据、中断下载清理命令(local_asr_cleanup_incomplete)、Zipformer 流式模型

合并 origin/beta(#1037 / #1040 / #1020 / #1044)的适配

测试

  • tsc 0 错误;前端全套 exit 0
  • 宿主 Rust 471/471;openless-core 16 个测试二进制 0 失败

sim added 30 commits August 16, 2026 17:09
- 主页前置下一步与真实服务状态,服务卡直达对应设置;概览与热力图排布调整
- 设置按任务分类并支持搜索、焦点返回与 Escape 语义;旧 section ID 保持稳定
- AI 分区拆分语言模型/语音识别/本地模型/连接;渠道列表与表单重构,设置实底
- 本地模型管理与下载目录重排,补空态、主操作与窄屏布局
- Core 生成 provider descriptor 公开目录供浏览器预览懒加载,原生 IPC 合同不变
- Linux egui 按开始/听写/AI 服务/模型/工具/手机输入/历史/设置组织页面并加环境引导
- 五语言文案与文档(体验梳理、架构、计划收口)同步
删除已完成/已收口任务的规划与过程记录(2.0 UX 收口、Core 2.0 计划、
PR#1019 复核与桌面复审、平台边界审计、Linux 引导知识快照、
Linux 共享后端阶段计划、供应商渠道计划、Windows sherpa 规划、
PR#711 评审截图、应用内测试计划),保留规范性文档、验收清单、
Linux 交接目录与运营指南,并修复全部引用链接。
修正 92da4fb 中误随 git add -A 提交的 Mimosa 安全钩子运行状态文件;
该目录为插件会话状态,不属于版本库,已忽略以防再次混入。
前端:chat 桶文件、SegSimple、SwitchLite、androidMicrophonePermission 转发
shim、SelectionPolishSection 孤儿分区、autostart 环境类型声明;依赖移除
@formkit/auto-animate 与 @tauri-apps/plugin-autostart npm 包装层(Rust 插件
与 capability 保留,autostart 经原生 invoke 字符串调用)。
Rust:polish 旧副本两文件、android/types.rs、remote_server/lan_addresses.rs
(均为 Core 2.0 整合遗留,模块树未引用,编译行为不变)。
npm test 构建与全部测试通过;三 crate cargo fmt --check 干净。
保留目录骨架与文件名,内容全部以当前源码为依据重写:范围与版本锚点
(2.0.0-Beta.1 / crate 0.1.0 / com.openless.app)、架构分层与 Core 模块地图、
桌面验收清单(功能域→源码入口→证据)、Linux 交接 8 篇(沿用 L01-L12 登记体系,
锚点落到 settings.rs/audio.rs/ports.rs 等)、后端接口契约、Android 计划、
运营指南 5 篇(以 provider descriptor 与实际 CSP/.gitmodules 为锚)。
原过程中的计划叙述、截图与历史收口记录不再保留。
volcengine-setup.md 重写为以 descriptor 为锚后,旧指南的 4 张控制台
截图不再被任何文档引用。
#1021 重构后 WindowsKeyboardRuntimeTarget 由插入模式派生:默认 TSF 模式下
翻转 keyboard-list 偏好不产生有效目标变化,Linux 接受并广播 PreferencesChanged;
将插入模式切到 SendInput 且隐藏键盘列表会真正驱动 Windows 语言 profile,
合同仍要求显式拒绝(Unsupported)。旧断言只翻转原始字段,与新语义冲突。
Consolidate the current 2.0 sidebar, overview, settings, vocabulary editing, correction rules page, and first-launch splash with their Core and Tauri adapters. Include the accompanying source and architecture documentation updates.

Validation: npm test (build and 73 discovered test files); cargo test -p openless-core --locked; Core/Linux and Tauri rustfmt checks.
… cloud-sync groundwork

- 渠道设置界面:ChannelList/LlmProtocolFields/ProvidersSection 渠道级协议与模型配置
- 8 种界面语言 1711 项文案对齐(de/en/es/fr/ja/ko/zh-CN/zh-TW)
- Core 协议层 llm_protocol 与 provider_service 配套、云同步准备
- linux-egui 后端与 Android updater 配套调整
…保留 2.0 渠道卡片结构并整合 OrcaRouter 目录选择)
…(偏好写入门控 + 语言区域同步与 2.0 布局偏好并存)
- de/es/fr(2.0 新增语言)补 common.experimental、providers.orcarouter、
  searchModels/noMatchingModels/orcarouterCatalogHint/orcarouterAsrCatalogHint
- streamingInsertTitleLinux/sherpaTitle 等按 experimentalTitles 测试统一措辞
- 移除 locale 强制同步输出语言的 effect:2.0 设计为 UI 语言独立于输出/
  识别语言(locale-lifecycle 测试守护),保留偏好写入门控本身
…返回保存后 prefs 的契约

首次合并遗留的未解决冲突:以 1d29f8a 干净版为底(2.0 SettingsRuntime
effect-plan 架构),叠加 fix/settings-experimental-consistency 的返回值
契约(桌面 set_settings 返回 UserPreferences,与前端 setSettings 对齐)。
- typeless 胶囊窗口 460×128 → 174×48(面积 1/7),内容 CSS zoom 0.378 同步缩放;
  底部间距按样式区分,typeless 贴紧工作区底边(Dock 可见时贴其上沿,自动隐藏时贴屏幕底)
- 红绿灯 trafficLightPosition y 16→26:实测左间距 21.5、上间距 12,下移 9.5px 后两边距相等
- 启动时把偏好 active ASR 同步进凭据库(原仅 Windows):get_credentials 按凭据库
  active 渠道取密钥,脱钩会误报「语音识别未配置」并弹设置提示
- Keychain 节流:credentials.v2 补写与旧版逐账户扫描每进程只做一次并缓存结果,
  失败重放同一错误;新增凭据来源一次性日志
- tauri build 退出码非零不再夭折脚本:.app 已生成时用 hdiutil 兜底打包 DMG,
  内容含 /Applications 替身,保留拖拽安装
- Cargo.toml Xcode 27 beta 构建注释压缩为一行事实 + 对策
听写运行时对空 resource id 回落 volc.seedasr.sauc.duration(resolve_resource_id),
但 volcengine_configured 把它当硬门槛:合法的「密钥齐全、资源 id 留空」配置被误报
「语音识别未配置」并每次启动弹配置提示。认证是否就绪只取决于密钥本身。
- 窗口 174×48 → 206×57,CSS zoom 0.378 → 0.447(面积 = 原版 460×128 的 1/5)
- typeless 配色改为黑色胶囊 + 白色波纹(深色主题同调)
- VoiceOrbStage 提取为独立组件;设置页 Siri 预览直接渲染缩放 0.5 的真实
  SiriGL 光条,与实际胶囊样式一致
- 本地混跑 cargo check/test/build 会按 feature 上下文生成多份 qwen3-asr-rs
  构建目录,多份 metallib 会让暂存脚本拒绝猜测
- 打包后原始二进制还会被签名触碰,bundle 新鲜度不能与它比,改与本构建
  开始时间比
LocalAsrModelStatus 补齐 display_name/family/mode/languages/size_bytes,
前端无需为基础元数据实时访问 HuggingFace;新增 local_asr_cleanup_incomplete
命令(LocalAsrApi 默认实现 + Service 实现 + 前端包装)清理 staging 目录;
sherpa 目录新增 zipformer-bilingual-zh-en-streaming 流式中英模型并补齐八语文案。
修复测试里 LocalAsrTarget::parse 的 .into() 类型推断歧义。
…实时语音、#1044 统一模型字段与异步保存隔离)并完成 2.0 UI 适配

冲突解决原则:2.0 重写的界面以本地为准,云端功能语义全部移植——
- ProviderForm 离开收敛接入 SettingsModal / ChannelList / LlmProtocolFields / CredentialField(关闭、切节、换供应商前冲掉防抖写入并等待在途写完成)
- 腾讯云三段式密钥 + 固定模型档分支移植进 2.0 ChannelCredentialFields;OAuth 静态模型走描述符
- Mac 听写键进入 ShortcutRecorder(allowMacDictationKey)并改用 refresh 拉新偏好
- 远程输入手机页新证书信任流程(持久本地 CA + 描述文件/CA 下载 + 复制链接),de/es/fr 补齐全套新文案
- 纯格式分歧文件取云端后 prettier 归一;双方新增内容(i18n、测试)两侧保留
sim added 3 commits September 10, 2026 16:54
- build-mac.sh 移除 hdiutil DMG 兜底:bundle contract 测试显式禁止手搓 DMG
  绕过签名/公证链路;DMG 缺失即失败(保留 qwen3-asr-rs 剪枝与 BUILD_START_TS
  新鲜度校验)
- 红绿灯 y=26 契约:tao 几何下视觉顶距≈y-14,x==y 并不相等(实测左 21.5px)
- 胶囊几何契约同步 typeless 206×57(原 460×128 的 1/5 面积)
- LLM_LABELS 补 tencentTokenHub 静态目录项(ASR_LABELS 已含 tencent-cloud)
- 五语 PC/手机页文案取云端指纹核验版;de/es/fr 全套补译(指纹 6 键、保亮屏 4 键、恢复 4 键、中断/离线 2 键)
- index.html:帮助块改为指纹核验流程 + 录音屏新增保亮屏开关(默认开)
- RemoteInputStatus 补 caFingerprintSha256;Linux egui 面板移植指纹显示与复制
- remote-input-audio-queue 测试取云端(#1049 音频队列改造),我方仅格式差异
@appergb
appergb merged commit fe95354 into beta Sep 10, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant