Skip to content

Session Handoff [engineering]: Six Lanes and Two Promotion Fixes Released as 2.0.1046, #3058 Promotion and Guard Gaps Next #3063

Closed

Description

@ptr727

Next steps, in priority order

  1. Re-run the host-safety installer, maintainer only. 2.0.1046 changed gh-write-guard.py (Read a Bare Push's Destination From Branch Config, a Persisted Mirror, and Its Own Checkout in the Write Guard #3049, Read a Timed-Out push.default Read as Unresolved in the Write Guard #3054), 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. Read Commands Hidden in Config, Environment, Aliases, and Other Shells in the Write Guard #3058 moves the payload again once it is promoted, so this can wait for step 2's release.
  2. Promote Read Commands Hidden in Config, Environment, Aliases, and Other Shells in the Write Guard #3058. develop is ahead of main by Read Commands Hidden in Config, Environment, Aliases, and Other Shells in the Write Guard #3058 alone. Its promotion closes Deny a Hook-Bypass Commit or Push Nested Past the Write Guard's Wrapper Cap #3010, Read a Config Key That Runs a Command on Any Git Command in the Write Guard #2972, Write Guard Skips Command Substitutions Inside an Unquoted-Delimiter Heredoc in a Substitution #2999 and Read Substitutions Inside a Quoted Parameter Expansion or an Unquoted Heredoc Body in the Write Guard #2989. Done at a mergeable develop -> main promotion. The merge and release need the maintainer's go-ahead.
  3. The guard's remaining allow gaps, one lane at a time, all in gh-write-guard.py. Suggested grouping by the reader each touches:
  4. The guard's over-denials, after step 3: Narrow Three Write-Guard Reads That Deny More Broadly Than Git Pushes #2953, Scope a Branch Pattern's Push Operations to the Branches It Can Match in the Write Guard #2964, Read Only an Eval That Runs in the Write Guard's Include Reading #2975, Keep the Write Guard's Terminal-Option Exception When a Redirection Precedes the Option #2981, Write Guard Denies Heredoc Data Inside an Unquoted Backtick Substitution #3000. Then Move the Write Guard's Option-Prefix, Eval-Reading, and Cluster Sites Onto One Helper Each #3008, helper consolidation, last.
  5. Non-guard lane, runs beside the guard lanes: Align the Linux and Windows Agents List Parsing in the Bootstrap Loaders #3043, bootstrap.sh passing --agents all,herdr and empty list names through where bootstrap.ps1 refuses or drops them.

External blockers

  • Host-safety kit STALE on this machine until the maintainer re-runs its installer (step 1).
  • CodeRabbit is rate limited and advisory. It is not worth a wait.

Internal dependencies

State

The parked decision queue

There are 0 open decision issues. This round asked two questions in session. One was whether to land the README fix the auto-mode classifier refused a lane's commit of, and the answer was commit and land it. The other was whether to merge and release #3051 although #3059 merged with no review round, and the answer was merge and release.

What the last round did

What not to repeat

  • Widening a fix's claim to the code alone. The ruling that let a promotion fix edit _configured_push_branches excluded the READMEs describing it, so the next Copilot round raised the drift. The lane's README commit was then refused by the auto-mode classifier as outside its claim. A claim on behavior the READMEs describe takes both READMEs in the same ruling.
  • A Dependabot PR on develop during a promotion. Bump actions/create-github-app-token from 3.2.0 to 3.3.0 in the actions-deps group #3059 merged with no review round, so the promotion exception could not cover it and the merge went to the maintainer. Read gh pr list --state merged --base develop for bot merges before calling a promotion ready.
  • Removing a worktree a background wait started in. The release watch shell started in a worktree removed mid-wait, so the command exited 1 after the watch itself exited 0. Start background waits from the primary checkout.
  • Briefing a lane with git -C $VAR or a heredoc carrying a push word. The write guard denies both. Every lane brief now spells paths out and writes files with the Write tool.
  • pr_review.py reply --path alone. It requires a non-empty --match, so pass words from the thread's opening comment, without backticks.

New learnings

  • Each guard lane ran a differential of about 100,000 to 116,000 inputs and took 2 to 2.5 hours and about 400k to 490k tokens. Budget one guard lane per round beside the non-guard lanes.

Activity

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

    @ptr727
    OwnerAuthor

    Change to next step 1 and its external blocker, from the maintainer on 2026-10-15: the host-safety kit install is not a separate ask or blocker. The auto-mode classifier refuses an agent running it as self-modification. So the release report that changes the kit ends with one paste-ready line the maintainer runs with the ! prefix, installing from a fresh detached checkout of main. Nothing else about it goes in a report or a handoff.

  3. ptr727 commented on Oct 15, 2026

    @ptr727
    OwnerAuthor

    Continued in #3094, round 27 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