test: add real-hook push helpers for checkpoint sync (I-2)
Commit

The real git-invoked pre-push hook was never asserted end to end. Integration RunPrePush spawned the hook with Stdin=nil, and GitPush always passed --no-verify, so a completely broken hook would go unnoticed; e2e remote tests masked the same gap by always calling PushCheckpointRefs explicitly.
Integration TestEnv gains:
- InstallRealPrePushHook + GitPushWithHooks: a plain
git push(no --no-verify) that runs the installed hook exactly as git runs it — realistic stdin refspec lines and remote name/URL argv, inheriting the checkpoint-store env. - RunPrePush now feeds realistic stdin (defaultPrePushStdin) instead of nil, with RunPrePushWithStdin as an escape hatch for the empty-stdin no-op case. GitPush keeps --no-verify for setup plumbing.
A smoke test (seed of A1) proves GitPushWithHooks lands checkpoints on a bare remote with NO explicit checkpoint push, under both backends via ForEachBackend.
e2e gains AssertCheckpointsOnRemote(t, s, bareDir), asserting the backend-appropriate refs are present on the bare remote for later use by the section-3 e2e tests.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com Claude-Session: https://claude.ai/code/session_012yi3hHGAGepwfrfjPETjGq Entire-Checkpoint: 51ee64d92120