chore(release): 同步 v0.0.16 至 master —— 多根工作区仓库切换 · 分支分组树 · Agentic Git 预置 · Diff 与布局修复 - #114
Merged
Conversation
Local/Remote/Tags 三段支持在平铺与「按 / 前缀分组的文件夹树」间切换:共享前缀的分支 收拢到以前缀命名的可折叠文件夹下、叶子仅显示末段后缀(如 bak/2025、bak/master-2025-07 → 📁bak → 2025 / master-2025-07;远程整体收拢为 origin 文件夹并内嵌 feature)。 - 新增纯逻辑引擎 buildRefTree(engine/ref/ref-tree.ts,零 vscode 依赖):复用变更文件目录树 buildFileTree 的 trie 构建 + compact 折叠范式;叶子携完整 RawRef(命令定位不受影响); 分支感知排序(当前 HEAD → 收藏 → 同档文件夹优先、名称数字感知升序)。含 12 条单测。 - 隐藏 origin/HEAD 符号引用:对齐主流 Git UI,消除 origin 叶子与 origin 文件夹同名冲突, 远程计数归为真实分支数。 - 工具栏「平铺 ⇄ 树」切换(branchesGroupByPrefix / branchesFlatten,context key 驱动按钮 互斥),偏好按仓库持久化于 workspaceState(默认树形),文件夹默认展开、展开态跨刷新稳定。 - 文件夹节点用独立 contextValue(hyperGit.branchFolder)且不登记右键命令,多选经 selectedBranchRefs 只保留 branch 节点,checkout/delete/rename/merge/rebase/compare/ favorite 与多选批量均零改动、零破坏。 - 文档:CHANGELOG、docs/features/branch-tree-group-by-prefix、knowledge-map、README(EN/zh)。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
缺失端(新增文件无旧端、删除文件无新端)改用 git 空树 ref 构造 URI,跨 VS Code 版本稳定解析为空内容,修复新版 readFile 对不存在具名 ref 抛 FileNotFound 致差异打不开。按状态正交分解:新增空树置旧端、删除空树置新端、重命名两端异路径;补齐 Graph 视图逐文件 status/oldPath 传参与干净路径,修复重命名点击崩溃;新增分类器与端点解析的单元/集成测试,并记录 issue #15。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
🤖 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>
* feat(ClaudeCode): 新增 Claude Code 可执行路径设置与设置文件快捷入口(Agentic Git 预置);
为 M5 AI 接缝铺路,新增两项 Claude Code 相关配置,仅承载「配置 + 快捷入口」,
agent/ 五接缝与 hyperGit.ai.enabled 行为不变、零破坏:
- 设置项 hyperGit.claudeCode.executablePath:Claude Code CLI 可执行路径,
留空=从 PATH 自动探测 claude;markdownDescription 内嵌 command: 链接就地
提供「浏览 / 打开 Claude 设置」。
- 命令 hyperGit.setClaudeCodePath:QuickPick(Browse 文件选择器写回 /
Use system Claude Code 清空覆盖)。
- 命令 hyperGit.openClaudeSettings:打开 ~/.claude/settings.json,缺失时经
用户确认后创建 {}。
采用原生设置 + 命令承载(零新增 Webview 面板);路径解析下沉纯函数
engine/agent/claude-path.ts(Vitest 可测),命令实现复用 misc-commands 范式。
check-types / lint / 372 单元测试全绿。
🤖 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>
* docs(ClaudeCode): 新增 Claude Code 配置功能文档并同步设计/指引文档与指标校准;
- 新增功能文档 docs/features/claude-code-config.md(效果/设计 Mermaid/配置表/
命令表/实现/与 Agentic Git 关系/验证),并登记至文档中心与知识索引。
- README 双语指标校准为实际值(6 视图 · 101 命令 · 7 配置项 · 372 单元测试;
此前 97 命令 / 324 测试已滞后 HEAD),并在 AI 接缝段补 pre-M5 铺垫说明。
- 设计文档就近最小同步:engineering-plan §6、implementation-status §5、
05-ai-agent-seams §阶段1 均补 pre-M5 已落地注记(不做 sofia.* 全量改名)。
- CHANGELOG Unreleased 补 Added 条目。
🤖 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>
* feat(AgentConfig): 新增 hyperGit.agent.* 四项 Agentic Git 偏好配置(内置默认模板);
为 M5 AI 接缝铺路,追加四项声明式预置配置,仅承载「配置项 + 内置默认」,
agent/ 五接缝与 hyperGit.ai.enabled 行为不变、零破坏:
- hyperGit.agent.baseBranch:创建 PR 的基线分支(留空=仓库默认分支)。
- hyperGit.agent.commitPreferences / createPrPreferences / reviewPreferences:
分别为点击 Commit / Create PR / Review 时发送给 agent 的自定义指令,
以 editPresentation:"multilineText" 多行文本域承载并内置默认模板。
Commit 模板由中文提交规约译为专业英文(规约规定提交信息用中文,故示例与签名
块原样保留);Create PR / Review 模板逐字内置(含 ${TARGET_BRANCH} / #{pr_number}
等占位符,运行时由宿主替换)。默认值内联于 package.json(VS Code 无「默认取自
文件」机制、.vscodeignore 排除除 media/ 外一切)。零新增命令 / TS / 测试;
check-types / lint / 372 单元测试全绿。
🤖 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>
* docs(AgentConfig): 新增 Agentic Git 偏好配置功能文档并同步指标/设计/CHANGELOG;
- 新增功能文档 docs/features/agentic-git-preferences.md(概述/设计 Mermaid/
配置表/内置默认说明/与 Agentic Git 关系/验证),并登记至文档中心与知识索引。
- README 双语指标校准 7 → 11 配置项(commands 101 / views 6 / tests 372 不变),
并在 AI 接缝段补 hyperGit.agent.* 偏好说明。
- 设计文档就近续写:engineering-plan §6、implementation-status §5 的 pre-M5
注记补本轮四项偏好配置。
- CHANGELOG Unreleased 补 Added 条目。
🤖 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>
Bumps [prettier](https://github.com/prettier/prettier) from 3.9.4 to 3.9.5. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](prettier/prettier@3.9.4...3.9.5) --- updated-dependencies: - dependency-name: prettier dependency-version: 3.9.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 26.1.0 to 26.1.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 26.1.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint](https://github.com/eslint/eslint) from 10.6.0 to 10.7.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v10.6.0...v10.7.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.7.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.1.3 to 8.1.4. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.4/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 8.1.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: ThreeFish <aureliusshu@gmail.com>
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.9 to 4.1.10. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-version: 4.1.10 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: ThreeFish <aureliusshu@gmail.com>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v6...v7) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.62.1 to 8.64.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.64.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.64.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.1.4 to 8.1.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 8.1.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…script-eslint#12518); (#100) 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
- Stash / Shelf 由 collapsed 改为 visibility:hidden(hideByDefault,默认不显示、视图菜单可勾选恢复) - Commit / Worktrees 由 visible 改为 collapsed(显示但默认折叠) - Branches / Graph 保持 visible;容器内声明顺序重排为 Commit·Branches·Graph·Worktrees - 纯 package.json contributes.views 声明式改动,initialSize 不变,src/ 零改动、零破坏 - 新增 tests/unit/views-layout.test.ts 声明式护栏锁定顺序与各视图 visibility - CHANGELOG 记 Changed、issue.md 新增 #16 并给 #12 补指针、README 计数 372→375 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
* feat(engine): 新增多根仓库选取与 shelf 目录命名纯函数(issue #107); - pickRepositoryRoot:持久化恢复 → 首个 folder 匹配(可注入 getRepository 语义, 缺省最长祖先匹配)→ 首个仓库 的三级优先选取,路径归一化(去尾分隔符 + win32 大小写不敏感)保证跨平台稳定比较; - shelfRepoDirName:basename 截 48 字符 + sha1 前 8 位生成按仓库隔离的 shelf 存储子目录名,防同名仓库碰撞; - 配套 19 个单测(选取优先级/归一化/碰撞/截断/兜底)。 🤖 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> * feat(multi-repo): GitRepositoryService 支持手动切换活跃仓库并级联 rebind(issue #107); - 新增 onDidChangeRepository 事件与 selectRepository/listRepositories API, 选取逻辑下沉 engine(pickRepositoryRoot 三级优先级:持久化恢复 → 首个 folder 匹配 → 首个仓库),活跃仓库持久化于 workspaceState(hyperGit.activeRepoRoot, last-active 语义,重开窗口回到上次操作的仓库); - applyRepository 编码顺序不变量:切换事件(同步 rebind)先于 onDidChange (防抖刷新)fire;顺带修复激活竞态——repo 发现晚于 activate 时由 rebind 纠正; - extension.ts 装配级联:registry/favorites/branchesTree setRepoRoot + branchesGrouping context key 同步(原仅 activate 设置一次); - activate 返回 { service } 供集成测试程序化驱动(vscode.git 同款导出模式); - Blame 注解订阅仓库切换自清理(旧仓库 blame 数据不再残留编辑器)。 🤖 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> * feat(multi-repo): changelist/收藏/分支分组持久化支持 setRepoRoot 重绑(issue #107); - ChangelistRegistry/BranchFavorites/BranchesTreeProvider 三处构造期冻结的 memento key(hyperGit.changelists/branchFavorites/branchesGrouping:${repoRoot}) 改为可重绑:同构「幂等守卫 → 换 key → 重载 → fire/refresh」模式; - 单测:EventEmitter mock 升级为功能性实现(fire 通知监听);新增跨仓库隔离、 同 root 幂等、切换后 persist 写入新 key 等用例(16 个)。 🤖 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> * feat(shelf): shelf 存储按仓库隔离并安全迁移旧平铺数据(issue #107); - 目录改为 shelves/<basename>.<sha1 前 8 位>/,随 service.repoRoot 动态求值 (零快照零双源),切换仓库即切换 shelf 集,杜绝 A 库 shelf 误 apply 到 B 库; - migrateLegacyShelves 一次性迁移:仅 rename(零删除)、目标已存在即跳过 (零覆盖)、失败静默可重试(已移入保留、未移入下次续迁); - 多仓库历史混仓数据归属当前活跃仓库(无法事后归因,已列 Known Limitation)。 🤖 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> * feat(log): Graph 工具栏增加多根仓库切换选择器(issue #107); - 协议:LogWebviewToHostMessage 新增 log/selectRepo(webview→host), LogGraphState 新增可选 multiRepo(向后兼容); - 工具栏仓库名升级为可点击按钮(Git Graph 形态):多仓库态显示 basename+▾、 hover 高亮、点击弹原生 QuickPick;单仓库退化纯文本观感(多数用户零感知); - 新增 hyperGit.selectRepository 命令(palette 入口):带参=程序化切换(测试 接缝),无参=QuickPick(当前项预选);单仓库提示 no-op,零仓库静默; - host 级 LogFilter 在仓库切换时清空(过滤条件是旧仓库语境产物,跨库无意义)。 🤖 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> * feat(multi-repo): webview 视图状态与最近提交消息按仓库分区记忆(issue #107); - Graph webview:vscode.getState() 升级 v2 byRepo 结构(scope/选中/dmode/ dcollapsed 跟随仓库换装载),旧平铺结构一次性升级不丢偏好;host 侧 scope 内存级按仓库记忆,切回仓库恢复其视图范围; - Commit webview:勾选集/视图模式同模式按仓库分区(勾选是相对路径集合, 跨仓库本就错位);CommitViewState 新增 repoRoot 字段; - 最近提交消息改 per-repo key(hyperGit.recentCommitMessages:${repoRoot}), 未命中回落旧全局 key 一次(平滑迁移,不删旧数据)。 🤖 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> * test(multi-repo): 新增多根工作区仓库切换集成测试套件(issue #107); - run-integration.js 新增 createFixtureWorkspace():repo-a/repo-b 双独立仓库 + multi-root.code-workspace,在既有单仓库套件后顺序追加第二段 VS Code 启动; - multi-root.test.js:命令注册冒烟、程序化切换(activate 导出 { service } 接缝) repoA⇄repoB 断言 repoRoot 跟随 + 切换后 refreshLog/refreshBranches/refresh 不抛错、不存在路径返回 false 不炸、listRepositories 双仓库; - extension.test.js 命令断言追加 hyperGit.selectRepository。 🤖 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> * build(deps-dev): 升级 @vscode/test-electron 3.0.0 → 3.1.0; VS Code 1.110 起将 macOS 主二进制 Electron 更名为 Code(兼容符号链接已于 2026-07 移除,microsoft/vscode#326502),3.0.0 启动 1.110+ 归档即 spawn .../MacOS/Electron ENOENT 崩溃;3.1.0 按 Info.plist → CFBundleExecutable 三级解析修复(microsoft/vscode-test#348)。此前 dependabot PR #102 因 supply-chain 发布冷静期被 CI 拦截,现窗口已过正式合入。 🤖 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> * docs(multi-repo): 多根工作区仓库切换特性文档与 CHANGELOG/issue 记录(issue #107); - 新增 docs/features/multi-root-repo-selection.md:交互形态、三重顺序不变量 时序图、选取优先级、按仓库隔离状态矩阵、Shelf 迁移与集成测试说明; - knowledge-map 索引新文档;issue.md 追加 #107 条目(表因/根因/处理/防范: 快照 repoRoot 的新组件必须订阅 onDidChangeRepository 重绑); - CHANGELOG Unreleased 记录特性与 test-electron 升级;README 双语指标行 同步(101→102 命令、375→403 单测)+ Features 补多根切换条目。 🤖 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(multi-repo): 修复仓库切换后迟到响应错位与事件 emitter 泄漏(issue #107); - log-webview 三条异步取数链路(fetchPage/sendCommitFiles/showCommitDetail)增加切库竞态守卫:锁定发起时刻的 repoRoot,execGit 期间发生切换即丢弃结果,防止旧仓库的 appendData/commitFiles/commitDetail 迟到响应污染新仓库视图; - git-repository-service 的 dispose 补释放 _onDidChangeRepository emitter,消除监听器引用泄漏。 🤖 Generated with [Claude Code](https://github.com/claude.com), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
Bumps [prettier](https://github.com/prettier/prettier) from 3.9.5 to 3.9.6. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](prettier/prettier@3.9.5...3.9.6) --- updated-dependencies: - dependency-name: prettier dependency-version: 3.9.6 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.64.0 to 8.68.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.68.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.67.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.1.5 to 8.2.2. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.2.2/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 8.2.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint](https://github.com/eslint/eslint) from 10.7.0 to 10.9.1. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v10.7.0...v10.9.1) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.8.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 26.1.1 to 26.4.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 26.2.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
pnpm 12 为 Rust 重写版,命令/flags/配置/锁文件格式全部延续 pnpm 11,无需迁移(allowBuilds 与 node-linker=hoisted 均沿用)。变更点: - package.json packageManager 字段升级,CI 经 pnpm/action-setup@v6 自动跟随; - pnpm-lock.yaml 顶部新增 packageManagerDependencies 文档块(记录 pnpm 12.2.1 及其平台二进制,经 --- 与原锁文件分隔),lockfileVersion 仍为 '9.0',依赖解析零变化; - 本地全量验证通过:check-types / lint / 403 单元测试 / 生产构建 / 集成测试(4 passing)全绿。 🤖 Generated with [Claude Code](https://claude.com/claude-code), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- CHANGELOG.md:[Unreleased] 全部条目晋升为 [0.0.16] - 2026-09-01(合并两个 Added 小节,回补 #87 Diff 修复、pnpm 12.2.1 与 dependabot 依赖升级、README Overview 图条目),[Unreleased] 重置为空; - docs/releases/v0.0.16.md:新增面向用户的发布说明(GitHub Release 正文单一事实源,含升级兼容说明——老用户需 Reset View Locations 采用新布局); - docs/releases/README.md:版本索引表新增 v0.0.16 行; - docs/README.md / docs/.agents/knowledge-map.md:「最新发布」指针 v0.0.14 → v0.0.16; - package.json:version 0.0.15 → 0.0.16(0.0.15 版本号预置未单独发布,本版一并承载)。 🤖 Generated with [Claude Code](https://claude.com/claude-code), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
pnpm 12 起 pnpm dlx 临时环境安装时,未审批的原生构建脚本(@vscode/vsce-sign、keytar)由警告升级为硬失败(ERR_PNPM_IGNORED_BUILDS,PR #113 的 Package job 首次暴露);而项目 pnpm-workspace.yaml 的 allowBuilds 审批仅作用于项目自身安装。@vscode/vsce 本就是 devDependencies,改经 pnpm exec 取项目锁定版本:更快、可复现、且构建脚本已经审批。ci.yml(package/publish 两处)与 README 中英文版同步更新;本地已验证 pnpm exec vsce package 正常产出 0.0.16 vsix。 🤖 Generated with [Claude Code](https://claude.com/claude-code), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…elease-0.0.16 chore(Release): 升级 pnpm 12.2.1 并发布 v0.0.16 —— 多根工作区仓库切换 · 分支分组树 · Agentic Git 预置;
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概述
将
feature/1.x.x同步至master,引入 v0.0.16 正式版——自 v0.0.14 以来的全量积累(0.0.15版本号已就位但未单独发布,本版一并发布)。本 PR 为正式版回流主分支的同步 PR,不含新增开发内容。+2938 / −510hyper-git-agentic-git-0.0.16.vsix已上架;Marketplace 发布失败,详见下方「已知问题」变更内容
✨ Added — 多根工作区仓库切换(#108 / issue #107)
多根工作区含多个 Git 仓库时,此前 Hyper Git 只能操作单一仓库。本版将 Graph 工具栏仓库名升级为可切换按钮(对标 Git Graph;单仓库退化为纯文本,多数用户零感知),并提供
Hyper Git: Select Repository…命令直达。shelves/<basename>.<sha1[:8]>/随活跃仓库动态求值)、最近提交消息(per-repo key + 旧全局 key 一次性回落)、Graph/Commit webview 视图状态(v2byRepo分区);engine/git-state/repo-selection.ts(持久化恢复 → folder0 匹配 → 首个仓库,三级优先),三重顺序不变量保证 rebind 先于视图刷新;活跃仓库持久化于workspaceState(hyperGit.activeRepoRoot),重开窗口回到上次操作的仓库;activate时 memento key 落占位根)与 Blame 注解切库残留;tests/suite/multi-root.test.js(activate()导出{ service }程序化接缝)。📄 多根工作区仓库切换
✨ Added — Branches 按
/前缀分组为文件夹树(#86)Local / Remote / Tags 三段支持在平铺 ⇄ 树间切换:共享前缀的分支收拢到以前缀命名的可折叠文件夹下、叶子仅显示末段后缀(
feature/1.x.x、feature/2.x.x→ 📁feature),远程整体收拢为origin文件夹。buildRefTree——复用「变更文件目录树」buildFileTree的 trie 构建 + compact 折叠范式;叶子携完整RawRef,命令定位不受影响;origin/HEAD符号引用(对齐主流 Git UI,消除origin叶子与origin文件夹同名冲突);contextValue且不登记任何右键命令,checkout / delete / rename / merge / rebase / compare / favorite 与多选批量全部零改动;偏好按仓库持久化(默认树形)。📄 分支前缀分组树
✨ Added — Agentic Git 偏好配置(#89,M5 前置铺垫)
新增
hyperGit.agent.*四项原生设置为 M5 AI 接缝 铺路:hyperGit.agent.baseBranchhyperGit.agent.commitPreferenceshyperGit.agent.createPrPreferenceshyperGit.agent.reviewPreferences三项指令均以
editPresentation: "multilineText"多行文本域承载并内置默认模板(Commit 模板由中文提交规约译为专业英文,Create PR / Review 模板逐字内置,含${TARGET_BRANCH}/#{pr_number}等占位符)。采用原生设置承载——零新增 Webview / 命令 / TS / 测试,默认值内联于package.json。仅落地配置与默认模板,agent/五接缝与hyperGit.ai.enabled行为不变、零破坏。📄 Agentic Git 偏好配置
✨ Added — Claude Code 配置(#88,M5 前置铺垫)
hyperGit.claudeCode.executablePath:Claude Code CLI 可执行路径,留空 = 从PATH自动探测claude;描述内嵌command:链接就地提供「浏览 / 打开 Claude 设置」;hyperGit.setClaudeCodePath(QuickPick:Browse 文件选择器写回 / Use system Claude Code 清空覆盖)与hyperGit.openClaudeSettings(打开~/.claude/settings.json,缺失时经确认创建{});engine/agent/claude-path.ts(Vitest 可测),命令实现见adapter/claude-commands.ts;零新增 Webview 面板。📄 Claude Code 配置
🐛 Fixed — 新增 / 删除 / 重命名文件的差异视图可正常打开(#87 / issue #15)
新版 VS Code 的
readFile对不存在的具名 ref 抛FileNotFound,导致新增文件(无旧端)、删除文件(无新端)在 Commit / Graph 视图打不开差异。engine/diff/change-side.ts):新增→空树置旧端、删除→空树置新端、重命名→两端异路径;status/oldPath传参与干净路径,修复重命名点击崩溃;tests/suite/diff-open.test.js),根因沉淀至 issue #15。♻️ Changed — 面板视图默认布局调整(#101 / issue #16)
package.jsoncontributes.views声明式微调六视图默认态,src/零改动:collapsed→visibility: "hidden"(默认不出现在容器内,仍可经视图标题右键菜单勾选恢复);visible→collapsed(显示但默认折叠);visible;initialSize权重不变;tests/unit/views-layout.test.ts声明式护栏锁定顺序与各视图visibility。♻️ Changed —
@vscode/test-electron3.0.0 → 3.1.0VS Code 1.110 起将 macOS 主二进制
Electron更名为Code(兼容符号链接于 2026-07 移除,microsoft/vscode#326502),3.0.0 启动 1.110+ 即spawn .../MacOS/Electron ENOENT崩溃;3.1.0 按Info.plist → CFBundleExecutable三级解析修复(microsoft/vscode-test#348)。此前 dependabot #102 因 supply-chain 发布冷静期被 CI 拦截,本次窗口已过正式合入。📦 Build
allowBuilds与node-linker=hoisted沿用),CI 经pnpm/action-setup@v6从packageManager字段自动跟随,依赖解析零变化;dlx→exec:pnpm 12 的dlx对@vscode/vsce未审批的原生构建脚本硬失败,改用pnpm exec vsce走锁定的项目内版本(README 同步更正);📝 Docs
docs/releases/README.md索引、docs/README.md、知识索引、里程碑状态与 AI 接缝调研的「最新发布」指针;6 视图 · 97 命令 · 6 配置项 · 324 单元测试→6 视图 · 102 命令 · 11 配置项 · 403 单元测试(此前指标已滞后 HEAD)。变更规模
engine/(纯逻辑,零vscode依赖)git-state/repo-selection.ts·ref/ref-tree.ts·diff/change-side.ts·agent/claude-path.ts·git-state/shelf-dir.tsadapter/(VS Code 适配)repository-selection.ts·claude-commands.ts·diff-sides.ts;改造tree/branches-tree.ts·webview/log-webview.ts·webview/commit-webview.ts·git-repository-service.ts·shelf.ts·changelist-registry.ts·branch-favorites.ts等验证
@vscode/test-electron):新增 multi-root 双仓库套件与 diff-open 套件MERGEABLE,与master无冲突.vsix资产已上架(见下方已知问题中的例外项)VS Code Marketplace 发布失败(不阻塞本 PR 合并):tag
v0.0.16推送触发的流水线中Publishjob 失败,vsce publish返回Access Denied: The Personal Access Token used has expired。同一 run 内 GitHub Release 与.vsix资产上传均成功。.vsix手动安装;VSCE_PAT后重跑该 workflow 即可,无需改动代码。关联
master)