已合并
fix: round-6 P2 batch - completion env pin, release delete/list alignment, doc version gate #588
aflyingto创建于 9月30日
fix: round-6 P2 batch - completion env pin, release delete/list alignment, doc version gate #588
已合并
aflyingto创建于 9月30日
aflyingto成员
9月30日

Summary

第六轮评审第一批(5 项 P2,均评审期实证)修复,5 个功能 commit + 1 个评审修复 commit:

  1. 补全 gc 遍钉死命令名 env(npm/lib/install.js):Go 侧命令名解析 env 优先于 argv[0],用户 shell 导出 GITCODE_CLI_COMMAND_NAME 时 gc 命名的三个补全文件全部写入 gitcode 脚本、gc <TAB> 遮蔽静默失效。每遍显式传 env;e2e 以隔离 HOME + 反向导出 env 固化六文件断言(anchored 模式防跨名误配)
  2. release delete 与平台 405 对齐:COMMANDS.md 已定论平台无删除接口,但命令 Long/Example 仍宣称真删、--yes 得裸 405。Long/Example 重写;405 错误返回含 release.HTMLURL 网页指引(缺失降级);ErrNoReleaseID 改 errors.Is
  3. release list 翻页:--limit 原样映射 per_page(上限 100)静默截断且无 --page。新增 fetchReleases 跨页累积(短页终止)+ --page 单页语义(与 issue/pr list 对齐、--limit>100 互斥 exit 2);累积池 published_at 排序后再截取
  4. 文档版本门禁:release preflight 与 CI 加 sync-docs-version.sh --check;脚本扩覆盖 AI-GUIDE.md、per-file 检测(部分滞后的文档树一次自愈);AI-GUIDE.md 滞后 v0.13.0 已补齐 v0.14.1(漂移在本批已真实发生)
  5. sync-docs 边界替换:sed 补右边界(防 0.6.1→v0.6.10 蚀成 v0.6.100)与左边界(防 10.6.1 家族蚀写与残留误报);新测试脚本 12 用例

Verification

多角色评审(§7)

四个独立非作者 agent 并行评审(代码/安全/测试/文档),全部实跑验证后处置:

角色 发现 处置
代码 3 P3 左边界缺失、sort-then-trim 测试缺口已修;--page 空结果 null 疑虑实证为误报(WriteJSON 顶层 nil 归一化)
安全 0 P1/P2 + 2 观察 9 种注入 payload 实测全拒、无权限扩大;观察项记录(见取舍)
测试 1 P2 + 5 P3 P2(分页 fixture 单调、锁不住 sort-then-trim)已修;delete 成功/404 路径、limit=100 边界、自愈变体已补;其余记录
文档 1 P2 + 3 P3 AI-GUIDE 的 PyPI 钉 0.11.1、html_url 无条件表述、(latest) 窗口语义均已修;issues-plan 滞后项按规范不改

取舍记录

  • prerelease 版本(如 v1.0.0-rc.1)被新文档门禁拒绝(fail-closed):历史从未发布 rc,将来支持需扩脚本两处正则
  • fetchReleases 不防"服务端忽略 page 参数"导致重复项(推测性风险,记录备查)
  • installCompletions 无注入点、补全修复仅有 e2e 覆盖——issue 609 补全项 6 已跟踪
  • sync-docs 消耗边界型替换对背靠背同版本 token 有已知限制(注释已述,残留检查会响亮失败而非静默漏掉)

Risk

  • release list 查询串显式带 page=1(与旧默认路径逐字节语义等价);--limit>100 行为从静默截断变为跨页取满(正是本批修复目标)
  • sync 脚本依赖 GNU sed -E -i(仓库既有约定,CI ubuntu 门控)
  • 补全修复无污染时输出与旧行为逐字节一致;405 指引为纯增量错误路径

Closes #608

🤖 Generated with Claude Code

likedislike
Pull Request已成功合入, 合并人@aflyingto
(感谢 aflyingto 的贡献)
Aaflyingto成员
9月30日 创建了 pull request,commit d07edfe3
Aaflyingto成员
9月30日 关联了issue:第六轮评审第一批:补全 env 泄漏、release delete 对齐与 release list 翻页 P2(3 项)
Aaflyingto成员
9月30日 添加了label:risk/mediumscope/installscope/releasestatus/drafttype/bug
Aaflyingto成员
9月30日 添加了label:status/ready-for-review
Aaflyingto成员
9月30日 取消了草稿状态
Aaflyingto成员
9月30日 删除了label:status/draft
aflyingto成员
9月30日 评论:

CI 证据补录

主判断(GitHub Actions,PR #103 / run 36665015318):9/9 全绿

Check 结果 耗时
Lint pass 29s
Secret Scan pass 46s
Build (ubuntu / macos / windows) pass ×3 27s / 36s / 1m16s
Test (ubuntu / macos / windows) pass ×3 3m3s / 3m22s / 5m17s
Docker pass 52s
  • Test 三平台矩阵含 npm test(174 项)与 npm run test:upgrade e2e(含本批新增的污染 env 六补全文件断言)
  • 本批新增门禁同步生效:sync-docs-version.sh --check(三平台)与 test-sync-docs-version.sh(ubuntu 门控)在 CI 中首跑通过

记录端(GitCode Actions,本分支):补录时状态 RUNNING(GitHub 为主判断标准,GitCode 仅为记录;如后续失败仅追查记录,不影响本 PR 判断)

多角色评审(§7.4 摘要):代码/安全/测试/文档四独立 agent,0 P1、1 P2(分页测试强度,已修)、其余 P3 全处置——修复 10 项、实证证伪 1 项(--page null,WriteJSON 顶层归一化)、记录 6 项(详见 PR body 取舍记录)。

likedislike
Aaflyingto成员
9月30日 关闭了关联的issue
Aaflyingto成员
9月30日 合入了pull request,合并节点 SHA:20ff21f82a587109edc6b4f90ba427d271883ec5
Aaflyingto成员
9月30日 添加了label:status/merged;删除了label:status/ready-for-review