Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion docs/desktop-input-and-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ macOS 辅助功能设置提供带应用图标的浮动引导,帮助用户将

同版本并发读取两条安装包链路的最多 64 KiB,用首字节延迟与传输速率比较。阿里云延迟不超过 GitHub 的 120%,且速率不低于其 80% 时视为接近,优先阿里云;GitHub 明显更快或探测无法确认阿里云优势时使用 GitHub。判断使用实际网络测量,不读取用户位置。探测上限 4 秒,不预下载整包。

GitHub 版本从安装包签名的 trusted comment 读取并核对所属 tag,保留 build metadata。版本元数据仍须由 Tauri 的安装包签名校验确认;没有签名版本或版本不匹配不能静默接受。此更新不改变 Android 独立更新路径。
GitHub 版本从安装包签名的 trusted comment 读取并核对所属 tag,保留 build metadata。版本元数据仍须由 Tauri 的安装包签名校验确认;没有签名版本或版本不匹配不能静默接受。桌面与 Android 使用各自的安装流程和架构选择。

## Android 双源更新

Android 在同一次检查中并发读取 GitHub 官方 Release 与当前渠道的 CDN 更新清单,从可验证的候选中选择更高版本;Beta 与 Stable 保持分离,并匹配设备 ABI。GitHub 已有新版而 CDN 仍为旧版时,可以直接使用 GitHub 的新版候选,不要求等待 CDN 同步,也不需要用户配置 GitHub 密钥。

下载阶段仅比较同一版本、同一架构、同一签名资产的可用链路,根据有界网络探测的延迟与传输表现选择较快来源。一个来源不可用时,只回退到该候选的其他有效链路,不能静默改为另一个版本。每个来源下载的 APK 都必须通过更新签名校验后才能进入安装流程;切换来源不绕过验签。网络探测不读取用户地理位置。

## 设置与资源生命周期

Expand Down
74 changes: 74 additions & 0 deletions docs/releases/2.0.2-Beta.6-release-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# OpenLess 2.0.2-Beta.6+build.20261109-1f057451

本次为 **Beta 测试版**,比较范围为上一公开 Beta `v2.0.2-Beta.4-tauri` 至 `v2.0.2-Beta.6-tauri`。正式版更新源继续保持独立。Beta.5 保留为未公开草稿,本版汇总该草稿中的改进并加入 Android 双源更新与后续修复。

## Android 更新与长录音

- Android 并发检查 GitHub 与 CDN 的同渠道更新候选,选择可验证的更高版本。GitHub 已更新而 CDN 尚未同步时,可直接从 GitHub 获取新版。
- 下载时对同一版本与架构的可用链路进行有界测速,选择较快来源;回退仍须使用同一候选并通过签名校验,不需要用户配置 GitHub 密钥。
- 改善兼容型 ASR 的长录音上传:未设置特定限制时采用默认分段,并在分段边界附近选择较安静的位置,减少一次上传文件过大导致的失败。
- 自定义兼容 ASR 的零值或空白分段设置仍表示整段上传,不被默认分段覆盖。
- macOS 输入目标失效时保留已完成的转写并进入复制兜底,避免结果丢失;有效目标仍沿用自动插入。

## 桌面界面与设置

- 调整界面曲面与嵌套圆角,保留录音胶囊、开关和小型操作按钮各自的形状。
- 修复录音方式、传统与多模态、主题、概览统计切换控件在缩放后的对齐与选中块显示。
- 修复快捷键搜索框两侧描边被裁切、背景不明显的问题,改善下拉菜单和焦点轮廓。
- 高级功能采用独立子页;感知页面的卡片保持清晰间隔,离开页面时释放控件与订阅。
- 历史列表和用量记录使用容器内滚动;改善输入法选字时的回车处理、消息跟随和跳至最新。

## 输入与胶囊

- 修复内部预览中 macOS 终稿插入错误进入手动复制兜底的回归,避免流式内容已写入后再次弹出复制窗口。
- 保留胶囊内实时原文显示。macOS 输入框内实时原文实验已从内部预览撤下;该实验未包含在公开 Beta.4 中。
- Windows 输入框内实时原文设置集中到「高级功能 → 文字插入」。
- 改善胶囊翻译语言菜单的窗口隔离、原生点击区域和多屏输入归属。
- 新增 macOS 辅助功能授权浮动引导,显示应用图标并支持拖入系统授权列表。

## 用量与模型缓存

- 侧栏设置旁新增用量入口,提供概览、服务与用途、记录三个页面。
- 已接入的文字处理路径保存服务商明确返回的 Token 报告;数量支持 K/M/B 显示,保留原始数值。
- 缓存占比按服务、渠道、模型和协议分组,区分不同接口的输入计量口径,并显示可比较报告数量。旧记录或缺失字段保持未知。
- 固定提示词规则位于动态应用、光标上下文之前,减少可避免的缓存前缀变化。
- 按实际服务地址、接口和支持的模型启用缓存标记或路由提示;多轮请求继续复用历史。缓存可用性、有效期和写入计费遵循服务商规则,实际收益以新请求返回的用量为准。

## 实验性感知与纠错

- 光标上下文、手改学词和表达格式学习集中在「高级功能 → 感知」。
- 表达格式学习默认关闭;当前学习少量全局格式倾向,在本机保存抽象证据并支持清除。
- 纠错观察过滤部分数字、否定和敏感上下文变化,建议仍由用户确认。

