Skip to content

Session Handoff [auto-2059]: A Heredoc Opener Holding (( Leaves Its Body in the Wait-Loop Check (#2059) #2061

Closed

Description

@ptr727

Next steps

  1. Fix A Heredoc Opener Holding (( Leaves Its Body in the Wait-Loop Check #2059: in gh-write-guard.py, a heredoc opener line whose tokens hold (( must no longer leave its body in the command that requirement 7 reads for a wait loop's bound. Done looks like the constructed command in A Heredoc Opener Holding (( Leaves Its Body in the Wait-Loop Check #2059 being denied, a self-test row pinning it, and the _heredoc_opener docstring describing what the (( skip actually costs. A bounded loop that uses a heredoc or (( outside its condition stays allowed.
  2. Run local-strict-review, then drive the pull request to develop per drive-pr, its body carrying Closes on promotion: #2059, then close this lane out.

External blockers

None.

Internal dependencies

None beyond the order above. #2059 does not depend on the parked #1998 branch (feature/auto-1998, handoff #2057), which edits the same file. Base on develop, and expect that branch to rebase over this fix rather than the reverse.

State

No branch, worktree, or pull request yet. Develop at the time of picking holds unpromoted guard fixes (#2033), so re-derive the _heredoc_opener code from develop rather than from main.

Parked decisions

None on this lane. Decision #2060 names #2059 only as filed and staying open, and asks nothing about it.

What the last round did

Created by an unattended-handoff picker from the open backlog. No work done yet.

What not to repeat

Do not widen the fix into #2058's shlex-divergence shapes, which a separate issue owns and whose scope decision #2060 may still change.

New learnings

None.

Activity

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

    @ptr727
    OwnerAuthor

    Parked on decision #2066

    Done. Branch feature/auto-2059, based on develop at dd4ca98e and pushed at b7559a93, holds three signed commits. No pull request is open. The worktree /home/pieter/repos/worktrees/ProjectTemplate-auto-2059 is still there, and it is clean.

    • In host-setup/agent-safety/claude/gh-write-guard.py, _heredoc_opener/_strip_heredoc_bodies become _heredoc_openers, _heredoc_body_end and _heredoc_readings.
    • A (( line forks the text: one reading that opens nothing, plus one per accepted << tag whose body a later line closes, up to 16 readings.
    • _check_unbounded_wait works in this order:
      • It allows any command naming no sleep once its quotes and backslashes are removed.
      • It denies any other command past the reading limit.
      • Otherwise it denies when any reading holds an unbounded wait.
    • A Heredoc Opener Holding (( Leaves Its Body in the Wait-Loop Check #2059's constructed command is now denied.
    • There are nine new self-test rows, one sentence in README requirement 7, and one in module docstring item 7.
    • Passing: the self-test, unittest discover -s tests (1796 tests), ruff format and check, mypy, prose lint against origin/develop, the eol gate, spec/validate.py and build_dist.py --check.
    • A local-review receipt covers b7559a93.

    Review. There were three local-strict-review passes, which found 7, 3 and 4 findings, with two rounds of edits between them. The third pass left two introduced findings open, and #2066 lists both. Five pre-existing findings are filed: #2062, #2063, #2064 and #2065, plus a multi-line-quote opener case that #1910 appears to cover.

    Remaining, once #2066 is answered:

    • Option 1: one edit round, which needs a new review pass before its push.
    • Option 2: none.
    • Option 3: a small change to _check_unbounded_wait and the README.

    After that, open the pull request to develop with Closes on promotion: #2059 in its body, drive it per drive-pr, then close this lane out.

    Waiting on decision #2066.

  3. added
    blockedBlocked on another issue: one in another repository, or a decision issue here for a parked handoff
    on Sep 29, 2026
  4. ptr727 commented on Sep 29, 2026

    @ptr727
    OwnerAuthor

    Continued in #2074, round 2 on track auto-2059.

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

    blockedBlocked on another issue: one in another repository, or a decision issue here for a parked handoffhandoffA 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