Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@

## [Unreleased]

## [0.0.21] - 2026-10-23 — Filter by Author 候选建议 · 多选过滤 · 元字符作者修复

### Added

- **「Filter by Author…」升级为作者候选建议 + 多选过滤**:候选经 `git shortlog -sne` 按当前 Graph 视图 scope 取数(按提交数降序、姓名/邮箱均可模糊匹配),输入前缀(如 `Thr`)即在下拉中建议对应提交者,勾选即选、无需完整手输;依次勾选多个提交者翻译为多条 `--author`(git 取 OR)直接过滤 Graph 视图,空选确认 = 清除该维度、Esc = 取消不变。输入不等于任何作者姓名时动态插入「Use pattern」逃生口(原样正则透传),完整保留旧 InputBox 的任意 pattern 能力。engine 侧 `LogFilter.author` 单值改为 `authors: AuthorTerm[]`(exact 身份 / pattern 正则 tagged union,单一字段单一事实源);`scopeRefs` 提取为 scope → 引用范围参数的单一事实源(Graph 取数与作者候选共享);adapter 侧为仓库首个 `createQuickPick` 动态用法(busy 取数、勾选自维护回写、settle 幂等守卫、切库竞态守卫、空仓库降级)。新增 `engine/log/author-suggest.ts`(shortlog 取数参数 + 容错解析,current scope 显式 `HEAD` 防 stdin 挂起)。

### Fixed

- **作者名含正则元字符时过滤 0 命中**:`git log --author` 缺省 POSIX BRE(非 ERE),旧实现把手输作者名原样作为正则传递——`dependabot[bot]` 中的 `[bot]` 被解释为字符类,匹配 0 条(本仓库实测:不转义 0 命中)。现在从候选列表选中的作者身份按 BRE 语义转义(仅 `\ . [ * ^ $`;`+ ? | ( ) {` 在 BRE 中是普通字符,加反斜杠反成操作符)并锚定全行 `^Name <email>$`(同名异邮箱不混淆)。


## [0.0.20] - 2026-10-17 — Delete Remote Branch 陈旧远程分支修复 · 删除失败可诊断

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion docs/.agents/knowledge-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
- [工程实施方案](../docs/architecture/engineering-plan.md) — 路径 B 架构 + M0-M5 里程碑(**开发蓝图**)。
- [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.20](../releases/v0.0.20.md))。
- [发布说明](../releases/README.md) — 各正式版 Release Notes(GitHub Release 正文单一事实源;最新 [v0.0.21](../releases/v0.0.21.md))。

## 图资产(docs/assets/)
- [Mermaid 源图索引](../assets/mermaid/README.md) — 全项目 Mermaid 源图统一管理 + **溯源矩阵**(mermaid ↔ archify ↔ 嵌入文档的唯一权威映射)。
Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
- [Agentic Git 偏好配置](./features/agentic-git-preferences.md) — Agentic Git 预置:Base Branch + Commit / Create PR / Review 三项 agent 指令偏好(多行文本域 + 内置默认模板;M5 前置铺垫)。

## 发布说明
- [Release Notes 目录](./releases/README.md) — 各正式版发布说明(GitHub Release 正文单一事实源);最新:[v0.0.20 Delete Remote Branch 陈旧远程分支修复 · 删除失败可诊断](./releases/v0.0.20.md)。
- [Release Notes 目录](./releases/README.md) — 各正式版发布说明(GitHub Release 正文单一事实源);最新:[v0.0.21 Filter by Author 候选建议 · 多选过滤 · 元字符作者修复](./releases/v0.0.21.md)。

## 调研报告(循证依据)
- [02 · VS Code SCM API 与 vscode.git 集成路径](./research/02-vscode-scm-integration.md) — 路径 B 决策依据、SCM 稳定/proposed API 边界、changelist 模型映射。
Expand Down
1 change: 1 addition & 0 deletions docs/releases/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

| 版本 | 说明 | 日期 |
|---|---|---|
| [v0.0.21](./v0.0.21.md) | Filter by Author 候选建议 · 多选过滤 · 元字符作者修复 | 2026-10-23 |
| [v0.0.20](./v0.0.20.md) | Delete Remote Branch 陈旧远程分支修复 · 删除失败可诊断 | 2026-10-17 |
| [v0.0.19](./v0.0.19.md) | Branches 视图 PR 状态徽标 · 取数安全加固 · 开发依赖升级 | 2026-10-17 |
| [v0.0.18](./v0.0.18.md) | Commit / Branches 标题栏重构 · 批量 Discard Changes · 分支级 Push · 双市场发布重启 | 2026-09-10 |
Expand Down
52 changes: 52 additions & 0 deletions docs/releases/v0.0.21.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Hyper Git - Agentic Git v0.0.21 — Filter by Author 候选建议 · 多选过滤 · 元字符作者修复

