From 954914a8af20bf189bf00129604570043031c2c8 Mon Sep 17 00:00:00 2001 From: ila Date: Thu, 18 Jun 2026 14:02:14 +0800 Subject: [PATCH] docs: update indicator is a hint text, not a red button MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the red-dot-on-the-gear treatment with a low-key blue "发现新版本 vX.Y.Z" label to the left of the ⚙ 配置 button (red reads as error; the text is clearer and shows the version). docs/07 §4.3, docs/10 §12 and related wording updated. Co-Authored-By: Claude Opus 4.8 --- docs/07-ui-design.md | 4 ++-- docs/10-lan-update.md | 8 ++++---- tasks.md | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/07-ui-design.md b/docs/07-ui-design.md index 38191dd..7c60c52 100644 --- a/docs/07-ui-design.md +++ b/docs/07-ui-design.md @@ -76,7 +76,7 @@ - `配置` 按钮**不是编号页签**,不参与 `1/2/3` 顺序;样式低调(图标 + 文字,悬停出强调色)。 - 点击打开**设置对话框**(`QDialog`,见 4.4),不进入新的内容页(页签栏当前不切换内容面板)。 -- **有新版本角标**:启动时后台检查到新版,在 `配置` 按钮上点亮红点(文字加「●」、变红加粗),提示用户去设置里更新。**不弹阻塞横幅**(详见 `docs/10` §12)。 +- **有新版本提示**:启动时后台检查到新版,在 `配置` 按钮**左侧**显示一行低调的蓝色提示文字 `发现新版本 vX.Y.Z`(可点击,点它或点齿轮都进设置)。无更新时该文字隐藏。**不用红色**(红表示错误/危险,而「有新版」是信息);**不弹阻塞横幅**(详见 `docs/10` §12)。 ### 4.4 设置对话框 @@ -94,7 +94,7 @@ 行为与架构: - 对话框是**纯 UI**(配置部分):打开时由 `main_window` 注入当前配置值;保存时把新值发回主窗口,由主窗口集中 `save_config`,UI 控件不直接读写配置文件(遵守 `docs/05` 4.12 与 `docs/04` 第 6 节)。下载/暂存经 `services` 层完成(与其它面板调用 service 一致)。 -- 保存后主窗口重新触发一次更新检查(角标按新配置刷新)。配置写入 `~/.cmbot/config/app_config.json`,启动器下次启动自然读到,两端一致。 +- 保存后主窗口重新触发一次更新检查(提示文字按新配置刷新)。配置写入 `~/.cmbot/config/app_config.json`,启动器下次启动自然读到,两端一致。 - 取消不改动配置。 ## 5. 左侧素材栏 diff --git a/docs/10-lan-update.md b/docs/10-lan-update.md index 120040a..4b6bffc 100644 --- a/docs/10-lan-update.md +++ b/docs/10-lan-update.md @@ -110,7 +110,7 @@ ## 6. 更新时机 -- **检查**:主程序**启动时**后台线程检查一次(非阻塞);发现新版只点亮设置入口的角标,不打断使用。 +- **检查**:主程序**启动时**后台线程检查一次(非阻塞);发现新版只在设置入口旁显示一行蓝色提示文字,不打断使用。 - **下载暂存**:用户在设置里点「更新」时进行(app 运行期);下载/校验不阻塞主界面,完成后暂存待应用。 - **应用切换**:仅在**下次启动**由启动器完成(主程序未运行时)。 @@ -221,7 +221,7 @@ http://cm.xiapi.com/ ## 12. 用户体验 -- **发现新版**:主程序启动后台检查,有新版则在 `⚙ 配置` 按钮上点亮红点(不弹阻塞横幅、不打断工作)。 +- **发现新版**:主程序启动后台检查,有新版则在 `⚙ 配置` 按钮左侧显示一行低调蓝色提示 `发现新版本 vX.Y.Z`(可点击进设置;不用红色、不弹阻塞横幅、不打断工作)。 - **手动更新**:用户打开设置 → 点「检查并更新」→ 下载在后台进行,完成后提示「已下载 vX,下次启动生效」。下载期间主界面照常可用。 - **应用**:下次双击 `Launcher.exe` 时秒切到新版,几乎无感;启动**永不因下载而卡住**。 - 更新源不可达 / 安装目录不可写时,给出明确文案并降级,不静默失败也不阻断使用。 @@ -256,7 +256,7 @@ HTTP 在线更新比内网共享面临更高风险,按以下层次防护: 分阶段落地,每阶段可独立验证: 1. **地基**:数据目录分离(第 5 节)。任何更新方案的前提。✅ 已实现。 -2. **检测通知**:启动时比对版本,有新版提示。✅ 已实现——`services/update_service.py`(`check_for_update` / 版本比较,支持 **`http(s)://` 源 + Basic Auth** 及本地路径,manifest 用 `utf-8-sig` 容忍 BOM)+ 主窗口后台线程检查 → `⚙ 配置` 按钮点亮角标(非阻塞)。 +2. **检测通知**:启动时比对版本,有新版提示。✅ 已实现——`services/update_service.py`(`check_for_update` / 版本比较,支持 **`http(s)://` 源 + Basic Auth** 及本地路径,manifest 用 `utf-8-sig` 容忍 BOM)+ 主窗口后台线程检查 → `⚙ 配置` 按钮左侧显示蓝色提示文字(非阻塞)。 3. **非阻塞更新(当前方向)**:✅ 已实现——下载与应用拆开,**启动不阻塞**。 - `services/installer.py`:`download_and_stage()`(app 内下载→SHA-256→解压→`staging\app.new`)、`apply_staged()`(启动器秒切 `app/app.old`,含「不比当前新则丢弃」「移动失败回滚」)、`staged_version()`。 - `src/launcher.py`:瘦身为 seed + `apply_staged` + 启动,**不联网**。 @@ -283,7 +283,7 @@ HTTP 在线更新比内网共享面临更高风险,按以下层次防护: ## 18. 验收要点 -- 有新版时 `⚙ 配置` 按钮亮角标,启动不被打断。 +- 有新版时 `⚙ 配置` 按钮左侧出现蓝色提示文字,启动不被打断。 - 设置里「检查并更新」能下载暂存,下载期间主界面照常可用,完成提示「下次启动生效」。 - 下载暂存期间 `app\` 不被改动;下次启动 `Launcher.exe` 秒切到新版,`app.old\` 保留旧版。 - 安装(切换)后用户自定义模板与偏好(`~/.cmbot`)完整保留。 diff --git a/tasks.md b/tasks.md index 52d31e7..c0ec62b 100644 --- a/tasks.md +++ b/tasks.md @@ -972,7 +972,7 @@ 前置阅读: - `docs/10-lan-update.md`(§3 两阶段架构、§6 时机、§8 流程、§12 体验) -- `docs/07-ui-design.md`(4.3 角标、4.4 设置对话框「检查并更新」) +- `docs/07-ui-design.md`(4.3 有新版本提示、4.4 设置对话框「检查并更新」) 背景: @@ -982,11 +982,11 @@ - [x] `services/installer.py`:`download_and_stage()`(app 运行时下载→SHA-256→解压→`staging\app.new`)、`apply_staged()`(启动器秒切 `app/app.old`,含「不比当前新则丢弃」「移动失败回滚」)、`staged_version()`、`is_writable` - [x] `launcher.py` 瘦身:seed + `apply_staged` + 启动,不联网;`tests/test_launcher.py` 重写 -- [x] `main_window`:发现新版点亮 `⚙ 配置` 红点(删除旧阻塞横幅与「打开更新目录」) +- [x] `main_window`:发现新版在 `⚙ 配置` 左侧显示蓝色提示文字(删除旧阻塞横幅与「打开更新目录」) - [x] `settings_dialog`:加「检查并更新」→ 下载暂存 → 「下次启动生效」 - [x] `tests/test_installer.py` 11 个单测 + 本地 HTTP server 真实端到端(下载暂存→app 不动→应用切换) - [x] 文档:`docs/10` §3/§6/§8/§12/§16/§18、`docs/07` §4.3/§4.4 对齐 -- [ ] GUI 实测:角标点亮 → 设置里更新 → 重启生效(真机) +- [ ] GUI 实测:提示文字出现 → 设置里更新 → 重启生效(真机) ## 18. 后续暂缓任务