Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
fd69e5c
feat(Branches): 分支视图支持按 / 前缀分组为可折叠文件夹树(平铺⇄树切换); (#86)
ThreeFish-AI Jul 6, 2026
f944ea1
fix(Diff): 新增/删除/重命名文件在 Commit 与 Graph 视图可正常打开差异; (#87)
ThreeFish-AI Jul 6, 2026
9ae6ea3
chore(Release): 版本号升级至 0.0.15;
ThreeFish-AI Jul 6, 2026
f42373e
feat(ClaudeCode): 新增可执行路径设置与 Claude 设置文件快捷入口(Agentic Git 预置); (#88)
ThreeFish-AI Jul 10, 2026
f2fd403
feat(AgentConfig): 新增 hyperGit.agent.* 四项 Agentic Git 偏好配置(M5 铺垫); (#89)
ThreeFish-AI Jul 10, 2026
f620201
chore(deps-dev): bump prettier from 3.9.4 to 3.9.5 (#93)
dependabot[bot] Jul 12, 2026
5e9226b
chore(deps-dev): bump @types/node from 26.1.0 to 26.1.1 (#91)
dependabot[bot] Jul 12, 2026
ae29c2f
chore(deps-dev): bump eslint from 10.6.0 to 10.7.0 (#90)
dependabot[bot] Jul 12, 2026
0c0c218
chore(deps-dev): bump vite from 8.1.3 to 8.1.4 (#92)
dependabot[bot] Jul 12, 2026
a8b2fd0
chore(deps-dev): bump vitest from 4.1.9 to 4.1.10 (#94)
dependabot[bot] Jul 12, 2026
74f3631
chore(deps): bump actions/setup-node from 6 to 7 (#96)
dependabot[bot] Jul 20, 2026
91cd3df
chore(deps-dev): bump typescript-eslint from 8.62.1 to 8.64.0 (#97)
dependabot[bot] Jul 20, 2026
eb95ca6
chore(deps-dev): bump vite from 8.1.4 to 8.1.5 (#98)
dependabot[bot] Jul 20, 2026
9fa6427
ci(dependabot): 忽略 typescript major 版本升级——TS7 工具链未适配,待 7.1 后人工重启(type…
ThreeFish-AI Jul 20, 2026
e4cd0a7
feat(views): 调整面板视图默认布局(显隐与顺序); (#101)
ThreeFish-AI Jul 20, 2026
b999864
feat(multi-repo): 多根工作区仓库切换(Graph 选择器 + 全局活跃仓库级联,issue #107) (#108)
ThreeFish-AI Aug 20, 2026
05cf6bf
chore(deps-dev): bump prettier from 3.9.5 to 3.9.6 (#104)
dependabot[bot] Sep 1, 2026
a737b99
chore(deps-dev): bump typescript-eslint from 8.64.0 to 8.68.0 (#109)
dependabot[bot] Sep 1, 2026
6561539
chore(deps-dev): bump vite from 8.1.5 to 8.2.2 (#110)
dependabot[bot] Sep 1, 2026
1b54070
chore(deps-dev): bump eslint from 10.7.0 to 10.9.1 (#111)
dependabot[bot] Sep 1, 2026
4a7c44c
chore(deps-dev): bump @types/node from 26.1.1 to 26.4.0 (#112)
dependabot[bot] Sep 1, 2026
0bde1eb
build(Pnpm): 升级 pnpm 11.9.0 → 12.2.1;
ThreeFish-AI Sep 1, 2026
29ef907
chore(Release): 发布 v0.0.16 —— 多根工作区仓库切换 · 分支分组树 · Agentic Git 预置;
ThreeFish-AI Sep 1, 2026
b9cc6b0
ci(Vsce): dlx 改 exec——pnpm 12 的 dlx 对未审批构建脚本硬失败;
ThreeFish-AI Sep 1, 2026
7a9143c
Merge pull request #113 from ThreeFish-AI/ThreeFish-AI/upgrade-pnpm-r…
ThreeFish-AI Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ updates:
# @types/vscode 的 major.minor ≤ engines.vscode)。Dependabot 单方面 bump 会破坏该约束
# 并令 CI 的 vsce package 失败,故忽略其升级——抬高最低 VS Code 版本属产品决策,需人工执行。
- dependency-name: '@types/vscode'
# typescript 7.0(Go 原生移植 tsgo)刻意未提供编译器编程 API(延至 7.1),typescript-eslint
# 无法运行于 TS7,加载期访问 ts.Extension.Cjs 触发崩溃,使 CI 的 lint 失败(详见
# typescript-eslint#12518,closed as not planned)。故忽略 typescript 的 major 升级——
# 待 TS 7.1 稳定编程 API 与工具链适配后再由人工重启升级。次要/补丁版仍照常跟进。
- dependency-name: 'typescript'
update-types: ['version-update:semver-major']
- package-ecosystem: github-actions
directory: /
target-branch: feature/1.x.x
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
with:
node-version: 22
cache: 'pnpm'
Expand All @@ -39,7 +39,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
with:
node-version: 22
cache: 'pnpm'
Expand All @@ -62,18 +62,21 @@ jobs:
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
with:
node-version: 22
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
# rc tag 以 --pre-release 打包:VS Code 要求「预发布 VSIX」在打包时即标记,
# 否则 publish job 的 `vsce publish --pre-release` 会报「未以 pre-release 打包」而失败。
# 与 publish 步骤同款 PRE_FLAG 判定,保证同一枚 VSIX 贯穿 GitHub Release 与 Marketplace。
# vsce 经 `pnpm exec` 取项目锁定版本(devDependencies 已含 @vscode/vsce):
# pnpm 12 起 dlx 临时环境对未审批构建脚本(@vscode/vsce-sign/keytar)由警告升级为硬失败,
# 而项目自身的 allowBuilds 审批仅作用于项目安装。
- name: 打包 vsix(rc tag 自动带 --pre-release)
run: |
PRE_FLAG=$([[ "${GITHUB_REF_NAME}" == *rc* ]] && echo "--pre-release" || echo "")
pnpm dlx @vscode/vsce package --no-yarn $PRE_FLAG
pnpm exec vsce package --no-yarn $PRE_FLAG
- uses: actions/upload-artifact@v7
with:
name: vsix
Expand Down Expand Up @@ -113,7 +116,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
with:
node-version: 22
cache: 'pnpm'
Expand All @@ -123,10 +126,11 @@ jobs:
name: vsix
# VS Code Marketplace 发布:由仓库变量 ENABLE_MARKETPLACE_PUBLISH 门控(=true 时发布)。
# 需配置 VSCE_PAT(Azure DevOps PAT,scope: Marketplace → Manage);rc tag 自动以 --pre-release 发预发布通道。
# 与 package job 同款 `pnpm exec vsce`(项目锁定版本,规避 pnpm 12 dlx 对未审批构建脚本的硬失败)。
- name: 发布到 VS Code Marketplace
if: ${{ vars.ENABLE_MARKETPLACE_PUBLISH == 'true' }}
run: |
PRE_FLAG=$([[ "${GITHUB_REF_NAME}" == *rc* ]] && echo "--pre-release" || echo "")
pnpm dlx @vscode/vsce publish --packagePath *.vsix $PRE_FLAG
pnpm exec vsce publish --packagePath *.vsix $PRE_FLAG
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,35 @@

## [Unreleased]

## [0.0.16] - 2026-09-01 — 多根工作区仓库切换 · 分支分组树 · Agentic Git 预置 · 面板布局与 Diff 修复

自 v0.0.14 以来的全量积累(承载 0.0.15 版本号预置——该版本号已就位但未单独发布,本版一并发布)。核心新特性:多根工作区多仓库切换、Branches 按 `/` 前缀分组树、Agentic Git 偏好配置与 Claude Code 配置预置(M5 前置铺垫)、Diff 缺失端修复与面板默认布局调整;工程侧升级 pnpm 12 与一批开发依赖。完整用户视角叙述见 [Release Note v0.0.16](./docs/releases/v0.0.16.md)。

### Added

- **多根工作区仓库切换(issue #107)**:多根工作区含多个 Git 仓库时,Graph 工具栏仓库名升级为**可切换按钮**(对标 Git Graph;单仓库退化为纯文本,多数用户零感知),Command Palette 亦可经 `Hyper Git: Select Repository…` 直达。切换**全局活跃仓库**——Graph / Branches / Commit(changelist)/ Stash / Shelf / Worktrees / 未提交角标七视图级联跟随,活跃仓库持久化于 `workspaceState`(`hyperGit.activeRepoRoot`,重开窗口回到上次操作的仓库)。**按仓库隔离记忆**:changelist 分配 / 分支收藏 / 分支分组偏好(`setRepoRoot` 重绑 + context key 同步)、Shelf 存储(`shelves/<basename>.<sha1[:8]>/` 随活跃仓库动态求值,旧平铺数据一次性安全迁移:仅 rename、零删除零覆盖)、最近提交消息(per-repo key,旧全局 key 回落一次)、Graph/Commit webview 视图状态(scope/选中/勾选集等 v2 `byRepo` 分区)。选取逻辑下沉纯函数 [`engine/git-state/repo-selection.ts`](./src/engine/git-state/repo-selection.ts)(持久化恢复 → folder0 匹配 → 首个仓库三级优先),**三重顺序不变量**保证 rebind 先于视图刷新;Blame 注解切库自清理;顺带修复激活竞态(repo 发现晚于 activate 时 memento key 落占位根)。集成测试新增 multi-root 双仓库 fixture 套件(`tests/suite/multi-root.test.js`,`activate()` 导出 `{ service }` 程序化接缝)。完整叙述见 [多根工作区仓库切换](./docs/features/multi-root-repo-selection.md)。(#108)
- **Agentic Git 偏好配置(Agentic Git 预置)**:新增 `hyperGit.agent.*` 四项配置为 M5 [AI 接缝](./docs/research/05-ai-agent-seams.md) 铺路——① `hyperGit.agent.baseBranch`(创建 PR 的基线分支,留空=仓库默认分支);②③④ `commitPreferences` / `createPrPreferences` / `reviewPreferences`(分别为点击 **Commit / Create PR / Review** 时发送给 agent 的自定义指令,均以 `editPresentation: "multilineText"` 多行文本域承载、**内置默认模板**)。其中 **Commit 模板由中文提交规约译为专业英文**(规约规定提交信息用中文,故示例与签名块原样保留);Create PR / Review 模板**逐字内置**(含 `${TARGET_BRANCH}` / `#{pr_number}` 等占位符)。采用**原生设置**承载(零新增 Webview / 命令 / TS / 测试),默认值内联于 [`package.json`](./package.json)。**仅落地配置与内置默认**,`agent/` 五接缝与 `hyperGit.ai.enabled` 行为不变、零破坏。README 指标行同步 `7 → 11 配置项`。完整叙述见 [Agentic Git 偏好配置](./docs/features/agentic-git-preferences.md)。(#89)
- **Claude Code 配置(Agentic Git 预置)**:新增两项与 Claude Code 相关的配置为 M5 [AI 接缝](./docs/research/05-ai-agent-seams.md) 铺路——① 设置项 `hyperGit.claudeCode.executablePath`(Claude Code CLI 可执行路径,**留空=从 `PATH` 自动探测 `claude`**;描述内嵌 `command:` 链接就地提供「浏览 / 打开 Claude 设置」);② 命令 `hyperGit.setClaudeCodePath`(QuickPick:Browse 文件选择器写回 / **Use system Claude Code** 清空覆盖)与 `hyperGit.openClaudeSettings`(打开 `~/.claude/settings.json`,缺失时经确认创建 `{}`)。采用**原生设置 + 命令**承载(零新增 Webview 面板),路径解析下沉纯函数 [`engine/agent/claude-path.ts`](./src/engine/agent/claude-path.ts)(Vitest 可测),命令实现见 [`adapter/claude-commands.ts`](./src/adapter/claude-commands.ts)。**仅落地配置与快捷入口**,`agent/` 五接缝与 `hyperGit.ai.enabled` 行为不变、零破坏。同步校正 README 指标行(`6 视图 · 101 命令 · 7 配置项 · 372 单元测试`,此前 `97 命令 / 324 测试` 已滞后 HEAD)。完整叙述见 [Claude Code 配置](./docs/features/claude-code-config.md)。(#88)
- **Branches 视图按 `/` 前缀分组为文件夹树**:Local / Remote / Tags 三段支持在**平铺**与**按 `/` 前缀分组的可折叠文件夹树**间切换——共享前缀的分支收拢到以前缀命名的文件夹下、叶子仅显示末段后缀(如 `bak/2025`、`bak/master-2025-07` → 📁`bak` → `2025` / `master-2025-07`;远程整体收拢为 `origin` 文件夹并内嵌 `feature`)。新增纯逻辑引擎 [`buildRefTree`](./src/engine/ref/ref-tree.ts)(复用「变更文件目录树」`buildFileTree` 的 trie 构建 + compact 折叠范式;叶子携完整 `RawRef`、命令定位不受影响;分支感知排序:当前 HEAD → 收藏 → 同档文件夹优先、名称数字感知升序),并**隐藏 `origin/HEAD` 符号引用**(对齐主流 Git UI,消除 `origin` 叶子与 `origin` 文件夹同名冲突)。工具栏提供「平铺 ⇄ 树」切换(`hyperGit.branchesGroupByPrefix` / `hyperGit.branchesFlatten`,context key 驱动按钮互斥),偏好按仓库持久化于 `workspaceState`(默认树形),文件夹默认展开、展开态跨刷新稳定。文件夹节点用独立 `contextValue` 且不登记任何右键命令,checkout / delete / rename / merge / rebase / compare / favorite 与多选批量均零改动、零破坏。完整叙述见 [分支前缀分组树](./docs/features/branch-tree-group-by-prefix.md)。(#86)

### Changed

- **`@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](https://github.com/ThreeFish-AI/hyper-git/pull/102) 因 supply-chain 发布冷静期被 CI 拦截,现窗口已过正式合入。
- **面板视图默认布局调整(显隐与顺序)**:`package.json` `contributes.views` 声明式微调六视图默认态——**Stash / Shelf** 由 `collapsed` 改为 `visibility:"hidden"`(VS Code schema 中 `hidden` 映射 `hideByDefault`:默认不出现在容器内,仍可经视图标题右键菜单勾选恢复);**Commit / Worktrees** 由 `visible` 改为 `collapsed`(显示但默认折叠、点击标题即展开);**Branches / Graph** 保持 `visible`;容器内声明顺序调整为 **Commit · Branches · Graph · Worktrees**(Stash · Shelf 隐藏排其后)。`initialSize` 权重不变,`src/` 零改动,命令 / 协议 / 菜单 / `viewsWelcome` / 交互零破坏。新增 [`tests/unit/views-layout.test.ts`](./tests/unit/views-layout.test.ts) 声明式护栏锁定顺序与各视图 `visibility`。**平台约束**:`visibility` 仅影响全新安装 / 干净 profile 的初始态——老用户升级后需命令面板「View: Reset View Locations」或右键容器页签「Reset Location」方采用新默认(同 [issue #12](./docs/.agents/issue.md) / [#13](./docs/.agents/issue.md) 平台行为)。决策详见 [issue #16](./docs/.agents/issue.md)。(#101)

### Fixed

- **新增 / 删除 / 重命名文件的差异视图可正常打开**:缺失端(新增文件无旧端、删除文件无新端)改用 git 空树 ref 构造 URI,跨 VS Code 版本稳定解析为空内容,修复新版 `readFile` 对不存在具名 ref 抛 `FileNotFound` 致 Commit / Graph 视图差异打不开的问题。按状态正交分解:新增空树置旧端、删除空树置新端、重命名两端异路径;补齐 Graph 视图逐文件 `status` / `oldPath` 传参与干净路径,修复重命名点击崩溃;新增分类器与端点解析的单元 / 集成测试,并记录 [issue #15](./docs/.agents/issue.md)。(#87)

### Build

- **pnpm 升级 11.9.0 → 12.2.1**:pnpm 12 为 Rust 重写版,命令 / flags / 配置 / 锁文件格式全部延续 pnpm 11(`allowBuilds` 与 `node-linker=hoisted` 沿用),CI 经 `pnpm/action-setup@v6` 从 `packageManager` 字段自动跟随;`pnpm-lock.yaml` 顶部新增 `packageManagerDependencies` 文档块,依赖解析零变化。
- **开发依赖批量升级**(dependabot):prettier 3.9.5 → 3.9.6(#104)、@types/node 26.1.1 → 26.4.0(#112)、eslint 10.7.0 → 10.9.1(#111)、vite 8.1.5 → 8.2.2(#110)、vitest 4.1.9 → 4.1.10(#94)、typescript-eslint 8.64.0 → 8.68.0(#109)、actions/setup-node v6 → v7(#96);dependabot 忽略 typescript major 升级——TS7 工具链未适配,待 7.1 后人工重启(#100)。

### Docs

- **README 中英文版新增 Overview 概览图**:Features / 核心能力章节引入架构总览图,一图速览六视图与 Agentic Git 能力版图。

## [0.0.14] - 2026-07-06 — 修复 GRAPH 视图提交记录时间倒序

修复 GRAPH 视图「All」范围下提交记录未按时间倒序排列的问题——取数参数由 `--topo-order` 改为 `--author-date-order`,令跨分支提交按作者日期正确交错、消除「日期回跳」。纯取数排序修复,不改数据协议、布局算法与任何视图交互。完整用户视角叙述见 [Release Note v0.0.14](./docs/releases/v0.0.14.md)。
Expand Down
17 changes: 9 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<b>English</b> · <a href="./docs/i18n/zh-CN/README.md">简体中文</a>
</p>

<p align="center"><sub>6 views · 97 commands · 6 settings · 324 unit tests</sub></p>
<p align="center"><sub>6 views · 102 commands · 11 settings · 403 unit tests</sub></p>

## Features

Expand All @@ -25,9 +25,10 @@
</p>

- **Multi-Changelist Changes view**: group edits into named lists, mark one as the active commit target, create / rename / delete / move lists, persisted in `workspaceState` (restored across restarts); status colors reuse the `gitDecoration.*` theme tokens.
- **Multi-root repository switching**: in multi-root workspaces with several Git repositories, the Graph toolbar's repository name becomes a clickable switcher (Git Graph-style) plus a `Select Repository…` command; one switch updates the active repository across all views (Graph / Branches / Commit / Stash / Shelf / Worktrees / badge), with changelists, branch favorites, grouping preferences, shelves, and recent messages remembered per repository, and the last active repository restored across restarts.
- **Commit panel**: a hand-built commit view with real-time Conventional Commits validation, Amend / Sign-off / skip hooks, and Commit / Commit & Push; the checkbox selection is the authoritative commit scope, and recent messages are reusable.
- **Log commit graph (hand-rendered DAG)**: colored swimlanes, branch/merge edges, HEAD/branch/tag badges, virtualized incremental loading; 7 composable filters (author / path / grep / regex / merge-mode / date / clear); per-commit actions (Reset, new branch·tag, Cherry-Pick, Revert, list containing branches).
- **Branches management**: favorites / local / remote / tags grouped into four sections with ahead·behind·upstream tracking; create / checkout / delete / rename / merge / rebase / compare / favorite; **multi-select batch** delete, copy ref, and favorite (with an honest merged/unmerged split confirmation).
- **Branches management**: favorites / local / remote / tags grouped into four sections with ahead·behind·upstream tracking; **prefix folder grouping** (flat ⇄ tree toggle) that collapses `/`-shared branches under their common prefix, showing only the suffix; create / checkout / delete / rename / merge / rebase / compare / favorite; **multi-select batch** delete, copy ref, and favorite (with an honest merged/unmerged split confirmation).
- **Stash & Shelf**: full stash operations (including keep-index / clear / create branch from stash); a standalone **Shelf** (patch-based, independent of stash, with 3-way merge Unshelve).
- **Worktrees**: full-lifecycle management — create (new branch / checkout / detached), open in a new window, lock / unlock, move, remove, and prune stale entries.
- **Line-level & hunk commits**: in-editor "Commit this Hunk" CodeLens, partial stage / unstage, stage at cursor, and hunk-to-changelist attribution.
Expand All @@ -40,7 +41,7 @@
- **Consumes** the stable `Repository` API exported by the built-in `vscode.git` extension as its Git foundation, rather than rebuilding a Git state machine.
- **Controlled CLI channel**: capabilities the stable API does not cover (cherry-pick / revert / reset / branch rename / hunk staging / stash listing / graph topology / shelf, etc.) run through `GitRepositoryService.execGit`, reusing the same Git binary (`api.git.path`).
- **Hand-rendered views** carry the full change-management UI (webviews live under `adapter/webview/`); pure logic is distilled into `engine/` (zero `vscode` dependency, unit-testable).
- **AI seams**: 5 interfaces (`ILlmProvider` / `ICommitMessageProvider` / `IPreCommitInspector` / `IChangelistGrouper` / `IConflictResolver`) are reserved (design inspired by JetBrains' `CheckinHandler` commit lifecycle), currently shipped as Null implementations; the full implementation is deferred to M5.
- **AI seams**: 5 interfaces (`ILlmProvider` / `ICommitMessageProvider` / `IPreCommitInspector` / `IChangelistGrouper` / `IConflictResolver`) are reserved (design inspired by JetBrains' `CheckinHandler` commit lifecycle), currently shipped as Null implementations; the full implementation is deferred to M5. As pre-M5 groundwork, a **Claude Code executable path** setting (`hyperGit.claudeCode.executablePath`) and a **`~/.claude/settings.json` shortcut** are already configurable — see [Claude Code configuration](./docs/features/claude-code-config.md); plus **`hyperGit.agent.*` preferences** (base branch + Commit / Create PR / Review agent instructions) — see [Agentic Git preferences](./docs/features/agentic-git-preferences.md).

<p align="center">
<img src="media/framework.png" alt="Framework"/>
Expand Down Expand Up @@ -78,18 +79,18 @@ See the [Engineering Plan](./docs/architecture/engineering-plan.md), the [Implem
pnpm install # install dependencies
pnpm run compile # type-check + lint + build
pnpm run watch # watch build (press F5 to launch the Extension Host debugger)
pnpm run test:unit # unit tests (pure engine logic, Vitest, 324 cases)
pnpm run test:unit # unit tests (pure engine logic, Vitest, 403 cases)
pnpm run test:integration # integration tests (@vscode/test-electron)
pnpm run package # production build
pnpm dlx @vscode/vsce package # package the .vsix
pnpm exec vsce package # package the .vsix
```

Packaging and publishing with vsce (`@vscode/vsce`):
Packaging and publishing with vsce (`@vscode/vsce` is a devDependency; `pnpm exec` uses the locked project version — pnpm 12's `dlx` hard-fails on its unapproved native build scripts):

```bash
pnpm dlx @vscode/vsce package
pnpm exec vsce package
# hyper-git-agentic-git-x.x.x.vsix generated
pnpm dlx @vscode/vsce publish
pnpm exec vsce publish
# ThreeFish-AI.hyper-git-agentic-git-x.x.x published to VS Code Marketplace
```

Expand Down
Loading
Loading