v0.0.9
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 视图「webviewpostMessage→ hostshowQuickPick→ 复用既有命令」范式,键盘可达、无 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/c→a/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打包因 ESLintno-useless-assignment阻断(engine/ci/remote-parser.ts的host/pathdead 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。