Delete dead code kept alive only by its own tests
Commit

Remove code with no production callers, verified by repo-wide search:
- planner: DesiredSubset, SingleDesired, SingleHaveMap, and FirstParentChainFromMap (superseded by FirstParentChainFromParents) had no references at all.
- gitproto: PushPlan/ToPushCommands and convert.PlansToPushPlans formed a parallel plan-conversion path; every strategy uses convert.PlansToPushCommands directly. The TestPlansToPushPlans copies in incremental and materialized were identical and tested only this dead path.
- gitproto: FetchCommitGraph was superseded by FetchCommitParents (same wire protocol, lower memory); its capability-guard tests now cover FetchCommitParents, which had no direct tests.
- gitproto: progressWriter (superseded by progressSink) and HashHex were referenced only from tests.
- gitproto: FetchFeatures existed to carry one bit consumed by SupportsBootstrapBatch plus a write-only IncludeTag field; inline the filter check.
- sha256convert: normalizeAuth/authAdapter converted between two structurally identical interfaces (auth.Method and gitproto.AuthMethod); the value is directly assignable, and the adapter branch was unreachable since auth.Resolve only returns the two concrete types the switch already passed through.
- syncer: newProbeResult assigned Stats/Measurement twice.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com Entire-Checkpoint: 9c1282a34a36
Checkpoints
/goal simplify this repo, make sure to de-slop it continue until you are happy, make sure to backfill tests and validate any significant change. The output of this should be a PR with green CI, review
Claude CodeOpus 4.8[1m]
View sessionCheckpoint 1