ci/woodpecker/pr/ci Pipeline was successful
The old specs mocked promptLine/promptSecret and relied on the prompt path being taken unconditionally — which is precisely the behavior #1394 removes (non-TTY must NOT sit on prompts). Under vitest stdin is non-TTY, so the new code correctly routed to piped-stdin credentials and the specs hung on the unmocked reader (4/7 timeouts). The specs now mock the piped-credentials seam with the same fixed values and assert that seam (not the prompts) was consulted; titles state the actual path. All 7 pass; suite 1667/1667 (remaining local failure is the known host pi-invariant, CI pins pi 0.84.1).