## 更新、性能与入口整理

- 改善 GitHub 与阿里云更新发现、限流后的备用发现,以及按网络探测选择下载来源。
- 释放闲置或失败的 WebGL、头像动画和流式字符绘制资源,减少隐藏页面持续绘制。
- 修复 Windows 选区捕获污染剪贴板历史,以及托盘退出无法结束的问题。
- 下线桌面 Less Computer / 编码 Agent 和 Claude Console,包括页面、IPC、热键和后台轮询。
- 整合 CI 并行、缓存、编译产物复用和超时优化。Linux 附包改为逐标签的明确设备验收门槛。

## 已知范围

- 用量账本尚未完整覆盖 ASR、TTS、原生 Gemini/Codex、多模态和所有重试、失败或取消路径,不能用作完整账单。
- 感知仍为实验性功能;按应用画像、黑名单和完整表达习惯系统仍在后续计划中。
- 缓存统计是输入 Token 的加权占比,不能据此承诺所有服务或所有请求达到固定命中率。
- 安装包构建与自动检查不能替代每一种编辑器、输入法、麦克风和设备上的实机行为验收。

## 分发与升级

- 发布标签为 `v2.0.2-Beta.6-tauri`,应用版本为 `2.0.2-Beta.6+build.20261109-1f057451`。
- macOS Apple Silicon 与 Intel、Windows x64、Android 各 ABI 的安装包通过同一标签构建;HarmonyOS 仓库分发包由后续流程附加。
- 本次不附加尚未完成独立设备验收的 Linux 安装包。
- Beta 用户可在「设置 → 关于与更新」加入 Beta 渠道,或从本次 GitHub Release 下载对应安装包。
- macOS 包若使用临时签名且被 Gatekeeper 拦截,可在拖入「应用程序」后按既有发行说明执行:

```bash
xattr -cr /Applications/OpenLess.app
```

## 来源与验证

本版另外包含 [#1416](https://github.com/Open-Less/openless/pull/1416) 的长录音与目标失效修复,以及本轮 Android 双源更新。此前草稿的主要整合来源包括 [#1400](https://github.com/Open-Less/openless/pull/1400)、[#1406](https://github.com/Open-Less/openless/pull/1406)、[#1407](https://github.com/Open-Less/openless/pull/1407)、[#1410](https://github.com/Open-Less/openless/pull/1410)、[#1411](https://github.com/Open-Less/openless/pull/1411)、[#1413](https://github.com/Open-Less/openless/pull/1413)、[#1414](https://github.com/Open-Less/openless/pull/1414)、[#1415](https://github.com/Open-Less/openless/pull/1415)、[#1418](https://github.com/Open-Less/openless/pull/1418)、[#1419](https://github.com/Open-Less/openless/pull/1419)、[#1420](https://github.com/Open-Less/openless/pull/1420)、[#1421](https://github.com/Open-Less/openless/pull/1421)、[#1422](https://github.com/Open-Less/openless/pull/1422)。对应贡献与作者信息见各 PR 的记录。

公开发布前须以最终发布提交上的完整 CI、各平台构建、签名、校验和及 Beta 更新清单核验为准。预览提交上通过的测试不替代发布提交的检查;发布标签、安装包和更新清单应对应同一份源码与版本。
2 changes: 1 addition & 1 deletion openless-all/app/linux-egui/package-revision
Original file line number Diff line number Diff line change
@@ -1 +1 @@
151
152
4 changes: 2 additions & 2 deletions openless-all/app/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion openless-all/app/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "openless-app",
"private": true,
"version": "2.0.2-Beta.5+build.20261109-47405c88",
"version": "2.0.2-Beta.6+build.20261109-1f057451",
"type": "module",
"scripts": {
"pretest": "npm run build",
Expand Down
2 changes: 1 addition & 1 deletion openless-all/app/scripts/desktop-version-contract.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { readFile } from 'node:fs/promises';

const app = new URL('../', import.meta.url);
const read = async (path) => (await readFile(new URL(path, app), 'utf8')).replace(/\r\n/g, '\n');
const version = '2.0.2-Beta.5+build.20261109-47405c88';
const version = '2.0.2-Beta.6+build.20261109-1f057451';
const pkg = JSON.parse(await read('package.json'));
const lock = JSON.parse(await read('package-lock.json'));
const tauri = JSON.parse(await read('src-tauri/tauri.conf.json'));
Expand Down
2 changes: 1 addition & 1 deletion openless-all/app/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion openless-all/app/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "openless"
version = "2.0.2-Beta.5+build.20261109-47405c88"
version = "2.0.2-Beta.6+build.20261109-1f057451"
license = "AGPL-3.0-only"
description = "OpenLess — local voice input that types where your cursor is"
authors = ["OpenLess"]
Expand Down
2 changes: 2 additions & 0 deletions openless-all/app/src-tauri/src/android/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ pub(crate) mod local_migration;
pub mod native_bridge;
pub mod overlay;
pub mod shizuku;
#[cfg(any(target_os = "android", test))]
pub(crate) mod update_pipeline;
#[cfg(target_os = "android")]
pub mod updater;
pub mod updater_logic;
Expand Down
Loading
Loading