> 本版核心:**Graph 视图「Filter by Author…」从「裸输入框完整手输单个作者名」升级为「候选建议 + 多选」**。候选列表来自仓库真实提交作者(`git shortlog` 按当前视图范围取数、按提交数降序)——输入 `Thr` 即在下拉中建议 `ThreeFish`,姓名与邮箱均可模糊匹配,点选即填、无需手输完整 ID;依次勾选多个提交者即可按作者集合过滤 Graph 视图(OR 语义)。同时修复了作者名含正则元字符(如 `dependabot[bot]`)时过滤 0 命中的隐性缺陷。

---

## ✨ 亮点速览

- **前缀输入提示**:在过滤输入框键入姓名或邮箱前缀,下拉即时给出匹配的提交者(附提交数与邮箱),点选即选中——不再要求人工完整输入作者名。
- **多选过滤**:依次勾选任意多个提交者,Graph 视图立即按所选作者集合过滤(任一命中即保留);空选确认 = 清除作者过滤,Esc = 取消不改。
- **正则逃生口**:输入不等于任何作者姓名时,下拉头部动态提供「Use pattern "xxx"」项——手输任意正则原样透传,旧输入框的任意 pattern 能力完整保留,且可与选中身份混用(OR)。
- **元字符作者修复**:`dependabot[bot]` 这类含 `[ ] . +` 的作者名此前按正则原样传递导致 0 命中;现在从候选选中的身份按字面精确匹配(BRE 转义 + 全行锚定 `Name <email>`,同名异邮箱不混淆)。

---

## 🧩 特性详述

### 1. 作者候选建议与多选(#149)

- **候选取数**:`git shortlog -sne` 按当前 Graph 视图 scope(All / Current / Checkpointer)取真实提交作者,按提交数降序、附邮箱——候选与视图所见范围一致,切换 scope 后重开即同步;
- **多选语义**:多个作者翻译为多条 `git log --author`(git 原生取 OR);与 Message / Path / Date / Merge 等其它过滤维度仍为 AND 组合,`Clear Graph Filter` 一键全清;
- **交互细节**:等待取数期间显示 busy 且可先输入;已勾选项在继续键入过滤时保持不丢;再次打开时预勾选当前已过滤的作者,便于增删;空仓库 / 查询失败时降级为仅 pattern 输入(近似旧行为)。

### 2. BRE 字面转义修复(#149)

- `git log --author` 的 pattern 缺省按 POSIX BRE(Basic Regular Expression)解释:`dependabot[bot]` 中的 `[bot]` 是字符类、`.` 匹配任意字符——作者名原样传递即偏离字面语义,含 `[ ]` 的作者 0 命中、含 `.` 的作者可能误伤他人;
- 修复:从候选选中的作者身份按 BRE 语义转义(仅 `\ . [ * ^ $` 有特殊义;`+ ? | ( ) {` 在 BRE 中本就是普通字符,勿加反斜杠)并首尾锚定 `^Name <email>$` 全行匹配——精确身份、同名异邮箱不混淆(本仓库实测:`dependabot[bot]` 修复前 0 命中、修复后 36 命中)。

---

## ⚙️ 升级与兼容

- **无破坏性变更**:全部既有命令、视图与配置项保留;其它过滤维度(Message / Path / Date / Merge / Regex)行为与组合语义与 v0.0.20 一致;
- **行为改进**:作者过滤条件仅存于内存(切换仓库自动清空,不持久化),升级后无遗留状态迁移问题;手输任意正则的能力经「Use pattern」项完整保留。

---

## 📦 安装

- **VS Code Marketplace**:搜索 `Hyper Git - Agentic Git` 直接安装或更新。
- **Open VSX**:搜索 `Hyper Git - Agentic Git` 直接安装或更新(覆盖 Cursor / Windsurf / VSCodium 等 Open VSX 系编辑器)。
- **手动**:从 [Releases](https://github.com/ThreeFish-AI/hyper-git/releases/tag/v0.0.21) 下载 `hyper-git-agentic-git-0.0.21.vsix` → 命令面板 `Extensions: Install from VSIX`。

**系统要求**:VS Code ≥ 1.85.0,且启用内置 Git 扩展(`vscode.git`,默认随附)。仅支持本地 git 仓库,不支持虚拟 / Web 工作区。

---

## 💬 反馈

欢迎在 [GitHub Issues](https://github.com/ThreeFish-AI/hyper-git/issues) 反馈问题与建议。完整工程视角变更记录见 [CHANGELOG](../../CHANGELOG.md)。

许可证:[MIT](https://github.com/ThreeFish-AI/hyper-git/blob/master/LICENSE)。
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"theme": "dark"
},
"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.",
"version": "0.0.20",
"version": "0.0.21",
"publisher": "ThreeFish-AI",
"license": "MIT",
"preview": true,
Expand Down
Loading