fix(git): honor Git-Protocol v2 header; ci: skip pullfrog on bots; add conformance harness

Merged
BN
1mo ago
+513-1

What

Three independent changes:

1. Git-Protocol v2 header (snapshots.rs)

The snapshot http-backend read git-protocol lowercase only; the official runner sends Git-Protocol: version=2, so the header was dropped, the kitchen served protocol v0, and git-upload-pack failed with expected packfile / bad line length character: '?'. Now falls back to the canonical Git-Protocol header, and logs a debug trace of the request body prefix so protocol mismatches are diagnosable.

2. Skip pullfrog on bot PRs (pullfrog.yml)

renovate[bot]/dependabot[bot] synchronize events re-queue the gpt-5.6-terra review on every bump with no new diff to assess (PR #196 paid 2× on a single versions.toml bump). The job now skips bot actors.

3. Conformance harness

benchmarks/real-world/conformance-new5repos.sh — 6-repo campaign (zoxide/fzf/golangci-lint/jq/starship/cobra) with isolated PRELOOP_HOME, configurable POOL_SIZE/port, plus fixtures/env-diag.yml and the run report.

Verification

  • just test-ci: all pass
  • conformance runs on MacStudio: golangci 6/6 linux, jq 16/18 linux, starship 6/8 linux; git-protocol fix confirmed in server logs (git_protocol=Some("version=2"))

Summary by cubic

Fixes snapshot git fetches that failed under Git protocol v2 and stops pullfrog from re-queuing reviews on bot PRs. Adds a conformance harness that runs six real-world repos' workflows against preloop runners.

Bug Fixes

  • The snapshot http-backend only read the lowercase git-protocol header, dropping the official runner's Git-Protocol: version=2 and causing git-upload-pack to fail with expected packfile / bad line length character: '?'.
  • It now falls back to the canonical Git-Protocol header and debug-logs the request body prefix for diagnosing mismatches.
  • The pullfrog workflow now skips renovate[bot], dependabot[bot], and pullfrog[bot] actors, which previously triggered duplicate reviews on dependency bumps with no new diff.

New Features

  • benchmarks/real-world/conformance-new5repos.sh runs zoxide, fzf, golangci-lint, jq, starship, and cobra workflows against preloop runners with isolated PRELOOP_HOME and configurable pool size and port.
  • Adds the fixtures/env-diag.yml environment-diagnostics workflow and the first run report.

[!NOTE]

Honor Git-Protocol header, skip pullfrog for bots, add conformance harness

  • snapshot_git_http in snapshots.rs now checks for the Git-Protocol header casing if git-protocol is missing, and logs a 200-byte request body prefix.
  • Adds conformance-new5repos.sh and an env-diag.yml fixture to run conformance tests against public GitHub repositories.
  • pullfrog.yml now skips the pullfrog job when triggered by renovate[bot], dependabot[bot], or pullfrog[bot].

Macroscope summarized e098e14.

Summary by CodeRabbit

  • New Features

    • Added a real-world conformance campaign covering six additional repositories, with workflow submission, monitoring, result collection, retries, and failure reporting.
    • Added an environment diagnostics workflow to report runtime tools, permissions, and platform configuration.
  • Documentation

    • Added a comprehensive benchmark report detailing results, timings, environment findings, and known execution gaps across 13 repositories.
  • Bug Fixes

    • Improved Git request compatibility by recognizing alternate protocol-header capitalization and enhanced request diagnostics for troubleshooting.