Skip to content

fix(Log): All 范围改用 --branches --tags --remotes 根治游离泳道污染; - #45

Merged
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/log-hide-deleted-branches
Jul 1, 2026
Merged

fix(Log): All 范围改用 --branches --tags --remotes 根治游离泳道污染;#45
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/log-hide-deleted-branches

Conversation

@ThreeFish-AI

Copy link
Copy Markdown
Owner

问题

LOG 视图 All 范围下,一批已删分支的提交仍以游离泳道残留;运行「清理已删远程分支」(#44git fetch --prune) 后依旧存在

根因

engine/log/log-query.tsbuildLogArgsall/checkpointergit log --all--all 遍历 refs/全部引用(不止 heads/remotes/tags),含宿主工具注入的 refs/conductor-checkpoints/*(会话快照)与 refs/conductor-archive-heads/*(已删/被取代分支头的归档),使游离提交仍可达、画成游离泳道。客户端 /^checkpoint:/ subject 过滤拦不住作为其祖先的游离业务提交;git fetch --prune 仅清 refs/remotes/*,对此类非远端跟踪引用无效——这正是「prune 后依旧存在」之因。

实证:本仓 --all241 提交、--branches --tags --remotes74;refs 命名空间 135 conductor-checkpoints + 17 conductor-archive-heads,远多于 3 heads / 3 remotes / 2 tags。

修复

  • all 范围:--all--branches --tags --remotes(仅三大标准命名空间,排除一切工具注入的内部引用),根治游离泳道。
  • checkpointer 范围:保留 --all——该 Tab 职责即「原始完整视图、含内部 checkpoint 快照」,需触达 refs/conductor-checkpoints/*
  • 客户端 keepCheckpoint 过滤作双保险保留;更新 tests/unit/log-query.test.ts 断言(all 含三件套且不含 --allcheckpointer--all 且不叠三件套)作回归护栏;经验沉淀于 docs/.agents/issue.md #9

验证

check-types / lint / 306 单测全绿 / production package 构建通过;与 feature/1.x.x 无文件重叠,合并零冲突。

附:先前一度推进的 prune-on-fetch 方案基于「远端已删、本地未 prune」的误判,已全部回退、未入提交。

- 根因:buildLogArgs 对 all/checkpointer 下 `git log --all`,--all 遍历 refs/ 全部引用(不止 heads/remotes/tags),含宿主工具注入的 refs/conductor-checkpoints/*(会话快照)与 refs/conductor-archive-heads/*(已删/被取代分支头归档),使游离提交仍可达、画成游离泳道。客户端 /^checkpoint:/ subject 过滤拦不住作为其祖先的游离业务提交,故泄漏;git fetch --prune 仅清 refs/remotes/*,对此类非远端跟踪引用无效(即「prune 后依旧存在」之因)。
- 修复:all 范围由 --all 改为 --branches --tags --remotes(仅三大标准命名空间,排除一切工具注入内部引用);checkpointer 保留 --all(该 Tab 职责即原始完整视图、需触达内部 checkpoint 快照)。客户端 keepCheckpoint 过滤作双保险保留。
- 实证:本仓 --all 取 241 提交、--branches --tags --remotes 取 70;refs 命名空间 135 conductor-checkpoints + 17 conductor-archive-heads,远多于 3 heads/3 remotes/2 tags。
- 测试:更新 tests/unit/log-query.test.ts 断言(all 含三件套且不含 --all;checkpointer 含 --all 且不叠三件套)作回归护栏;check-types/lint/306 单测/production package 全绿。
- 经验沉淀:docs/.agents/issue.md #9。

🤖 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>
@ThreeFish-AI
ThreeFish-AI merged commit 52c3624 into feature/1.x.x Jul 1, 2026
5 checks passed
@ThreeFish-AI
ThreeFish-AI deleted the ThreeFish-AI/log-hide-deleted-branches branch July 1, 2026 15:49
ThreeFish-AI added a commit that referenced this pull request Jul 4, 2026
- package.json:版本号 0.0.9-rc.2 → 0.0.9
- CHANGELOG.md:将 [0.0.9-rc.2] / [0.0.9-rc.1] 两段合并为单个综合条目 [0.0.9],
  并回填自上一正式版 0.0.6 以来从未记录的变更(#40-#45 的 CI 状态/远程分支删除/
  清理已删远程分支/UI-UX 全局系统化 #43/Log All 修复 #45,及 #49 Emerald 图标);
  底部引用链接同步更新(移除 rc 链接,新增 [0.0.9])
- docs/releases/v0.0.9.md:新建正式版发布说明,以 rc.1 结构为蓝本扩写为面向公开用户的
  全量叙述,移除 Release Candidate 措辞,规模实证更新为 6 视图 / 97 命令 / 6 配置 / 324 单测
- docs/releases/{v0.0.9-rc.1,v0.0.9-rc.2}.md:删除 rc 发布说明(已发布 pre-release 正文已固化,删源无影响)
- docs/releases/README.md、docs/.agents/knowledge-map.md:索引与知识地图收敛至 v0.0.9 单行

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant