Skip to content

Releases: ThreeFish-AI/hyper-git

v0.0.14

Choose a tag to compare

@github-actions github-actions released this 06 Jul 00:09
26a9c2d

Hyper Git - Agentic Git v0.0.14 — 修复 GRAPH 视图提交记录时间倒序

修复 GRAPH 视图「All」范围下提交记录未按时间倒序排列的问题:此前列表前段日期正常递减,中段却会「回跳」到最新日期——较新的旁支提交被错误地挤到列表底部。本版令提交严格按作者日期倒序呈现,跨分支提交正确交错。

本版为纯取数排序修复,未改动任何 viewType、消息协议、webview.setState 形状、布局算法与配置项,旧状态无需迁移。


✨ 亮点速览

  • 提交记录严格时间倒序:GRAPH 视图取数参数由 --topo-order 改为 --author-date-order,从较旧提交分叉、但日期较新的旁支提交不再被「成块」挤到列表末尾,日期列自上而下单调递减、不再回跳。
  • 泳道不受影响:DAG 彩色泳道(lane)布局所依赖的「子提交在父提交之上」拓扑不变量在新排序下依然严格成立,连线与分叉渲染保持正确,无断裂、无变形。
  • 零协议/交互回归:仅一行取数参数变更,数据协议、布局算法、引用胶囊、悬浮卡、范围切换(All / Current / Checkpoints)、增量加载与过滤(author / grep / path)全部沿用。

🧩 问题与修复

现象

在「All」范围下,提交记录本应严格按时间倒序(最新在顶部)。实际却出现:列表前段(如 2026-07-052026-05-25)日期正常递减,但中段之后日期回跳回最新的 2026-07-05——一批远端旁支提交(如安全修复、依赖升级等分支)被整块排到了列表底部,与「按时间浏览历史」的直觉严重不符。

根因

GRAPH 视图的提交顺序此前完全由 git log--topo-order(拓扑序)参数决定,管道各层均无二次排序。--topo-order 在保证「子在父之上」的同时,会额外把不同分支的历史「成块」输出——一条分支的提交整块列完,再切到下一条。当仓库存在从较旧提交分叉、但提交日期较新的旁支时,这些提交便被整块下放到列表末尾,形成「日期回跳」。这是 --topo-order 的设计特性,并非按日期排序。

修复

改用 --author-date-order:它同样保证 DAG 泳道算法依赖的「子在父之上」拓扑不变量,但在此约束下按作者日期倒序排列提交,使跨分支提交正确交错。之所以选「作者日期」而非「提交者日期」,是为了与 GRAPH 视图日期列实际显示的时间保持一致——排序键与显示键对齐,避免出现「列内日期看似仍乱序」的二次困惑。


⚙️ 升级与兼容

  • 无破坏性变更:仅 GRAPH 视图 git log 取数排序参数变更,未改动 viewType、消息协议、setState 形状或配置项,从 v0.0.13 升级无需任何迁移。
  • 即时生效:升级后打开 GRAPH 视图即为新排序,无需重置布局或清理状态。

📦 安装

  • VS Code Marketplace:搜索 Hyper Git - Agentic Git 直接安装或更新。
  • 手动:从 Releases 下载 hyper-git-agentic-git-0.0.14.vsix → 命令面板 Extensions: Install from VSIX(Cursor / Windsurf / VSCodium 等用户可经此方式安装)。

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


💬 反馈

欢迎在 GitHub Issues 反馈问题与建议。完整工程视角变更记录见 CHANGELOG;本次修复的表因、根因与防范沉淀见 issue #14

许可证:MIT

v0.0.13

Choose a tag to compare

@github-actions github-actions released this 05 Jul 13:51

Hyper Git - Agentic Git v0.0.13 — 视图容器迁移至底部 Panel(Terminal 之后)

将 Hyper Git 视图容器从默认的活动栏(Activity Bar / Primary Side Bar)迁移至底部面板(Panel),默认排在 Terminal 页签之后,与官方 Terminal / Output / Problems 提供一致的底部停靠体验。

