Releases: ThreeFish-AI/hyper-git
Release list
v0.0.14
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-05 → 2026-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
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 变更(activitybar→panel),全部 7 个视图(Commit / Graph / Branches / Stash / Shelf / Worktrees / changesBadge)的 id、源码、图标均不变;webview 渲染、tree provider、命令、菜单、配置项全部沿用。
🧩 完整能力
视图容器:活动栏 → 底部 Panel
- 迁移目标:将
contributes.viewsContainers的容器hyper-git由activitybar(左侧活动栏)迁至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
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.3、typescript-eslint 8.39 → 8.62.1,以及@stylistic/eslint-plugin、prettier、actions/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
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.log、log/*消息前缀、类名等内部标识符保持不变,零协议破坏。
未提交变更数角标可靠化(承载迁移)
活动栏未提交变更数角标改由隐藏 TreeView(hyperGit.changesBadge,when:false)承载:
- 承载迁移:角标原挂在 Commit
WebviewView上,VS Code 在resolveWebviewView(即用户至少打开过一次面板)之前无法显示 webview 角标,导致面板未打开时新变更不点亮、提交 / 撤销后不清除。改由activate阶段即实例化的隐藏 TreeView 承载,其badge无论面板是否打开都可靠聚合到容器图标。 - 单一事实源:新增 engine 纯函数
change-count(toRelKey/countUniqueChanges)与GitRepositoryService.getChangeCount(),getChanges复用同一去重逻辑,杜绝双实现漂移。 - 及时且高效:角标走独立 40ms 微防抖快路径,与 150ms 重刷新解耦、合并事件风暴;释放期清理悬挂定时器。
- 熵减:移除 Commit webview 中的死代码(
updateBadge/pendingBadge)杜绝容器求和 2× 计数;补充 change-count 单元测试锁定计数等值不变式。
发布渠道收敛 VS Code Marketplace 单市场
- 移除 CI
publishjob 的 OpenVSX 发布步骤及对OVSX_PAT的依赖,发布链路聚焦 VS Code Marketplace;rc标签自动以--pre-release发预发布通道,正式版 tag 发正式通道。 - GitHub Release 仍随每个
v*标签产出、附.vsix可本地安装,与市场发布解耦。
🐛 改进与修复
- 提交 / CI 悬浮浮层被侧边栏 iframe 裁剪失效:上一阶段 (#48) 的浮层定位将横向定位改为
left = window.innerWidth + 8,误以为 webviewposition:fixed可越界渲染到编辑器区;实则侧边栏 WebviewView 是沙箱 iframe,坐标系为 iframe 自身视口,该值落到右边界外被裁剪、浮层不可见。本版抽出共用positionFloat(锚定触发元素右侧 → 越界则翻至左侧 → 再越界则收进视口),彻底修复。(#53) - 发布流水线预发布打包缺陷:
packagejob 原以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
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。
v0.0.6
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扩展导出的稳定RepositoryAPI 作为 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,设计参考 JetBrainsCheckinHandler提交生命周期),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 接线仍待补(enginetrailer已就绪,仅缺 webview 交互)。 - Partial 多文件选择 UX、行级 split chunks(按选定行拆分提交)。
- 目录 / folder diff(虚拟文档)、Submodules 管理。
- M5 AI Agent:5 个接缝已预埋 Null 实现,本版未启动。
🙏 致谢与许可
图标字形改编自 Tabler Icons(MIT)。完整工程变更见 CHANGELOG。
许可证:MIT。