aboutsummaryrefslogblamecommitdiffstats
path: root/TODO.md
blob: 89cc65d99a5756facf936fec69d284008a510c66 (plain) (tree)
1
2
3
4
5
6



                                                                             

                                     











                                                                              








                                                                              





















                                                                               
these are things that i know need work (and i would welcome patches for), but
i'm also interested in anything else you think would make this software more
useful.

* packages for more operating systems
    * homebrew is probably a big one?
* grpc
    * although the existing hand-rolled protocol works fine, it does make it
      annoying to deal with things like sending the traffic through http
      proxies. pretty much the only reason this isn't using grpc is because i
      couldn't get any of the existing grpc crates to work reasonably, but
      that's likely more my fault than the fault of the crates themselves.
    * grpc would also make it much easier to enable compression (ideally we
      could just enable http compression at the library level), which is
      something that would be enormously helpful here (most terminal output is
      quite compressible)
* block (server-side) and hide (client-side) functionality
    * it's pretty important for any social software
* finish converting everything to async operations
    * dns lookups are still synchronous, which means that `tt stream` won't
      start up if you can't connect to the server (even though it's fine being
      able to lazily reconnect in the background)
    * a bunch of the stdout writing is still done synchronously
    * is thinking about the `log` stuff useful here?
    * once the standard library future stuff settles down, we probably want to
      use that (even though it's currently "stabilized", it doesn't look quite
      ready to build real things on yet)
* integration tests
    * for instance, spin up separate server, stream, and watch subprocesses,
      and write tests for their stdout
    * key_reader could also use some tests, although it's a bit tricky - i
      basically want to be able to write a binary that uses key_reader, and
      have the test spawn that binary as a subprocess and write tests against
      that, but i'm not sure how to make cargo do that
* watch ui improvements
    * should be able to sort by more things than just idle time
    * color more things (idle time colors might be useful, especially if
      support is added for different sorting methods)
    * get extended metadata about a stream somehow (maybe with shift+letter or
      something?) - things like names of watchers, etc
* different authentication methods
    * adding new oauth providers should be pretty trivial
    * mtls/client cert auth would also be pretty useful
* some kind of indication during streaming for when a watcher connects
    * visual bell should be pretty easy, but we might be able to be fancier by
      drawing a popup on the terminal somewhere, and just refreshing the screen
      from the buffer after some timeout
    * if we go the popup drawing route, it could also potentially be used for
      error message displays