You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Surfaced: 2026-06-29. Agent-authored PR #503 (by Cody/cloud-codex) was cut from a stale main — Cody cloned the repo when main was at 7c4b6230, then PRs #506 and #507 merged, but Cody's branch never updated. When the PR was squash-merged, the squash overwrote main's tree with the stale branch tree, silently reverting #506 + #507 (the landing real-work screenshots + positioning, and a set of docs). GitHub's PR diff looked clean because it's computed against the merge-base, so the regression wasn't visible in review. Fixed by reverting (#515).
Two distinct gaps:
Agent branching hygiene. Cody (and any agent that clones once and works for a while) opens PRs from a base that drifts behind main. Agents should git fetch origin && git rebase origin/main (or branch fresh off origin/main) before committing/pushing a PR, and re-sync before any follow-up push. The cloud-codex run wrapper could enforce/automate this. Relatedly, a fresh codex session doesn't know the repo path and clones a fresh stale copy each time (see cloud-codex: iterative follow-up tasks don't reliably commit/push #512).
Merge technique. The squash-merge used git reset --soft origin/main && git commit from the PR branch. That technique is only safe when the branch's merge-base isorigin/main; for a stale-based branch it overwrites main with the branch tree and reverts everything in between, with no conflict to warn you. Safe merges must rebase the branch onto current origin/main first (which surfaces conflicts), or use a real merge — never a blind tree-overwrite squash. Worth a documented merge runbook + a guard (refuse to squash if merge-base(branch, origin/main) != origin/main).
Why it matters: silent reversion of merged work is the worst kind of regression — invisible in review, only caught by a human noticing their work vanished.
Direction: (a) make agents rebase-before-PR (wrapper-enforced); (b) document the safe squash-merge procedure + add a stale-base guard; (c) consider branch-protection "require branch up to date before merge."
Surfaced: 2026-06-29. Agent-authored PR #503 (by Cody/cloud-codex) was cut from a stale main — Cody cloned the repo when main was at
7c4b6230, then PRs #506 and #507 merged, but Cody's branch never updated. When the PR was squash-merged, the squash overwrote main's tree with the stale branch tree, silently reverting #506 + #507 (the landing real-work screenshots + positioning, and a set of docs). GitHub's PR diff looked clean because it's computed against the merge-base, so the regression wasn't visible in review. Fixed by reverting (#515).Two distinct gaps:
Agent branching hygiene. Cody (and any agent that clones once and works for a while) opens PRs from a base that drifts behind main. Agents should
git fetch origin && git rebase origin/main(or branch fresh offorigin/main) before committing/pushing a PR, and re-sync before any follow-up push. The cloud-codex run wrapper could enforce/automate this. Relatedly, a fresh codex session doesn't know the repo path and clones a fresh stale copy each time (see cloud-codex: iterative follow-up tasks don't reliably commit/push #512).Merge technique. The squash-merge used
git reset --soft origin/main && git commitfrom the PR branch. That technique is only safe when the branch's merge-base isorigin/main; for a stale-based branch it overwrites main with the branch tree and reverts everything in between, with no conflict to warn you. Safe merges must rebase the branch onto currentorigin/mainfirst (which surfaces conflicts), or use a real merge — never a blind tree-overwrite squash. Worth a documented merge runbook + a guard (refuse to squash ifmerge-base(branch, origin/main) != origin/main).Why it matters: silent reversion of merged work is the worst kind of regression — invisible in review, only caught by a human noticing their work vanished.
Direction: (a) make agents rebase-before-PR (wrapper-enforced); (b) document the safe squash-merge procedure + add a stale-base guard; (c) consider branch-protection "require branch up to date before merge."