Repository navigation
Issue 171
- 类型:优化
- 状态:已实现,本地验证通过,待 PR 审阅与合并
- Issue:https://github.com/ShaoClean/Alune/issues/171
- PR:https://github.com/ShaoClean/Alune/pull/172
- 最近更新:2026-10-02
- 代码基线:
1d5cbe11ba537ed59c7135a7865b6dc616b8b7ee(development) - 实现提交:
ac9840ac989246b34f3089048f92d3e2ab16dc29
原有弹窗中的长分支名、完整路径多次换行,每项常驻的红色删除按钮又增加视觉噪声。当前工作区混在其他条目之间,打开、创建和删除的层级不清晰。
本次按现有 Alune-UI 规范重排该业务弹窗,目标是让当前工作区易于辨认、列表便于扫描、常用操作集中。范围仅限 Worktree 弹窗;整体 UI 改版由 Issue #170 跟踪。
- 顶部展示仓库上下文,并集中刷新和本地新建操作。
- 当前工作区放在单独的浅色强调区域,其他工作区显示数量并独立滚动。
- 常规条目采用分支名、路径两行;文本超宽时省略,通过 Tooltip 查看完整分支和路径。禁用的当前条目也可触发提示。
- 打开箭头放在小圆形容器内;删除收进每行更多菜单。继续使用原有 L2 弹窗及勾选确认,取消不调用删除接口。
- 保留裸仓库、锁定、目录失效和游离 HEAD 的说明及原有操作限制;SSH 仓库没有本地创建、删除入口。
- 更多菜单和整个弹窗分别处理 Escape,关闭后恢复到各自触发按钮;创建和删除弹窗打开时不误关闭父级列表。
参考用户指定的 high-end-visual-design 技能,采用柔和结构、嵌套表面、细线图标和克制动效。遵循 UI 规范 和 弹窗系统 的紧凑桌面工具节奏,不将展示页的大标题、巨量留白或滚动入场动画直接搬入业务列表。
具体采用参数:最大宽度 440 CSS px,常规条目最小高 68px,桌面内容边距 16px,窄窗口 12px;分支 13px、路径 Geist Mono 10px、标题 15px。颜色、圆角、浮层阴影及过渡复用共享 token,没有引入全局主题或字体变更。删除旧 index.css 中与列表布局重复的分隔线样式。
- 当前工作区独立置顶,其他条目滚动时保持可见。
- 常规条目维持两行,完整分支和路径可通过提示读取。
- 新建、刷新、打开、错误重试和删除确认流程保持可用。
- SSH 与特殊状态的原有能力和限制保持一致。
- 更多菜单 Escape、父面板 Escape 和焦点恢复通过检查。
- 浅色/深色、320px/390px 窄窗口无横向溢出,减少动态效果设置生效。
- PR 审阅并合入 development。
下列图片中的本机用户目录前缀已使用不透明色块遮盖。原始反馈截图由用户提供,版本与缩放比例未提供;新版为 2026-10-02 在 macOS arm64 / Chromium 中渲染真实组件的截图,API 返回值使用临时模拟数据。两者缩放和裁剪范围不同,不据此推算像素级高度变化。




环境:2026-10-02,macOS arm64,Node.js v25.5.0。以下运行结果对应本次实现;代码基线与原工作分支的文件树一致,转入 development 的新分支没有引入额外源文件差异。
| 命令或场景 | 结果与边界 |
|---|---|
npm run build -w web |
TypeScript 与 Vite 构建通过;保留既有大包体积警告 |
cd apps/web && node --import ./tests/resolve-ts.mjs --test tests/worktrees.test.mjs |
3 项通过:登记/标签去重、过期登记响应、跨工作区状态与 Diff 隔离 |
npx prettier --check apps/web/src/components/WorktreesPanel.tsx apps/web/src/workspace-layout.css apps/web/src/index.css |
通过 |
git diff --check |
通过 |
| 真实组件与 store,模拟 API:新建及打开 | 分别进入对应新建/打开的仓库路由;未访问真实 Git 目录 |
| 更多菜单、删除确认 | Escape 恢复更多按钮焦点;未勾选时确认按钮禁用;取消不调用删除接口 |
| 父弹窗与完整文本提示 | Escape 关闭后恢复工具栏焦点;禁用当前条目可查看完整分支与路径 |
| 特殊状态、SSH、空列表与错误重试 | 锁定/失效条目没有删除入口;裸仓库不可打开;游离 HEAD 显示提交;SSH 无本地操作;空列表与错误重试正常 |
| 390px/320px、长列表、减少动态效果 | 无横向溢出;列表可滚动、当前工作区位置稳定;减少动态效果下过渡为 0s |
| Windows/Linux 原生桌面、安装包、真实 SSH/Git 创建删除、200% 缩放、专门对比度测量 | 本次未重新运行;不计为通过 |
浏览器验收使用临时预览夹具,检查完成后已移除;不作为新增自动化测试交付。
无 API、Git 命令、持久化格式或共享组件实现变更。删除入口增加一级菜单,超长内容通过提示读取。应用层修改集中在 WorktreesPanel.tsx、workspace-layout.css 和旧规则清理,回退代码提交即可恢复原列表;Wiki 记录需单独回退。
设计文档首页 · Alune 品牌说明 · 维护约定 · 代码仓库