A fetch from a client that announced shallow boundaries treated the client's haves as complete history: the send set excluded everything reachable from the haves, including ancestors the client does not hold. A want that peels to such an ancestor (an annotated tag on an older commit) then produced a pack that failed the client's connectivity check. This broke every GOPROXY=direct go get, since the go tool fetches shallowly first.
Route client-side shallow boundaries into pack selection and stop the have-closure ascent at them: the client has a shallow commit and its tree, but nothing above it. Server grafts already cut the ascent the same way.
Fixes #769
Signed-off-by: Mads R. Havmand mads@v42.dk