Skip to content

Issue 31 Validation

clean edited this page Sep 17, 2026 · 2 revisions

Issue #31:工作区 UI 重构验收

实现结果

左侧仅保留一个仓库总览入口,仓库树按连接分组并支持搜索。设置与帮助集中到应用菜单;左栏隐藏时,入口移至顶栏。中央展示 Diff,右侧放置改动分组与提交草稿;提交历史仍支持文件列表、元数据与单文件差异,分支、储藏和远程入口继续可用。

顶栏始终提供左右面板开关;不使用右侧面板的分支、储藏和远程视图禁用对应按钮。Diff 的专注阅读按钮同时隐藏两侧,恢复按钮仍在顶栏。默认侧栏宽度为 236px / 320px,顶栏 48px、状态栏 26px。主色继续使用 #2563eb,侧栏 #eef3f9。窄窗口继续采用列表 / Diff 切换。

布局设置新增右侧显隐与默认 Diff 模式。旧偏好会补齐新字段,已保存的宽度和树排序继续保留;没有更改存储版本、SSH API 或 Git 执行逻辑。隐藏面板保留文件选择、筛选、Diff 模式和提交草稿。

自动检查

检查 结果
npm run build -w web 通过;TypeScript 和 Vite 构建成功。保留原有的大 bundle 提示
npm run test -w web 46 / 46 通过;涵盖旧偏好兼容、所有显隐组合的空间分配、重载 / 恢复默认、草稿隔离、过期差异响应与多 hunk 行号
npm run desktop:build 通过;5 个构建任务完成,原生 SQLite 重建成功
npm run desktop:test 的单元测试阶段 41 / 41 通过
Electron 集成冒烟测试 通过;write / restore 两阶段成功,覆盖 AI 设置、Diff / 专注阅读 / 暂存、仓库加载、树排序、布局跨进程恢复、更新设置与既有集成场景
git diff --check 通过

桌面首次在隐藏的 .cindy-worktrees 路径启动时,Express 的静态文件服务拒绝该路径,深链接返回 404。未修改生产静态文件服务;将同一份构建复制到普通临时目录,在隔离数据目录重新执行桌面冒烟脚本。测试使用模拟更新源,不连接 GitHub 更新源或安装真实应用。

浏览器交互回归

所有浏览器截图使用仓库内 workspace fixture 的演示连接、路径与 Git 数据;Git 写操作仅改变内存,不访问用户的真实远程仓库。

场景 结果
双侧显示、仅隐藏左侧、仅隐藏右侧、双侧隐藏及恢复 通过;中央 Diff 随空间扩大,页面没有横向溢出
应用菜单只出现一次;隐藏左侧后在顶栏可达 通过;设置、布局分类及帮助文档链接均可访问
Cmd+B / Cmd+Shift+B / Cmd+, / Esc 通过;分别切换左右、打开设置、关闭菜单 / 窄屏导航
专注阅读隐藏两侧 通过;文件选择、提交摘要和描述保留
面板隐藏后文件筛选保留;按名称筛选仓库 通过
右侧分隔线键盘与指针方向 通过;ArrowLeft 从 320 调至 330,向左拖动 50px 调至 380
重载后恢复宽度与默认分栏模式;恢复默认不改变树设置 通过;浏览器回归及状态测试共同覆盖
统一 / 分栏差异 通过;旧 / 新行号随 hunk 更新,分栏长行折行
1440 / 1280 / 900px 下分栏长行 通过;代码单元无截断,Diff 无横向溢出。900px 工具栏自动换行
768 / 375 / 320px 列表与 Diff、返回列表 通过;提交区域可见、无页面横向溢出
320px 设置页与导航抽屉 通过;设置分类可选,Esc 可关闭抽屉
仓库切换与草稿隔离 通过;A / B 仓库各自保存草稿,返回 A 后原文恢复
暂存 / 取消暂存 通过;请求参数正确,当前文件随暂存侧变化并刷新差异
提交 / 获取 / 拉取 / 推送 通过 fixture;提交后清空已提交草稿,反馈和状态更新正确
提交历史及单文件历史差异 通过;提交信息、3 个文件和选中文件的 Diff 均可读取
分支切换、远程端点、储藏空状态 通过 fixture;切换 main、显示 origin 及储藏入口

布局尺寸检查 JSON · 分栏长行检查 JSON

前后截图与关键状态

重构前

重构前

重构后:工作区、中央 Diff、右侧改动与提交

主界面

左右面板的四种状态

主界面为双侧显示,下列依次为隐藏左侧、隐藏右侧和隐藏双侧。

隐藏左侧 隐藏右侧 专注阅读

集中菜单与布局设置

集中菜单 布局设置

分栏与小窗口

分栏视图 1280px 分栏 900px 工具栏换行 320px 差异 320px 设置

尚未覆盖

  • 真实 SSH 服务器上的提交、推送、拉取、分支与储藏写操作;上述 UI 操作使用隔离 fixture,桌面测试模拟 GitCommands。
  • Windows / Linux 上的实际桌面运行和安装包验收。
  • 应用重构保持草稿 PR,Issue 不关闭,待审阅和剩余环境回归。

Clone this wiki locally