Skip to content

Commit cac355a

Browse files
authored
docs+fix+release: M0-M5 文档沉淀 + M0-M4 审查补缺口 + v0.0.1-rc.1 发布准备
* docs(M0-M5): 新增实施状态总览并同步索引与 README 发布段落; 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com> * fix(Review): M3/M4 审查修复(stash 枚举 block/Disposable 泄漏/防抖/blame 守卫)+ 补 Discard/Pull/Push/Fetch 与 ChangelistRegistry 测试; 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com> * chore(Release): v0.0.1-rc.1 首发候选(版本+PNG 图标+CI --pre-release+Dependabot+CHANGELOG); 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
1 parent d2c17d6 commit cac355a

19 files changed

Lines changed: 411 additions & 75 deletions

.agents/knowledge-map.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
## 项目文档(docs/)
1818
- [文档中心](../docs/README.md) — 文档与调研资产总索引。
19+
- [实施状态总览](../docs/milestones/implementation-status.md) — M0-M5 交付记录 + API 限制 + M5 AI 设计 + 验证/发布(**实施看板**)。
1920
- [工程实施方案](../docs/architecture/engineering-plan.md) — 路径 B 架构 + M0-M5 里程碑(**开发蓝图**)。
2021
- [IDEA 功能复刻矩阵](../docs/requirements/idea-feature-matrix.md) — 56 功能点 / 8 组(**验收基线**)。
2122
- [调研报告](../docs/research/README.md) — SCM 集成 / 工程蓝图 / 发布 CI / AI 接缝四路循证报告。

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
open-pull-requests-limit: 5
8+
- package-ecosystem: github-actions
9+
directory: /
10+
schedule:
11+
interval: weekly
12+
open-pull-requests-limit: 5

.github/workflows/ci.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,14 @@ jobs:
9393
with:
9494
name: vsix
9595
- name: 发布到 VS Code Marketplace
96-
run: pnpm dlx @vscode/vsce publish --packagePath *.vsix
96+
run: |
97+
PRE_FLAG=$([[ "${GITHUB_REF_NAME}" == *rc* ]] && echo "--pre-release" || echo "")
98+
pnpm dlx @vscode/vsce publish --packagePath *.vsix $PRE_FLAG
9799
env:
98100
VSCE_PAT: ${{ secrets.VSCE_PAT }}
99101
- name: 发布到 OpenVSX(覆盖 Cursor / Windsurf 等 AI IDE)
100-
run: pnpm dlx ovsx publish *.vsix
102+
run: |
103+
PRE_FLAG=$([[ "${GITHUB_REF_NAME}" == *rc* ]] && echo "--pre-release" || echo "")
104+
pnpm dlx ovsx publish *.vsix $PRE_FLAG
101105
env:
102106
OVSX_PAT: ${{ secrets.OVSX_PAT }}

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@
44

55
## [Unreleased]
66

