cli: cover the bridge's stdout-loss path #232
No reviewers
Labels
No labels
priority/P0
priority/P1
priority/P2
release/v0.1.0
status/blocked
status/planned
type/bug
type/design
type/test-gap
type/tracker
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
natsukium/felis!232
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-166"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The golden
felis bridgeconversations cover the clean terminal, the failing terminal before the first item, cancel, and daemon loss, but stdout loss is not among them — and it cannot be: the channel that would carry a correlated error is the one that failed, so the bridge publishes nothing and there is no transcript to diff. This lands it as a plain assertion test beside the goldens rather than extending the fixture format with a reader-closing directive.The bridge harness gains
close_stdout(dropping the read end is the only way to fail a child's stdout from outside) and an exit path that leaves stdin open, so a status can only come from the bridge's own decision. The new test serves one reply, parks the daemon mid-verb so a second operation is genuinely in flight, closes the read end, and asserts exit1, that the served reply is all stdout ever carried, and that stderr stays human-only. Removing theclose_stdoutcall makes it hang and fail, so it is not vacuous. The pre-existingstdout_failure_stops_the_bridge_without_waiting_for_stdin_eofcase moves onto the same harness and gains the stderr assertion it previously discarded withStdio::null().Test-only; no documented behavior changes, so no doc or CHANGELOG cascade.
Fixes #166