本版仅变更视图容器的 dock 位置,未改动任何 viewType、消息协议、webview.setState 形状与配置项,旧状态无需迁移。


✨ 亮点速览

  • 底部 Panel 停靠:Hyper Git 视图容器从左侧活动栏迁移至底部面板,与 Terminal / Output / Problems / Debug Console 并列;默认页签位置在 Terminal 之后,可拖拽微调。
  • 零回归:仅 package.json 单行 dock 变更(activitybarpanel),全部 7 个视图(Commit / Graph / Branches / Stash / Shelf / Worktrees / changesBadge)的 id、源码、图标均不变;webview 渲染、tree provider、命令、菜单、配置项全部沿用。

🧩 完整能力

视图容器:活动栏 → 底部 Panel

  • 迁移目标:将 contributes.viewsContainers 的容器 hyper-gitactivitybar(左侧活动栏)迁至 panel(底部面板)。容器 id 与 views 归属解耦——VS Code 通过容器 id 关联两者,故视图槽位、API 注册、图标规范均无需改动。
  • 默认页签顺序:VS Code 平台不提供精确控制 Panel 内页签顺序的能力;新安装扩展的容器默认追加在内置页签(Terminal / Output / Problems / Debug Console)之后。如需调整(例如紧邻 Terminal),可在 Panel 页签栏拖拽 Hyper Git 到期望位置,VS Code 会持久化该布局。

已知边界:未提交计数角标的可见性变化

迁移到底部 Panel 后,活动栏不再保留 Hyper Git 入口图标,因此 issue #10 修复的「面板未打开也持续显示」未提交计数角标随之失效——未提交计数仅在 Panel 展开(且 Hyper Git 页签可见)时呈现。这是 VS Code 平台行为:activitybar 容器图标支持「未聚焦也聚合」的一等 badge,而 panel 容器页签的 badge 受 Panel 展开/收起态约束。

若你希望恢复「始终可见」的未提交计数,欢迎在 GitHub Issues 反馈,可考虑后续提供「双容器(Panel 主面板 + 活动栏轻量角标)」或「状态栏计数器」补救方案。


⚙️ 升级与兼容

  • 无破坏性变更:仅 package.json 的 dock 字段变更,未改动 viewType、消息协议、setState 形状或配置项,旧状态无需迁移。
  • 老用户需重置视图布局:VS Code 会记忆旧的 activitybar 位置,从 v0.0.12 升级后,Hyper Git 可能仍出现在活动栏。执行以下任一操作即可采用新的 Panel 默认:
    • 命令面板(Cmd/Ctrl + Shift + P)→ 输入 「View: Reset View Locations」
    • 或在 Panel / 活动栏中右键 Hyper Git 图标 → 「Reset Location」
  • 页签顺序微调:如希望 Hyper Git 页签紧邻 Terminal,在 Panel 页签栏拖拽即可,VS Code 会持久化。

📦 安装

  • VS Code Marketplace:搜索 Hyper Git - Agentic Git 直接安装。
  • 手动:从 Releases 下载 hyper-git-agentic-git-0.0.13.vsix → 命令面板 Extensions: Install from VSIX(Cursor / Windsurf / VSCodium 等用户可经此方式安装)。

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


💬 反馈

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

许可证:MIT

v0.0.12

Choose a tag to compare

@github-actions github-actions released this 04 Jul 15:06
237e057

Hyper Git - Agentic Git v0.0.12 — 提交详情光标跟随悬浮卡 · Tooltip 交互修复 · 布局优化 · 依赖升级基线

v0.0.11 基础上的一次交互打磨与工程基线巩固版本。将 Graph 提交详情悬浮卡重做为随光标浮现、逐项对齐 VS Code 官方 Source Control GRAPH 的形态;配套修复 CI / 提交两类悬浮 Tooltip 的定位、互斥、键盘触发与引用胶囊截断等一系列交互回归;优化侧边栏视图默认布局;并合入 TypeScript 6 / vitest 4 / vite 8 等依赖升级基线。

本版无破坏性变更:视图 viewType、消息协议、webview.setState 形状与全部配置项均保持不变,旧状态无需迁移。


