gitproto, syncer: address PR #64 review feedback

main

Commit

Soph4mo ago

Three small fixes after Bugbot review:

  • gitproto/push.go countingWriter.Write: wrap the underlying write error so wrapcheck stops failing the lint job (CI run 26288151165).

  • gitproto/push.go PushObjects: pass the selection error into the stopSelect callback. Previously "selected N objects in X" was printed even when ObjectsToPack returned an error, which was misleading (count was 0 or partial, and the next line was the actual error). startSelectionProgress now suppresses the success summary when err != nil; the ticker still stops cleanly either way.

  • syncer/progress.go sessionStderr: serialize Write under a mutex. The materialized-push refactor in this PR runs an encode-progress ticker concurrently with sendReceivePack, and both write to the same conn.ProgressWriter() (which is *sessionStderr). The strings.Builder buffer and the progress notify/setTransient calls weren't synchronized, so overlapping writes could scramble the live progress UI or, in theory, corrupt the buffer.

Entire-Checkpoint: 7422ae335ce1

Checkpoints

git-sync on  main [$!?] via 🐹 v1.26.2 on ☁️ (us-east-2) took 1m26s

Claude Code
View session
Checkpoint 1