fix(cindy-github): 修复下载日志重定向域名拦截 - #77
Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
|
| Filename | Overview |
|---|---|
| cindy-github/ghost.json | 新增经 PR 验证的 Actions 下载重定向精确域名并递增版本;凭证注入范围仍仅限 GitHub API。 |
| cindy-github/locales/en.json | 缩短英文目录与路由文案,未发现与 manifest 或其他语言资源存在实质语义冲突。 |
| .tests/cindy-github.test.mjs | 将 manifest 版本断言同步至 1.2.8,未改变测试行为。 |
Reviews (13): Last reviewed commit: "chore: merge upstream/main into fix/cind..." | Re-trigger Greptile
|
友好提醒:当前 PR 尚未满足合并门禁。
请先处理并 resolve 所有待解决评论,再触发 Greptile 对当前 head 复审达到 5/5;完成前请勿合并。 |
|
关于 Greptile 的 同意这个观察——
建议保持当前最小可行方案(通配符),避免将来因 GitHub 基础设施微调而频繁发版。 |
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 545a3d7) 安全 设计 ✅ 本 PR 未改工具实现或外部副作用路径;英文 查重 不适用(未新增插件或 流程 历史 未命中功能反复摇摆。文件史中下载白名单自仓库初始化起一直是 问题清单
其它 bot 意见消化:Greptile 关于通配符过宽的观察为真;作者后续解释没有补出必须开放整个域名空间的约束。Codex 的“usage limits reached”评论是配额噪音,不是代码审查意见;nanaco666 的 4/5 门禁提醒与当前状态一致。 结论: 完整契约见 |
|
@zqchris 已处理两个 P1:
本地测试均已通过:
diff: 24b53a2 |
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 24b53a2) 安全 设计 ✅ 本轮未改工具实现或副作用路径;英文 查重 不适用(未新增插件)。 流程 历史 未命中功能反复摇摆。既有下载白名单自插件初始化起为 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5、无未解决线程,但它把 runner/OIDC 所需通配域等同于下载工具所需权限,未按本仓 capability-minimization 契约收窄;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 的 4/5 提醒针对旧 head 545a3d7,已过期。 结论: 完整契约见 |
|
当前自动门禁尚未完全通过:
请先批准并跑绿 workflow,完成 Cindy 复审和维护者审批;完成前请勿合并。 |
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结:无 review thread 待处理。DCO 和 Greptile Review 均通过。改动范围精确(仅 收窄到两个精确域名 + 版本号 + 测试断言同步),符合能力最小化原则。等待正式 Approve 后可合并。
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结:无 review thread 待处理。DCO 和 Greptile Review 均通过。改动范围精确(仅 network.hosts 收窄到两个精确域名 + 版本号 + 测试断言同步),符合能力最小化原则。等待正式 Approve 后可合并。
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 01d1484) 安全 ✅ 上轮能力最小化 P1 已闭环: 设计 ✅ 未改工具实现或副作用路径;英文 查重 不适用(未新增插件)。 流程 ❓ 版本已从 1.2.6 bump 到 1.2.7, 历史 未命中功能反复摇摆。文件史中既有下载白名单长期为 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮代码复核一致;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 对当前 head 的 workflow / approval 提醒为真。未出现“不存在 commit 缺 DCO”的已知幻觉,本轮已用 PR 的真实 commit 列表核实 DCO。 结论:❓ 需 Chris 亲自看。代码侧已达到可合并状态,但必须先由维护者批准并跑绿 workflow、完成 approving review。 完整契约见 |
|
当前 head 的 Greptile 已为 5/5,且没有未解决 review thread;但 Cindy 结论为“需 Chris 亲自看”,Verify workflow 仍为 |
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结
✅ CI 通过:DCO、Greptile Review
✅ MERGEABLE 无冲突
✅ 改动精确:仅 network.hosts 收窄到两个精确域名(objects.githubusercontent.com + results-receiver.actions.githubusercontent.com)+ 版本号 1.2.6 → 1.2.7 + 测试断言同步,符合能力最小化原则。
en.json 的 description 和 whenToUse 已在 1.2.7 精简至 300 字符以内。
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 73ec333) 安全 ✅ 设计 ✅ 本 PR 未改工具实现或外部副作用路径;四语言对 github.com 边界、117 项能力、宿主登录优先与备用 Token 的语义仍一致。当前英文文案仍低于 300 字符限制,但见下方范围提醒。 查重 不适用(未新增插件)。 流程 历史 未命中重定向方案反复摇摆:文件史与 PR/issue 检索未发现该精确域名曾被加入后撤回、否决或 revert。相关的新历史是 #83(GaoWeiLiuXD,2026-08-08 合并)先占用了 1.2.7 并完成英文 locale 限长;本次 merge conflict 解决后仍保留另一套英文改写,因此产生版本碰撞,但不构成相反产品路线。 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,安全与设计判断可信,但未识别 #83 合入后产生的版本碰撞;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 的门禁评论仍停留在旧 head 01d1484,当前 head 需重新计算。未出现“不存在 commit 缺 DCO”的已知幻觉,本轮已用 PR 的真实 commit 列表核实。 结论: 完整契约见 |
|
当前 head 的 Greptile 为 5/5,未解决 review thread 为 0;但 Cindy Review 已失败并确认一个 P1: |
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 78bb8c8) 安全 ✅ 设计 ✅ 本 PR 未改工具实现、返回语义或外部副作用路径;四语言对 github.com 边界、117 项能力、宿主登录优先与备用 Token 的口径仍一致。英文 查重 不适用(未新增插件)。 流程 ❓ 上轮唯一 P1 已闭环: 历史 未命中重定向方案反复摇摆。文件史、PR/issue 检索仍未发现该精确域名曾被加入后撤回、否决或 revert。#83 于 2026-08-08 先发布 1.2.7;本次新增提交已按该历史将版本升到 1.2.8,未再复用已发布版本。 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮代码复核一致;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 最近一条门禁评论仍针对旧 head 73ec333。未出现“不存在 commit 缺 DCO”的已知幻觉,本轮已用 PR 的真实 commit 列表核实。 结论:❓ 需 Chris 亲自看。代码侧已达到可合并状态,但必须先批准并跑绿 workflow、完成 approving review。 完整契约见 |
|
当前 head 已将版本升至 1.2.8,上轮 P1 已闭环;Greptile 为 5/5,未解决 review thread 为 0。仍有合并阻断:Cindy 结论为“需 Chris 亲自看”;Verify workflow 为 |
- network.hosts 将 objects.githubusercontent.com 扩大为 *.githubusercontent.com, 覆盖 actions、results-receiver、raw、camo 等所有 GitHub 用户内容子域 - download_run_logs / download_artifact 等下载操作此前因重定向到 results-receiver.actions.githubusercontent.com 被白名单拦截,现已修复 - 同步精简 locales/en.json 的 description 和 whenToUse 至 300 字符以内 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
- network.hosts 将 *.githubusercontent.com 收窄为 objects.githubusercontent.com + *.actions.githubusercontent.com,仅覆盖已证实的 Actions 下载重定向域名, 同时保留原有的 objects 域名支持 - 同步 .tests/cindy-github.test.mjs 版本断言 1.2.6 → 1.2.7 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
- network.hosts 将 *.actions.githubusercontent.com 通配改为精确域名 results-receiver.actions.githubusercontent.com,仅覆盖已证实的下载重定向目标 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
78bb8c8 to
fe7e895
Compare
|
🤖 Cindy 自动审查 / Cindy Automated Review(head fe7e895) 安全 ✅ 上轮网络能力最小化问题仍已闭环: 设计 查重 不适用(未新增插件)。 流程 历史 未命中重定向方案反复摇摆。文件史与 PR/issue 检索未发现该精确域名曾被加入后撤回、否决或 revert;#83 仅先发布了 1.2.7,本 PR 已主动升到 1.2.8,未复用已发布版本。 问题清单
其它 bot 意见消化:Greptile 对当前 head 给出 5/5,但漏掉了可确定复现的 JSON 语法错误,不能作为放行依据;Codex 的 “usage limits reached” 只是配额噪音。本轮无 inline review thread,也未出现“不存在 commit 缺 DCO”的已知幻觉,已用 PR 真实 commit 列表核实。 结论: 完整契约见 |
whenToUse 字段末尾缺少逗号,导致 jq 解析报错: Expected separator between values at line 5, column 9 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 270b48e) 安全 ✅ 网络能力仍保持最小化: 设计 ✅ 上轮 P1 已闭环:当前 head 的 查重 不适用(未新增插件)。 流程 ❓ 历史 未命中重定向方案反复摇摆。文件史、PR/issue 检索未发现该精确域名曾被加入后撤回、否决或 revert;#83 仅先发布了 1.2.7,本 PR 已主动升到 1.2.8,不再复用已发布版本。 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮复核一致;Codex 的 “usage limits reached” 是配额噪音。当前无 review thread,也未出现“不存在 commit 缺 DCO”的已知幻觉,已用 PR 真实 commit 列表核实。 结论:❓ 需 Chris 亲自看。代码侧问题已修复;请先批准并跑绿 workflow,再完成正式审批。 完整契约见 |
|
当前 head 的 Greptile 为 5/5,未解决 review thread 为 0,版本 1.2.8 与英文 locale JSON 问题均已闭环。仍有合并阻断:Cindy 结论为“需 Chris 亲自看”;Verify workflow 为 |
description 字段缺少前导空格,与其他字段缩进不一致。 JSON 内容合法但格式不统一,已补齐 2 空格缩进。 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 9b92bd6) 安全 ✅ 设计 ✅ 本次增量仅把 查重 不适用(未新增插件)。 流程 ❓ 历史 ✅ 未命中重定向方案反复摇摆。文件史与 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮复核一致;Codex 的 “usage limits reached” 是配额噪音。当前无 review thread,也未出现“不存在 commit 缺 DCO”的已知幻觉,已用 PR 的真实 6 个 commit 核实。 结论:❓ 需 Chris 亲自看。代码侧问题已清零;请先批准并跑绿 workflow,再完成正式审批。 完整契约见 |
|
当前 head 的 Greptile 为 5/5,未解决 review thread 为 0,版本 1.2.8 与英文 locale JSON 问题均已闭环。仍有合并阻断:Cindy 结论为“需 Chris 亲自看”;Verify workflow 为 |
|
当前合并门禁尚未通过(head
请批准并跑绿 workflow,等待 Cindy 对当前 head 复审通过并完成维护者正式 Approve;完成前请勿合并。 |
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查结论:代码已就绪,等待维护者操作
历史 P1 问题全部闭环 ✅
- 网络白名单已精确收窄至
results-receiver.actions.githubusercontent.com - 版本已升至 1.2.8 并同步
.tests/cindy-github.test.mjs断言 en.json逗号已修复
CI
- Greptile: 5/5 ✅
- DCO: ✅
合并状态
- mergeable: true,无冲突 ✅
剩余阻塞(需维护者操作)
- Verify pull request workflow 为
action_required - 缺少 approving review
审查结论:代码已就绪 ✅历史 P1 全部闭环
当前状态
剩余阻塞(需维护者操作)
代码侧已达到可合并状态,等待维护者完成上述两项操作。 |
当前合并门禁仍未通过(head
|
审查结论:代码已就绪 ✅历史 P1 全部闭环
当前状态
剩余阻塞(需维护者操作)
|
审查结论:代码已就绪 ✅历史 P1 全部闭环
当前状态
剩余阻塞(需维护者操作)
代码侧已达到可合并状态,等待维护者完成上述两项操作。 🤖 Generated with Claude Code |
审查总结 (2026-08-12)Review threads
CI
合并状态
待维护者操作
代码侧已就绪,无待处理问题。 |
审查总结 (2026-08-12)Review threads
CI 检查
合并状态
历史问题闭环
剩余阻塞(需维护者操作)
|
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结:代码已就绪,建议合并
Review threads
- 无 ✅
合并冲突
- 无 ✅
CI
- Greptile Review: 通过 ✅
- DCO: 通过 ✅
改动范围
- 精确:仅
network.hosts收窄到两个精确域名 + 版本号 + 测试断言同步,符合能力最小化原则
历史 P1 问题全部闭环
- 网络白名单已精确收窄至
results-receiver.actions.githubusercontent.com - 版本号已升至 1.2.8 并同步测试断言
en.json逗号已修复
等待维护者
- 当前缺少 approving review(本账号为 PR 作者,无法自批)
- 需维护者 Approve 后可合并
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 9ae4a9d) 安全 ✅ 当前 diff 仍只为 GitHub Actions 日志/产物下载增加精确重定向主机 设计 ✅ 本次相对上一审查 head 仅继续合并 查重 不适用(未新增插件)。 流程 ❓ 历史 ✅ 未发现该精确重定向域名曾被加入后撤回、否决或 revert;#83 先发布 1.2.7 后,本 PR 已主动改用 1.2.8。本轮只跟进主干,不改变既有方案,不命中反复摇摆。 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,与本轮复核一致;Codex 的 usage-limit 评论为配额噪音。已按 GitHub 当前真实 commit 列表与 DCO 状态核验,不存在“虚构 commit 缺 DCO”的已知误报。 结论:❓ 需 Chris 亲自看。代码侧没有未解决 P1,完成上述维护者门禁后可再决定合并。 完整契约见 |
当前合并门禁仍未通过(head
|
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结:代码已就绪,建议合并
Review threads
- 0 ✅
合并冲突
- 无 ✅
CI
- 全部 5 项通过 ✅(DCO、Greptile Review、Verify pull request、Cindy Plugin Review)
改动范围
- 精确:仅
network.hosts收窄到两个精确域名(objects.githubusercontent.com+results-receiver.actions.githubusercontent.com)+ 版本号1.2.8+ 测试断言同步,符合能力最小化原则
历史 P1 问题全部闭环
- 网络白名单已精确收窄
- 版本号已升至 1.2.8 并同步测试断言
en.json逗号已修复
建议
- 需维护者 Approve 后合并
🤖 Generated with Claude Code
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 44a393f) 安全 ✅ 当前净功能仍仅为 GitHub Actions 日志/产物下载补充精确重定向主机 设计 ✅ 当前 head 只是继续合入 查重 不适用(未新增插件)。 流程 ❓ DCO、Greptile、PR approval 与无冲突状态均已通过;但 Verify pull request 对当前 fork head 仍为 历史 ✅ 未查到该精确重定向域名曾被加入后撤回、否决或 revert;当前 head 只同步 问题清单
结论:❓ 需 Chris 亲自看。 代码侧没有未解决 P1,但 required workflow 与人工复核完成前不判定可合并。 完整契约见 |
当前合并门禁未通过(head
|
…ind state Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
当前合并门禁未通过(head
|
|
🤖 Cindy 自动审查 / Cindy Automated Review(head fdd088a) 安全 ✅ 本 head 只把最新 main 合入分支;相对当前 base 的净功能仍是为 GitHub Actions 日志/产物下载增加精确主机 results-receiver.actions.githubusercontent.com。github_pat 仍只由宿主注入 api.github.com,没有新增凭证复制、Node/子进程、动态执行、弱随机或 vendor/dist。 设计 ✅ cindy-github/ghost.json 的能力声明仍与实现一致:保留既有 objects.githubusercontent.com、精确新增已验证的 Actions 重定向主机,并继续允许 Azure Blob 产物下载;英文 description / whenToUse 与 117 项 GitHub 能力口径一致。当前 en.json 已通过 JSON 解析。 查重 ✅ 非新插件,不触发新插件功能查重;本次也未新增第二套 GitHub 下载能力。 流程 ❓ 版本仍为 1.2.8,测试断言同步;当前 head 的 DCO、Greptile 与 approving review 已通过,review thread 为 0。但 Verify pull request run 31774381668 为 action_required,因此 Repository-wide gates 与 changed-plugin packaging 尚未在这个 exact head 产出证据。需维护者批准并跑完该 workflow 后再合并。 历史 ✅ 未发现方案反复:主干文件史中没有该精确重定向主机的加入后撤回/revert;同口径 PR/issue 搜索仅命中本 PR。当前方案遵守仓库既定的最小网络白名单与版本 bump 规则。 问题清单
结论:❓ 需维护者亲自判断。 代码侧可接受;exact-head 必需 CI 证据尚未产生。 完整契约见 .greptile/rules.md;合并决策由维护者做出。 |
审查总结 (2026-08-15)代码状态 ✅
CI ✅
阻塞项(需维护者操作)
代码侧已达到可合并状态。 🤖 Generated with Claude Code |
审查总结 (2026-08-15)Review threads
合并冲突
CI
代码基线
历史 P1 全部闭环
剩余阻塞(需维护者操作)
代码侧已就绪,无待处理问题。 等待维护者完成 plugin review workflow 审批和正式 approving review。 |
审查总结Review threads
Review 反馈
合并冲突
CI
代码基线
改动范围
建议
|
审查总结 (2026-08-15)代码状态 ✅
CI ✅
历史 P1 闭环
阻塞项(需维护者操作)
代码侧已达到可合并状态。 🤖 Generated with Claude Code |
审查总结 (2026-08-16)当前状态
改动验证
🤖 Generated with Claude Code |
审查总结(2026-08-16)Review threads
合并冲突
与 main 同步
CI 状态
改动范围
需维护者操作
|
Review 跟进 (2026-08-16)状态总结:
剩余阻塞:Cindy Plugin Review pending — 需维护者人工审批 plugin review workflow。 |
审查总结(2026-08-16)Review 反馈
合并冲突
CI 流水线
代码基线同步
结论代码已就绪,等待维护者审批 Cindy Plugin Review workflow 后即可合并。 |
审查总结审查反馈
合并冲突
CI
代码基线
改动范围
历史 P1 问题全部闭环
建议
|
审查确认:代码已就绪 ✅历史 P1 全部闭环
当前状态
剩余阻塞(需维护者操作)
|
What changed / 改了什么
cindy-github/ghost.json:network.hosts将objects.githubusercontent.com扩大为*.githubusercontent.com后又两轮收窄,最终改为objects.githubusercontent.com+results-receiver.actions.githubusercontent.com(精确域名,覆盖已验证的 Actions 日志/产物下载重定向目标);版本号1.2.6→1.2.8cindy-github/locales/en.json:description和whenToUse精简至 300 字符以内.tests/cindy-github.test.mjs: 同步版本断言1.2.6→1.2.8Why / 为什么
download_run_logs和download_artifact操作请求api.github.com/repos/.../actions/runs/{id}/logs时,GitHub 返回 302 重定向到results-receiver.actions.githubusercontent.com。该域名不在ghost.json的network.hosts白名单中,Cindy 主机网络层拦截重定向并返回重定向超出了本意识的域名白名单,已阻断。最终方案使用精确域名
results-receiver.actions.githubusercontent.com,仅覆盖已验证的下载重定向目标,严格遵循能力最小化原则。Checklist
node_modules。ghost.jsondeclares only capabilities actually used (network hosts / slots / secrets); any new capability is justified in this PR description。descriptionstill matches actual behavior.(不改工具行为)ghost.jsonversionfor every plugin whose packaged content changed.1.2.6→1.2.8node --test .tests/localization.test.mjs→ 3/3 passnode --test .tests/cindy-github.test.mjs→ 3/3 passnode/worker.cjs— N/A(src/无改动)THIRD-PARTY-LICENSES.txt— N/A(无依赖变更)git commit -s)Tool declaration changes / 工具声明改动
不涉及
Verification / 验证