✨ 亮点速览

  • 提交详情:光标跟随悬浮卡:鼠标悬停 Graph 提交行,提交详情以跟随光标的悬浮卡浮现,采用 VS Code editorHoverWidget 语义配色、与 CI 状态浮层同款视觉语言,内容逐项对齐官方 Source Control GRAPH。
  • Tooltip 交互一致性修复:浮层定位更贴近光标、CI 与提交两类浮层互斥不互相遮挡、引用胶囊完整不截断、键盘(i 键)触发路径恢复。
  • 侧边栏视图默认布局优化:次要视图默认折叠、各视图设初始高度权重,缓解视图挤占空间的体感。
  • 依赖升级基线:TypeScript 6.0.3、vitest 4、vite 8、typescript-eslint 8.62.1 等升级到位,锁文件重生,为后续演进夯实工具链地基。

🧩 完整能力

Graph 提交详情:光标跟随悬浮卡,逐项对齐官方

面向用户的提交详情由「独立面板」路线回归为随光标浮现的悬浮卡——此前曾尝试将提交详情迁移至右侧编辑器区 WebviewPanel,实测交互割裂(需切 tab、丢失上下文),最终撤回该方案、改回轻量的光标跟随浮层,并在此形态上逐项对齐 VS Code 官方 Source Control GRAPH:

  • 视觉语言统一:悬浮卡(#commit-tip)采用 editorHoverWidget 系列语义令牌(背景 / 前景 / 边框),与 CI 状态浮层同款圆角、阴影与字号,深浅主题自适应。
  • 内容逐项对齐官方:变更文件 diffstat(增删行)、作者与提交者邮箱、作者 / 提交时间(绝对 + 相对并列)、所在 branches / tags / remotes 引用胶囊、以及(与作者不同时的)Committer 行。
  • 单一事实源:新增 engine 纯函数 format-time(绝对 + 相对时间格式化)作为时间呈现的唯一实现,避免 host / webview 双份漂移;配套扩展 commit-files 的 diffstat 解析与 protocol 的提交详情载荷字段。

侧边栏视图默认布局优化

  • 次要视图默认折叠:Stash / Shelf 两个次要视图默认折叠(仅占标题栏、点击即展开),Worktrees 保持默认展开、仅收窄初始高度。
  • 初始高度权重:为各视图设置 initialSize(Commit / Graph 较高、Branches 居中、次要视图紧凑),缓解视图相互挤占空间的体感。
  • 已知边界:VS Code 侧边栏视图存在约 142px 硬性最小展开高度(核心硬编码,官方特性请求 microsoft/vscode#123715 已 not planned),无法经扩展解除;上述默认仅对新安装或执行「View: Reset View Locations」后的布局生效。详见 issue #12

🐛 改进与修复

  • 浮层定位更贴近光标:CI 与提交详情两类 Tooltip 与光标的间距由 14 收窄至 8,并对纵向翻转做视口钳制,避免浮层超出可视区或与光标脱节。(#77)
  • 两类浮层互斥 + 引用胶囊不截断:CI 状态浮层与提交悬浮卡不再同时显现互相遮挡;提交悬浮卡内的 branches / tags / remotes 引用胶囊改为完整显示、不再被省略号截断。(#76)
  • 键盘触发路径恢复positionTip 改为 rect / cursor 双模式定位——鼠标悬停走光标锚定、键盘(i 键)触发走行 rect 锚定,修复 CI 状态 Tooltip 键盘触发丢失。(#74)
  • 修复重做过程中的回归:恢复提交悬浮卡一度丢失的 branches / tags / remotes 胶囊与 Committer 行。(#74)

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


⚙️ 升级与兼容

  • 无破坏性变更:本版聚焦交互打磨与工程基线,未改动 viewType、消息协议、setState 形状或配置项(hyperGit.log.* / hyperGit.commit.*),旧状态无需迁移。
  • 未新增配置项:现有配置一律沿用。
  • 依赖升级基线(面向贡献者):TypeScript 5.9 → 6.0.3(并迁移 tsconfig 模块解析策略)、vitest 2 → 4.1.9、新增显式 vite ^8.1.3typescript-eslint 8.39 → 8.62.1,以及 @stylistic/eslint-pluginprettieractions/checkout 等升级;锁文件已重生。不影响扩展运行时行为与安装要求。

📦 安装

  • VS Code Marketplace:搜索 Hyper Git - Agentic Git 直接安装。
  • 手动:从 Releases 下载 hyper-git-agentic-git-0.0.12.vsix → 命令面板 Extensions: Install from VSIX(Cursor / Windsurf / VSCodium 等用户可经此方式安装)。

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


💬 反馈

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

许可证:MIT

v0.0.11

Choose a tag to compare

@github-actions github-actions released this 04 Jul 07:39
a09a816

Hyper Git - Agentic Git v0.0.11

提交图更名 Graph 并对齐 VS Code 官方 Source Control GRAPH 视图、悬浮浮层被侧边栏 iframe 裁剪修复、活动栏未提交数角标承载迁移、README 真实性校准与中英双语;同时将发布渠道收敛为 VS Code Marketplace 单市场


✨ 亮点速览

  • 提交图更名 Graph 并对齐官方:视图更名为「Graph」,泳道连线改三次贝塞尔平滑曲线、HEAD 空心双环高亮、引用胶囊改全圆角实心 pill 并跟随泳道色,整体贴近 VS Code 官方 Source Control GRAPH 视图。
  • 修复悬浮浮层失效:提交详情 / CI 状态浮层此前被侧边栏 iframe 裁剪到视口外而不可见,现抽出统一的 positionFloat 定位彻底修复。
  • 修复活动栏角标不及时:未提交变更数角标改由隐藏 TreeView 承载,无论 Commit 面板是否打开都能可靠、及时地点亮与清除。
  • 发布渠道收敛 Marketplace:发布流水线聚焦 VS Code Marketplace 单市场,移除 OpenVSX 发布与 OVSX_PAT 依赖,链路更简洁可靠。

🧩 完整能力

Graph 视图更名与官方对齐(原 Log 视图)

面向用户的「Log」视图更名为 「Graph」,并在渲染层视觉对齐 VS Code 官方 Source Control GRAPH 视图,不改动底层数据 / 消息协议 / 布局算法 / CI 逻辑

  • 泳道连线:由直线 <line> 改为三次贝塞尔 <path> 平滑曲线(同列 fromCol === toCol 时自动退化为直线)。
  • HEAD 高亮:当前 HEAD 行节点渲染为空心环 + 内点(双环高亮),普通行保持实心点。
  • 引用胶囊:从 message 左侧前缀移至右侧后缀(列序 泳道图 → message → chips → author → date → CI);底色跟随本行泳道色(类型靠图标区分而非颜色),按底色亮度自适应深 / 白字保可读;由半透明小圆角矩形改为实心全圆角 pill,保留分支 / 云 / tag 内联 SVG 图标前缀。#commit-tip 浮层内胶囊同步同款样式。
  • 工具栏:seg 按钮间距 / 圆角 / hover 态贴近官方。
  • 命名统一:视图名与 Refresh / Filter / Clear Graph Filter 命令标题、CI 配置描述、aria-label 统一为 Graph;viewType hyperGit.loglog/* 消息前缀、类名等内部标识符保持不变,零协议破坏。

未提交变更数角标可靠化(承载迁移)

活动栏未提交变更数角标改由隐藏 TreeViewhyperGit.changesBadgewhen:false)承载:

  • 承载迁移:角标原挂在 Commit WebviewView 上,VS Code 在 resolveWebviewView(即用户至少打开过一次面板)之前无法显示 webview 角标,导致面板未打开时新变更不点亮、提交 / 撤销后不清除。改由 activate 阶段即实例化的隐藏 TreeView 承载,其 badge 无论面板是否打开都可靠聚合到容器图标。
  • 单一事实源:新增 engine 纯函数 change-counttoRelKey / countUniqueChanges)与 GitRepositoryService.getChangeCount()getChanges 复用同一去重逻辑,杜绝双实现漂移。
  • 及时且高效:角标走独立 40ms 微防抖快路径,与 150ms 重刷新解耦、合并事件风暴;释放期清理悬挂定时器。
  • 熵减:移除 Commit webview 中的死代码(updateBadge / pendingBadge)杜绝容器求和 2× 计数;补充 change-count 单元测试锁定计数等值不变式。

发布渠道收敛 VS Code Marketplace 单市场

  • 移除 CI publish job 的 OpenVSX 发布步骤及对 OVSX_PAT 的依赖,发布链路聚焦 VS Code Marketplace;rc 标签自动以 --pre-release 发预发布通道,正式版 tag 发正式通道。
  • GitHub Release 仍随每个 v* 标签产出、附 .vsix 可本地安装,与市场发布解耦。

🐛 改进与修复

  • 提交 / CI 悬浮浮层被侧边栏 iframe 裁剪失效:上一阶段 (#48) 的浮层定位将横向定位改为 left = window.innerWidth + 8,误以为 webview position:fixed 可越界渲染到编辑器区;实则侧边栏 WebviewView 是沙箱 iframe,坐标系为 iframe 自身视口,该值落到右边界外被裁剪、浮层不可见。本版抽出共用 positionFloat(锚定触发元素右侧 → 越界则翻至左侧 → 再越界则收进视口),彻底修复。(#53)
  • 发布流水线预发布打包缺陷package job 原以 vsce package(不带 --pre-release)打出正式版 VSIX,publish 却对 rc tag 用 --pre-release 发布,vsce 因「VSIX 未以 pre-release 打包」而拒绝。package 步骤改为与 publish 端同款 PRE_FLAG 判定,令同一枚 VSIX 贯穿 GitHub Release 与 Marketplace。详见 issue #11
  • README / 文档真实性校准:经 3 路只读核验 + 单测实跑取证修正——移除不存在的 ui/ 层描述、单元测试计数由 280 校正为 324、行级提交 CodeLens 标签校准为 "Commit this Hunk"、publisher 占位符落实为真实 ThreeFish-AI。(#51)
  • README 双语重构:根 README.md 改写为地道英文版,中文版迁入 docs/i18n/zh-CN/README.md 并互加语言切换。(#51)

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


⚙️ 升级与兼容

  • 无破坏性变更:Graph 更名仅为面向用户的视图名与命令标题层面调整,viewType、消息协议、setState 形状、配置项(hyperGit.log.* / hyperGit.commit.*)均保持不变,旧状态无需迁移。
  • 未新增配置项:现有配置一律沿用。
  • 发布渠道变更:本版起发布收敛为 VS Code Marketplace 单市场;此前预发布的 0.0.10(Marketplace 预发布通道)为同源内容。

📦 安装

  • VS Code Marketplace:搜索 Hyper Git - Agentic Git 直接安装。
  • 手动:从 Releases 下载 hyper-git-agentic-git-0.0.11.vsix → 命令面板 Extensions: Install from VSIX

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


💬 反馈

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

许可证:MIT

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

v0.0.6

Choose a tag to compare

@github-actions github-actions released this 30 Jun 07:28

Hyper Git - Agentic Git v0.0.6 — 首个 MVP 正式版

为 VS Code 带来统一的 Git 变更管理提交工作流,并为未来 AI Agent 自主代理预留架构接缝。

这是本扩展的首个对外正式版本,在 VS Code Marketplace / OpenVSX 上以 「Hyper Git - Agentic Git」 之名发布。它把开发者高频依赖、却在 VS Code 原生 Source Control 中长期缺失的 Git 工作流一次性补齐:多 Changelist 变更组织、自绘提交面板、可视化提交图、Shelf、行级提交,并与原生 Source Control 平行共存、零冲突


✨ 亮点速览

  • 多 Changelist 变更组织:把工作区改动分组到命名列表,设活动列表为提交目标,重启自动恢复。
  • 自绘 Commit 提交面板:勾选式提交面板,Conventional Commits 实时校验,Amend / Sign-off / 跳过 Hook,提交或提交并推送。
  • 可视化提交图(自绘 DAG)× CI 状态:彩色泳道、分叉·合并连线、HEAD/分支/标签徽标;每条提交行右侧实时显示 GitHub CI 最终状态(绿勾/红叉/运行中),悬停查看各项检查、失败原因与跳转链接——告别 git log --graph 的粗糙 ASCII,也无需切到浏览器查构建结果。
  • Branches 多选批量操作:框选多个分支/标签,一次性删除、复制引用、收藏;已合并/未合并诚实分栏确认。
  • 独立 Shelf + 全量 Worktree:基于 patch 的 Shelf(独立于 stash)与 Worktree 全生命周期管理(新建/打开/锁定/移动/删除)。
  • 行级与 Hunk 提交:编辑器内 CodeLens「提交此 Hunk」、部分暂存、光标处暂存、Hunk 归属 Changelist。
  • 3-way Merge Editor:自绘三栏冲突编辑器(OURS / RESULT / THEIRS),冲突时一键调起。

🧩 完整能力

变更与 Changelist

按 Changelist 分组的 Changes 树(状态色复用 gitDecoration.* 主题色);新建 / 重命名 / 删除 / 设活动 / 跨列表移动文件,workspaceState 持久化;单击打开原生 Diff(HEAD ↔ Working);丢弃改动、加入 .gitignore、显示文件历史。

Commit 提交窗口

多行消息编辑器 + Conventional Commits 实时校验(可配置开关);Amend、Signed-off-by、跳过 Git Hooks;勾选集即提交权威范围(仅提交选中的文件集合);最近消息一键复用;提交提交并推送 双动作;提交流水线采用责任链设计(参考 JetBrains CheckinHandler:校验 → 暂存 → Hook 链 → 提交 → 可选推送)。

Log 提交图与历史

自绘 Graph DAG webview(彩色泳道 / 节点 / 连线 / 引用徽标,拓扑保序,虚拟化滚动,↑↓ 键导航);选中提交内联展开变更文件并打开单文件 Diff;7 个可组合过滤器——作者、路径、message(grep)、message(正则)、合并模式、日期、一键清除;per-commit 操作——复制 hash、Reset 到此、从此新建分支/标签、查看包含此提交的分支、Cherry-Pick、Revert。

提交图 × CI 状态(GitHub Actions / Commit Status)

每条提交行最右侧显示其 CI 最终状态:绿勾=通过、红叉=失败、运行中=黄色旋转。悬停图标以浮层 Tooltip 展示「各项检查 + 未通过原因 + 运行链接」,让你在提交图里一眼看出哪次提交挂了 CI,无需跳转浏览器。

  • 复用 VS Code 内置 GitHub 认证vscode.authentication),凭证由编辑器托管,绝不经过 chat / 日志 / webview;范围 repo,静默优先、仅点击「登录 GitHub」时才触发原生授权。
  • 性能与限流:仅取可见行懒加载(虚拟滚动 ~50 行)、批量 GraphQL(单次 ≤100 oid)+ 限流冷却;终态整会话缓存、pending 30s 刷新。
  • 零打扰降级:非 GitHub 远程(GitLab 等)零图标零请求;未推送/无 CI 配置 → 不渲染图标;断网/限流不崩溃、建图正常。支持 github.com 与 GitHub Enterprise(按 origin 主机自动判定)。

Checkpointer 过滤

Log 视图新增 Checkpointer 选项默认剔除 AI 编码工具产生的自动快照(checkpoint)提交,让提交图回归「人写的人类提交」,避免被海量自动提交淹没;可在过滤器面板按需开启查看。

Branches 分支管理

四段分组(收藏 / 本地 / 远程 / 标签)+ ahead·behind·upstream 跟踪展示;新建 / 检出 / 删除 / 重命名 / 合并 / 变基 / 从选中新建并检出;收藏切换、与当前分支比较、任意两分支比较、复制引用、清理已合并分支;多选批量:批量删除分支/标签、批量复制引用、批量收藏(已合并/未合并风险诚实分栏确认)。

标签 Tags

新建(轻量/附注)、删除(支持多选)、检出(进入 detached HEAD)、从提交新建标签。

Stash 与 Shelf

Stash:创建、保留已暂存创建、应用、Pop、删除、从 Stash 创建分支、清空全部,按真实 stash@{n} 索引操作。Shelf(基于 patch、独立于 git stash 的改动搁置机制):Shelve 暂存、静默 Unshelve、带 3-way 合并 Unshelve、删除。

远程操作

Pull / Push / Fetch(无上游分支自动建立 -u 跟踪);Push…(normal / force-with-lease / force + 推送标签)、Update Project…(merge / rebase)、Merge…(ff-only / no-ff / squash + 自定义消息)三类对话框;冲突兜底引导与 3-way Merge Editor,以及冲突文件「采用 Ours / Theirs」。

历史编辑与高级操作

Cherry-Pick、Revert、Reset HEAD(soft / mixed / hard / keep)、交互式 Rebase(webview:pick/squash/fixup/drop + reword + 拖拽重排)、撤销最近提交(soft)、删除提交(rebase)、Fixup(autosquash)、改写最新提交信息。

编辑器内能力

行内提交(每个未暂存 Hunk 上方 CodeLens「提交此 Hunk」);部分暂存 / 取消暂存、光标处暂存、Hunk 归属 Changelist;Blame 行内注解(逐行作者/日期/hash + 悬浮详情)。

工具

导出 / 应用 Patch、查看 Reflog、3-way Diff 概览(HEAD ↔ Staged ↔ Working)、Console 命令输出面板。

配置项

  • hyperGit.commit.template(提交模板)、hyperGit.commit.conventional(CC 校验开关)、hyperGit.ai.enabled(AI 能力开关,M5 预留)。
  • hyperGit.log.ci.enabled / hyperGit.log.ci.remote / hyperGit.log.ci.provider(提交图 CI 状态:总开关 / 查询远程 / 提供者 auto·github.com·github-enterprise)。

规模实证:7 个视图 / 93 个命令 / 6 个配置项 / 280 个单元测试,覆盖 Git 变更管理主线工作流。


🏗️ 架构

采用 路径 B(消费 + 自绘),与原生 Source Control 平行共存、零冲突:

  • 消费 内置 vscode.git 扩展导出的稳定 Repository API 作为 git 底座,不重造 git 状态机。
  • 受控 CLI 通道:稳定 API 未覆盖的能力(cherry-pick / revert / reset / 分支重命名 / hunk 暂存 / stash 列表 / graph 拓扑 / shelf 等)经 GitRepositoryService.execGit 复用同一 git 二进制(api.git.path)实现。
  • 自绘视图 承载完整的变更管理 UI;纯逻辑沉淀于 engine/(零 vscode 依赖、可单测)。
  • AI 接缝:预埋 5 个接口(ILlmProvider / ICommitMessageProvider / IPreCommitInspector / IChangelistGrouper / IConflictResolver,设计参考 JetBrains CheckinHandler 提交生命周期),M5 替换为真实实现,本版未启动。

质量基线:280 个单元测试(engine 纯逻辑)+ 集成测试(@vscode/test-electron + fixture 仓库),CI 三平台(Ubuntu / macOS / Windows)矩阵校验,lint / 类型 / 构建全程 GREEN。


📦 安装

  • 手动安装(当前推荐):从 Releases 下载 hyper-git-agentic-git-0.0.6.vsix → 命令面板执行 Extensions: Install from VSIX
  • OpenVSX(Cursor / Windsurf / Gitpod / VSCodium):搜索 Hyper Git - Agentic Git
  • VS Code Marketplace:搜索 Hyper Git - Agentic Git(发布上线后可用)。

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


⚠️ 已知限制

  • Commit 窗口的 Co-authored-by / Author 覆盖(--author)/ 撤销最近提交的按钮 UI 接线仍待补(engine trailer 已就绪,仅缺 webview 交互)。
  • Partial 多文件选择 UX、行级 split chunks(按选定行拆分提交)。
  • 目录 / folder diff(虚拟文档)、Submodules 管理。
  • M5 AI Agent:5 个接缝已预埋 Null 实现,本版未启动。

🙏 致谢与许可

图标字形改编自 Tabler Icons(MIT)。完整工程变更见 CHANGELOG

许可证:MIT