Presumably this also works for MacOS and windows.
While doing this, move away from xdg and home and use this
directories-next crate instead. Reverse connections still seem to
work.
When the lines of the help box overlap with disabled or error'd ports
you might notice that those lines are dark grey or red. That's
surprising!
The bug is that Style::default() means "don't change anything", just
continue being whatever color the current cell is, which is deeply
surprising. What we really want here is `Style::reset()`, which means
"reset the colors to whatever the terminal would show by default."
Tui is no longer supported, ratatui is the new hotness. Fortunately
there is very little difference between the two, except I've noticed a
fun new bug in the help screen. (Maybe it's been there the whole time?)
This is the other way to allow ports to work when the processes
themselves cannot be enumerated: just report the port with an empty
description. We need to do some work to make sure this is safe for the
client; see comments.
Look the whole point of the ports in the config is to have them
enabled *even if the server doesn't show them to you.* The other
behavior was just completely wrong in that respect.
- Reverse connections must be maintained to ensure messages are
processed in order. (Whoops!)
- The clipboard context must remain live in order for the data to
remain available for applications, at least on X11. (And it couldn't
hurt elsewhere, either, I guess.)
- Print out the server version at startup time, so we can be sure what
we're talking to.
- Print out the full details of the error when something goes wrong
with `browse` or `clip`.
Just decided to "harden" the JSON parser a little bit with the test
suite from https://github.com/nst/JSONTestSuite. Now I'm pretty sure
that we can handle whatever JSON docker throws at us.