diff --git a/CHANGELOG.md b/CHANGELOG.md index 8838f9b..eac3a13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,9 @@ > 面向用户的发布说明(含完整特性叙述与安装指引)见 [`docs/releases/`](./docs/releases/README.md)。 -## [0.0.1] - 2026-06-30 — 首个 MVP 正式版 +## [0.0.6] - 2026-06-30 — 首个 MVP 正式版 -首个对外正式版本,在 VS Code 上完整复刻 IntelliJ IDEA 的 Git 工具窗口与 Commit 提交窗口。采用**路径 B**(消费 `vscode.git` 稳定 `Repository` API 为底座;稳定 API 未覆盖的能力经 `GitRepositoryService.execGit` 复用同一 git 二进制 `api.git.path` 的受控 CLI 通道实现),与原生 Source Control 平行共存、零冲突。规模:**7 视图 / ~92 命令 / 3 配置项**,**218 单元测试** + 集成测试,CI 三平台矩阵全程 GREEN。完整特性见 [Release Note v0.0.1](./docs/releases/v0.0.1.md)。 +首个对外正式版本,在 VS Code Marketplace / OpenVSX 上以 **「Hyper Git - Agentic Git」** 之名发布。为 VS Code 提供统一的 Git 变更管理与提交工作流(多变更分组、自绘提交面板、可视化提交图、Shelf、行级提交)。采用**路径 B**(消费 `vscode.git` 稳定 `Repository` API 为底座;稳定 API 未覆盖的能力经 `GitRepositoryService.execGit` 复用同一 git 二进制 `api.git.path` 的受控 CLI 通道实现),与原生 Source Control 平行共存、零冲突。规模:**7 视图 / 93 命令 / 6 配置项**,**280 单元测试** + 集成测试,CI 三平台矩阵全程 GREEN。完整特性见 [Release Note v0.0.6](./docs/releases/v0.0.6.md)。 ### Added @@ -15,11 +15,13 @@ - 文件级操作:丢弃改动、加入 `.gitignore`、显示文件历史。 #### Commit 提交窗口 -- 自绘 IDEA 风格提交面板(WebviewView):活动 Changelist 文件勾选 + 多行消息编辑器 + Amend / Signed-off-by / 跳过 Git Hooks + **提交** / **提交并推送**;勾选集即提交权威范围(对齐 IDEA「提交该集合」);最近消息一键复用。 -- Conventional Commits 实时校验(可配置)+ 内置 `ConventionalCommitCheck` Checkin Hook;`CommitPipeline` 责任链对齐 IDEA `CheckinHandler`(校验 → 暂存 → Hook 链 → 提交 → 可选推送)。 +- 自绘提交面板(WebviewView):活动 Changelist 文件勾选 + 多行消息编辑器 + Amend / Signed-off-by / 跳过 Git Hooks + **提交** / **提交并推送**;勾选集即提交权威范围(仅提交选中的文件集合);最近消息一键复用。 +- Conventional Commits 实时校验(可配置)+ 内置 `ConventionalCommitCheck` Checkin Hook;`CommitPipeline` 责任链设计参考 JetBrains `CheckinHandler`(校验 → 暂存 → Hook 链 → 提交 → 可选推送)。 #### Log 提交图与历史 -- IDEA 风格 **Graph DAG** webview:基于父子关系自计算 lane 布局,彩色泳道 / 节点 / 分叉·合并连线 / HEAD·分支·标签徽标,`--topo-order` 保拓扑序,行宽随实际 lane 自适应;虚拟化滚动增量加载、↑↓ 键导航;选中提交内联展开变更文件并打开单文件 Diff。 +- 自绘 **Graph DAG** webview:基于父子关系自计算 lane 布局,彩色泳道 / 节点 / 分叉·合并连线 / HEAD·分支·标签徽标,`--topo-order` 保拓扑序,行宽随实际 lane 自适应;虚拟化滚动增量加载、↑↓ 键导航;选中提交内联展开变更文件并打开单文件 Diff。 +- **提交图 × CI 状态**:每条提交行最右侧显示 GitHub CI 最终状态(绿勾/红叉/运行中),悬停 Tooltip 展示各项检查 + 未通过原因 + 跳转链接;复用 VS Code 内置 GitHub 认证(`vscode.authentication`,凭证不经 chat/日志/webview),仅取可见行懒加载、批量 GraphQL(≤100 oid)+ 限流冷却、终态缓存;非 GitHub 远程零图标零请求,支持 github.com 与 GitHub Enterprise;配置 `hyperGit.log.ci.{enabled,remote,provider}`。 +- **Checkpointer 过滤**:Log 视图新增 Checkpointer 选项,默认剔除 AI 编码工具产生的自动快照(checkpoint)提交,提交图更干净,可按需开启。 - **7 个可组合过滤器**:作者、路径、message(grep)、message(正则)、合并模式、日期、一键清除;复制 commit hash、刷新。 - per-commit 操作:Reset 到此(soft/mixed/hard/keep)、从此新建分支 / 标签、查看包含此提交的分支、Cherry-Pick、Revert。 @@ -30,7 +32,7 @@ #### Stash 与 Shelf - Stash:创建、保留已暂存创建、应用、Pop、删除、从 Stash 创建分支、清空全部,按真实 `stash@{n}` 索引操作。 -- Shelf(IDEA 忠实复刻,基于 patch、独立于 git stash):Shelve 暂存、静默 Unshelve、带 3-way 合并 Unshelve、删除;独立 TreeView。 +- Shelf(基于 patch、独立于 git stash 的改动搁置机制):Shelve 暂存、静默 Unshelve、带 3-way 合并 Unshelve、删除;独立 TreeView。 #### 远程与冲突 - Pull / Push / Fetch(无上游分支自动选定 remote 并建立 `-u` 跟踪;`GitError.stderr` 优先暴露使失败可读)。 @@ -50,19 +52,19 @@ #### 工具与配置 - 导出 / 应用 Patch、查看 Reflog、3-way Diff 概览(HEAD ↔ Staged ↔ Working)、Console 命令输出面板。 -- 配置项:`hyperGit.commit.template`、`hyperGit.commit.conventional`、`hyperGit.ai.enabled`(M5 预留,暂不生效)。 +- 配置项:`hyperGit.commit.template`、`hyperGit.commit.conventional`、`hyperGit.ai.enabled`(M5 预留,暂不生效)、`hyperGit.log.ci.{enabled,remote,provider}`(提交图 CI 状态)。 #### 架构与质量 - 正交分层:`engine/`(纯逻辑,零 vscode 依赖、Vitest 可测)、`adapter/`(唯一接触 vscode API)、`agent/`(AI 接缝)、`ui/`、`shared/protocol.ts`(Webview ↔ Host 契约单一事实源)、`infra/`。 -- AI 接缝预埋 5 接口 + Null 实现(`ILlmProvider` / `ICommitMessageProvider` / `IPreCommitInspector` / `IChangelistGrouper` / `IConflictResolver`),对齐 IDEA `CheckinHandler` 生命周期,M5 替换为真实实现。 +- AI 接缝预埋 5 接口 + Null 实现(`ILlmProvider` / `ICommitMessageProvider` / `IPreCommitInspector` / `IChangelistGrouper` / `IConflictResolver`),设计参考 JetBrains `CheckinHandler` 提交生命周期,M5 替换为真实实现。 - 品牌图标统一为「Git Pull Request」造型(活动栏 SVG + Marketplace 徽标 + README 头图,字形改编自 Tabler Icons,MIT);活动栏图标实时显示未提交文件数角标。 - CI 流水线:lint → 类型 → 构建 → 三平台测试矩阵(Ubuntu/macOS/Windows,Linux 经 xvfb)→ 打包 vsix;`v*` 标签触发 GitHub Release(附带可本地安装的 `.vsix`,正文取自 `docs/releases/`)+ OpenVSX 发布;VS Code Marketplace 由 `ENABLE_MARKETPLACE_PUBLISH` 变量门控。 ### 已知限制 - Commit 窗口的 Co-authored-by / Author 覆盖(`--author`)/ 撤销最近提交按钮 UI 接线(engine `trailer` 已就绪,仅缺 webview 交互)。 -- Partial 多文件选择 UX、行级 split chunks(IDEA「Include Selected Lines」)。 +- Partial 多文件选择 UX、行级 split chunks(按选定行拆分提交)。 - 目录 / folder diff(虚拟文档)、Submodules 管理。 - M5 AI Agent(5 个接缝已预埋 Null 实现,本版未启动)。 -[0.0.1]: https://github.com/ThreeFish-AI/hyper-git/releases/tag/v0.0.1 +[0.0.6]: https://github.com/ThreeFish-AI/hyper-git/releases/tag/v0.0.6 diff --git a/README.md b/README.md index 11931fc..080e18f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
在 VS Code 上完整复刻 IntelliJ IDEA 的 Git 工具窗口 与 Commit 提交窗口,并为未来 git 管理的 AI Agent 自主代理能力预留架构接缝。
+为 VS Code 带来统一的 Git 变更管理 与 提交工作流——多变更分组、自绘提交面板、可视化提交图、Shelf、行级提交,并为未来 git 管理的 AI Agent 自主代理能力预留架构接缝。
@@ -14,29 +14,29 @@
## 为什么需要 Hyper Git
-IntelliJ IDEA 的统一 Git 工具窗口(顶部 `Commit / Shelf / Stash` 标签页 + Changes 变更树 + Commit Message 编辑区 + 提交前 Inspection)是开发者高频依赖的工作流。迁移到 VS Code 后,原生 Source Control 视图**缺少**:多 Changelist、忠实的 Commit 窗口、提交前检查流水线、Shelf、行级提交、可视化提交图等能力。Hyper Git 旨在 1:1 补齐这一体验,并与原生 Source Control 平行共存、零冲突。
+在重度 Git 协作中,开发者高频依赖一套统一的变更管理工作流:把改动分组到命名列表、在专门的提交面板里逐项勾选并校验、用可视化提交图审阅历史、用 Shelf 临时搁置改动、按行/按 Hunk 精确提交。VS Code 原生 Source Control 视图在这些能力上**存在空缺**:没有多 Changelist、没有忠实的提交窗口、没有提交前检查流水线、没有 Shelf、没有行级提交、没有可视化提交图。Hyper Git **补齐这些能力**,并与原生 Source Control 平行共存、零冲突。
-## 核心能力(v0.0.1)
+## 核心能力(v0.0.6)
- **多 Changelist Changes 视图**:将改动分组到命名列表,设活动列表为提交目标,新建/重命名/删除/移动,`workspaceState` 持久化(重启恢复);状态色复用 `gitDecoration.*` 主题色。
-- **Commit 提交窗口**:自绘 IDEA 风格面板 + Conventional Commits 实时校验 + Amend / Sign-off / 跳过 Hook + 提交 / 提交并推送;勾选集即提交权威范围;最近消息复用。
+- **Commit 提交窗口**:自绘提交面板 + Conventional Commits 实时校验 + Amend / Sign-off / 跳过 Hook + 提交 / 提交并推送;勾选集即提交权威范围;最近消息复用。
- **Log 提交图(自绘 DAG)**:彩色泳道、分叉·合并连线、HEAD/分支/标签徽标,虚拟滚动增量加载;7 个可组合过滤器(作者/路径/grep/正则/合并模式/日期/清除);per-commit 操作(Reset、新建分支·标签、Cherry-Pick、Revert、查看包含分支)。
- **Branches 分支管理**:收藏/本地/远程/标签四段分组 + ahead·behind·upstream 跟踪;新建/检出/删除/重命名/合并/变基/比较/收藏;**多选批量**删除、复制引用、收藏(已合并/未合并诚实分栏确认)。
-- **Stash & Shelf**:Stash 全操作(含 keep-index / clear / 从 Stash 建分支);忠实 **Shelf**(基于 patch、独立于 stash,含 3-way 合并 Unshelve)。
+- **Stash & Shelf**:Stash 全操作(含 keep-index / clear / 从 Stash 建分支);独立 **Shelf**(基于 patch、独立于 stash,含 3-way 合并 Unshelve)。
- **Worktrees**:全生命周期管理——新建(新分支/检出/detached)、在新窗口打开、锁定/解锁、移动、删除、清理失效。
- **行级与 Hunk 提交**:编辑器内 CodeLens「提交此 Hunk」、部分暂存/取消暂存、光标处暂存、Hunk 归属 Changelist。
- **远程与冲突**:Pull/Push/Fetch + Push…/Update…/Merge… 对话框(force-with-lease / rebase / squash 等)+ 自绘 **3-way Merge Editor** 与冲突兜底引导。
- **历史编辑**:Cherry-Pick、Revert、Reset、交互式 Rebase、Undo/Drop/Fixup/Reword。
- **其他**:Blame 行内注解、Patch 导出/应用、Reflog、3-way Diff 概览、Discard、Diff(HEAD ↔ Working)。
-> 规模:**7 视图 / ~92 命令 / 3 配置项**,覆盖 IDEA Git 工具窗口主线工作流。完整发布说明见 [Release Note v0.0.1](./docs/releases/v0.0.1.md)。
+> 规模:**7 视图 / 93 命令 / 6 配置项**,覆盖 Git 变更管理主线工作流。完整发布说明见 [Release Note v0.0.6](./docs/releases/v0.0.6.md)。
## 架构(路径 B:消费 + 自绘)
- **消费** 内置 `vscode.git` 导出的稳定 `Repository` API 作为 git 底座,不重造 git 状态机。
- **受控 CLI 通道**:稳定 API 未覆盖的能力(cherry-pick / revert / reset / 分支重命名 / hunk 暂存 / stash 列表 / graph 拓扑 / shelf 等)经 `GitRepositoryService.execGit` 复用同一 git 二进制(`api.git.path`)实现。
-- **自绘视图** 承载 IDEA 风格 UI;纯逻辑沉淀于 `engine/`(零 vscode 依赖、可单测)。
-- **AI 接缝**:预留 `ILlmProvider` / `IPreCommitInspector` 等 5 个接口(对齐 IDEA `CheckinHandler` 生命周期),实现延后至 M5。
+- **自绘视图** 承载完整的变更管理 UI;纯逻辑沉淀于 `engine/`(零 vscode 依赖、可单测)。
+- **AI 接缝**:预留 `ILlmProvider` / `IPreCommitInspector` 等 5 个接口(设计参考 JetBrains `CheckinHandler` 提交生命周期),实现延后至 M5。
```mermaid
flowchart TB
@@ -74,15 +74,15 @@ flowchart TB
## 安装
-- **手动(当前推荐)**:从 [Releases](https://github.com/ThreeFish-AI/hyper-git/releases) 下载 `hyper-git-0.0.1.vsix` → 命令面板 `Extensions: Install from VSIX`。
-- **OpenVSX**(Cursor / Windsurf / Gitpod / VSCodium):搜索 `Hyper Git`。
-- **VS Code Marketplace**:搜索 `Hyper Git`(发布上线后可用)。
+- **手动(当前推荐)**:从 [Releases](https://github.com/ThreeFish-AI/hyper-git/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(IDEA「Include Selected Lines」)。
+- Partial 多文件选择 UX、行级 split chunks(按选定行拆分提交)。
- 目录 / folder diff(虚拟文档)、Submodules 管理。
- M5 AI Agent(5 个接缝已预埋 Null 实现,本版未启动)。
@@ -105,7 +105,7 @@ flowchart TB
pnpm install # 安装依赖
pnpm run compile # 类型检查 + lint + 构建
pnpm run watch # 监听构建(F5 启动 Extension Host 调试)
-pnpm run test:unit # 单元测试(engine 纯逻辑,Vitest,218 例)
+pnpm run test:unit # 单元测试(engine 纯逻辑,Vitest,280 例)
pnpm run test:integration # 集成测试(@vscode/test-electron)
pnpm run package # 生产构建
pnpm dlx @vscode/vsce package # 打包 .vsix
diff --git a/docs/.agents/knowledge-map.md b/docs/.agents/knowledge-map.md
index 735db45..dff7a5c 100644
--- a/docs/.agents/knowledge-map.md
+++ b/docs/.agents/knowledge-map.md
@@ -19,9 +19,9 @@
- [Log 视图 CI 状态](../docs/features/log-ci-status.md) — 按提交显示 GitHub CI 最终状态(绿勾/红叉 + Tooltip 明细):认证、限流、懒加载、边界与配置。
- [实施状态总览](../docs/milestones/implementation-status.md) — M0-M5 交付记录 + API 限制 + M5 AI 设计 + 验证/发布(**实施看板**)。
- [工程实施方案](../docs/architecture/engineering-plan.md) — 路径 B 架构 + M0-M5 里程碑(**开发蓝图**)。
-- [IDEA 功能复刻矩阵](../docs/requirements/idea-feature-matrix.md) — 56 功能点 / 8 组(**验收基线**)。
+- [Git 功能矩阵](../docs/requirements/idea-feature-matrix.md) — 56 功能点 / 8 组(**验收基线**,参考 IDEA 等成熟实现)。
- [调研报告](../docs/research/README.md) — SCM 集成 / 工程蓝图 / 发布 CI / AI 接缝四路循证报告。
-- [发布说明](../releases/README.md) — 各正式版 Release Notes(GitHub Release 正文单一事实源;最新 [v0.0.1](../releases/v0.0.1.md))。
+- [发布说明](../releases/README.md) — 各正式版 Release Notes(GitHub Release 正文单一事实源;最新 [v0.0.6](../releases/v0.0.6.md))。
## 架构分层(src/)
> 依赖方向单向:`UI → Adapter → Engine`;`Agent` 以接口注入 `Engine`/`CommitPipeline`,不反向依赖 UI。
diff --git a/docs/README.md b/docs/README.md
index f4bc25c..b32bb9f 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -5,19 +5,19 @@
## 工程方案与需求基线(高频引用)
- [实施状态总览(M0-M5)](./milestones/implementation-status.md) — 里程碑交付记录、P0/P1 达成矩阵、API 限制、M5 AI 设计、验证与发布状态(**实施看板**)。
- [工程实施方案](./architecture/engineering-plan.md) — 全链路调研结论 + 路径 B 架构 + M0-M5 里程碑路线图 + 风险与验证(**开发蓝图**)。
-- [IDEA 功能复刻矩阵](./requirements/idea-feature-matrix.md) — 56 个原子功能点 / 8 组 + CheckinHandler 生命周期(**验收基线**)。
+- [Git 功能完备性矩阵](./requirements/idea-feature-matrix.md) — 56 个原子功能点 / 8 组 + CheckinHandler 生命周期(**验收基线**)。
## 功能文档
- [Log 视图 CI 状态](./features/log-ci-status.md) — 按提交显示 GitHub CI 最终状态(绿勾/红叉 + 悬停 Tooltip 明细):认证、限流、懒加载、边界与配置。
## 发布说明
-- [Release Notes 目录](./releases/README.md) — 各正式版发布说明(GitHub Release 正文单一事实源);最新:[v0.0.1 首个 MVP](./releases/v0.0.1.md)。
+- [Release Notes 目录](./releases/README.md) — 各正式版发布说明(GitHub Release 正文单一事实源);最新:[v0.0.6 首个 MVP](./releases/v0.0.6.md)。
## 调研报告(循证依据)
- [02 · VS Code SCM API 与 vscode.git 集成路径](./research/02-vscode-scm-integration.md) — 路径 B 决策依据、SCM 稳定/proposed API 边界、changelist 模型映射。
- [03 · VS Code 扩展工程蓝图](./research/03-extension-blueprint.md) — 技术栈决策、工程骨架、IDEA→VS Code UI 表面映射表。
- [04 · 发布策略 + CI/CD](./research/04-publishing-cicd.md) — 双市场(Marketplace + OpenVSX)、CI 矩阵、版本治理、安全。
-- [05 · AI Agent 架构预留](./research/05-ai-agent-seams.md) — AI 接缝(ILlmProvider 等)+ IDEA CheckinHandler 对齐 + 渐进式引入路线。
+- [05 · AI Agent 架构预留](./research/05-ai-agent-seams.md) — AI 接缝(ILlmProvider 等)+ 借鉴 JetBrains CheckinHandler 责任链设计 + 渐进式引入路线。
## 协作与规范
- [AGENTS.md](../AGENTS.md) — 协作协议与工程行为准则。
diff --git a/docs/architecture/engineering-plan.md b/docs/architecture/engineering-plan.md
index 61c8683..a00565b 100644
--- a/docs/architecture/engineering-plan.md
+++ b/docs/architecture/engineering-plan.md
@@ -1,13 +1,13 @@
# Hyper Git — VS Code 扩展工程实施方案
-> 复刻 IntelliJ IDEA 社区版「Git 工具窗口 + Commit 提交窗口」全功能,并为未来 AI Agent 自主代理预留架构接缝。
+> 提供完整的「Git 变更管理 + Commit 提交工作流」(功能完备性参考 IntelliJ IDEA 等成熟实现),并为未来 AI Agent 自主代理预留架构接缝。
> 决策已与用户确认:**路径 B**(消费 `vscode.git` API + 自建 changelist registry + 独立视图容器)、扩展命名 **Hyper Git**、**双市场发布**、**AI 现仅预留接缝 + Null 实现、延后至 M5**。
---
## 0. Context(背景与目标)
-**为什么做**:IntelliJ IDEA 的统一 Git 工具窗口(顶部 `Commit/Shelf/Stash` 标签页 + Changes 变更树 + Commit Message 编辑区 + 提交前 Inspection)是 Java/全栈开发者高频依赖的工作流,但迁移到 VS Code 后只能用原生 Source Control 视图(无多 changelist、无忠实 Commit 窗口、无提交前检查流水线)。本项目目标是**在 VS Code 上 1:1 复刻该体验**,并在未来为 git 管理引入 AI Agent(提交信息生成 / 提交前代码审查 / 变更语义分组 / 冲突解决)。
+**为什么做**:IntelliJ IDEA 的统一 Git 工具窗口(顶部 `Commit/Shelf/Stash` 标签页 + Changes 变更树 + Commit Message 编辑区 + 提交前 Inspection)是 Java/全栈开发者高频依赖的工作流,但迁移到 VS Code 后只能用原生 Source Control 视图(无多 changelist、无独立 Commit 窗口、无提交前检查流水线)。本项目目标是**在 VS Code 上提供同等完备的 Git 变更管理与提交工作流**,并在未来为 git 管理引入 AI Agent(提交信息生成 / 提交前代码审查 / 变更语义分组 / 冲突解决)。
**当前状态**:仓库为全新 greenfield 工程(仅有 `.agents/` 文档脚手架与 AGENTS.md 协议,无源码 / 无 package.json / 无 README)。本方案从零搭建。
@@ -23,13 +23,13 @@
| 决策项 | 结论 | 循证依据 |
|---|---|---|
| **git 操作底座** | 消费内置 `vscode.git` 扩展导出的 `API`(`getAPI(1)` → `Repository`),**不自调 git CLI、不重造状态机** | `git.d.ts` 已暴露 commit/add/revert/diff/blame/log/stash/branch/merge/rebase 全套;GitHub PR 扩展即此模式 |
-| **changelist 表达** | **自建 changelist registry**(仿 IDEA `ChangeListManager`),以 TreeView 渲染;**不**注册竞争性 SCM Provider | Track1:IDEA active 列表 + 跨列表行级归属,原生 SCM group 无法表达 |
+| **changelist 表达** | **自建 changelist registry**(借鉴 JetBrains `ChangeListManager` 设计),以 TreeView 渲染;**不**注册竞争性 SCM Provider | Track1:IDEA active 列表 + 跨列表行级归属,原生 SCM group 无法表达 |
| **视图容器** | 活动栏新建独立视图容器 `hyper-git`,承载 Changes/Commit/Log/Branches/Shelf/Stash;**不接管/不替代原生 Source Control 视图**(避免双胞胎冲突) | Track2:注册独立 SCM 会与原生 git 视图并列混淆 |
| **Commit 编辑器** | WebviewView 自绘(多行 / 模板 / Conventional Commits 校验 / Amend / Author / sign-off) | 原生 `SourceControlInputBox` 仅 `value` 字段,Provider 已删除 |
| **Log 提交图** | Webview 自绘 SVG graph + 消费 `Repository.log()` | `scmHistoryProvider` 为 proposed,上架不可用 |
| **Diff 预览** | 复用 `vscode.diff` + `api.toGitUri(uri,'HEAD')`(零成本) | Track2 §5.5 |
| **发布** | 双市场(Marketplace + OpenVSX) | Cursor/Windsurf 走 OpenVSX;AI 受众主战场 |
-| **AI** | 现仅定义接缝 + Null 实现,实现延后 M5 | YAGNI + 复用 IDEA `CheckinHandler` 语义 |
+| **AI** | 现仅定义接缝 + Null 实现,实现延后 M5 | YAGNI + 借鉴 JetBrains `CheckinHandler` 责任链语义 |
**架构总览(Mermaid,深色模式高对比)**:
@@ -105,7 +105,7 @@ hyper-git/
├── engine/ # 【引擎层】纯领域逻辑,零 vscode 依赖
│ ├── model/ # FileChange / Changelist / Commit / Branch / StashEntry / ConflictHunk
│ ├── diff/ # diff 解析 + 行级 patch(partial commit 基础)
- │ ├── commit/ # CommitPipeline(Checkin hook 责任链,仿 IDEA CheckinHandler)
+ │ ├── commit/ # CommitPipeline(Checkin hook 责任链,借鉴 JetBrains CheckinHandler 设计)
│ └── scm-mapping/ # Status(M/A/D/U/R/C) → decorations 映射(纯函数)
├── adapter/ # 【适配层】唯一接触 vscode API
│ ├── git-repository.ts # GitRepositoryAdapter:封装 vscode.git Repository(add/commit/diff/log/stash/branch…)
@@ -118,7 +118,7 @@ hyper-git/
├── agent/ # 【代理层】AI 接缝(预留,Null 实现)
│ ├── llm-provider.ts # ILlmProvider(模型来源抽象:vscodeLM/byok/openaiCompatible)
│ ├── commit-message.ts # ICommitMessageProvider(生成 + Conventional Commits 校验)
- │ ├── pre-commit.ts # IPreCommitInspector(对齐 IDEA beforeCheckin/CommitCheck)
+ │ ├── pre-commit.ts # IPreCommitInspector(借鉴 JetBrains beforeCheckin/CommitCheck 机制)
│ ├── grouper.ts # IChangelistGrouper(语义分组)
│ ├── conflict.ts # IConflictResolver(三方合并建议)
│ └── chat-tools.ts # IChatToolRegistrar(M5 暴露 git 能力给 Agent)
@@ -157,9 +157,9 @@ hyper-git/
---
-## 4. IDEA 功能复刻优先级矩阵
+## 4. 功能优先级矩阵
-> 基于 Track1 的 56 功能点,按价值×依赖×难度分入 P0(MVP)/P1(核心对齐)/P2(高级对齐)/P3(AI 增强)。完整 56 项明细见 [IDEA 功能复刻矩阵](../requirements/idea-feature-matrix.md)(后续验收的需求基线)。
+> 基于 Track1 的 56 功能点,按价值×依赖×难度分入 P0(MVP)/P1(核心功能)/P2(高级功能)/P3(AI 增强)。完整 56 项明细见 [功能矩阵](../requirements/idea-feature-matrix.md)(后续验收的需求基线)。
| 优先级 | 功能域 | 代表功能(来源 Track1 编号) |
|---|---|---|
@@ -168,9 +168,9 @@ hyper-git/
| **P1 核心** | Commit 检查流水线 | 提交前 Inspection 框架(#10,对接 VS Code Diagnostics)、Commit Checks 顺序闸门(#11)、CRLF/大文件预检(#12)、Conventional Commits 校验(#4,IDEA 无内置需自建 linter) |
| **P1 核心** | Branches | 创建/检出/删除/重命名(#45/#46)、Merge/Rebase/Pull/Push/Fetch(#48)、Compare(#47) |
| **P1 核心** | Stash + Diff | Stash apply/pop/drop(#29/#30)、Annotate(blame)(#37)、Show History(#38) |
-| **P2 高级** | Partial / 行级提交 | 按代码块提交(#23)、按行提交(#24)、Move Lines to Changelist(#25)——最难,仿 `PartialChangesUtil` |
+| **P2 高级** | Partial / 行级提交 | 按代码块提交(#23)、按行提交(#24)、Move Lines to Changelist(#25)——最难,参考 `PartialChangesUtil` 实现 |
| **P2 高级** | Log 提交图 | graph 自绘(#39)、filter(#40)、cherry-pick/revert from log(#41/#42)、Undo Commit(#43) |
-| **P2 高级** | Shelf | 忠实 shelve/unshelve with conflict(#27/#28,patch 存储+三方合并);MVP 先用 stash 近似 |
+| **P2 高级** | Shelf | 完整 shelve/unshelve with conflict(#27/#28,patch 存储+三方合并);MVP 先用 stash 近似 |
| **P3 AI 增强** | (M5,接缝现已埋) | AI 提交信息生成、AI 提交前审查、AI 语义分组、AI 冲突解决、AI release notes、Chat Tools 暴露 git 能力 |
---
@@ -199,8 +199,8 @@ hyper-git/
- 验收:Log 图正确渲染拓扑;分支操作经真实 git 验证;blame 行级显示作者。
- 依赖:M1、M2。
-**M4 — Shelf + Partial/行级提交 + Stash UI(Parity 收口,0.6.0)**
-- 交付:忠实 Shelf(patch 存储 + unshelve 三方合并)、行级 partial commit(仿 `PartialChangesUtil` + 行级 hunk staging)、Stash 完整 UI(apply/pop/drop/clear/keep-index)、Git Staging Area 模式开关。
+**M4 — Shelf + Partial/行级提交 + Stash UI(功能收口,0.6.0)**
+- 交付:完整 Shelf(patch 存储 + unshelve 三方合并)、行级 partial commit(参考 `PartialChangesUtil` 实现 + 行级 hunk staging)、Stash 完整 UI(apply/pop/drop/clear/keep-index)、Git Staging Area 模式开关。
- 验收:shelve/unshelve with conflict 可解;单文件部分行可单独提交。
- 依赖:M2、M3。
@@ -213,13 +213,13 @@ hyper-git/
## 6. AI 集成架构预留点(现建接缝,M5 实现)
-> 对齐 IDEA `CheckinHandler` 生命周期(Track1 D 节:`beforeCheckin`/`CommitCheck.runCheck`/`includedChangesChanged`/`checkinSuccessful`/`checkinFailed`)。**只定义契约 + Null 实现,不引入 Copilot 依赖**(未启用 AI 用户零负担)。
+> 借鉴 JetBrains `CheckinHandler` 生命周期设计(Track1 D 节:`beforeCheckin`/`CommitCheck.runCheck`/`includedChangesChanged`/`checkinSuccessful`/`checkinFailed`)。**只定义契约 + Null 实现,不引入 Copilot 依赖**(未启用 AI 用户零负担)。
-| 接缝(Agent 层) | 对齐 IDEA | 为何现在抽 |
+| 接缝(Agent 层) | 借鉴 JetBrains 机制 | 为何现在抽 |
|---|---|---|
| `ILlmProvider`(模型来源抽象) | — | **最关键**:未来切换 vscodeLM/byok/自带 key 的命脉;晚抽则所有 AI 调用散落、迁移成本爆炸 |
| `ICommitMessageProvider` | (IDEA 无内置,插件有) | 提交信息是 commit 流水线核心产物,留接缝让"无 AI→LM→自带 key"平滑切换 |
-| `IPreCommitInspector` | `beforeCheckin`/`CommitCheck.runCheck`(返回 COMMIT/CANCEL/DEFER,对齐 `ReturnResult`) | 复用 IDEA 20+ 年验证的 hook 闸门机制;AI 审查最佳挂载点 |
+| `IPreCommitInspector` | `beforeCheckin`/`CommitCheck.runCheck`(返回 COMMIT/CANCEL/DEFER,参考 `ReturnResult`) | 借鉴 JetBrains 20+ 年验证的 hook 闸门机制设计;AI 审查最佳挂载点 |
| `IChangelistGrouper` | (IDEA 无内置) | 写回 changelist 模型(回写工作流,差异化于内置 Copilot) |
| `IConflictResolver` | (IDEA 无内置) | 必须 `prepareInvocation` 用户确认(VS Code 工具确认机制,安全红线) |
@@ -259,7 +259,7 @@ hyper-git/
- **单元测试(Vitest,< 30s)**:`engine/model`、`engine/diff`(行级 patch)、`engine/scm-mapping`(Status→decorations)、`engine/commit`(hook 责任链顺序/阻断)、Conventional Commits linter 纯函数。
- **集成测试(@vscode/test-electron + Mocha,< 2min)**:`adapter/git-repository`(真实 fixture 仓库读 changes/commit/stash)、`adapter/changelist-registry`(持久化往返)、`adapter/webview`(postMessage 协议契约)、Commit 全链路(勾选→message→commit→验证 `git log`)。
- **手动回归清单**:多 changelist 新建/移动/删除/重启持久化;Amend;Commit and Push;Conventional Commits 拦截;Log 图过滤;分支 merge/rebase;shelve/unshelve with conflict;行级 partial commit。
-- **浏览器/编辑器验证**:按 AGENTS.md 浏览器验证协议——用户已认证 Chrome 主 profile 打开真实仓库,截图验证 UI 还原度(Commit 窗口 vs 图1/图2 对齐)。
+- **浏览器/编辑器验证**:按 AGENTS.md 浏览器验证协议——用户已认证 Chrome 主 profile 打开真实仓库,截图验证 Commit 窗口的 UI 渲染与交互完整性(对照设计参考图1/图2)。
- **发布前自证**:Diff 分析、测试覆盖、三平台 CI 绿、`.vsix` 在干净 VS Code + Cursor 实机安装回归。
---
diff --git a/docs/features/log-ci-status.md b/docs/features/log-ci-status.md
index af25484..f976421 100644
--- a/docs/features/log-ci-status.md
+++ b/docs/features/log-ci-status.md
@@ -1,7 +1,7 @@
# Log 视图 CI 状态(GitHub Actions / Commit Status)
-> 在 Log 视图(`hyperGit.log`,IDEA 风格提交图)每条提交上显示其 **CI 最终状态**:绿勾=通过、红叉=失败、
-> 运行中=黄色旋转;悬停图标以浮层 Tooltip 展示「各项检查 + 未通过原因 + 运行链接」,效果对标 IntelliJ IDEA / GitHub。
+> 在 Log 视图(`hyperGit.log`,可视化提交图)每条提交上显示其 **CI 最终状态**:绿勾=通过、红叉=失败、
+> 运行中=黄色旋转;悬停图标以浮层 Tooltip 展示「各项检查 + 未通过原因 + 运行链接」。
> 数据源为 GitHub(Checks API + Commit Status),按 origin 远程主机自动判定 github.com / GitHub Enterprise。
## 数据流
diff --git a/docs/milestones/implementation-status.md b/docs/milestones/implementation-status.md
index df0cdb1..d31d0df 100644
--- a/docs/milestones/implementation-status.md
+++ b/docs/milestones/implementation-status.md
@@ -2,16 +2,16 @@
> Hyper Git VS Code 扩展的里程碑实施记录、API 限制发现、功能达成矩阵与 M5 AI 设计(留存)。
> 本文档随里程碑推进即时更新;调研与原始方案见 [工程实施方案](../architecture/engineering-plan.md) 与 [调研报告](../research/README.md)。
-> 最后更新:2026-06-29(Parity Recovery Batch 5-12 全量对齐 IDEA 完成)。
+> 最后更新:2026-06-29(Parity Recovery Batch 5-12 全量功能对齐完成)。
>
-> **⚠️ 重大更新(2026-06-29,Batch 5-12)**:经 IDEA Git 功能复刻评审,发现「功能多数已实现,但被 Branches 视图渲染 bug + 工具栏未浮现 + 命令 bug 掩盖」。本批 Recovery **先解除可见痛感,再全量补齐**:新增 13 个 engine 纯逻辑模块 + 21 个命令,单测 64 → 166、命令 56 → 77。**§3 所列 vscode.git 稳定 API 限制(cherry-pick/revert/reset/branch rename/hunk 暂存/stash list/graph topology/shelf/author 等)现均已通过 `GitRepositoryService.execGit`(复用 `api.git.path` 同一 git 二进制)受控 CLI 通道解决**。详见 [CHANGELOG](../../CHANGELOG.md) [Unreleased]。
-> AI M5 暂不启动(5 个接缝保留 Null 实现,本轮专注 IDE 对齐)。
+> **⚠️ 重大更新(2026-06-29,Batch 5-12)**:经 Git 功能完备性评审,发现「功能多数已实现,但被 Branches 视图渲染 bug + 工具栏未浮现 + 命令 bug 掩盖」。本批 Recovery **先解除可见痛感,再全量补齐**:新增 13 个 engine 纯逻辑模块 + 21 个命令,单测 64 → 166、命令 56 → 77。**§3 所列 vscode.git 稳定 API 限制(cherry-pick/revert/reset/branch rename/hunk 暂存/stash list/graph topology/shelf/author 等)现均已通过 `GitRepositoryService.execGit`(复用 `api.git.path` 同一 git 二进制)受控 CLI 通道解决**。详见 [CHANGELOG](../../CHANGELOG.md) [Unreleased]。
+> AI M5 暂不启动(5 个接缝保留 Null 实现,本轮专注功能完备性)。
---
## 0. 概览
-- **架构**:路径 B —— 消费内置 `vscode.git` 稳定 `Repository` API + 自建 changelist registry + 独立视图容器自绘 IDEA 风格 UI,不接管原生 Source Control 视图。
+- **架构**:路径 B —— 消费内置 `vscode.git` 稳定 `Repository` API + 自建 changelist registry + 独立视图容器自绘 UI,不接管原生 Source Control 视图。
- **分层**:`engine/`(纯逻辑,零 vscode 依赖)/ `adapter/`(唯一接触 vscode API)/ `agent/`(AI 接缝)/ `shared/`(契约)/ `infra/`。
- **质量基线**:TypeScript strict + ESLint9 + Vitest(engine 单测)+ @vscode/test-electron(adapter 集成)+ esbuild + 三平台 CI(Linux xvfb)。
- **验证**:单测 45/45、集成 3/3(含真实 git 提交闭环 + amend)、`vsce package` 产 vsix。
@@ -27,7 +27,7 @@
| M0-M2 审查修复 | 0.3.1 | [#5](https://github.com/ThreeFish-AI/hyper-git/pull/5) | 11 类正确性修复(订阅泄漏/仓库选取/indexChanges/commit 语义/push 警告/linter 等)+ 16 项测试补齐 | 单测 45/45 + 集成 3/3 |
| M3 Log/Branches/Blame | 0.4.0 | [#6](https://github.com/ThreeFish-AI/hyper-git/pull/6) | Log TreeView(过滤+copy hash+Show History)、Branches TreeView(create/checkout/delete/merge/rebase)、Blame | 命令注册集成 |
| M4 Stash/Shelf | 0.5.0 | [#7](https://github.com/ThreeFish-AI/hyper-git/pull/7) | Stash 视图(log refnames 枚举)+ create/apply/pop/drop;Shelf MVP(stash 近似) | 命令注册集成 |
-| **Parity Recovery Batch 5-7** | — | commit `00b5ba7`/`2105445`/`9699ee9` | Branches 渲染修复 + 工具栏 Action 组 + 冲突兜底;Branches 对齐 IDEA(Favorites/Tags/ahead-behind);Rebase webview reword/edit/拖拽 1:1 复刻 | 单测 166/166 + 集成 3/3 |
+| **Parity Recovery Batch 5-7** | — | commit `00b5ba7`/`2105445`/`9699ee9` | Branches 渲染修复 + 工具栏 Action 组 + 冲突兜底;Branches 视图增强(Favorites/Tags/ahead-behind);Rebase webview 支持 reword/edit/拖拽交互式编排 | 单测 166/166 + 集成 3/3 |
| **Parity Recovery Batch 8-9** | — | commit `efd888c`/`ed01883` | Log 提交详情面板 + 高级过滤 + per-commit 操作;真实 SVG 提交拓扑图(解析 git --graph 字符粒度渲染 + 可点击 + 实时刷新) | 同上 |
| **Parity Recovery Batch 10-12** | — | commit `2274d8a`/`fcb6ffa`/`acdf53c` | Push/Update/Merge 对话框 + fetch prune + Co-authored-by trailer;自绘 3-way Merge Editor(自实现 diff3);Stash 高级 + Patch + Reflog + Blame 行内注解 | 同上 |
@@ -79,7 +79,7 @@
**5 个 AI 接缝**(agent/,依赖 engine 不依赖 adapter):
- `ILlmProvider`:模型来源抽象(vscodeLM / byok-Ollama / openaiCompatible)。**最关键**——未来切换模型来源的命脉。
- `ICommitMessageProvider`:AI 提交信息生成(staged diff + 团队规范 → 流式 CC 合规 message)。
-- `IPreCommitInspector`:提交前 AI 代码审查(对齐 IDEA `CheckinHandler.beforeCheckin`,可阻断)。
+- `IPreCommitInspector`:提交前 AI 代码审查(参考 JetBrains `CheckinHandler.beforeCheckin` 责任链设计,可阻断)。
- `IChangelistGrouper`:变更语义分组(回写 changelist)。
- `IConflictResolver`:冲突解决(用户逐块确认)。
@@ -104,6 +104,6 @@
## 7. 发布状态
-- **当前版本**:0.5.0(preview,内部里程碑)。
-- **首发候选**:v0.0.1-rc.1(package 版本 `0.0.1` + `--pre-release` + git tag `v0.0.1-rc.1`)。Marketplace 仅支持 `major.minor.patch`,预发布语义由 `--pre-release` 标记 + tag 体现。
+- **当前版本**:0.0.6(首个 MVP 正式版,对外首发;以「Hyper Git - Agentic Git」之名上架 Marketplace / OpenVSX)。
+- **首发历程**:经若干内部迭代与 `v0.0.1-rc.*` 预发布打磨后,以 `v0.0.5` 完成内部首发;因 Marketplace 上「Hyper Git」名称被误删不可用,遂将扩展更名为 **Hyper Git - Agentic Git**(`package.json` `name=hyper-git-agentic-git`),以 `v0.0.6`(git tag `v0.0.6`)重新上架。Marketplace 仅支持 `major.minor.patch`,预发布语义由 `--pre-release` 标记 + tag 体现。
- **发布前置**:publisher 账号(`threefish-ai`)、VSCE_PAT / OVSX_PAT secrets、PNG 图标。
diff --git a/docs/releases/README.md b/docs/releases/README.md
index 51dbd46..df9ac29 100644
--- a/docs/releases/README.md
+++ b/docs/releases/README.md
@@ -8,7 +8,7 @@
| 版本 | 说明 | 日期 |
|---|---|---|
-| [v0.0.1](./v0.0.1.md) | 首个 MVP 正式版 | 2026-06-30 |
+| [v0.0.6](./v0.0.6.md) | 首个 MVP 正式版(以「Hyper Git - Agentic Git」之名上架) | 2026-06-30 |
## 相关文档
diff --git a/docs/releases/v0.0.1.md b/docs/releases/v0.0.6.md
similarity index 54%
rename from docs/releases/v0.0.1.md
rename to docs/releases/v0.0.6.md
index 59f7e13..801d835 100644
--- a/docs/releases/v0.0.1.md
+++ b/docs/releases/v0.0.6.md
@@ -1,18 +1,18 @@
-# Hyper Git v0.0.1 — 首个 MVP 正式版
+# Hyper Git - Agentic Git v0.0.6 — 首个 MVP 正式版
-> 在 VS Code 上完整复刻 IntelliJ IDEA 的 **Git 工具窗口** 与 **Commit 提交窗口**,并为未来 AI Agent 自主代理预留架构接缝。
+> 为 VS Code 带来统一的 **Git 变更管理** 与 **提交工作流**,并为未来 AI Agent 自主代理预留架构接缝。
-这是 Hyper Git 的首个对外正式版本。它把 IDEA 里那套被开发者高频依赖、迁移到 VS Code 后却长期缺失的 Git 工作流——多 Changelist 变更组织、忠实的提交窗口、可视化提交图、Shelf、行级提交——一次性补齐,并与原生 Source Control 平行共存、零冲突。
+这是本扩展的**首个对外正式版本**,在 VS Code Marketplace / OpenVSX 上以 **「Hyper Git - Agentic Git」** 之名发布。它把开发者高频依赖、却在 VS Code 原生 Source Control 中长期缺失的 Git 工作流**一次性补齐**:多 Changelist 变更组织、自绘提交面板、可视化提交图、Shelf、行级提交,并与原生 Source Control **平行共存、零冲突**。
---
## ✨ 亮点速览
-- **多 Changelist 变更组织**:像 IDEA 一样把工作区改动分组到命名列表,设活动列表为提交目标,重启自动恢复。
-- **IDEA 风格 Commit 窗口**:自绘提交面板,Conventional Commits 实时校验,Amend / Sign-off / 跳过 Hook,提交或提交并推送。
-- **IDEA 风格提交图(自绘 DAG)**:彩色泳道、分叉·合并连线、HEAD/分支/标签徽标,虚拟滚动增量加载,告别 `git log --graph` 的粗糙 ASCII。
+- **多 Changelist 变更组织**:把工作区改动分组到命名列表,设活动列表为提交目标,重启自动恢复。
+- **自绘 Commit 提交面板**:勾选式提交面板,Conventional Commits 实时校验,Amend / Sign-off / 跳过 Hook,提交或提交并推送。
+- **可视化提交图(自绘 DAG)× CI 状态**:彩色泳道、分叉·合并连线、HEAD/分支/标签徽标;每条提交行右侧实时显示 **GitHub CI 最终状态**(绿勾/红叉/运行中),悬停查看各项检查、失败原因与跳转链接——告别 `git log --graph` 的粗糙 ASCII,也无需切到浏览器查构建结果。
- **Branches 多选批量操作**:框选多个分支/标签,一次性删除、复制引用、收藏;已合并/未合并诚实分栏确认。
-- **忠实 Shelf + 全量 Worktree**:基于 patch 的 Shelf(独立于 stash)与 Worktree 全生命周期管理(新建/打开/锁定/移动/删除)。
+- **独立 Shelf + 全量 Worktree**:基于 patch 的 Shelf(独立于 stash)与 Worktree 全生命周期管理(新建/打开/锁定/移动/删除)。
- **行级与 Hunk 提交**:编辑器内 CodeLens「提交此 Hunk」、部分暂存、光标处暂存、Hunk 归属 Changelist。
- **3-way Merge Editor**:自绘三栏冲突编辑器(OURS / RESULT / THEIRS),冲突时一键调起。
@@ -24,11 +24,20 @@
按 Changelist 分组的 Changes 树(状态色复用 `gitDecoration.*` 主题色);新建 / 重命名 / 删除 / 设活动 / 跨列表移动文件,`workspaceState` 持久化;单击打开原生 Diff(HEAD ↔ Working);丢弃改动、加入 `.gitignore`、显示文件历史。
### Commit 提交窗口
-多行消息编辑器 + Conventional Commits 实时校验(可配置开关);Amend、Signed-off-by、跳过 Git Hooks;勾选集即提交权威范围(对齐 IDEA「提交该集合」);最近消息一键复用;**提交** 与 **提交并推送** 双动作;提交流水线对齐 IDEA `CheckinHandler`(校验 → 暂存 → Hook 链 → 提交 → 可选推送)。
+多行消息编辑器 + 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 跟踪展示;新建 / 检出 / 删除 / 重命名 / 合并 / 变基 / 从选中新建并检出;收藏切换、与当前分支比较、任意两分支比较、复制引用、清理已合并分支;**多选批量**:批量删除分支/标签、批量复制引用、批量收藏(已合并/未合并风险诚实分栏确认)。
@@ -36,7 +45,7 @@
新建(轻量/附注)、删除(支持多选)、检出(进入 detached HEAD)、从提交新建标签。
### Stash 与 Shelf
-**Stash**:创建、保留已暂存创建、应用、Pop、删除、从 Stash 创建分支、清空全部,按真实 `stash@{n}` 索引操作。**Shelf**(IDEA 忠实复刻,基于 patch、独立于 git stash):Shelve 暂存、静默 Unshelve、带 3-way 合并 Unshelve、删除。
+**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」。
@@ -51,9 +60,10 @@ Cherry-Pick、Revert、Reset HEAD(soft / mixed / hard / keep)、交互式 Re
导出 / 应用 Patch、查看 Reflog、3-way Diff 概览(HEAD ↔ Staged ↔ Working)、Console 命令输出面板。
### 配置项
-`hyperGit.commit.template`(提交模板)、`hyperGit.commit.conventional`(CC 校验开关)、`hyperGit.ai.enabled`(AI 能力开关,M5 预留)。
+- `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 个视图 / ~92 个命令 / 3 个配置项**,覆盖 IDEA Git 工具窗口主线工作流。
+> 规模实证:**7 个视图 / 93 个命令 / 6 个配置项 / 280 个单元测试**,覆盖 Git 变更管理主线工作流。
---
@@ -63,18 +73,18 @@ Cherry-Pick、Revert、Reset HEAD(soft / mixed / hard / keep)、交互式 Re
- **消费** 内置 `vscode.git` 扩展导出的稳定 `Repository` API 作为 git 底座,不重造 git 状态机。
- **受控 CLI 通道**:稳定 API 未覆盖的能力(cherry-pick / revert / reset / 分支重命名 / hunk 暂存 / stash 列表 / graph 拓扑 / shelf 等)经 `GitRepositoryService.execGit` 复用同一 git 二进制(`api.git.path`)实现。
-- **自绘视图** 承载 IDEA 风格 UI;纯逻辑沉淀于 `engine/`(零 vscode 依赖、可单测)。
-- **AI 接缝**:预埋 5 个接口(`ILlmProvider` / `ICommitMessageProvider` / `IPreCommitInspector` / `IChangelistGrouper` / `IConflictResolver`,对齐 IDEA `CheckinHandler` 生命周期),M5 替换为真实实现,本版未启动。
+- **自绘视图** 承载完整的变更管理 UI;纯逻辑沉淀于 `engine/`(零 vscode 依赖、可单测)。
+- **AI 接缝**:预埋 5 个接口(`ILlmProvider` / `ICommitMessageProvider` / `IPreCommitInspector` / `IChangelistGrouper` / `IConflictResolver`,设计参考 JetBrains `CheckinHandler` 提交生命周期),M5 替换为真实实现,本版未启动。
-质量基线:**218 个单元测试**(engine 纯逻辑)+ 集成测试(`@vscode/test-electron` + fixture 仓库),CI 三平台(Ubuntu / macOS / Windows)矩阵校验,lint / 类型 / 构建全程 GREEN。
+质量基线:**280 个单元测试**(engine 纯逻辑)+ 集成测试(`@vscode/test-electron` + fixture 仓库),CI 三平台(Ubuntu / macOS / Windows)矩阵校验,lint / 类型 / 构建全程 GREEN。
---
## 📦 安装
-- **手动安装(当前推荐)**:从 [Releases](https://github.com/ThreeFish-AI/hyper-git/releases) 下载 `hyper-git-0.0.1.vsix` → 命令面板执行 `Extensions: Install from VSIX`。
-- **OpenVSX**(Cursor / Windsurf / Gitpod / VSCodium):搜索 `Hyper Git`。
-- **VS Code Marketplace**:搜索 `Hyper Git`(发布上线后可用)。
+- **手动安装(当前推荐)**:从 [Releases](https://github.com/ThreeFish-AI/hyper-git/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 工作区。
@@ -83,7 +93,7 @@ Cherry-Pick、Revert、Reset HEAD(soft / mixed / hard / keep)、交互式 Re
## ⚠️ 已知限制
- Commit 窗口的 Co-authored-by / Author 覆盖(`--author`)/ 撤销最近提交的**按钮 UI 接线**仍待补(engine `trailer` 已就绪,仅缺 webview 交互)。
-- Partial 多文件选择 UX、行级 split chunks(IDEA「Include Selected Lines」)。
+- Partial 多文件选择 UX、行级 split chunks(按选定行拆分提交)。
- 目录 / folder diff(虚拟文档)、Submodules 管理。
- M5 AI Agent:5 个接缝已预埋 Null 实现,本版未启动。
diff --git a/docs/requirements/idea-feature-matrix.md b/docs/requirements/idea-feature-matrix.md
index 462b269..3d6fb94 100644
--- a/docs/requirements/idea-feature-matrix.md
+++ b/docs/requirements/idea-feature-matrix.md
@@ -1,6 +1,6 @@
# IntelliJ IDEA 社区版 Git/Commit 模块 调研报告
-> 调研目标:产出 IDEA「Git 工具窗口 + Commit 提交窗口」的【完整功能清单 + 关键源码锚点】,作为 VS Code 插件复刻的需求规约(Spec)基线。
+> 调研目标:产出 IDEA「Git 工具窗口 + Commit 提交窗口」的【完整功能清单 + 关键源码锚点】,作为本扩展 Git 变更管理与提交工作流的功能需求规约(Spec)基线(参考 IDEA 等成熟实现)。
> 仓库:[JetBrains/intellij-community](https://github.com/JetBrains/intellij-community)(master 分支,2025–2026 年版本)
> 官方文档:[IntelliJ IDEA Help 2026.1](https://www.jetbrains.com/help/idea/)
> 调研时间:2026-06-27
@@ -44,7 +44,7 @@
### 组 1:Commit 窗口(Commit / Shelf / Stash 标签页 + 提交流水线)
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层 git/IDEA 机制 | 源码锚点(类路径) | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层 git/IDEA 机制 | 源码锚点(类路径) | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 1 | Commit 工具窗口(竖向,Alt+0) | 左侧竖向变更列表 + 提交信息区 + Diff 预览;非模态 | `Alt+0` / `Ctrl+K` | 平台 `CommitDialog/CommitToolWindow`,git4idea `GitCheckinEnvironment` | `vcs-impl/.../changes/ui/CommitChangeListDialog.java`、`DefaultCommitChangeListDialog.kt`;git4idea `checkin/GitCheckinEnvironment.kt` | 高 | 部分(SCM 面板,无竖向 commit 工具窗口形态) |
| 2 | Commit Message 模板 | 默认填充 commit message(来自 `.git/COMMIT_TEMPLATE` / `commit.template` / merge message) | 打开 commit 窗口自动填充 | `git config commit.template`;EP `com.intellij.vcs.commitMessageProvider` | `commit/GitTemplateCommitMessageProvider.kt`;`vcs-api/.../changes/ui/CommitMessageProvider.java`;`checkin/GitCheckinEnvironment.getDefaultMessageFor`(merge message) | 低 | 无原生(需插件/git config) |
@@ -63,7 +63,7 @@
### 组 2:Local Changes 变更列表(多 changelist 模型)
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 15 | 多 changelist | 同时维护多个命名变更列表 | Commit 窗口左侧树 | `ChangeListManager` + `LocalChangeList` 模型 | `vcs-api/.../changes/ChangeListManager.java`、`LocalChangeList`(接口);`vcs-impl/.../changes/ChangeListManagerImpl.java`、`ChangeListWorker.java` | 高 | **无**(VS Code SCM 仅多 group,非命名 changelist) |
| 16 | Active changelist | 设置默认活动列表;新改动落入此列表 | `Ctrl+Space` / 右键 Set Active | `getDefaultChangeList/setDefaultChangeList`;命令 `SetDefault` | `ChangeListManager`;`changes/local/SetDefault.java` | 中 | **无**(无 active 概念) |
@@ -75,7 +75,7 @@
### 组 3:Partial / Selective / 按行(line-level)提交
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 22 | 选择性勾选文件提交 | 勾选/取消文件,未勾选保留 | 复选框 | changelist 内子集提交 | `vcs-impl/.../changes/ui/CommitDialogChangesBrowser.java`;`GitCheckinEnvironment.commit(changes)` 接受子集 | 低 | 是(SCM 文件勾选) |
| 23 | 按代码块(chunk)提交 | Diff 中勾选 chunk 提交,其余保留 | Diff 区勾选 | `PartialLocalLineStatusTracker` + `PartialCommitHelper` | `vcs-impl/.../impl/PartialChangesUtil.kt`(`getPartialTracker`/`processPartialChanges`);`vcs-api/.../vcs/ex/PartialCommitHelper`;`GitCheckinEnvironment.addPartialChangesToIndex` | **高** | 部分(git staging + chunk staging,VS Code 1.70+ 支持 staging selected lines) |
@@ -85,7 +85,7 @@
### 组 4:Shelf 与 Stash
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 27 | Shelve changes(IDEA patch) | 暂存选定改动为 IDEA patch;可选择部分文件 | 右键 Shelve Changes / Shelve Silently(`Ctrl+Shift+H`) | `ShelveChangesManager`(patch 文件存储) | `vcs-impl/.../changes/shelf/ShelveChangesManager.java`、`ShelveChangesAction.kt`、`ShelveChangesCommitExecutor.java` | 中 | **无**(需 git stash 替代) |
| 28 | Unshelve silently / with conflict | 还原 shelf;静默或弹冲突解决 | `Ctrl+Shift+U` / Unshelve Silently(`Ctrl+Alt+U`)/ 拖拽 | `ShelvedChangesViewManager` + 3-way merge(冲突) | `shelf/UnshelveWithDialogAction.java`、`ShelvedChangesViewManager.java`、`RestoreShelvedChange.java` | 中 | 无 |
@@ -98,7 +98,7 @@
### 组 5:Diff(对比)
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 35 | 与 HEAD/分支/本地对比 | Diff Viewer 对比本地 vs HEAD / 任意分支 / 本地版本 | Diff 按钮(`Ctrl+D`)/ Compare HEAD, Staged and Local | `DiffProvider`/`GitDiffProvider` | `git4idea/diff/`;`ui/GitShowDiffWithBranchPanel.kt`;`branch/GitCompareBranchesUi.kt` | 中 | 是(editor diff) |
| 36 | Compare HEAD/Staged/Local 三方 | 三窗 Diff(repo / 中央可编辑 staging / local) | 右键 Compare HEAD, Staged and Local Versions | staging area interactive staging | 官方文档「Stage changes interactively」;`checkin/GitIndexUtil`(`listStaged`/`listTree`) | 中 | 部分 |
@@ -107,7 +107,7 @@
### 组 6:Log 提交图
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 39 | 提交图(graph) | 分支拓扑图、彩色节点 | Git 工具窗口 Log tab(`Alt+9`) | `platform/vcs-log`(VcsLog data + UI) | `platform/vcs-log/`(`VcsLogUi`、graph 渲染);git4idea `log/` | **高** | 无原生(需 GitGraph 等插件) |
| 40 | Search / filter(author/path/date/branch/regex) | 按 author、path、date、branch、正则过滤 | Log toolbar 过滤 | VcsLog filter 体系 | `platform/vcs-log/`(filter providers);官方文档 [Log Tab](https://www.jetbrains.com/help/idea/log-tab.html) | 中 | 部分(无原生图形 log 过滤) |
@@ -118,7 +118,7 @@
### 组 7:Branches
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 45 | Create / Checkout branch | 新建并检出 / 检出现有 / checkout-as-new | VCS widget / Branches pane | `git checkout -b/-` | `branch/GitCreateBranchOperation.kt`、`GitCheckoutOperation.java`、`GitCheckoutNewBranchOperation.java`;`actions/branch/GitCheckoutAsNewBranch.kt` | 低 | 是(命令面板) |
| 46 | Delete / Rename branch | 删除本地/远程分支/标签、重命名 | 右键 Delete/Rename | `git branch -d/-D`/`-m`;`git push origin --delete` | `branch/GitDeleteBranchOperation.java`、`GitDeleteRemoteBranchOperation.java`、`GitRenameBranchOperation.java`、`GitDeleteTagOperation.java` | 低 | 部分 |
@@ -129,7 +129,7 @@
### 组 8:右键 / 内联操作
-| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 复刻难度 | VS Code 原生 |
+| # | 功能名 | 用户可见行为 | 触发入口 | 底层机制 | 源码锚点 | 实现难度 | VS Code 原生 |
|---|---|---|---|---|---|---|---|
| 51 | Revert / Rollback | 回滚未提交改动(`RollbackEnvironment`) | 右键 Rollback / `RollbackChangesDialog` | `git checkout --` / reset | `rollback/GitRollbackEnvironment.java`;`vcs-impl/.../changes/ui/RollbackChangesDialog.kt`、`RollbackWorker.java` | 中 | 是(Discard Changes) |
| 52 | Reset HEAD(mixed/soft/hard/keep) | Git Reset 对话框选择模式 | 右键 / `GitResetHead` action | `git reset --soft/--mixed/--hard/--keep` | `actions/GitResetHead.java`;`ui/GitResetDialog.java` | 低 | 无原生(命令式) |
@@ -153,7 +153,7 @@
| 提交范围 | 提交所选 changelist(或其中勾选子集) | 提交整个 Staged group |
| 自动绑定分支 | **无原生 changelist↔branch 自动绑定**;需 Tasks 上下文(`ActiveChangeListTracker`) | 无 |
-> **复刻映射建议**:VS Code SCM 的 `ResourceGroup` 难以 1:1 表达「active + 跨文件行级归属」,建议在插件层自建「changelist registry」(仿 `ChangeListManager` + `ChangeListChange`),将 SCM group 作为渲染层,并通过 `LineStatusTracker`-like 行级 tracker 支撑 partial commit。这是 IDEA 模型对 VS Code 最大的差异与复刻难点。
+> **实现映射建议**:VS Code SCM 的 `ResourceGroup` 难以直接表达「active + 跨文件行级归属」,建议在插件层自建「changelist registry」(参考 `ChangeListManager` + `ChangeListChange` 设计),将 SCM group 作为渲染层,并通过 `LineStatusTracker`-like 行级 tracker 支撑 partial commit。这是 IDEA 模型与 VS Code 原生 SCM 模型最大的差异点与实现难点。
---
@@ -169,7 +169,7 @@
| Before-Commit 设置项(Settings 页) | `UnnamedConfigurable getBeforeCheckinSettings()` | `Settings \| VCS \| Commit` 配置页 | 持久化设置 | 中:AI 规则配置 |
| After-Commit 配置面板 | `RefreshableOnComponent getAfterCheckinConfigurationPanel(Disposable)` | 构建 After Commit 选项面板 | 注入部署等选项 | 低 |
| **Before check-in(核心闸门)** | `ReturnResult beforeCheckin(CommitExecutor, PairConsumer)` / `beforeCheckin()` | 提交按钮按下后、真正 commit 前 | `COMMIT`/`CANCEL`/`CLOSE_WINDOW` 可阻断提交 | **高**:AI 代码审查/质量闸门,可阻断不良提交 |
-| **CommitCheck(现代协程闸门)** | `suspend CommitProblem? runCheck(CommitInfo)` / `runGitCheck(commitInfo, changes)` | beforeCheckin 的协程演进版;`commitInfo.isVcsCommit` 时执行 | 返回 `CommitProblem`(含 `showModalSolution`) | **高**:AI 异步审查最佳挂载点(仿 `GitCheckinHandler`) |
+| **CommitCheck(现代协程闸门)** | `suspend CommitProblem? runCheck(CommitInfo)` / `runGitCheck(commitInfo, changes)` | beforeCheckin 的协程演进版;`commitInfo.isVcsCommit` 时执行 | 返回 `CommitProblem`(含 `showModalSolution`) | **高**:AI 异步审查最佳挂载点(参考 JetBrains `GitCheckinHandler` 设计) |
| CommitCheck 执行顺序 | `CommitCheck.ExecutionOrder getExecutionOrder()` | 排序多个 CommitCheck | `EARLY`/`DEFAULT`/`LATE` | 中:控制 AI 检查与其他检查顺序 |
| CommitCheck 启用开关 | `boolean isEnabled()` | 决定是否运行 | 布尔 | 中 |
| **Successful 回调** | `void checkinSuccessful()`(`@RequiresEdt`) | 提交成功后 | 通知/后续动作 | 高:AI 提交摘要、自动生成 PR 描述 |
@@ -180,7 +180,7 @@
> **CommitContext 关键字段**(贯穿整个流水线,承载 commit 选项):`commitToAmend`、`isSkipHooks`、`commitAuthor`、`commitAuthorDate`、`isSignOffCommit`、`isPushAfterCommit`、`isCommitRenamesSeparately`、`commitWithoutChangesRoots`。源码:`GitCheckinEnvironment.updateState()` / `doCommit()`。
>
-> **AI 接入建议**:实现一个 `CommitCheck`(EARLY 顺序)挂载 AI 审查 + 实现 `includedChangesChanged()` 动态生成 commit message + 实现 `checkinSuccessful()` 触发 AI 后处理,可完整复用 IDEA 提交流水线的「设计-实现-验证」闭环,无需重写 commit 引擎。
+> **AI 接入建议**:实现一个 `CommitCheck`(EARLY 顺序)挂载 AI 审查 + 实现 `includedChangesChanged()` 动态生成 commit message + 实现 `checkinSuccessful()` 触发 AI 后处理,可借鉴 JetBrains CheckinHandler 责任链的「设计-实现-验证」闭环,无需重写 commit 引擎。
---
@@ -209,7 +209,7 @@
---
## F. 待核实 / 不确定项
-1. **LocalChangeList 接口/实现类的精确文件路径**:zread 多次返回「文件不存在」(API 类可能位于非直觉路径或为生成/移动类),但其方法语义已通过 `ChangeListManager.java`(大量引用)+ `PartialChangesUtil.kt`(`LocalChangeList` import)+ `ChangeListWorker.java`(实现侧)交叉证实存在。**建议**复刻阶段直接以 `ChangeListManager` API 为契约蓝本。
-2. **Conventional Commits 内置校验**:WebSearch 与文档检索均未发现 IDEA 内置 CC 强校验类;结论为「IDEA 无原生 CC 校验,依赖 commit message 规则/第三方插件」,需在复刻时自行实现 CC linter。
+1. **LocalChangeList 接口/实现类的精确文件路径**:zread 多次返回「文件不存在」(API 类可能位于非直觉路径或为生成/移动类),但其方法语义已通过 `ChangeListManager.java`(大量引用)+ `PartialChangesUtil.kt`(`LocalChangeList` import)+ `ChangeListWorker.java`(实现侧)交叉证实存在。**建议**实现阶段直接以 `ChangeListManager` API 为契约蓝本。
+2. **Conventional Commits 内置校验**:WebSearch 与文档检索均未发现 IDEA 内置 CC 强校验类;结论为「IDEA 无原生 CC 校验,依赖 commit message 规则/第三方插件」,需在实现时自行构建 CC linter。
3. **Changelist 自动绑定分支的具体类**:`ActiveChangeListTracker.kt` 存在,但「changelist↔branch」自动绑定疑似走 Tasks 上下文模块(非 git4idea),未定位到确切绑定类。
4. **分支级 Pull/Push/Fetch 的精确 action 类**:`actions/branch/GitPullBranchAction.kt` 等结构已确认存在,但内部委托链(→ `GitBranchWorker`/`GitFetch`)未逐行核实。
diff --git a/docs/research/02-vscode-scm-integration.md b/docs/research/02-vscode-scm-integration.md
index cf738cd..851ce34 100644
--- a/docs/research/02-vscode-scm-integration.md
+++ b/docs/research/02-vscode-scm-integration.md
@@ -1,6 +1,6 @@
# Track2 调研报告:VS Code SCM API 与 vscode.git 导出 API 集成路径
-> 调研对象:在 VS Code 中复刻 IDEA 风格 Git 工具窗口(多 changelist + Commit 窗口)的最佳集成路径。
+> 调研对象:在 VS Code 中实现统一 Git 变更管理面板(多分组列表 + 自绘 Commit 提交面板)的最佳集成路径。
> 证据基线:microsoft/vscode 源码(`extensions/git/src/api/git.d.ts`、`api1.ts`、`vscode.d.ts`)、官方 SCM provider 指南、GitHub Issue 追踪记录、同类扩展(GitLens、vscode-pull-request-github)实践。
> 检索时间:2026 年 6 月。所有关键事实附 GitHub 文件路径或官方文档 URL;存疑项标注「待核实」。
@@ -10,7 +10,7 @@
| 决策项 | 结论 |
|---|---|
-| **推荐路径** | **路径 B(纯消费 vscode.git 导出 API + 自建 TreeView/WebviewView 渲染 IDEA UI),原生 Source Control 视图保持不动** |
+| **推荐路径** | **路径 B(纯消费 vscode.git 导出 API + 自建 TreeView/WebviewView 渲染自绘 UI),原生 Source Control 视图保持不动** |
| **changelist 模型** | VS Code SCM 是「分组(group)」模型,不是 IDEA 的「多 changelist」。多 changelist 用**自建 TreeView** 表达最忠实;若想借用原生视图,可用「每个 changelist 一个 `SourceControlResourceGroup`」近似但语义有损 |
| **Commit 窗口 UI** | 放在 **Secondary Side Bar 的 WebviewView**(自建视图容器),自带 Commit/Shelf/Stash 标签页 + Commit Message 编辑器;**不依赖也不替代**原生 `SourceControlInputBox`(稳定字段太弱,且 `SourceControlInputBoxValueProvider` 已被官方删除) |
| **提交图(Log)** | 原生 Source Control Graph 的 `scmHistoryProvider` **仍是 proposed API**(截至 2025-05 无 stable 时间表),不能稳定复用。Log 提交图须自建 TreeView + 消费 `Repository.log()` |
@@ -86,7 +86,7 @@ createResourceGroup(id, label) → { id, label, resourceStates, hideWhenEmpty, .
| `iconPath?: string \| Uri \| {light, dark}` | 自定义图标 |
| `source?: string` | 来源标注 |
-> IDEA 的 M/A/D/U/Renamed/Copied 完全可由 `letter` + `color` 组合复刻(git 扩展就是这么做的,见其 `Resource` 类的 decorations 计算)。
+> M/A/D/U/Renamed/Copied 等文件状态色完全可由 `letter` + `color` 组合实现(git 扩展就是这么做的,见其 `Resource` 类的 decorations 计算)。
### 1.5 QuickDiff(编辑器 gutter 内联 diff)
@@ -105,7 +105,7 @@ quickDiffProvider?: QuickDiffProvider // provideOriginalResource(uri) → 原
### 1.7 SCM 菜单贡献点(自定义二级菜单/inline 按钮)
-来源:[官方指南](https://code.visualstudio.com/api/extension-guides/scm-provider#source-control-view)。**全部稳定**,且能力足够复刻 IDEA 文件右键菜单:
+来源:[官方指南](https://code.visualstudio.com/api/extension-guides/scm-provider#source-control-view)。**全部稳定**,且能力足够支撑文件右键菜单:
| 菜单 id | 作用位置 | 可放 `inline`(行内按钮) |
|---|---|---|
@@ -125,11 +125,11 @@ quickDiffProvider?: QuickDiffProvider // provideOriginalResource(uri) → 原
`SourceControlHistoryItem` / `SourceControlHistoryItemChange` / `scmHistoryProvider` **至今仍是 proposed API**。VS Code 团队成员 lszomoru 2025-05-13 在 issue [#185269](https://github.com/microsoft/vscode/issues/185269) 明确:「计划 finalize 但无时间表」。定义文件:[vscode.proposed.scmHistoryProvider.d.ts](https://github.com/microsoft/vscode/blob/main/src/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts)。
-> 第三方扩展在 Marketplace 发布时使用 proposed API 受限(需特批)。因此 **IDEA 的 Log 提交图不能依赖原生 Source Control Graph,必须自建 TreeView**。
+> 第三方扩展在 Marketplace 发布时使用 proposed API 受限(需特批)。因此 **Log 可视化提交图不能依赖原生 Source Control Graph,必须自建 TreeView**。
### 1.9 Multi-Diff 编辑器 — proposed
-`scmMultiDiffSource`(多文件并排 diff 审查)是 proposed,跟踪 issue [#179000](https://github.com/microsoft/vscode/issues/179000),`vscode.changes` 命令标注「experimental, subject to change」。IDEA 风格的「提交前多文件 diff 预览」短期须自建 Webview 或逐文件 diff。
+`scmMultiDiffSource`(多文件并排 diff 审查)是 proposed,跟踪 issue [#179000](https://github.com/microsoft/vscode/issues/179000),`vscode.changes` 命令标注「experimental, subject to change」。「提交前多文件 diff 预览」短期须自建 Webview 或逐文件 diff。
---
@@ -272,7 +272,7 @@ git 本身**没有 changelist** 概念,只有 stage(index)。IDEA 的 changelist
- **物理层**:所有变更仍来自 `Repository.state.workingTreeChanges`(单一事实源)。
- **逻辑层**:Adapter 维护一个**本地 changelist 分配表**(`Map