Skip to content

Session Handoff [auto-1633]: Stop Crediting an until read Loop as Bounded in the Guard per #1633 #2159

Closed

Description

@ptr727

Next steps, in priority order

  1. Fix An until read Loop Over an Exhausted Input Passes Requirement 7 #1633 in host-setup/agent-safety/claude/gh-write-guard.py. Requirement 7's read bound credits a loop whose condition is a leading read on a descriptor-0 redirect without telling while from until. For until, an exhausted or empty input keeps the condition false forever, so the loop never ends. Stop crediting a read condition as a bound on an until loop, and leave the while case exactly as it is. Done looks like: until read l; do sleep 30; done < f is denied by _unbounded_wait_loop, while read l; do sleep 30; done < f is still allowed, and the suite carries both as cases beside the existing requirement 7 cases.
  2. Correct the two statements An until read Loop Over an Exhausted Input Passes Requirement 7 #1633 names as false, _reads_its_input's docstring ("a read, which ends the loop when the input is exhausted") and host-setup/agent-safety/README.md requirement 7 ("which is bounded by that input"), so each says the bound holds for a while loop only. Keep the wording to that one fact.
  3. Drive the pull request to develop with Closes on promotion: #1633 in its body, per the unattended-handoff worker procedure, then close this lane out.

External blockers

None known at creation. No open decision issue names #1633.

Internal dependencies

  • Step 2 follows step 1, since the corrected wording describes the behavior step 1 settles.
  • Other lanes hold unmerged work in the same file: the open PR Deny a Signal-0 timeout as a Wait Bound in the Guard #2117 (lane auto-1634) and the parked branches of lanes auto-2080 and auto-2112. Branch from current develop and expect a rebase conflict for whichever of those lands second, rather than building on any of their branches.

State

  • Created by an unattended-handoff picker, scope develop. No branch, worktree, or pull request exists for this lane yet.
  • Measured on develop at creation: _unbounded_wait_loop returns no loop (allowed) for both until read l; do sleep 30; done < f and while read l; do sleep 30; done < f, and returns the loop (denied) for until [ -f x ]; do sleep 30; done. Re-measure before editing.

The parked decision queue

Nothing parked on this lane. The repository's open decision issues each belong to another lane.

What the last round did

Picked #1633 from the open backlog as auto-resolvable: the issue states one outcome, carries no decision, blocked, or handoff label, has no comment, stays inside this repository's tree, and no pull request, handoff, or earlier auto-1633 link names it.

What not to repeat

New learnings

None yet.

Activity

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

    @ptr727
    OwnerAuthor

    Lane closed out, scope develop.

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