Skip to content

v4.290.0

@jessegall jessegall tagged this 30 Aug 00:42
`plan <anything>` fell through to the tree, which rendered a full screen and
answered 0. So a caller on an older binary ran a verb that version did not have,
watched something sensible print, and believed the command had worked.

That is exactly how it presented: `plan go` reported as doing nothing on a
`vendor/` a release behind, three forms tried, each printing the tree and changing
nothing. The only reason it was caught at all is that a NEIGHBOURING command told
the truth — `add` names the parent it nested under, and the parent was wrong.

The silent-success form is the dangerous one. A verb that errored would have been
found in one command; one that prints a plausible tree and returns 0 is findable
only when something else contradicts it. So an unknown verb now names what this
version does have, and says the binary may be older than the caller thinks — which
is the one thing a version-skewed caller can be told directly.

The cursor is tested by what CONSUMES it rather than by what reports it: move, then
read the cursor back, and make them agree. Asserting that `go` renders a tree would
have passed while it changed nothing.
Assets 2
Loading