Skip to content

test(desktop): Windows 10/11、WebView2、DPI 与重启恢复矩阵 #55

Description

@Qiyuanqiii

Parent: #37

问题概述 / Summary

当前 Desktop 主要通过开发机和自动化测试验证,尚缺发布前必须的人工作业系统矩阵:Windows 10/11、WebView2 runtime、不同 DPI/多显示器、第二实例和杀进程重开。

当前基线 / Current baseline

  • Desktop bootstrap、单实例、本地 API、React UI 与 portable preview 已存在。
  • Playwright/视觉测试不能完全替代真实 Windows 窗口、DWM/WebView2 和安装环境。
  • 测试不得关闭或操纵 Codex 主窗口。

范围 / Scope

  • 定义支持矩阵和可重复的人工/半自动测试脚本。
  • 覆盖 Windows 10/11、支持的 WebView2 runtime、100/125/150/200% DPI、多显示器和窗口移动。
  • 覆盖冷启动、第二实例、正常退出、强制 kill、重开、离线和损坏/缺失 runtime。
  • 验证主题、语言、侧栏拖拽、输入框、长对话、Markdown、Live Activity、审批和设置页。
  • 采集脱敏截图、版本、日志和通过/失败记录。
  • 将失败分类为产品 bug、环境不支持或发布 blocker。

非目标 / Non-goals

  • 不在本 Issue 重构 UI。
  • 不要求控制用户其他应用或浏览器。
  • 不把单一开发机结果作为全部 Windows 支持证明。

涉及目录 / Affected directories

  • cmd/cyberagent-desktop/
  • internal/desktop/
  • web/
  • scripts/
  • docs/
  • .github/workflows/(仅自动化部分)

依赖 / Dependencies

  • 可立即开始建立矩阵;最终签字应基于候选发布物。
  • 需要至少两台/两个 VM 环境完成人工验证,属于少量人工配合项。

验收条件 / Acceptance criteria

  • 支持的 OS/WebView2/DPI/显示器矩阵以版本化文档记录。
  • 冷启动、第二实例、正常退出、kill/reopen 与本地数据保留结果明确。
  • 侧栏、弹窗、输入、菜单、Markdown、Activity 在最小窗口和 200% DPI 不重叠/截断。
  • 缺失/损坏 WebView2 有清晰诊断,不显示空白或 Forbidden。
  • 不操作、关闭或复用 Codex/Chrome 的窗口与 Profile。
  • 测试日志和截图脱敏,不包含 API key、路径中的个人秘密或聊天内容。
  • 发布 blocker 有独立 Issue 或在本 Issue 明确关闭理由。
  • 自动 smoke 与人工 checklist 均可由他人复现。

人工配合 / Human assistance

需要在指定 Windows 版本/DPI 上启动候选 EXE、按 checklist 操作并附脱敏证据;其余脚本和判定应由仓库提供。

Activity

  1. added
    enhancementNew feature or request
    help wantedExtra attention is needed
    goPull requests that update go code
    javascriptPull requests that update javascript code
    desktopDesktop client and Windows distribution
    on Aug 13, 2026
  2. Qiyuanqiii commented on Aug 16, 2026

    @Qiyuanqiii
    MemberAuthor

    Issue #55 收尾进展(r4)

    已提交草稿 PR #86:Windows 10/11、WebView2 与 DPI 矩阵的仓库侧修复和证据均已落地。

    已完成

    • 修复高 DPI / 小分辨率下桌面壳层与设置页溢出问题。
    • WebView2 缺失、过旧或 DLL 损坏时改为 fail-closed,并显示有界的安全指引,不自动下载安装。
    • 测试脚本现在会等待真实主窗口,并兼容 Clients / ClientState 两类 WebView2 注册位置。
    • 真实 Windows 10 22H2 Hyper-V VM:100% / 125% / 200% 自动矩阵通过;100% / 200% 的 1024×768 壳层检查通过;离线启动,以及 WebView2 缺失、过旧、损坏三类降级检查通过。
    • Windows 11 主机 150% 自动矩阵通过。
    • 候选版本:v0.1.0-issue55-r4
      • 源修订:c3096e52bf1179b295840b2f5f24dd4708849499
      • SHA-256:86791c530996eea604501577287feadb7002296252fa344a96bb406c554934a4
      • 两次构建字节一致。
    • PR CI 已 5/5 通过:Go、TypeScript、Rust、macOS、Windows。

    仍需真人/硬件证据

    • 多显示器混合 DPI 跨屏移动(当前主机只有一个显示器)。
    • 完整交互式 UI checklist(需要操作员逐项输入并签字)。

    这两项已单独记录在 #85。基于上述真实边界,本次不使用 Closes #55,#55 保持打开,PR #86 保持 Draft,当前不声明 Windows release-ready。

  3. Qiyuanqiii commented on Aug 20, 2026

    @Qiyuanqiii
    MemberAuthor

    #55 后续:#85 的最后硬件/人工阻塞已解除

    #85 要求的双屏混合 DPI 与完整交互式 UI 签字现已在同一 clean candidate 上完成,修复与证据位于 Draft PR #121:#121

    • 候选:v0.1.0-issue85-r4
    • 源修订:c531bd2ed96b9c9f5210ab86358c15d647b5e984
    • EXE SHA-256:9b42e3e57b85954d3add54aa18d8a795738253b60f1c2370594956a9fe957dce
    • Windows 11 Pro build 26200 / WebView2 151.0.4129.93
    • Extend:2560×1600 / 150% 主屏 ↔ 3840×2160 / 200% 外接屏;同一候选不中途重启,跨屏往返通过
    • 精确 1024×768 logical window 的原始 test(desktop): 完成多显示器混合 DPI 与交互式 UI 签字 #85 UI checklist 全部通过
    • Checkpoint Rewind 已实际确认并完成,文件恢复 baseline、合成仓库 clean;独立 Fork 也已完成
    • GitHub Actions CI run #399:9/9 jobs success

    证据:

    测试后显示环境已恢复为 Extend、两屏均 150%,候选与 Settings 已退出。#55 保持 completed/closed,不重新打开;#85 将由 PR #121 合并时关闭。后来由 #117 / PR #120 加入的 Advanced Git 行仍属于其独立范围,本次不重复扩大签字声明。

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    desktopDesktop client and Windows distributionenhancementNew feature or requestgoPull requests that update go codehelp wantedExtra attention is neededjavascriptPull requests that update javascript code

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions