Skip to content

Session Handoff [engineering]: #2951, #2946-#2949 and #2941 Released as 2.0.1020, Guard Allow Gaps Next #2966

Closed

Description

@ptr727

Next steps, in priority order

  1. Re-run the host-safety installer, maintainer only. The guard changed on main again (Read Each Refspec's Push Operation, Include Overrides, and Fused Separators in the Write Guard #2963 via Promote Per-Refspec Write-Guard Push Reading, CLI Usage Gate Follow-Ups, and the Refusal Field Wording to Main #2965), so install.py --report reads STALE until python3 host-setup/agent-safety/claude/install.py runs from a checkout of main. Done when its --report reads CURRENT.
  2. Delete the three merged remote feature branches, maintainer only. feature/ledger-and-refusal-field, feature/cli-gate-followups and feature/guard-allow-gaps-2951. Each tip was verified equal to its merged PR head (Record the Attached git Option Disproof and Qualify the Refusal Field Sentence #2955, Tighten the CLI Usage Gate, Share Its Status Parser, and Fix the Windows Decode Probe #2956, Read Each Refspec's Push Operation, Include Overrides, and Fused Separators in the Write Guard #2963). Re-verify with git ls-remote --heads --exit-code -- origin refs/heads/<b> before deleting.
  3. The guard's allow gaps, one lane at a time: Close the Write Guard's Remaining Push Detection Gaps Found Reviewing the #2936 Fix #2943, Read a Clustered Short Option's Force or Delete in the Write Guard's Push Check #2957, Deny an Include Override on a Commit as a Hooks-Path Bypass in the Write Guard #2958, Read Words the Shell Rewrites Before a Push in the Write Guard #2959, Deny an Include Override on a Git Command That Runs Other Git Commands in the Write Guard #2960, Fail Closed on a Comment or a Substitution in a Push or Commit's Own Words in the Write Guard #2961, Read a Local Branch Name Whole and an Exec-Path Beside an Include Override in the Write Guard #2962. They all edit gh-write-guard.py, so they serialize rather than run in parallel. Group several per PR where they share a reader (the include-override pair Deny an Include Override on a Commit as a Hooks-Path Bypass in the Write Guard #2958 and Deny an Include Override on a Git Command That Runs Other Git Commands in the Write Guard #2960, and the shell-rewrite pair Read Words the Shell Rewrites Before a Push in the Write Guard #2959 and Fail Closed on a Comment or a Substitution in a Push or Commit's Own Words in the Write Guard #2961). Safety hook, so a frontier lane with the develop-versus-branch differential before every push.
  4. The guard's over-denials, after step 3: Narrow Three Write-Guard Reads That Deny More Broadly Than Git Pushes #2953 and Scope a Branch Pattern's Push Operations to the Branches It Can Match in the Write Guard #2964.
  5. The rest of the backlog, re-ranked live.

External blockers

  • Host-safety kit STALE on this machine until the maintainer re-runs its installer (step 1).
  • The auto-mode classifier refused gh api -X DELETE on a remote branch last round, so this round did not try. Remote branch deletes go to the maintainer (step 2).

Internal dependencies

  • Steps 3 and 4 each change host-setup/agent-safety/, which moves the payload again. If a guard PR is about to be promoted, run step 1 after that promotion so the installer runs once.
  • Step 4 after step 3, since narrowing a deny while allow gaps are open has twice opened a new allow in the same reader.

State

The parked decision queue

There are 0 open decision issues.

What the last round did

What not to repeat

  • Decode Child Output as UTF-8 in the Test That Fails on Windows' Code Page #2946's stated cause was wrong. The failing call was a probe that names no encoding on purpose, and the error in its reader thread made a whole test class skip on Windows. Read an issue's suspected cause as a lead, not a fix.
  • The guard lane needed nine local passes. Passes one to six each found an allow flip the previous fix had opened. A fused-separator fix only settled once it kept develop's reading and added the split one beside it. Design a guard fix that narrows a read as an added reading, not a replaced one.
  • A shared brief's "never end the turn waiting" rule contradicts how local reviewer subagents report. They report only through a completion notification, and foreground sleep is blocked, so the lane has to end its turn to receive it. The lane was woken correctly.

New learnings

  • None beyond the entries above, which are attempt-specific.

Activity

  1. added
    handoffA link in the session handoff chain, one open issue per track
    on Oct 14, 2026
  2. ptr727 commented on Oct 14, 2026

    @ptr727
    OwnerAuthor

    Next step 1 is done: the maintainer re-ran the host-safety installer from develop at d2ed08c4, the promoted head, so its payload 326206952d3f9791 matches main at ae63f7bf. All three hook self-tests passed and --report reads CURRENT. Next steps start at step 2.

  3. ptr727 commented on Oct 14, 2026

    @ptr727
    OwnerAuthor

    Next step 2 is done: the maintainer deleted feature/ledger-and-refusal-field, feature/cli-gate-followups and feature/guard-allow-gaps-2951, and git ls-remote --exit-code confirms all three are gone. Next steps start at step 3.

  4. ptr727 commented on Oct 14, 2026

    @ptr727
    OwnerAuthor

    Next steps addition, ranked first ahead of step 3 at the maintainer's choice: #2967, a pr_review.py cleanup subcommand that does the merged-branch verify-then-delete in code under the existing Bash(python3 scripts/pr_review.py:*) allow rule, so auto-mode sessions stop handing remote branch deletes to the maintainer. It touches scripts/pr_review.py, its tests and README, and the drive-pr and merge-and-release Skills, with no overlap with the guard lanes in step 3, so it can run beside them. Script and safety logic, so a frontier lane.

  5. ptr727 commented on Oct 14, 2026

    @ptr727
    OwnerAuthor

    Continued in #2984, round 23 on track engineering.

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