Skip to content

Session Handoff [auto-1634]: Narrow Nested timeout Handling per #2056 #2072

Description

@ptr727

Next steps, in priority order

  1. Per decision Choose the Nested timeout Model for #1634's Signal-0 Bound Check #2056 (answered: option 1), narrow nested timeout handling on feature/auto-1634 to the one shape Decide How to Close the Nested-Timeout False Deny in the Signal-0 Check (#1634) #2029 asked for: a nested chain is bounded only when every outer timeout sends signal 0 with no kill-after and the innermost one is a bound. Deny every other nesting, declared once in host-setup/agent-safety/README.md requirement 7 as a false deny. Read a variable -s value as no bound. Declare nohup with HUP in the README. Merge develop in first, since develop moved.
  2. Run one more local-strict-review pass. If it finds nothing introduced, open the pull request to develop carrying Closes on promotion: #1634 and drive it per drive-pr. Otherwise park again.
  3. Close this lane out with a comment naming what merged and anything filed.

External blockers

None. Decision #2056 was answered by the maintainer and is closed.

Internal dependencies

Step 2 follows step 1. The pass judges the narrowed model, not the one #2056 replaced.

State

Branch feature/auto-1634 pushed at 52d4c957, no pull request yet. Re-derive its worktree from git worktree list. The lane's history is on #2044. The pre-existing finding is filed as #2055.

The parked decision queue

Count 0 for this lane.

What the last round did

An attended session put #2056 to the maintainer, recorded the answer, closed it, and wrote this link without blocked. It changed no code.

What not to repeat

