Wouldn't this require you to send over your entire workspace with each call?

only the first run pays the full cost, after that, only what changed is shipped.

For example on a 20MiB repo you would upload ~11MB on the first cold run, but only 3.3KB on repeats. I tried to make this as efficient as possible and only sending whats needed