Skip to content

Issue 168 Validation

clean edited this page Oct 2, 2026 · 2 revisions

Issue #168:工作区列表与标签页方案 A 验收

背景与确认方案

初版通过中文身份标签和目录路径解决同名 worktree 的辨认问题,但列表行占用较多空间,顶部标签页仍只显示仓库名。用户选择方案 A:用类型图标和短名称维持单行密度,让列表与标签页使用同一身份。

继承现有 Moonlight token、字体和 Ant Design 图标,不扩展全局组件规范。

实现与取舍

  • 列表固定 36px,标签页控件 39px。文件夹表示主工作区,分叉图标表示关联工作区;身份未知时不推断类型。
  • 同名工作区显示如 alune · Desktop、alune · issue-136-diff-theme。从完整登记表计算同一来源内最短可区分的路径,搜索、关闭或排序标签页不会改变身份;不依赖分支名。
  • 先省略与仓库名重复的末级目录,再解决路径碰撞。父目录与嵌套子目录同时登记且名称相同时,保留必要目录段;Windows 驱动器和 POSIX 字面反斜杠仍能区分。
  • 列表与标签页复用身份和详情组件。悬停或键盘聚焦可查看类型、来源、分支和完整路径;Escape、点击切换可关闭详情。
  • 本机标签页显示电脑图标,远程保留服务器图标与连接名称。184px 窄侧栏优先显示区分工作区的短名称,完整名称保留在可访问标签与详情中。
  • 干净状态隐藏常驻勾号,保留可被观察的元素以继续状态刷新。异常、过期、改动及加载仍可见。
  • 行尾更多菜单包含复制完整路径、移除仓库登记;移除继续使用显示完整路径的确认弹窗。
  • 不改变 Git 后端、登记接口、持久化格式或依赖。

前后截图

修改前的列表与标签页,来自本次用户反馈:

Alune 修改前:文字身份与路径占据多行

Alune 修改前:标签页同名工作区无法区分

用户选定的 A 稿与实现局部对照(同尺度裁剪,未拉伸):

Alune 方案 A 与实现的列表、标签页对照

实现浅色 / 深色主题,使用生产 Web 构建和隔离示例数据;裁去底部路径状态栏:

Alune 方案 A 浅色实现

Alune 方案 A 深色实现

验收标准与实际结果

  • 主工作区和多个关联工作区在列表与标签页使用一致、可区分的身份。
  • 同分支、未知类型、detached HEAD 不影响身份区分;不因同名而误判关联类型。
  • 搜索、切换、排序、关闭保持身份稳定;不同 SSH 连接显示来源名称。
  • 184px 侧栏与浅色 / 深色主题可读,完整路径支持悬停与键盘查看。
  • 更多菜单、移除确认及取消可用;真实工作区切换、暂存隔离和关闭通过桌面回归。

2026-10-02,macOS arm64、Node 25.5.0、Electron 44.2.0。提交前在独立工作树安装干净依赖,验证本次代码,不包含另一个 PR 界面改造。

检查 / 场景 结果
npm test -w web 238 / 238 通过;包含路径碰撞、嵌套登记、Windows / POSIX、状态、排序和会话用例
npm run build -w @alune/shared、npm run build -w web 通过;保留现有大 chunk 体积提示
npm run desktop:build 6 个任务通过;4 个命中未改变依赖的构建缓存,Web 与 desktop 重新构建
npm run test:worktrees -w desktop 通过;隔离 Electron + 真实 loopback SSH / Git,验证类型图标、列表与标签页身份一致、独立暂存、Diff、切换、去重、关闭、detached HEAD 和 320px 窗口
浏览器,1280 × 720,280px / 184px 侧栏 三个工作区同为 main 仍可区分;搜索、Alt + 左箭头排序、关闭、两个远程来源、深浅主题、更多菜单、移除确认及取消、详情焦点和 Escape 通过;控制台 error 为空
修改文件 Prettier、git diff --check、commitlint、推送版本检查 通过

初次全量前端回归发现旧组件测试缺少新的共享身份参数,已补齐并重新通过。桌面脚本原先检查已移除的文字标签,已改为验证图标、可访问身份及可见组合名称;更新中出现的选择器范围与仅比较短路径的问题也已修正,最终真实桌面回归通过。提交前另修复嵌套登记简写后重名的问题并补充回归测试。

截图验收先发现选中背景过浅,已改用 sidebar-active 并重新截取;最终对照无未解决的主要视觉问题。

兼容、边界与回退

本次仅改变前端展示和操作入口,无数据库迁移。完整信息从常驻行内文字移至详情,窄侧栏有意优先显示区分名称。Windows / Linux 原生桌面交互未在本机执行;跨平台路径逻辑有单元测试。没有替换用户正在使用的安装版本,也没有创建发布包。

代码可单独回退本提交;Wiki 有独立历史,回退时需同时核对这份验收与截图。

关联资料

Clone this wiki locally