Skip to content

fix(v1.3.1-5): 胶囊动画 + Qwen3 灰显 + 5 SVG 重画 + 6 项 Windows 视觉修复 + polish 反降级#423

Merged
appergb merged 5 commits into
betafrom
fix/v1.3.1-5
May 12, 2026
Merged

fix(v1.3.1-5): 胶囊动画 + Qwen3 灰显 + 5 SVG 重画 + 6 项 Windows 视觉修复 + polish 反降级#423
appergb merged 5 commits into
betafrom
fix/v1.3.1-5

Conversation

@appergb
Copy link
Copy Markdown
Collaborator

@appergb appergb commented May 12, 2026

User description

v1.3.1-4 验证后用户 surface + 多 agent 流程产出。本 PR 5 个 commit,3 个 dev task + 6 项 review/用户修复 + 1 项 polish prompt 加强。

主线 3 个 dev task(agent-spawned worktree, reviewer 全部 approve-w/concerns)

1. 胶囊动画重做(dev-capsule ad6cd93b

  • 进入:从中心冒出 → 左右生长(scaleX .18 → 1, opacity 0 → 1, 260ms)
  • 退出:左右收缩 + 淡化 + 下移(scaleX 1 → .18 opacity 1→0 translateY 0→8px, 240ms)
  • 引入 leaving 状态 + lastVisibleState 快照保留退出帧视觉内容
  • 删除 Windows animation: 'none' 路径,全平台一致

2. Windows 千问3 ASR 灰显 disabled(dev-qwen3 a981815b

  • opacity:0.5 / filter:grayscale(0.4) / pointerEvents:none 包整段 Qwen3 卡片
  • 顶部添加 qwenUnavailableOnWindows banner,5 个 locale 完整翻译
  • macOS 视觉零变化

3. 5 个 SVG 图标重画(dev-icons f44eb595

  • translate / vocab / history / overview / selectionAsk 全部重画
  • 风格统一 Lucide / Feather 单 path stroke
  • 单 commit +10/-5 only Icon.tsx

review/用户修复(35d53b8 "polish + Windows visual fixes")

review-capsule High

  • EXIT_ANIM_MS / INITIAL_VISIBLE_STATE 抽 const 去 magic number
  • 修正 effect race 注释

review-qwen3 High

  • inert HTML5 属性让键盘 Tab 也跳过 disabled 区域

review-icons High (×2)

  • overview 加 sparkline 区分 layout icon(之前 14px nav 无法分辨)
  • selectionAsk 气泡尾巴 y 24→23 防止 viewBox 底边裁切

用户新 surface(v1.3.1-4 实机验证后)

  • Vocab 词条大椭圆真根因:父 flex minHeight:80 + chip 默认 align-self:stretch 把 chip 拉到 80px 高,borderRadius:999 渲染成超大椭圆。修:chip 加 alignSelf:flex-start
  • Windows 原生顶栏 vs 玻璃色差大

polish prompt 加强(76e0723

用户报 DeepSeek V4 Flash 走 Structured 不输出双层 list、退化成连贯段落。Structured task block 加 2 条新规则:

  • 不可降级到轻度润色 —— 最低输出形态是双层 list,事项 ≥3 必须双层化
  • 多个组合需求处理规则 —— 按语义分大类、按口述顺序排、每大类 (a)(b)(c) 子项

Test plan

  • 胶囊出现:从中心冒出向两边生长动画流畅;macOS + Windows 一致
  • 胶囊消失:左右收缩 + 下移 + 淡出 ~240ms 后才卸载
  • Windows: Settings → Advanced → Local ASR:千问3 整段灰显且键盘 Tab 跳过
  • Windows: 顶栏色 (rgb 245,245,247) 跟 sidebar glass 视觉接近
  • Windows: Vocab 词条紧凑 pill,无大椭圆
  • DeepSeek V4 Flash 多组合需求输入:输出双层 list 不退化连贯段落
  • macOS: 视觉零变化(流量灯 / 入场动画 / 玻璃感)
  • Icon 视觉检查 5 个新图标在 14px nav 大小下都清晰可辨

后续待做(v1.3.1-6+)

  • 用户希望调研"完全取消 Windows 原生顶栏(像微信那样自绘)"——属于 large rewrite,本 PR 范围之外,单独追

PR Type

Enhancement, Bug fix


Description

  • Refine Windows title bar and glass

    • Match caption tint to glass
    • Raise sidebar translucency and blur
  • Disable Qwen3 on Windows

    • Add inert, greyscale, warning banner
    • Preserve macOS model management flow
  • Polish capsules, icons, and chips

    • Add center-grow exit animation
    • Redraw icons and fix stretching
  • Strengthen structured polish prompts

    • Require two-level lists consistently

Diagram Walkthrough

flowchart LR
  A["lib.rs + WindowChrome.tsx"] -- "align caption and glass" --> B["Consistent Windows chrome"]
  C["LocalAsr.tsx + i18n"] -- "disable unsupported Qwen3 on Windows" --> D["Safer ASR settings"]
  E["Capsule.tsx"] -- "center-grow and fade-out" --> F["Smoother dictation feedback"]
  G["Icon.tsx + Vocab.tsx"] -- "redraw icons and fix chips" --> H["Clearer navigation UI"]
  I["polish.rs"] -- "stricter structured prompt rules" --> J["More reliable polishing"]
Loading

File Walkthrough

Relevant files
Bug fix
3 files
lib.rs
Match Windows caption to glass background                               
+6/-4     
LocalAsr.tsx
Gray out Windows Qwen3 manager                                                     
+66/-26 
Vocab.tsx
Prevent stretched vocabulary chips                                             
+4/-0     
Enhancement
9 files
polish.rs
Restore stricter structured polish guidance                           
+9/-0     
Capsule.tsx
Add symmetric capsule exit animation                                         
+67/-7   
Icon.tsx
Redraw navigation icons for clarity                                           
+10/-5   
WindowChrome.tsx
Unify glass opacity across platforms                                         
+3/-2     
en.ts
Add Windows Qwen3 warning string                                                 
+1/-0     
ja.ts
Add Windows Qwen3 warning string                                                 
+1/-0     
ko.ts
Add Windows Qwen3 warning string                                                 
+1/-0     
zh-CN.ts
Add Windows Qwen3 warning string                                                 
+1/-0     
zh-TW.ts
Add Windows Qwen3 warning string                                                 
+1/-0     

baiqing added 5 commits May 12, 2026 17:26
review 阶段标的 4 个 High 全部处理,加上用户在 v1.3.1-4 装机后新报的 2 个
Windows 视觉问题,本 commit 一次性收:

[review-capsule High]
- Capsule.tsx 抽 EXIT_ANIM_MS / INITIAL_VISIBLE_STATE 两个 const,去掉
  `240` magic number + `isTauri ? 'idle' : 'recording'` 字面量重复
- 修正退出动画调度的 race 描述注释(cleanup clearTimeout 阻止 fire,
  不是"定时器仍会触发")

[review-qwen3 High]
- LocalAsr.tsx Windows Qwen3 disabled wrapper 加 `inert` HTML5 属性,
  让键盘 Tab 也跳过 disabled 区域(仅靠 pointerEvents:none 不挡键盘 +
  aria-disabled 不传给后代)。两个 wrapper 都加。@ts-expect-error
  注释解释为何这里需要绕过 TS lib.dom 旧版未收录 inert 属性。

[review-icons 2 High]
- Icon.tsx `overview`: 在三个 dashboard tile 顶部加 sparkline 数据线
  区分 layout icon(之前几乎一样,14px nav 视觉无法分辨)
- Icon.tsx `selectionAsk`: 气泡尾巴 y=24 → y≈23,避免 strokeLinecap
  round + strokeWidth 1.5 出 viewBox 底边被裁

[用户新 surface — Vocab 词条大椭圆]
- Vocab.tsx VocabChip 加 `alignSelf: 'flex-start'`。真根因(之前 PR
  #422 误判为 button user-agent appearance):父 flex 容器 minHeight: 80
  让 flex item 默认 align-self: stretch 把单个 chip 拉伸到 80px 高,
  borderRadius:999 渲染成超大椭圆。alignSelf:flex-start 阻止拉伸。

[用户新 surface — 顶栏 vs 玻璃色差]
- lib.rs DWMWA_CAPTION_COLOR 从纯白 0xFFFFFF → 0x00F7F5F5
  (rgb 245,245,247) 跟 WindowChrome glass linear-gradient 起始色一致
- WindowChrome.tsx glass alpha 0.78 → 0.92(PR #422 为加强玻璃感降的,
  现在为压缩色差升回去,玻璃感由 backdrop-filter blur+saturate 提供)

后续:用户希望调研"完全取消 Windows 原生顶栏(像微信那样自绘)"——
属于 v1.3.1-6 级别 large rewrite,单独追。
用户报 DeepSeek V4 Flash 走 Structured 模式时仍只做轻度润色(标点 + 断句
+ 去口癖然后输出一段连贯段落),没有按双层 list 结构化输出。模型能力较
弱时容易把"清晰结构"理解成"清楚地表达"而非"双层归类"。

加两条新规则到 Structured task block:
1. **不可降级到轻度润色** —— 明确禁止只补标点然后输出连贯段落,最低
   输出形态是双层 list。即使原文听起来连贯,事项 ≥3 都必须双层化。
2. **多个组合需求处理规则** —— 用户原话:"当用户提出多个组合需求时,
   要分别归入不同大类,并且按照顺序把这些组合需求做结构化整理"。
   写进规则:按语义/领域分大类,按口述顺序排,每个大类用 (a)(b)(c)
   子项,不允许合并丢失或重排到错误大类。

加在原有 # 任务(清晰结构) 标题之后、"**重要前提**"之前。前后顺序与
其他段落兼容,不动 ROLE_BLOCK / COMMON_RULES / OUTPUT / 示例。
@appergb appergb merged commit 784f947 into beta May 12, 2026
4 checks passed
@appergb appergb deleted the fix/v1.3.1-5 branch May 12, 2026 09:45
appergb pushed a commit that referenced this pull request May 12, 2026
PR #423 合并后 bump。本版本相对 v1.3.1-4-beta 累积:

[3 个 dev task] (worktree-isolated dev agents + 3 个 reviewer)
- 胶囊动画:进入从中心冒出向左右生长,退出左右收缩 + 淡化 + 下移
- Windows 千问3 ASR 灰显 disabled + 不可激活提示 banner
- 5 个 SVG 重画:translate / vocab / history / overview / selectionAsk

[review feedback fix]
- Capsule EXIT_ANIM_MS / INITIAL_VISIBLE_STATE 抽 const
- Qwen3 disabled 区加 inert 让键盘 Tab 跳过
- overview icon 加 sparkline 数据线区分 layout icon
- selectionAsk 气泡尾巴拉到 y=23 防 viewBox 24 底裁切

[用户实机 surface]
- Vocab 词条大椭圆真根因:父 flex minHeight 拉伸子 item,加
  alignSelf:flex-start 阻止
- Windows 原生顶栏 vs 玻璃色差:caption color 0xFFFFFF → 0x00F7F5F5
  跟 glass 起始色一致;glass alpha 0.78 → 0.92 压色差

[polish prompt 反降级]
- Structured task block 加"不可降级到轻度润色"和"多个组合需求归类规则"
@github-actions
Copy link
Copy Markdown

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

422 - Partially compliant

Compliant requirements:

  • Set Windows caption color via DWMWA_CAPTION_COLOR.
  • Unify the glass styling across macOS and Windows in WindowChrome.
  • Restore the detailed ROLE_BLOCK polish prompt.

Non-compliant requirements:

  • Default the font scale to large on fresh Windows installs.
  • Extend the button reset to fully neutralize Chromium Windows user-agent styles.

Requires further human verification:

  • Verify the Windows caption color and glass effect visually on supported Windows builds.
  • Verify the polish prompt produces the intended structured output in practice.
⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ No major issues detected

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant