Skip to content

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 04 Jul 03:10
4573065

Hyper Git - Agentic Git v0.0.9 — 视图整合 · UI 系统化 · 分支与 CI 增强

为 VS Code 带来统一的 Git 变更管理提交工作流。本版本是自 v0.0.6 首个 MVP 正式版以来的首个公开正式版本,聚合了 0.0.7 / 0.0.8 / 0.0.9 三轮迭代成果。

自首个 MVP 之后,本版围绕「消除冗余、对齐全 IDE 体验、系统化 UI」做了一次内聚重构与全局打磨:移除与 Commit 视图数据同源的冗余 CHANGES 视图并把其全部能力零回归平移入 Commit webview,为 Commit / Log 两个文件列表补齐 IntelliJ / VS Code SCM 同款的「按目录分组」,为 Log 提交图补齐悬浮详情;同时建立共享设计 Token 地基、统一命令层与 TreeView 呈现,并增强分支管理与 Log × CI 集成。侧边栏视图数由 7 降为 6,提交工作流更聚焦。


✨ 亮点速览

  • Commit 视图整合(移除 CHANGES):原 CHANGES 树的活动 Changelist 与 Commit 视图完全重复,现删除 CHANGES,文件单击看 Diff、单文件右键菜单、Changelist 切换与管理、Git 工具栏与未提交角标零回归平移入 Commit 视图。
  • 文件列表按目录分组:Commit 与 Log 的变更文件列表新增 List / Tree 段控,树形按目录折叠(对齐 VS Code explorer.compactFolders),Commit 树附目录级三态复选框;偏好按视图记忆,切换零往返。
  • Log 提交悬浮详情:悬停任一提交行,浮层展示分支/标签/HEAD、完整提交消息(subject + body)、作者与提交者、绝对+相对时间、完整 SHA;与 CI 浮层互斥,i 键开 Esc 关。
  • UI/UX 全局系统化:建立共享设计 Token 地基、命令层去冗余、~94 项英文统一、Webview 与 TreeView 加固,色彩体系随深浅主题自适应。
  • 分支与 CI 增强:远程分支右键删除、一键清理已删远程分支;Log × CI 状态防闪烁与准实时刷新。
  • 品牌视觉升级:透明底 Emerald 绿环图标 + Marketplace 深绿页头。

🧩 完整能力

Commit 视图整合(原 CHANGES 视图能力全量平移)

CHANGES 树视图与 Commit 视图顶部「Active Changelist」展示同一份数据(同源 service.getChanges() + registry.getGroups()),属冗余。本版本删除 CHANGES 视图,其独有能力全部迁入 Commit webview:

  • 文件交互:活动 Changelist 文件单击打开原生 Diff(HEAD ↔ Working);右键原生 QuickPick 菜单执行 Open Diff / Move to Changelist… / Show History / Stage·Unstage Hunks… / Add to .gitignore / Discard Changes(含 discard 确认框)。
  • Changelist 管理:头部 <select> 切换活动列表; 菜单新建 / 重命名 / 删除(默认列表不可改名删除)。
  • Git 工具栏与角标:原挂在 CHANGES 标题栏的 refresh / push / pull / fetch / push 对话框 / updateProject / createPatch / applyPatch 迁至 Commit 视图标题栏(去掉与 webview 内按钮重复的 commit / commitAndPush);活动栏未提交数角标改由 Commit WebviewView.badge 承载(首帧未 resolve 以 pendingBadge 兜底)。
  • 命令实参单一事实源:文件级命令统一接受 ChangeItem | 路径字符串,host 经 resolveChange 回落 service.getChanges() 解析;右键菜单复用 Log 视图「webview postMessage → host showQuickPick → 复用既有命令」范式,键盘可达、无 CSP/焦点陷阱。

变更文件目录树切换(Group By Directory)

Commit 视图活动 Changelist 文件列表、Log 视图选中提交的「Changed Files」列表,均支持在平铺列表按目录分组的树形之间切换(工具栏 List/Tree 段控),默认平铺,偏好按视图各自记忆。

  • host 算树、webview 渲染:新增纯逻辑 engine/tree/file-tree.buildFileTree,host 侧按同批扁平文件路径构建目录树随 payload 下发(复用 graph-layout「host 算、webview 渲」范式,规避内联脚本无法 import engine 的 Split-Brain);叶子以 fileIndex 回指扁平列表,不复制条目数据。
  • 对齐 VS Code / IntelliJ:目录在前、文件在后,数字感知升序稳定排序;单目录子链 compact 折叠(如 a/b/ca/b,对齐 explorer.compactFolders 默认行为)。
  • Commit 目录三态:树形叶子勾选 + 目录级三态复选框(全选/部分/未选)级联,Select All 基于全量文件;Log 为只读浏览。切换/折叠零 host 往返。

Log 提交悬浮详情(Commit Tooltip)

鼠标悬停 Log 视图任一提交行,以浮层快速展示该提交的完整信息,零往返、零延迟(数据随首帧图下发):

  • 内容:所在本地/远程分支、标签、HEAD;完整提交消息(subject + body,多行保留、超长滚动 + 截断);作者 name <email>;(与作者不同时的)提交者;作者/提交时间(绝对 + 相对);完整 SHA。
  • 复用 CI 浮层范式:浮层置于虚拟滚动 #rows 之外(重写行 DOM 不销毁);与 CI 浮层互斥;滚动、刷新、切换范围、增量数据均即时消隐;i 键打开、Esc 关闭(stopPropagation 不与 Enter→提交菜单冲突)。
  • 取数扩展git log --format%cn(提交者)、%cI(提交时间)、%b(正文,置末字段,记录以 RS 终止、字段以 NUL 分隔,正文内换行/管道/反斜杠不被误判为边界);正文 host 侧 capBody 截断至上限以控 payload。
  • XSS 安全:分支名/标签/作者/正文等一切外部内容均经 esc() 转义后注入。

UI/UX 全局系统化

一次覆盖样式、命令层、Webview 与 TreeView 的系统性打磨,抬升整体一致性与可访问性:

  • 设计 Token 地基:新增 shared-styles.ts 统一 spacing / radius / .hg-btn 等样式,注入 Commit / Log / Merge / Rebase 四个 Webview;Log DAG 泳道色改读 --vscode-charts-* 主题令牌,深浅主题自适应。
  • 命令层去冗余:标题栏瘦身至 ≤5 项,同步操作(push/pull/fetch 等)下沉 1_sync 溢出组,危险操作(delete/discard/drop 等)归入 9_dangerous 分组;新增 hyperGit.logFilter 聚合命令(QuickPick 分发过滤器);~94 项命令标题 / 配置项 / viewsWelcome 统一英文,并为约 20 个高频与危险命令补齐 codicon 图标。
  • Webview 功能与可访问性加固:Commit(文件空态、提交中 spinner、Ctrl/Cmd+Enter 快捷键、全选/全不选、Advanced 折叠)、Log(错误态 + Retry、详情面板关闭按钮、双击打开提交)、Merge(冲突导航栏、逐冲突 Resolved/Unresolved 徽标、ARIA)、Rebase(执行前确认、操作摘要栏、拖拽柄、Cancel)。
  • TreeView 打磨:新增 tree-tooltip.ts 统一 5 棵树的 Markdown Tooltip;Branches 分组头显示 (N) 计数徽标、活动/收藏分支配色统一;Stash / Worktree 描述相对时间、emoji 改 codicon、当前项高亮。

分支管理增强

  • 远程分支右键删除:远程分支支持右键删除(git push --delete <remote> <branch>),无需切到命令行。
  • 清理已删远程分支:新增「Clean up Deleted Remote Branches」命令,一键剔除远端已删除却仍残留于本地的 remote-tracking 引用,根治 Log 视图残留已删分支提交的游离泳道。

Log × CI 状态改进

  • 提交图更干净(Log All 范围修复):Log 的「All」范围由 --all 改为 --branches --tags --remotes,剔除宿主 AI 编码工具注入的 refs/conductor-checkpoints/*refs/conductor-archive-heads/* 内部引用带来的游离提交泳道污染;Checkpointer 页保留 --all 以见原始完整图。
  • CI 状态更稳定:状态图标终态缓存以防闪烁、轮询间隔优化实现准实时刷新,各检查项状态图标与 Tooltip 颜色按通过 / 失败 / 运行中语义对齐。

品牌视觉

品牌图标改用透明底 + #3FB950(Emerald)绿色圆环 + git-pull-request 字形,重生成 256×256 透明 PNG(体积 66KB → 14KB);新增 galleryBanner#0E2A1C 深绿、dark 主题)与 Marketplace 页头协调;活动栏单色图标字形保持一致。

规模实证:6 视图 / 97 命令 / 6 配置项 / 324 单元测试(32 文件全绿)+ 集成测试,CI 三平台(Ubuntu / macOS / Windows)矩阵全程 GREEN。


🐛 改进与修复

  • Log 提交/CI 浮层定位重做(不再撑满侧边栏):原浮层锚定在所悬元素左沿并按 webview 宽度夹紧,420px 宽浮层在 ~240px 窄侧边栏中从左沿一路铺到编辑器;改为横向固定到 window.innerWidth + 8(侧边栏右沿外、编辑器区内),纵向与所悬行/图标顶部对齐并按视口高度夹紧,浮层不再压住 LOG 列表、自然悬浮于所悬行右侧。
  • 修复 Log 提交悬浮浮层在「行 → 浮层 → 空白」路径下卡死不消失(mouseleave 复位 overCtRow)。
  • 修复 capBody 截断劈开 Unicode 代理对致末尾出现孤立 (改用 Array.from 按码点截断)。
  • 修复 vsce package 打包因 ESLint no-useless-assignment 阻断(engine/ci/remote-parser.tshost/path dead store 改为带类型标注的纯声明,运行时行为不变)。

⚙️ 升级与兼容

  • 视图数 7 → 6:CHANGES 视图移除,其能力已全量迁入 Commit 视图;若发现某入口在 Commit 视图找不到,欢迎反馈。
  • 状态持久化:Commit webview 的 setState 形状扩展(新增 mode / collapsed)、Log webview 扩展(dmode / dcollapsed),旧状态自动降级为默认(平铺),无破坏性。
  • 未引入新的配置项;现有 hyperGit.commit.* / hyperGit.log.ci.* 配置不变。

📦 安装

  • VS Code Marketplace:由 CI ENABLE_MARKETPLACE_PUBLISH 变量门控(默认关闭);未开启时以下渠道均可安装。
  • OpenVSX(Cursor / Windsurf / Gitpod / VSCodium):搜索 Hyper Git - Agentic Git 安装。
  • 手动:从 Releases 下载 hyper-git-agentic-git-0.0.9.vsix → 命令面板 Extensions: Install from VSIX

系统要求:VS Code ≥ 1.85.0,且启用内置 Git 扩展(vscode.git,默认随附)。仅支持本地 git 仓库,不支持虚拟 / Web 工作区。


💬 反馈

欢迎在 GitHub Issues 反馈问题与建议。完整工程视角变更记录见 CHANGELOG

许可证:MIT