Some of this functionality already exists in ames (see +on-kroc) so this
generator will probably be removed once there's been enough testing
done for removing stale flows on the live network .
This removes the logic from cleaning up stale subscriptions in %gall,
leaving +ap-rake as it was, and moves it to the +on-kroc arm in %ames.
Failed subscriptions from nacking a %watch plea that were
not properly corked (fixed in https://github.com/urbit/urbit/pull/6102)
are a subset of the more general "stale re-subscription" issue, so
we take care of all stale flows at the same time, by focusing on the
current subscription—leaving all others to be corked automatically—and
checking if it received a nack, to subsequently cork it.
This modifies the %rake task in %gall, to select what kind of
subscriptions we try to close:
=mode %o: kill old pre-nonce subscriptions
=mode %z: kill old pre-nonce subscriptions, including sub-nonce = 0
=mode %r: kills all stale resubscription flows
It also adds a dry-run option to both tasks (%kroc in ames, %rake in gall)
Address PR6136 comments to improve the interface to this scry.
Now it looks like .^((set ship) %cs /=landscape=/subs)
instead of .^((set ship) %cs %/subs/landscape)
As it turns out, the exact behavior of the 'S' CSI command is not "move
contents up into scrollback", but rather "delete the top line(s), move other
contents up". This behavior leads webterm to eat into outputs whenever it
renders slogs.
Xterm(.js), when given a newline character at the bottom of a scroll region,
does produce the desired behavior of bumping the top line away into scrollback,
instead of obliterating it.
This implementation now diverges from vere's, which is unfortunate, but the
alternative is making webterm track the contents of the bottom-most line of
the default session, which seems rather ridiculous by comparison.
Fixes#6257.