Status update: Currently we don't pass (or even use) standard input to the server, so I was implementing that for git-receive-pack and the likes of it. It's not that simple because the input apparently needs to be read in some special way (input is organized into "packets"), so I'll be investigating how to do that.
I would try to not get in the middle yet, when the client gets something in stdin, it just sends the bytes upstream to the server, and the server just writes down into the process stdin.
We should aim to make this completely transparent for now, not understanding the protocol at all yet.
@jacobvosmaer-gitlab We're checking if gitlab-shell is functioning properly/transparently using the client executable instead of the normal git one. Above is the list of git commands gitlab-shell uses and whether they work with our implementation or not.
@jacobvosmaer-gitlab Simply renaming gitaly-client to git (or any other git executable, see !15 (closed)) and prepending the path to such executable to PATH should work as expected.
Different question: is there a concrete improvement that this 'transparent git executable replacement' approach gives us? If we have this gitaly-client system in 8.16, what will be better?
The point was to make a prototype that just works without changing too many parts, to see how things go, or at least that was the vision before we had our meeting and decided how things are gonna go. For your other question, this approach was for stage one; improving availability.