Do not extend the passed-on-signal model (the time prefix, nohup against HUP, an outer kill-after, SIG plus digits). Each round of that model drew new findings against the round before, which is why #2056 narrowed it. Do not re-ask #2056 or #2029.

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: waiting on decision #2079

    Done this round. #2056's option 1 is applied, and feature/auto-1634 is pushed at 271a763. All commits are signed and no pull request is open. The worktree at /home/pieter/repos/worktrees/ProjectTemplate-auto-1634 is still standing on that branch and is clean.

    • 64fa53b merges origin/develop (b56efb2) with no conflicts.
    • 09caea6 narrows nesting. A nested timeout chain is bounded only when every outer one sends signal 0 with no kill-after and the innermost one is a bound. Every other nesting is denied, and requirement 7 declares those denies. A variable -s value is no bound. nohup with HUP is declared.
    • a1b186c is fix round 1, answering pass 1. A timeout behind an argument-taking prefix now counts as nesting, and a false test label is corrected.
    • 271a763 is fix round 2, answering pass 2. An outer -k is denied in any spelling, and a brace or glob -s value is read as no bound.
    • --selftest passes. Each new row was mutation-checked by reverting its logic. The local gates are clean: ruff, prose_lint.py --diff origin/develop, repo_gate.py --check eol, spec/validate.py, and docker_lint.py.

    Local strict review. Three passes were recorded, the last on 271a763, whose receipt covers the pushed head.

    Remaining.

    1. Apply the option Choose How to Finish #1634's Lane After the Narrowed Model's Strict Passes #2079's answer picks.
    2. Open the pull request to develop with Closes on promotion: #1634, drive it, and close this lane out.

    Follow-ups still unfiled, carried over from round 2:

    • The check could also deny CONT, CHLD, URG, WINCH, and the stop signals on a single timeout.
    • uutils timeout may read some spellings as signal 0, and the check models GNU only. This needs a probe on a uutils host before anyone acts on it.

    No lesson issue filed.

  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

    Decision #2079 answered: option 1. Fix the four findings, record the strict pass, and open the develop PR, with PR review disposing of anything that pass raises instead of parking again. blocked removed so the loop can resume this lane.

  5. removed
    blockedBlocked on another issue: one in another repository, or a decision issue here for a parked handoff
    on Sep 29, 2026
  6. ptr727 commented on Sep 30, 2026

    @ptr727
    OwnerAuthor

    Parked: waiting on decision #2118

    Done this round. Decision #2079's option 1 is applied. Pull request #2117 to develop is open, carrying Closes on promotion: #1634. feature/auto-1634 is pushed at cd97e26, and all commits are signed. The worktree at /home/pieter/repos/worktrees/ProjectTemplate-auto-1634 is still standing on that branch and is clean.

    • 80edf69 merges origin/develop (6ee0bc7) with no conflicts.
    • 34a9dc9 fixes the four findings Choose How to Finish #1634's Lane After the Narrowed Model's Strict Passes #2079 listed: the inline-trap wording, the scoped prefix-with-argument false deny, ~ as a rewrite character, and two self-test rows. The PR opened at this head.
    • 62ac767 answers the pass recorded before the PR opened. A dash-led option word the shell may rewrite, such as -${F}0, is read as both a signal-0 -s and a -k of no duration form.
    • cd97e26 answers the next pass. It covers an option value the shell may split (-k $K), a rewritable word read as nesting ($T, a glob), and the nesting sentence scoped past prefixes and assignments.
    • --selftest passes, and each new row was checked by reverting its logic. The local gates are clean: ruff, prose_lint.py --diff origin/develop, repo_gate.py --check eol, spec/validate.py, and docker_lint.py.

    Local strict review. Three passes were recorded, the last on cd97e26, whose receipt covers the pushed head.

    PR review. One round landed on 34a9dc9 with no threads. A review of cd97e26 was requested but had not landed when this was written.

    Remaining.

    1. Apply the option Decision: How the Guard Reads a Shell-Rewritable Word in a timeout Run (#2117) #2118's answer picks, then run a strict pass and push.
    2. Drive Deny a Signal-0 timeout as a Wait Bound in the Guard #2117 to develop per drive-pr, then close this lane out.

    Follow-ups still unfiled, carried over from round 2:

    • The check could also deny CONT, CHLD, URG, WINCH, and the stop signals on a single timeout.
    • uutils timeout may read some spellings as signal 0, and the check models GNU only. This needs a probe on a uutils host before anyone acts on it.

    No lesson issue filed.

  7. added
    blockedBlocked on another issue: one in another repository, or a decision issue here for a parked handoff
    on Sep 30, 2026
  8. ptr727 commented on Sep 30, 2026

    @ptr727
    OwnerAuthor

    Unblocked on 2026-09-30: decision #2118 is answered, option 1: deny any rewritable word in a timeout run, whatever follows it. Declare the launcher class (finding 2) as a shape not reached in README requirement 7, and file it as a follow-up. The blocked label is removed so the lane can resume.

  9. removed
    blockedBlocked on another issue: one in another repository, or a decision issue here for a parked handoff
    on Sep 30, 2026
  10. ptr727 commented on Oct 1, 2026

    @ptr727
    OwnerAuthor

    Parked: waiting on decision #2196

    Done this round. Decision #2118's option 1 is applied. feature/auto-1634 is pushed at 14400ce, all commits signed, and pull request #2117 to develop is still open on that head. The worktree at /home/pieter/repos/worktrees/ProjectTemplate-auto-1634 is still standing on that branch and is clean.

    • bc7b7d5 merges origin/develop (8679432) with no conflicts.
    • 8aaf7c5 applies Decision: How the Guard Reads a Shell-Rewritable Word in a timeout Run (#2117) #2118: any word between timeout and the wrapper that the shell may rewrite makes the run no bound, whatever follows it. The launcher class is declared not reached in README requirement 7.
    • 5a242c1 answers pass 1. A leading = (zsh) counts as a rewrite, and a quoted word holding a rewrite character is declared a false deny.
    • 14400ce answers pass 2. The scan covers the words before the head timeout, and the early-inner-deadline nesting is declared a false deny.
    • --selftest passes, and each new row was checked by reverting its logic. The local gates are clean: ruff, prose_lint.py --diff origin/develop, repo_gate.py --check eol, spec/validate.py, and docker_lint.py.

    Local strict review. Three passes were recorded, the last on 14400ce, whose receipt covers the pushed head.

    PR review. The digest at 14400ce shows no review on this head yet, 0 threads, and checks still running.

    Filed this round. #2195, the launcher follow-up #2118 asked for.

    Remaining.

    1. Apply the option Settle the Last Three Strict-Pass Findings on the timeout Rewrite Scan (#2117) #2196's answer picks, then run a strict pass and push.
    2. Drive Deny a Signal-0 timeout as a Wait Bound in the Guard #2117 to develop per drive-pr, then close this lane out.

    Follow-ups still unfiled, carried over from round 2:

    • The check could also deny CONT, CHLD, URG, WINCH, and the stop signals on a single timeout.
    • uutils timeout may read some spellings as signal 0, and the check models GNU only. This needs a probe on a uutils host before anyone acts on it.

    No lesson issue filed.

  11. added
    blockedBlocked on another issue: one in another repository, or a decision issue here for a parked handoff
    on Oct 1, 2026
  12. ptr727 commented on Oct 1, 2026

    @ptr727
    OwnerAuthor

    Handed back to the unattended loop by an attended session. Decision #2196 is answered: option 1, fix all three findings and drive #2117, with PR review disposing of later findings. Follow the answer recorded on #2196.

  13. removed
    blockedBlocked on another issue: one in another repository, or a decision issue here for a parked handoff
    on Oct 1, 2026
  14. ptr727 commented on Oct 3, 2026

    @ptr727
    OwnerAuthor

    Done: #2117 merged to develop

    Decision #2196's option 1 is applied, and #2117 is squash-merged to develop as 8b38010. Its body carries Closes on promotion: #1634, so #1634 closes when develop is promoted. The branch feature/auto-1634 and its worktree are removed.

    What the last pushes did. develop was merged in first (e182edd). The walk back from a bash -c wrapper to its run's start was reworked across several strict passes:

    • A redirection, or a ) other than a function definition's, ending the walk makes the run no bound. This covers $(...), <(...), and glob groups before an inner timeout.
    • Quoted operators are words of the run, read from the quote mask, and an opening ( or <( ends the walk.
    • A function definition's name must open the command or follow an opener word or a separator other than ), and must hold no $ or extglob operator.
    • A brace counts as a rewrite only with a comma or .. between the word's first { and last }, which is linear. A tilde counts only at a word's start or after = or :. A ( inside a word counts too, for the fallback lexer.
    • README requirement 7 declares every false deny this adds, and the self-test carries a row for each shape, each checked by reverting its logic.

    Review. Copilot's earlier rounds left one thread, about a docstring wider than 100 columns. It was fixed in c556cb0 and resolved. The later fix pushes are covered by attested local strict passes, the last recorded on 735b2a9 with 4 findings. One is #2204's class, and the other three are deferred to #2315. Per #2196, PR review disposed of later findings rather than parking again.

    Filed along the way:

    No lesson issue filed.

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