#3252·fresh

hangs when receiving STDIN without passing args

Author: KorkmanCreated Sep 10, 2026Updated Sep 19, 2026
Labelsbugreproduced

version 0.5.1

this locks up

echo 123 | fresh

NOTE: This is a user error. When fresh is followed by a dash all is good.

strace shows it spinning on:

poll([{fd=0, events=POLLIN}], 1, 50)    = 1 ([{fd=0, revents=POLLHUP}])
stat("XXX/.venv", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)
stat("XXX/venv", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)
stat("XXX/.envrc", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)
stat("XXX/mise.toml", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)
stat("XXX/.mise.toml", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)
stat("XXX/.tool-versions", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)
stat("XXX/Pipfile", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)
stat("XXX/poetry.lock", 0x7ffd113dbce0) = -1 ENOENT (No such file or directory)

It seems fresh doesn't check whether STDIN is a terminal, in which case I would suggest to imply "fresh -".