Skip to content

Read a timeout Sending an Ignored or Stopping Signal as No Bound #2316

Closed as not planned

Description

@ptr727

Problem

The wait-loop check in host-setup/agent-safety/claude/gh-write-guard.py reads a timeout sending signal 0 as no bound, since that signal reaches no process. Other signals whose default action is to ignore or stop the child bound nothing either: CONT, CHLD, URG, and WINCH are ignored by default, and STOP, TSTP, TTIN, and TTOU stop the child rather than end it. Constructed example, read as bounded:

timeout -s CONT 900 bash -c 'until [ -f x ]; do sleep 60; done'

Without a -k, the timeout sends the signal at the deadline and goes on waiting for a child that keeps running or sits stopped.

Done looks like

The check reads a timeout sending any of those signals, by name or number, as no bound unless a -k in the duration form follows, with self-test rows and README requirement 7 updated.

Carried as an unfiled follow-up through the auto-1634 lane (#2072), which settled the signal-0 case in #2117.

Activity

  1. ptr727 commented on Oct 8, 2026

    @ptr727
    OwnerAuthor

    Declined per #2517, approved by the maintainer, under GOVERNANCE.md "Trust Boundaries and Hardening Effort": The guard backstops an agent's own mistakes, and this is a command shape built to defeat it rather than one an agent session writes, so a miss does not realistically occur. See #2517 for the per-issue reason.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions