Repository navigation
Session Handoff [auto-1633]: Stop Crediting an until read Loop as Bounded in the Guard per #1633 #2159
Copy link
Copy link
Closed
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Description
Next steps, in priority order
- Fix An
until readLoop Over an Exhausted Input Passes Requirement 7 #1633 inhost-setup/agent-safety/claude/gh-write-guard.py. Requirement 7'sreadbound credits a loop whose condition is a leadingreadon a descriptor-0 redirect without tellingwhilefromuntil. Foruntil, an exhausted or empty input keeps the condition false forever, so the loop never ends. Stop crediting areadcondition as a bound on anuntilloop, and leave thewhilecase exactly as it is. Done looks like:until read l; do sleep 30; done < fis denied by_unbounded_wait_loop,while read l; do sleep 30; done < fis still allowed, and the suite carries both as cases beside the existing requirement 7 cases. - Correct the two statements An
until readLoop Over an Exhausted Input Passes Requirement 7 #1633 names as false,_reads_its_input's docstring ("aread, which ends the loop when the input is exhausted") andhost-setup/agent-safety/README.mdrequirement 7 ("which is bounded by that input"), so each says the bound holds for awhileloop only. Keep the wording to that one fact. - Drive the pull request to develop with
Closes on promotion: #1633in its body, per theunattended-handoffworker 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 lanesauto-2080andauto-2112. Branch from currentdevelopand expect a rebase conflict for whichever of those lands second, rather than building on any of their branches.
State
- Created by an
unattended-handoffpicker, scope develop. No branch, worktree, or pull request exists for this lane yet. - Measured on
developat creation:_unbounded_wait_loopreturns no loop (allowed) for bothuntil read l; do sleep 30; done < fandwhile read l; do sleep 30; done < f, and returns the loop (denied) foruntil [ -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
- Three other guard lanes parked on their review budget (Decision: How the Guard Reads a Shell-Rewritable Word in a timeout Run (#2117) #2118, Decision: Whether the #2112 Heredoc Fix Ships With Three Open Review Findings #2126, Decide How the #2080 eval Fix Continues Past Its Review Budget #2139), each after restating a parser's scope in prose. Keep the docstring and README change to the single
while-only fact rather than re-describing the whole bound.
New learnings
None yet.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Activity
ptr727 commentedon Sep 30, 2026
Lane closed out, scope develop.
developas a0806e3:_reads_its_inputcredits thereadbound for awhileloop only, sountil read l; do sleep 30; done < fis now denied andwhile read l; do sleep 30; done < fis still allowed. The self-test carries both cases. The docstring, README requirement 7, and its flowchart node say the bound holds for awhileloop.until readLoop Over an Exhausted Input Passes Requirement 7 #1633, which stays open until promotion (Closes on promotion: #1633in the pull request body).while readconditions that never exhaust their input (read l || true,read l < f,read -t 0, and similar).