Skip to content

Moo Fleet 0.1.36

Choose a tag to compare

@charsen charsen released this 22 Oct 06:24
· 144 commits to dev since this release

本次更新

这一版集中在两处「每天都在看」的地方:顶栏太占地方,仓库详情页又太吵。顶栏从一排文字收成一排图标,多了 GitHub 入口与检查更新;详情页把重复的路径、常显的红色图标和三条描边都收了,并在空预览处补上真正可用的键位提示。

顶栏:先减字,再补入口

原来「操作记录」「刷新状态」各是一个带图标和文字的中等按钮,加上 LOCAL API 与 READY 两段常驻文字,右半边长期被这些状态占着。现在:

  • 操作记录与刷新退回图标,36 px、与其它图标按钮同一套 hover/聚焦样式;正在跑的时候图标位置不变,只换颜色与角标,不会因为文字出现消失而把右侧整排推来推去。
  • LOCAL API / READY 收成一个 7 px 圆点:有它、没它、异常三种状态仍然可分,靠颜色和 title 说明,不再用两段大写单词占一格宽度。
  • 新增 GitHub 入口,直接指向仓库主页;旁边是检查更新。
  • 窄窗口不再靠删改 CSS 层层叠,改成 900 / 520 / 420 px 三档:先收副标,再收快捷键提示与 GitHub,最后缩 logo。四档实测横向溢出都是 0。

检查更新:判断的是上游 tag,不是文案

点击才查,不跟页面轮询走。判断依据是 GitHub releases/latest 重定向到的那个 tag,与「发版记录里写了什么」无关——只比 MAJOR.MINOR.PATCH,v 前缀与 -beta 一类后缀不参与比较;解析不出来时按「没有新版本」处理,宁可不说有新版本。

这里踩了一个坑并绕开:api.github.com 匿名按 IP 限流 60 次/小时,本机实测第一次就 403。改成读 https://github.com/<owner>/<repo>/releases/latest 的 302 location——不认证、不占配额,请求带 redirect: 'manual',否则跟到 tag 页面就只剩 HTML。

失败不弹全局 toast:拿不到更新只是少一条提示,不该像操作失败那样打断人。查询成功后结果在进程内缓存 5 分钟,失败不缓存、只写中文原因(超时 / 连不上 / 被限流 / 上游还没有发布记录),面板里如实显示原因而不是「已是最新」——否则断网会被说成没有新版本。

版本号仍然只有一个来源:package.json,由 vite.config.ts 的 define 内联成 __APP_VERSION__,界面与检查逻辑共用它。

仓库详情页:去掉重复,把破坏性动作收起来

  • 同目录不再一行写一遍。平铺清单里连续同目录的文件只标一次路径,目录一变(或中间夹了根目录文件)才重新标;树形视图的目录行已经交代了层级,文件行不再写第二遍,行高从 40 px 收到 32 px,与目录行同高,滚起来不再一大一小交替。
  • 行尾的丢弃 / 删除默认不显示。16 行清单里常显就是一列红图标,像在催人点。现在 hover、键盘聚焦或当前正在预览的那一行才显形;位置一直预留,显隐不会让文件名跳动。触屏设备(hover: none)保持常显。
  • 「平铺 / 已标记 / 已忽略」三条去掉常显描边。三个同样粗细的框并排,会读成三个同等重要的动作;现在只有激活态才有底色和边框。「已标记」的图标从 EyeOff 换成书签——「眼睛划掉」更像隐藏而不是标记。
  • 工作区副行只留分支名。文件数量在「变化文件 N」和「已勾选 x / y」里各出现一次,第三遍只是稀释标题。
  • 提交卡:没选文件时不再显示「0 个文件」;禁用态的提交按钮从整宽品牌绿实心块改成透明描边——它比「提交」这个动作本身还抢眼;⌘/Ctrl ↵ 提示只在真能提交时出现。
  • 空预览的快捷键提示,以及一个被真机抓出来的问题:上一版这里写着「↑↓ 选择文件」,但焦点停在空白处时按键没有任何反应——原来的处理只认「焦点已经在文件按钮上」的事件,而焦点在页面根部时按键事件根本到不了文件列表。现在改成窗口级接管:焦点不在任何控件或其它浮层里时,↓ 从当前项往下、↑ 往上,没有选中时分别落到第一个和最后一个;焦点在按钮、输入框、分支列表或提交历史视图时一律让行,不抢别人已经定义好的上下键。
  • 顺带:Pull / Push 的 0 徽标为 0 时不再渲染;顶栏「刷新」前加一条 1 px 竖线,与走网络的 Fetch / Pull / Push 分开。

说明

  • macOS 包为 ad-hoc 签名的内测包,未经公证;请用 DMG 内的「安装 Moo Fleet(内测)」,不要手动拖进「应用程序」(下载隔离属性会导致应用无法启动)。Apple Silicon 与 Intel 请选对应架构的 DMG。
  • Windows 与 Linux 包未做代码签名,首次运行可能触发系统警告。
  • 本版没有新增遥测;唯一的对外请求是用户主动点击「检查更新」时读取一次公开的 releases 页面。

验证

  • 类型检查、106 文件 / 904 用例、生产构建全部通过。
  • 真机复核(真实 Chrome + 真实 git 仓库,含重命名、部分暂存、根目录文件与深路径):平铺目录去重、树形视图行高一致、行尾图标 hover 显形且不抖动、三条开关只有激活态有描边、空预览键位可用,均已实测;焦点在顶栏按钮 / 分支列表 / 提交历史视图时按上下键都不被劫持。
  • 布局在 1440 / 1280 / 1024 三档无横向溢出;900 视口下详情页右侧被裁属于既有的 1024 px 最小宽度约束,不是本版引入。