This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

Consent gates judge /dev/null a terminal: term.IsTerminal is a character-device test, so stdin redirected from /dev/null (and a closed fd 0, which the Go runtime reopens on /dev/null) reads as a person at a terminal. The tool-install question is printed to stderr, EOF reads as no, and the decline says 'answered no at the terminal' instead of 'no terminal to ask at'; the itd-131 identity offer asks the same way, and the provider-key reader in ahoy_connect.go hand-rolls the same check and refuses /dev/null as 'stdin is a terminal'.

issueresolvedminoriss-2609300905174086

Consent gates judge /dev/null a terminal: term.IsTerminal is a character-device test, so stdin redirected from /dev/null (and a closed fd 0, which the Go runtime reopens on /dev/null) reads as a person at a terminal. The tool-install question is printed to stderr, EOF reads as no, and the decline says 'answered no at the terminal' instead of 'no terminal to ask at'; the itd-131 identity offer asks the same way, and the provider-key reader in ahoy_connect.go hand-rolls the same check and refuses /dev/null as 'stdin is a terminal'.

Grounds

  • pursued: stdin from /dev/null or a pipe reads as no terminal, so the tool-install and itd-131 gates decline as 'no terminal to ask at' and never print a question; a pty still reads as a terminal. Shown wrong if TestIsTerminalRefusesWhatIsNotATerminal, TestIsTerminalAnswersTrueOnAPty or TestConsentGatesTreatTheNullDeviceAsNoTerminal fails, or a real terminal stops being asked.

Frontmatter

idiss-2609300905174086
typeissue
lifecycleresolved
severityminor

mentions1