来源: ranxianglei/billion-context-pi#384 与 ranxianglei/billion-context-pi#387 分析「PR head 被意外替换」时发现
现象(时间线,2026-09-12,UTC)
- 06:32 owner 在 #384 评论「解决冲突」。
- ~06:51 处理 #384 的 daemon 会话完成 rebase 冲突解决,force-push
a955eeb,CI 全绿(test matrix ubuntu/windows × 22/24 + e2e)。
- 06:53 owner 开 #387,明确 scope:仅升级 acp-kernel 0.0.63→0.0.64、零代码改动,并说明 compress 结果侧块跨度已由 #377 实现(#376 视为已解决)。
- 06:53 处理 #387 的另一 daemon 会话 picked up 后,复用了 #384 的分支
2026-09-12_compress-block-spans,force-push b91d5c7(pin-only,父提交为当前 master),并改写 #384 的标题/body 为 chore(#387): pin acp-kernel 0.0.64(body 内自述了历史与取舍)。
- #384 线程中没有任何评论预告这次 head 替换。
影响
- 前一会话的 CI-green 冲突解决被覆盖。本次内容上无害——新 head 与 owner 在 #387 的最新意图一致,且被覆盖的 head(
a955eeb)仍可从本地分支恢复。但流程上不可复现安全:若方向与 owner 意图不一致,该决策将由 bot 单方面做出,owner 未在任一线程看到两个方案的并排对比。
- 分支复用使 #384 的 PR 元数据(标题/body)被改写成另一 issue 的用途,#384 原有的 review 记录(冲突解决报告)相对当前 PR 内容变成「孤儿」,追溯困难。
根因
- 所有 daemon 会话共用同一 git 身份(
ework-agent <ework-daemon@users.noreply.github.com>),彼此无法在 git 层区分。
- 分支命名规范
YYYY-MM-DD_short-title 不绑定 issue 编号,两个会话可独立推导出同一个分支名。
- force-push 前没有「远端 head 是否属于自己工作线」的检测;也没有「先在被影响的 PR/issue 线程留言再推送」的约束。
建议修复
- 分支命名绑定 issue 号:
YYYY-MM-DD_issue<N>_short-title,从命名上消除两会话撞名可能(需同步更新 AGENTS.md 规范)。
- force-push 前置检查:若远端 head 不在本地历史中(即会覆盖他人提交),必须先在对应 PR/issue 线程发评论说明,或拒绝直接推送、等待人工确认。
- 接任务时查重分支/PR:发现与既有 open PR/活跃会话工作重叠时,优先在对方线程留言协调,而不是直接替换。
本次处置
未回滚 b91d5c7(其内容与 #387 最新 scope 一致);已在 #384 线程完整报告情况与验证结果;a955eeb 保留在本地,如 owner 想恢复内核格式化器路线可随时重推。
来源: ranxianglei/billion-context-pi#384 与 ranxianglei/billion-context-pi#387 分析「PR head 被意外替换」时发现
现象(时间线,2026-09-12,UTC)
a955eeb,CI 全绿(test matrix ubuntu/windows × 22/24 + e2e)。2026-09-12_compress-block-spans,force-pushb91d5c7(pin-only,父提交为当前 master),并改写 #384 的标题/body 为chore(#387): pin acp-kernel 0.0.64(body 内自述了历史与取舍)。影响
a955eeb)仍可从本地分支恢复。但流程上不可复现安全:若方向与 owner 意图不一致,该决策将由 bot 单方面做出,owner 未在任一线程看到两个方案的并排对比。根因
ework-agent <ework-daemon@users.noreply.github.com>),彼此无法在 git 层区分。YYYY-MM-DD_short-title不绑定 issue 编号,两个会话可独立推导出同一个分支名。建议修复
YYYY-MM-DD_issue<N>_short-title,从命名上消除两会话撞名可能(需同步更新 AGENTS.md 规范)。本次处置
未回滚
b91d5c7(其内容与 #387 最新 scope 一致);已在 #384 线程完整报告情况与验证结果;a955eeb保留在本地,如 owner 想恢复内核格式化器路线可随时重推。