Three related bugs in the git smart-HTTP upload-pack handler surfaced as
'bad band #78', 60s 504 hangs, and "expected ACK/NAK, got '?PACK'" when
fetching after previous pulls.
- Don't advertise no-done; we don't implement the ACK ready handshake.
- With multi_ack_detailed, don't emit per-round NAKs — only the final
one after 'done'. Per-round NAKs make the client treat the first as
the transition to sideband pack data, then choke on the second.
- Break out of the negotiation loop when a round reads no content
(client closed without 'done') so we don't spin on EOF.
- Only emit pack data when 'done' was actually received. Non-final
rounds get just NAK so HTTP keep-alive doesn't desync the next round.
Also trigger null_resource.test on the ko_build image digest so tests
re-run on every deploy.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>