Skip to content

Session Handoff [default]: #1537 Fixed, Promoted to main, and Released as 2.0.621 #1568

Description

@ptr727

What this round did

Next steps, in priority order

  1. pr_review.py's scope probe reads another repository when GIT_DIR is inherited #1561, the scope probe inherits GIT_DIR, so an inherited one redirects it to a different repository. The unsafe direction is a write admitted because GIT_DIR named a repository under the target's owner while the script sits in a checkout under another.
  2. wait's Copilot review request bypasses the in-process owner check #1562, wait's Copilot review request is a mutation that never passes through in_scope, so the in-process owner check does not cover the one write path that is not comment or reply.
  3. Four prose findings against scripts/tests/test_prose_lint.py were left open when this round's edit budget ran out, listed in Read an Empty prose_lint --diff as a Failed Base, Not as No Diff #1566's body with their line numbers. None is behavioral, and the two-round budget is why they were reported rather than fixed. They are worth one pass whenever that file is next edited, and they are not worth a branch of their own.

Blockers and dependencies

State a resume re-reads

Parked decisions

None. The one decision this round raised, how far to take the promotion, was put to the maintainer as a blocking question and answered "merge and release", which is what happened. Nothing was deferred for want of an answer.

What not to repeat

  • Do not copy a git worktree with cp -a and then run a git command inside the copy. The copied .git is a file pointing back at the original repository's git directory, so git checkout <ref> -- <path> in what looks like a scratch copy stages that path in the real worktree's index. A review subagent did exactly this and had to unstage it. Delete the copied .git before any git command runs in the copy.
  • Do not answer a prose finding by narrowing the claim it disputes. Round one's fix narrowed a comment from any command substitution to a quoted one, and round two's review disproved the narrowed form too. Deleting the sentence is what closed it, and the same shape closed four of the six findings that round.
  • Do not reach for pytest in this repository. The suite is unittest, and python3 -m pytest reports a missing module that reads as a broken environment.

What was learned

  • A regression test that mocks the resolver cannot pin the precondition the fix rests on. The fix here is only a refusal because git rejects an empty revision, and the mocked test would have stayed green if that ever changed. The real-repository test beside it is what holds the actual behavior, and both were proved by reverting the two production lines and watching each fail.
  • Three strict-review passes over a two-line production change produced no behavioral finding after the first pass and thirteen prose findings in total, every one against text a previous round had written. The two-round edit budget is the rule that ends this, and reporting what is still open costs less than a fourth round that would write the fifth round's findings.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    handoffA link in the session handoff chain, one open issue per track

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions