Skip to content

Commit de98e36

Browse files
authored
Merge pull request #81 from ThreeFish-AI/feature/1.x.x
Feature/1.x.x
2 parents 2b09ff7 + bb473e8 commit de98e36

8 files changed

Lines changed: 93 additions & 10 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@
66
77
## [Unreleased]
88

9+
## [0.0.13] - 2026-07-05 — 视图容器由活动栏迁移至底部面板(Terminal 之后)
10+
11+
将 Hyper Git 视图容器从活动栏(Activity Bar / Primary Side Bar)迁移至底部面板(Panel),默认排在 Terminal 页签之后,提供与官方 Terminal / Output / Problems 一致的底部停靠体验。完整用户视角叙述见 [Release Note v0.0.13](./docs/releases/v0.0.13.md)。
12+
13+
### Changed
14+
- **视图容器 dock 迁移**:`package.json` 的 `viewsContainers` 由 `activitybar` 改为 `panel`,容器 id `hyper-git` 与全部 7 个视图(Commit / Graph / Branches / Stash / Shelf / Worktrees / changesBadge)不变;`.ts` 源码与图标无需改动(dock 类型与 views 归属、API 调用、图标规范完全解耦)。`initialSize` 语义随之由侧边栏高度权重变为 Panel 主轴权重,值本身不改。
15+
16+
### Known Limitations
17+
- **活动栏「始终可见」未提交角标消失**:迁移后活动栏不再有 Hyper Git 入口图标,[issue #10](./docs/.agents/issue.md) 修复的「面板未打开也持续显示」活动栏计数角标随之失效;未提交计数仅在 Panel 展开时可见(VS Code 平台行为)。详见 [issue #13](./docs/.agents/issue.md)。
18+
- **老用户需重置视图布局**:VS Code 会记忆旧的 activitybar 位置,升级后需命令面板执行「View: Reset View Locations」或右键容器页签「Reset Location」才采用新默认([issue #12](./docs/.agents/issue.md) 同款平台行为)。
19+
20+
### Docs
21+
- 新增 [Release Note v0.0.13](./docs/releases/v0.0.13.md);[issue #13](./docs/.agents/issue.md) 记录 dock 迁移决策与 badge 权衡。
22+
923
## [0.0.12] - 2026-07-04 — 提交详情光标跟随悬浮卡 · Tooltip 交互修复 · 布局优化 · 依赖升级基线
1024

1125
在 v0.0.11 基础上,将 Graph 提交详情悬浮卡重做为**随光标浮现、逐项对齐 VS Code 官方 Source Control GRAPH** 的形态(其间曾尝试迁移至右侧编辑器区面板,最终撤回、改回光标跟随浮层),并配套修复 CI / 提交两类 Tooltip 的定位、互斥、键盘触发与引用胶囊截断等一系列交互回归;同时优化侧边栏视图默认布局,并合入 TypeScript 6 / vitest 4 / vite 8 等依赖升级基线。完整用户视角叙述见 [Release Note v0.0.12](./docs/releases/v0.0.12.md)。

‎docs/.agents/issue.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,16 @@
102102
- **后续防范**:① VS Code 侧边栏视图存在约 **142px 硬性最小展开高度**,无法经扩展降低——遇「任意高度 / 无最小高度」类诉求应直接引 #123715(not planned)说明平台边界,**勿承诺实现**;判断「webview 内容 CSS `min-height`」与「外层面板最小高度」是两回事。② `visibility` / `initialSize` **只影响初始状态**(「用户手动折叠/移动/隐藏过后即不再生效」)——老用户需命令面板「View: Reset View Locations」或右键容器图标「Reset Location」才采用新默认;实机验证须用**干净 profile 或先重置**以规避持久化布局。③ 想让展开视图更紧凑,只能靠「减少常驻视图数(默认折叠)+ 权重」,而非解除下限。
103103
- **同类问题影响**:所有向活动栏/侧边栏容器贡献 TreeView/WebviewView 且希望自定义或取消视图高度的扩展;凡把「webview 内容 `min-height` CSS」误认为能改变外层面板最小高度的实现。
104104

105+
## #13 视图容器由活动栏迁移至底部 Panel(dock 决定 badge 可见性上限 + 页签顺序不可控)
106+
107+
- **表因**:用户要求将 Hyper Git 视图容器从默认的活动栏(Activity Bar / Primary Side Bar)迁移到底部面板(Panel),并希望排在 Terminal 页签之后。
108+
- **根因**:`contributes.viewsContainers` 的 `activitybar` 与 `panel` 是 dock 选择键,VS Code 通过容器 id 关联 `viewsContainers` 与 `views`,**容器挂在哪个 dock 与 views 归属、API 调用、图标规范完全解耦**——故迁移仅需将 `package.json` 中 `"activitybar"` 改为 `"panel"`,容器 id `hyper-git` 与全部 7 个视图、`.ts` 源码、`media/hyper-git-icon.svg`(24×24 单色 `currentColor`)均无需改动(`engines.vscode: ^1.85.0` ≫ panel 容器所需 1.56+)。
109+
- **处理方式**:单行改动 `viewsContainers.activitybar` → `viewsContainers.panel`,并 bump `0.0.12` → `0.0.13`。用户经评估后**明确接受 trade-off**(见下),不引入双容器或状态栏计数器。
110+
- **后续防范**:
111+
1. **Panel 容器相对内置页签顺序不可控**:VS Code **不提供**任何 contribution point 控制 panel 容器相对内置页签(Terminal/Output/Problems/Debug)的顺序;默认行为是新装扩展的容器**追加在内置页签之后**,用户可拖拽并持久化。遇「精确紧邻某内置页签」类诉求应直接说明平台边界,**勿承诺实现**。
112+
2. **dock 迁移改变 `initialSize` 语义**:`initialSize` 是容器主轴方向的权重(类 flex-grow);侧边栏主轴=垂直(高度权重),Panel 默认主轴=水平(宽度权重)。值本身无需改,但语义随用户布局方向变化;遇视图过挤应调权重而非解除下限(与 #12 同一硬编码边界)。
113+
3. **dock 决定 badge 可见性上限**(关键):activitybar 容器图标支持「未聚焦也聚合显示」的一等 badge(#10 据此实现「面板未打开也持续显示」);**panel 容器页签 badge 的可见性受 Panel 展开/收起态约束**。`when:false` TreeView 在 panel dock 下的聚合可见性需 EDH 实测(跨 VS Code 版本)。本案用户**明确接受**此 trade-off——未提交计数仅在 Panel 展开时可见,不触发双容器回退;若后续需恢复「始终可见」计数,应走双容器(panel 主 + activitybar badge 专用)或状态栏计数器方案。
114+
4. **dock 迁移属用户可见布局变更**:VS Code 会记忆旧 dock 位置,老用户升级后需「View: Reset View Locations」或右键容器页签「Reset Location」才采用新默认(与 #12 同款平台行为,实机验证须用干净 profile)。
115+
- **同类问题影响**:所有在 activitybar/panel 间迁移自定义视图容器的扩展;凡依赖容器图标 badge「始终可见」语义的扩展;以及把「dock 迁移」误当作纯内部重构而忽视 badge 可见性回退的实现。
116+
105117

‎docs/.agents/knowledge-map.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
- [工程实施方案](../docs/architecture/engineering-plan.md) — 路径 B 架构 + M0-M5 里程碑(**开发蓝图**)。
2626
- [Git 功能矩阵](../docs/requirements/idea-feature-matrix.md) — 56 功能点 / 8 组(**验收基线**,参考 IDEA 等成熟实现)。
2727
- [调研报告](../docs/research/README.md) — SCM 集成 / 工程蓝图 / 发布 CI / AI 接缝四路循证报告。
28-
- [发布说明](../releases/README.md) — 各正式版 Release Notes(GitHub Release 正文单一事实源;最新 [v0.0.12](../releases/v0.0.12.md))。
28+
- [发布说明](../releases/README.md) — 各正式版 Release Notes(GitHub Release 正文单一事实源;最新 [v0.0.13](../releases/v0.0.13.md))。
2929

3030
## 架构分层(src/)
3131
> 依赖方向单向:`UI → Adapter → Engine`;`Agent` 以接口注入 `Engine`/`CommitPipeline`,不反向依赖 UI。

‎docs/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
- [Log 视图 CI 状态](./features/log-ci-status.md) — 按提交显示 GitHub CI 最终状态(绿勾/红叉 + 悬停 Tooltip 明细):认证、限流、懒加载、边界与配置。
1212

1313
## 发布说明
14-
- [Release Notes 目录](./releases/README.md) — 各正式版发布说明(GitHub Release 正文单一事实源);最新:[v0.0.12 提交详情光标跟随悬浮卡 · Tooltip 交互修复 · 布局优化 · 依赖升级基线](./releases/v0.0.12.md)。
14+
- [Release Notes 目录](./releases/README.md) — 各正式版发布说明(GitHub Release 正文单一事实源);最新:[v0.0.13 视图容器由活动栏迁移至底部 Panel(Terminal 之后)](./releases/v0.0.13.md)。
1515

1616
## 调研报告(循证依据)
1717
- [02 · VS Code SCM API 与 vscode.git 集成路径](./research/02-vscode-scm-integration.md) — 路径 B 决策依据、SCM 稳定/proposed API 边界、changelist 模型映射。

‎docs/releases/README.md‎

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

99
| 版本 | 说明 | 日期 |
1010
|---|---|---|
11+
| [v0.0.13](./v0.0.13.md) | 视图容器由活动栏迁移至底部 Panel(Terminal 之后) | 2026-07-05 |
1112
| [v0.0.12](./v0.0.12.md) | 提交详情光标跟随悬浮卡 · Tooltip 交互修复 · 侧边栏布局优化 · 依赖升级基线(TS6 / vitest4 / vite8) | 2026-07-04 |
1213
| [v0.0.11](./v0.0.11.md) | 首个正式版(承载 0.0.10 内容)· Graph 视图对齐官方 · 发布渠道收敛 Marketplace | 2026-07-04 |
1314
| [v0.0.9](./v0.0.9.md) | 视图整合 · UI 系统化 · 分支与 CI 增强(自 v0.0.6 全量) | 2026-07-04 |

‎docs/releases/v0.0.13.md‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Hyper Git - Agentic Git v0.0.13 — 视图容器迁移至底部 Panel(Terminal 之后)
2+
3+
> 将 Hyper Git 视图容器从默认的活动栏(Activity Bar / Primary Side Bar)迁移至**底部面板(Panel)**,默认排在 Terminal 页签之后,与官方 Terminal / Output / Problems 提供一致的底部停靠体验。
4+
5+
> 本版仅变更视图容器的 dock 位置,未改动任何 `viewType`、消息协议、`webview.setState` 形状与配置项,旧状态无需迁移。
6+
7+
---
8+
9+
## ✨ 亮点速览
10+
11+
- **底部 Panel 停靠**:Hyper Git 视图容器从左侧活动栏迁移至底部面板,与 Terminal / Output / Problems / Debug Console 并列;默认页签位置在 Terminal 之后,可拖拽微调。
12+
- **零回归**:仅 `package.json` 单行 dock 变更(`activitybar` → `panel`),全部 7 个视图(Commit / Graph / Branches / Stash / Shelf / Worktrees / changesBadge)的 id、源码、图标均不变;webview 渲染、tree provider、命令、菜单、配置项全部沿用。
13+
14+
---
15+
16+
## 🧩 完整能力
17+
18+
### 视图容器:活动栏 → 底部 Panel
19+
20+
- **迁移目标**:将 `contributes.viewsContainers` 的容器 `hyper-git` 由 `activitybar`(左侧活动栏)迁至 `panel`(底部面板)。容器 id 与 `views` 归属解耦——VS Code 通过容器 id 关联两者,故视图槽位、API 注册、图标规范均无需改动。
21+
- **默认页签顺序**:VS Code 平台不提供精确控制 Panel 内页签顺序的能力;新安装扩展的容器默认**追加在内置页签(Terminal / Output / Problems / Debug Console)之后**。如需调整(例如紧邻 Terminal),可在 Panel 页签栏拖拽 Hyper Git 到期望位置,VS Code 会持久化该布局。
22+
23+
### 已知边界:未提交计数角标的可见性变化
24+
25+
迁移到底部 Panel 后,**活动栏不再保留 Hyper Git 入口图标**,因此 [issue #10](../.agents/issue.md) 修复的「面板未打开也持续显示」未提交计数角标随之失效——**未提交计数仅在 Panel 展开(且 Hyper Git 页签可见)时呈现**。这是 VS Code 平台行为:activitybar 容器图标支持「未聚焦也聚合」的一等 badge,而 panel 容器页签的 badge 受 Panel 展开/收起态约束。
26+
27+
> 若你希望恢复「始终可见」的未提交计数,欢迎在 [GitHub Issues](https://github.com/ThreeFish-AI/hyper-git/issues) 反馈,可考虑后续提供「双容器(Panel 主面板 + 活动栏轻量角标)」或「状态栏计数器」补救方案。
28+
29+
---
30+
31+
## ⚙️ 升级与兼容
32+
33+
- **无破坏性变更**:仅 `package.json` 的 dock 字段变更,未改动 `viewType`、消息协议、`setState` 形状或配置项,旧状态无需迁移。
34+
- **老用户需重置视图布局**:VS Code 会记忆旧的 activitybar 位置,从 v0.0.12 升级后,Hyper Git 可能仍出现在活动栏。执行以下任一操作即可采用新的 Panel 默认:
35+
- 命令面板(`Cmd/Ctrl + Shift + P`)→ 输入 **「View: Reset View Locations」**;
36+
- 或在 Panel / 活动栏中右键 Hyper Git 图标 → **「Reset Location」**。
37+
- **页签顺序微调**:如希望 Hyper Git 页签紧邻 Terminal,在 Panel 页签栏拖拽即可,VS Code 会持久化。
38+
39+
---
40+
41+
## 📦 安装
42+
43+
- **VS Code Marketplace**:搜索 `Hyper Git - Agentic Git` 直接安装。
44+
- **手动**:从 [Releases](https://github.com/ThreeFish-AI/hyper-git/releases/tag/v0.0.13) 下载 `hyper-git-agentic-git-0.0.13.vsix` → 命令面板 `Extensions: Install from VSIX`(Cursor / Windsurf / VSCodium 等用户可经此方式安装)。
45+
46+
**系统要求**:VS Code ≥ 1.85.0,且启用内置 Git 扩展(`vscode.git`,默认随附)。仅支持本地 git 仓库,不支持虚拟 / Web 工作区。
47+
48+
---
49+
50+
## 💬 反馈
51+
52+
欢迎在 [GitHub Issues](https://github.com/ThreeFish-AI/hyper-git/issues) 反馈问题与建议。完整工程视角变更记录见 [CHANGELOG](../../CHANGELOG.md)。
53+
54+
许可证:[MIT](https://github.com/ThreeFish-AI/hyper-git/blob/master/LICENSE)。

‎package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"theme": "dark"
88
},
99
"description": "Hyper Git brings IntelliJ IDEA's powerful Git & Commit modules to VS Code, enhanced with AI-powered autonomous agents for intelligent repository management. Experience Git in a higher dimension.",
10-
"version": "0.0.12",
10+
"version": "0.0.13",
1111
"publisher": "ThreeFish-AI",
1212
"license": "MIT",
1313
"preview": true,
@@ -48,7 +48,7 @@
4848
"main": "./dist/extension.js",
4949
"contributes": {
5050
"viewsContainers": {
51-
"activitybar": [
51+
"panel": [
5252
{
5353
"id": "hyper-git",
5454
"title": "Hyper Git",

‎src/extension.ts‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,10 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
9999
const blame = new BlameAnnotationController(service);
100100
const shelfService = new ShelfService(service, context.globalStorageUri.fsPath);
101101
const shelfTree = new ShelfTreeProvider(shelfService);
102-
// 活动栏未提交数角标承载:隐藏 TreeView(package.json 中 when:false,永不渲染)。createTreeView 于
103-
// activate 即实例化视图对象,其 badge 无论面板是否打开都可靠聚合到容器图标——规避 WebviewView.badge
104-
// 在 resolveWebviewView(用户至少打开过一次视图)前无法显示的已知限制(microsoft/vscode#164974、#146330)。
102+
// 未提交数角标承载:隐藏 TreeView(package.json 中 when:false,永不渲染)。createTreeView 于 activate
103+
// 即实例化视图对象,其 badge 聚合到容器图标/页签——规避 WebviewView.badge 在 resolveWebviewView(用户
104+
// 至少打开过一次视图)前无法显示的已知限制(microsoft/vscode#164974、#146330)。v0.0.13 起容器由活动栏
105+
// 迁至底部 Panel(issue #13):角标仅在 Panel 展开时可见,活动栏「始终可见」特性失效(用户已接受 trade-off)。
105106
// 复用占位 EmptyTreeProvider(空树)。
106107
const badgeView = vscode.window.createTreeView('hyperGit.changesBadge', {
107108
treeDataProvider: new EmptyTreeProvider(),
@@ -150,15 +151,16 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
150151
registerInlineCommitCommand(service, inlineLens),
151152
);
152153

153-
// 活动栏未提交数角标:承载于隐藏的 changesBadge TreeView(见其创建处说明)。
154+
// 未提交数角标:承载于隐藏的 changesBadge TreeView(见其创建处说明)。
154155
// 计数复用 service.getChangeCount()(index+工作区+未跟踪去重),为 0 时清空,对齐原生 SCM 行为。
156+
// v0.0.13:容器迁至 Panel 后,角标仅在 Panel 展开时聚合显示(issue #13)。
155157
const updateBadge = (): void => {
156158
const n = service.getChangeCount();
157159
badgeView.badge = n > 0 ? { value: n, tooltip: `${n} uncommitted change(s)` } : undefined;
158160
};
159161

160-
// 角标走独立快路径(~40ms 微防抖):面板即便未打开也近实时更新,并合并 add -A/checkout 等事件风暴,
161-
// 与下方重刷新(150ms)解耦,避免被 log/branches 等高频重拉阻塞。
162+
// 角标走独立快路径(~40ms 微防抖):即便视图未 resolve / Panel 未激活也近实时更新计数(Panel 展开即呈现),
163+
// 并合并 add -A/checkout 等事件风暴,与下方重刷新(150ms)解耦,避免被 log/branches 等高频重拉阻塞。
162164
let badgeTimer: ReturnType<typeof setTimeout> | undefined;
163165
const scheduleBadge = (): void => {
164166
clearTimeout(badgeTimer);

0 commit comments

Comments
 (0)