Reminds me of `tig`, which is a TUI with a continuous diff (not side by side) viewer… you can revert chunks inline. Has tree view, diff view and blame view.
I am also trying to add integration for this TUI with nvim `diffview` and `codediff` support.
Brining `git add -p` style staging into the UI is definitely something worth thinking about.