fix(bots): revert poetry lock/pyproject churn before engineer-bot publish#866
Merged
Merged
Conversation
…publish The engineer-bot author run on issue #860 failed at "Open / update fix PR": publish's leftover safety-net found poetry.lock + pyproject.toml unstaged and not in the agent's touched_files, so it refused to open the PR — even though the agent's fix + tests were correct (494 passed). Root cause: the shared setup-poetry action runs `poetry lock` (to reconcile the lock with the internal JFrog source it injects), which REWRITES the tracked poetry.lock / pyproject.toml in the working tree. That churn is harmless for the 5 real-CI consumers of the action (they commit nothing) but poisons the two engineer-bot workflows, which publish a PR from the working tree. Fix (engineer-bot side only — leave the shared action untouched): after the Poetry setup, `git checkout -- poetry.lock pyproject.toml` to drop the churn once the venv is built, so only the agent's edits remain in the tree at publish time. Applied to both engineer-bot.yml (author) and engineer-bot-followup.yml. Signed-off-by: eric-wang-1990 <[email protected]> Co-authored-by: Isaac
eric-wang-1990
temporarily deployed
to
azure-prod
July 17, 2026 00:36 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 17, 2026 00:36 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 17, 2026 00:39 — with
GitHub Actions
Inactive
There was a problem hiding this comment.
Verdict: 1 Low
Looks good — a clean, minimal CI fix. The revert step is correctly ordered (after setup-poetry builds the venv, before the agent's edits) and applied consistently to both engineer-bot workflows. One Low note about || true masking a failed revert.
eric-wang-1990
temporarily deployed
to
azure-prod
July 17, 2026 00:53 — with
GitHub Actions
Inactive
Addresses: - #3599651153 at .github/workflows/engineer-bot.yml:89 Signed-off-by: peco-engineer-bot[bot] <peco-engineer-bot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The engineer-bot author run on issue #860 (failed run) succeeded at authoring the fix (correct
max→minchange inretry.py+ tests, 494 passed) but failed at "Open / update fix PR":Root cause
The shared
setup-poetryaction runspoetry lock(to reconcile the lock with the internal JFrog source it injects for the egress-blocked runner), which rewrites the trackedpoetry.lock+pyproject.tomlin the working tree. At publish time the tree therefore has 4 dirty paths: the agent's 2 (retry.py,test_retry.py) pluspoetry.lock+pyproject.toml. Publish stages only the agent'stouched_files, then its leftover safety-net sees the two poetry files still dirty (not intouched_files) and correctly refuses.This is harmless for the 5 real-CI consumers of
setup-poetry(they commit nothing) but poisons the two engineer-bot workflows, which publish a PR from the working tree. It affects every engineer-bot run on this repo, so the bot cannot open a PR until fixed.Fix
Engineer-bot side only (leave the shared action untouched so real CI is unaffected): after the Poetry setup,
git checkout -- poetry.lock pyproject.tomlto drop the churn once the venv is built. Only the agent's edits remain in the tree at publish time. Applied to bothengineer-bot.yml(author) andengineer-bot-followup.yml.Testing
Both workflow YAMLs parse; actionlint clean. Will re-trigger the engineer-bot on #860 once this lands to confirm the full author→publish→PR path.
This pull request and its description were written by Isaac.