7+
## [0.0.1-rc.1] - 2026-06-27 — 首发候选(Pre-release)
8+
9+
首个公开预发布候选,整合 M0-M4 里程碑交付 + 两轮独立 code review 修复。
10+
版本号遵循 VS Code Marketplace 约定(仅 `major.minor.patch` = `0.0.1`),预发布语义由 `--pre-release` 标记 + git tag `v0.0.1-rc.1` 体现。
11+
12+
**核心能力**:多 changelist Changes 视图、Commit 提交窗口(Conventional Commits 校验 + Amend/sign-off/skipHooks + Checkin hook 链)、Log/Branches/Blame/Show History、Stash(create/apply/pop/drop)、Discard 改动、Pull/Push/Fetch。架构路径 B(消费 vscode.git 稳定 API),5 个 AI 接缝已预埋(M5 实现)。
13+
14+
**已知限制**(vscode.git 稳定 API 边界):cherry-pick / revert / reset / 分支重命名 / 行级 hunk 暂存 / 多 stash 列表枚举 / Author 覆盖暂不可用,详见 [实施状态 §3](./docs/milestones/implementation-status.md#3-api-限制汇总vscodegit-稳定-api-边界)
15+
716
### Added — M4 Stash/Shelf(0.5.0)
817

918
- **Stash 视图**`StashTreeProvider``Repository.log({ refNames: ['stash'] })` 枚举 stash(API 不暴露 `git stash list`,以此近似)。

README.md

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,46 @@ IntelliJ IDEA 的统一 Git 工具窗口(顶部 `Commit / Shelf / Stash` 标
1515
- **自绘** 独立视图容器承载 IDEA 风格 UI,与原生 Source Control 视图零冲突、平行共存。
1616
- **AI**:现仅预留接口接缝(`ILlmProvider` / `IPreCommitInspector` 等,对齐 IDEA `CheckinHandler` 生命周期),实现延后至 M5。
1717

18-
详见[工程实施方案](./.claude/plans)(决策循证基线)与[知识索引](./.agents/knowledge-map.md)
18+
## 功能(v0.0.1-rc.1)
19+
20+
- **多 changelist Changes 视图**:active 列表、新建/删除/重命名/移动,`workspaceState` 持久化(重启恢复);文件状态色复用 `gitDecoration.*` 主题色。
21+
- **Commit 提交窗口**:多行编辑器 + Conventional Commits 实时校验 + Amend / Signed-off-by / 跳过 Git hooks + Commit / Commit and Push;勾选集为提交权威范围;最近消息复用。
22+
- **Log 提交历史**:按作者/路径过滤、清除过滤、复制 commit hash、显示文件历史。
23+
- **Branches**:本地/远程分组、活动分支高亮;新建/检出/删除/合并/变基(rebase)。
24+
- **Stash**:create / apply / pop / drop(作用于 stash@{0} 最新)。
25+
- **其他**:Discard 改动、Pull / Push / Fetch、Blame、Diff(HEAD ↔ Working)。
26+
27+
## 安装
28+
29+
- **VS Code Marketplace**:搜索 `Hyper Git`(发布后)。
30+
- **OpenVSX**(Cursor / Windsurf / Gitpod / VSCodium):同 `Hyper Git`
31+
- **手动**:从 [Releases](https://github.com/ThreeFish-AI/hyper-git/releases) 下载 `.vsix` → 命令面板 `Extensions: Install from VSIX`
32+
- **要求**:VS Code ≥ 1.85.0 + 启用内置 Git 扩展(`vscode.git`,默认随附)。
33+
34+
## 已知限制
35+
36+
> 以下受 vscode.git 稳定 API 边界限制,暂不可用(详见 [实施状态 §3](./docs/milestones/implementation-status.md#3-api-限制汇总vscodegit-稳定-api-边界)):
37+
38+
- cherry-pick / revert(commit-level)/ reset / 分支重命名:稳定 API 无对应方法。
39+
- 行级 / hunk 级 partial commit:`add` 仅整文件。
40+
- 多 stash 列表枚举:API 无 `git stash list`(当前 apply/pop/drop 作用于 stash@{0})。
41+
- Author 覆盖:`commit()``CommitOptions``author` 字段。
42+
- 完整 Log 拓扑图(SVG 连线):作为 M3.x 增强。
43+
44+
详见[工程实施方案](./docs/architecture/engineering-plan.md)[实施状态总览](./docs/milestones/implementation-status.md)[知识索引](./.agents/knowledge-map.md)
1945

2046
## 路线图
2147

2248
| 里程碑 | 主题 | 状态 |
2349
|---|---|---|
24-
| **M0** | 脚手架 + CI | ✅ 进行中 |
25-
| M1 | Git Adapter + Changes TreeView(多 changelist) ||
26-
| M2 | Commit 提交窗口(模板 / Amend / CC 校验 / hook 链) ||
27-
| M3 | Log 提交图 + Branches + Diff/Blame ||
28-
| M4 | Shelf + Partial/行级提交 + Stash UI ||
29-
| M5 | AI Agent(实现接缝) ||
50+
| M0 | 脚手架 + CI ||
51+
| M1 | Git Adapter + Changes TreeView(多 changelist) ||
52+
| M2 | Commit 提交窗口(模板 / Amend / CC 校验 / hook 链) ||
53+
| M3 | Log + Branches + Diff/Blame ||
54+
| M4 | Stash / Shelf MVP ||
55+
| M5 | AI Agent(实现接缝) | ⏳ 留存设计,暂不实施 |
56+
57+
> ⚠️ vscode.git 稳定 API 不含 cherry-pick / revert / reset / 分支重命名 / 行级 hunk 暂存;这些 IDEA 功能暂不可用(详见[实施状态 §3](./docs/milestones/implementation-status.md#3-api-限制汇总vscodegit-稳定-api-边界))。
3058
3159
## 开发
3260

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
> 项目文档与调研资产索引。所有决策均循证(附 GitHub 源码路径 / 官方文档 URL)。
44
55
## 工程方案与需求基线(高频引用)
6+
- [实施状态总览(M0-M5)](./milestones/implementation-status.md) — 里程碑交付记录、P0/P1 达成矩阵、API 限制、M5 AI 设计、验证与发布状态(**实施看板**)。
67
- [工程实施方案](./architecture/engineering-plan.md) — 全链路调研结论 + 路径 B 架构 + M0-M5 里程碑路线图 + 风险与验证(**开发蓝图**)。
78
- [IDEA 功能复刻矩阵](./requirements/idea-feature-matrix.md) — 56 个原子功能点 / 8 组 + CheckinHandler 生命周期(**验收基线**)。
89

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# 实施状态总览(M0 → M5)
2+
3+
> Hyper Git VS Code 扩展的里程碑实施记录、API 限制发现、功能达成矩阵与 M5 AI 设计(留存)。
4+
> 本文档随里程碑推进即时更新;调研与原始方案见 [工程实施方案](../architecture/engineering-plan.md)[调研报告](../research/README.md)
5+
> 最后更新:2026-06-27(M0-M4 落地完成,准备 v0.0.1-rc.1)。
6+
7+
---
8+
9+
## 0. 概览
10+
11+
- **架构**:路径 B —— 消费内置 `vscode.git` 稳定 `Repository` API + 自建 changelist registry + 独立视图容器自绘 IDEA 风格 UI,不接管原生 Source Control 视图。
12+
- **分层**`engine/`(纯逻辑,零 vscode 依赖)/ `adapter/`(唯一接触 vscode API)/ `agent/`(AI 接缝)/ `shared/`(契约)/ `infra/`
13+
- **质量基线**:TypeScript strict + ESLint9 + Vitest(engine 单测)+ @vscode/test-electron(adapter 集成)+ esbuild + 三平台 CI(Linux xvfb)。
14+
- **验证**:单测 45/45、集成 3/3(含真实 git 提交闭环 + amend)、`vsce package` 产 vsix。
15+
16+
## 1. 里程碑交付记录
17+
18+
| 里程碑 | 版本 | PR | 交付 | 验收 |
19+
|---|---|---|---|---|
20+
| M0 脚手架+CI | 0.1.0 | [#1](https://github.com/ThreeFish-AI/hyper-git/pull/1) | pnpm+esbuild+TS strict+ESLint9+Vitest+test-electron;正交分层骨架;CI 三平台矩阵+双市场发布;engine 纯逻辑 + AI 接缝预留 | check-types/lint/package/test 全绿 |
21+
| 调研资产持久化 || [#2](https://github.com/ThreeFish-AI/hyper-git/pull/2) | docs/(IDEA 56 功能矩阵、工程方案、四路调研报告) ||
22+
| M1 Git Adapter+多 changelist | 0.2.0 | [#3](https://github.com/ThreeFish-AI/hyper-git/pull/3) | GitRepositoryService、ChangelistRegistry(CRUD+持久化)、Changes TreeView(状态色+diff) | 集成:真实仓库变更渲染 |
23+
| M2 Commit 窗口 | 0.3.0 | [#4](https://github.com/ThreeFish-AI/hyper-git/pull/4) | Commit WebviewView(勾选+多行编辑器+Amend/signoff/skipHooks+CC 实时校验)、CommitPipeline(Checkin hook 链)、5 AI 接缝 Null 注入 | 集成:真实 git 提交闭环 |
24+
| 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 |
25+
| 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 | 命令注册集成 |
26+
| 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 近似) | 命令注册集成 |
27+
28+
## 2. P0/P1 功能达成矩阵(对照 [IDEA 功能矩阵](../requirements/idea-feature-matrix.md)
29+
30+
> 状态:✅ 已实现 · ⚠️ 部分/未验证 · 🔶 API 受限(无稳定 API) · ⏳ 未做(属后续里程碑)
31+
32+
| 功能域(矩阵#) | 优先级 | 状态 | 说明 |
33+
|---|---|---|---|
34+
| Commit 窗口(#1-3,5,7-9,22) | P0 || 窗口/模板/历史/Amend/Author 占位/signoff/skipHooks/Commit&Push/选择性勾选 |
35+
| Conventional Commits(#4) | P0/P1 || linter + webview 实时 + pipeline hook 阻断 |
36+
| Author 覆盖(#6) | P0 | 🔶 | vscode.git 稳定 `commit()` 不支持 `--author`(API 限制,文档化) |
37+
| 多 changelist(#15-20) | P0 || active/新建/删除/重命名/移动 + workspaceState 持久化 |
38+
| Commit 检查流水线(#10-12) | P1 | ⚠️ | CommitPipeline 责任链 + CC hook;CRLF/大文件预检(#12)未实现(可扩展 hook) |
39+
| Diff(#35,37,38) | P0/P1 || 本地↔HEAD diff、Blame、Show History(文件历史) |
40+
| Rollback/Discard(#51) | P0 | ⚠️ | **当前无 discard/rollback 命令**(见 §4 缺口) |
41+
| Branches(#45-48) | P1 | ✅/🔶 | create/checkout/delete/merge/rebase ✅;rename 🔶(API 无) |
42+
| Stash(#29,30) | P1 || create/apply/pop/drop(稳定 API);list 用 log refNames 近似 |
43+
| Log 提交图(#39,40) | P2 | ⚠️ | Log TreeView(列表+过滤);**完整 SVG 拓扑图未做**(M3.x) |
44+
| cherry-pick/revert from log(#41,42) | P2 | 🔶 | 稳定 API 无 cherry-pick/revert |
45+
| Undo Commit/Reset(#43,52) | P2 | 🔶 | 稳定 API 无 reset |
46+
| Partial/行级提交(#23-25) | P2 | 🔶 | `add` 仅整文件,无 hunk 暂存(API 限制) |
47+
| Shelf 忠实(#27,28) | P2 | ⚠️ | MVP 用 stash 近似;忠实 patch Shelf 🔶 |
48+
49+
## 3. API 限制汇总(vscode.git 稳定 API 边界)
50+
51+
> 经逐行复核 `extensions/git/src/api/git.d.ts``api1.ts` 确认。以下 IDEA 功能**无稳定 API 对应**,文档化延后;未来可经 git CLI 兜底或 proposed API 评估。
52+
53+
- **cherry-pick / revert(commit-level)/ reset**:Repository 无对应方法。
54+
- **分支重命名**:无 `renameBranch`(仅 createBranch/deleteBranch/setBranchUpstream)。
55+
- **行级 / hunk 级暂存**`add(paths)` 仅整文件;无 `git add -p` 暴露。
56+
- **`git stash list` 枚举**:无公开方法;M4 用 `log({ refNames: ['stash'] })` 近似。
57+
- **Author 覆盖**`commit(message, opts)``CommitOptions``author` 字段。
58+
- **忠实 patch Shelf**:git 无原生 shelve;可用 `diffBetweenPatch` + `apply({threeWay})` 自建(复杂,延后)。
59+
- **提交图 History Provider / 多文件 diff 编辑器**`scmHistoryProvider`/`scmMultiDiffSource` 仍为 proposed API,上架扩展禁用。
60+
61+
## 4. 已知缺口(待补)
62+
63+
- **Rollback/Discard 命令**(P0 #51):M1/M2 范围内遗漏。vscode.git 有 `revert(paths)`(unstage)/ `clean(paths)`(discard untracked)/ `restore(paths, {staged})`,可实现「Discard Changes」。**建议补入 rc.1 后的小版本**
64+
- **ChangelistRegistry CRUD 单测**:因 vscode 耦合 + 打包内联,未单测;逻辑简单 + grouper 已测,风险低。
65+
- **Log/Branches/Stash 命令的真实集成测试**:当前仅测命令注册;分支 checkout/merge 等的真实 git 验证可补。
66+
- **完整 Log SVG 拓扑图**:M3.x 增强。
67+
- **PNG 图标(128×128)**:发布 Marketplace 推荐;rc.1 处理。
68+
69+
## 5. M5 AI Agent 设计(留存,暂不实施)
70+
71+
> 详见 [Track5 AI Agent 架构预留](../research/05-ai-agent-seams.md)。M2 已埋全部接缝 + Null 实现;M5 替换为真实实现。
72+
73+
**5 个 AI 接缝**(agent/,依赖 engine 不依赖 adapter):
74+
- `ILlmProvider`:模型来源抽象(vscodeLM / byok-Ollama / openaiCompatible)。**最关键**——未来切换模型来源的命脉。
75+
- `ICommitMessageProvider`:AI 提交信息生成(staged diff + 团队规范 → 流式 CC 合规 message)。
76+
- `IPreCommitInspector`:提交前 AI 代码审查(对齐 IDEA `CheckinHandler.beforeCheckin`,可阻断)。
77+
- `IChangelistGrouper`:变更语义分组(回写 changelist)。
78+
- `IConflictResolver`:冲突解决(用户逐块确认)。
79+
80+
**Commit 流水线 hook 注入点**(M2 已建责任链,默认 Null):
81+
`staged diff → [Hook A 提交信息生成] → message → [Hook B beforeCheckin 检查链] → [Hook C 分组] → commit → [Hook D checkinSuccessful] → push → [Hook E/F 冲突]`
82+
83+
**落地机制(2026 现状)**
84+
- VS Code Language Model API(`vscode.lm`):底层模型访问;不支持 system message、需用户 consent、不可集成测试。
85+
- Chat Participant(`@hyper-git`)+ Language Model Tools(`languageModelTools` 暴露 git 能力给任意 Agent)。
86+
- BYOK Provider API(Ollama 本地 / OpenRouter / OpenAI 兼容)。
87+
- prompt-tsx(alpha)。
88+
89+
**差异化**(vs 内置 Copilot commit message):注入完整 commit 流程上下文(changelist/团队规范)+ 回写工作流 + Chat Tools 暴露。
90+
91+
**M5 启动前置**`engines.vscode` 上调以支持 LM/Chat API;opt-in 配置开关;模型来源可切换。
92+
93+
## 6. 验证体系
94+
95+
- **单元测试(Vitest,< 1s)**:engine/ 纯逻辑(scm-mapping、changelist-grouper、commit-pipeline、conventional-linter、git-status-map、conventional-check)+ CommitService.executeCommit(mock Repository,7 分支)。共 45 项。
96+
- **集成测试(@vscode/test-electron**:扩展激活 + 全部命令注册(M1-M4);真实 git 提交闭环(fixture 仓库 add+commit+git log 校验);amend 改写 HEAD。共 3 项。
97+
- **CI(GitHub Actions)**:lint→build→test 矩阵(ubuntu/mac/win + Linux xvfb)→package vsix→artifact;`tag v*` → 双市场发布(Marketplace + OpenVSX,需 secrets)。
98+
99+
## 7. 发布状态
100+
101+
- **当前版本**:0.5.0(preview,内部里程碑)。
102+
- **首发候选**: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 体现。
103+
- **发布前置**:publisher 账号(`threefish-ai`)、VSCE_PAT / OVSX_PAT secrets、PNG 图标。

eslint.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export default tseslint.config(
1212
'node_modules/**',
1313
'.vscode-test/**',
1414
'*.vsix',
15+
'.temp/**',
1516
'esbuild.js',
1617
'tests/run-integration.js',
1718
'tests/suite/**',

media/icon.png

490 Bytes
Loading

0 commit comments

Comments
 (0)