turbo
c58d619d - feat(ui): render ui to alternative screen (#8084)

Commit
1 year ago
feat(ui): render ui to alternative screen (#8084) ### Description Changes our UI to render in the alternative screen (think `vim` or `less`) This provides a few benefits: - We can render to the entire terminal without worrying about over-allocating space and removing useful information from the screen. - Users won't need to scroll up at the end of a run to see the task logs - We no longer use `insert_before` for persisting task logs. This function panics if there isn't an available row to render to (#8072) or rendering terminal logs that have an area that exceeds `u16::MAX` (#7843). Instead our log persisting story is a "simple" `stdout.write_all()`. - Removes hacks added to avoid hitting #7843 We write the logs in a row-wise fasion as `vt100` attempts to optimize performance by using cursor moves to avoid necessary writes. This creates problems when printing multiple terminal screens as the cursor move coordinates will be incorrect. ### Testing Instructions https://github.com/vercel/turbo/assets/4131117/9746dcd3-188e-48fd-a52d-21d95d0e6e43 Closes TURBO-2979
Parents
Loading