feat: add benchmark seed provisioning (task 0025)
All checks were successful
CI / test (pull_request) Successful in 52s
CI / test (push) Successful in 49s

Add the deterministic, idempotent seed that brings a freshly provisioned
throwaway repository to a known ground truth before a trial runs, scripted
over the live Gitea API.

- bench/seed-plan.ts: the pure ground truth (fixed labels, an issue spread
  across the discriminating dimensions, and labelled/reviewed/real-branch
  pull requests) plus groundTruth(user), realizing it into a RepoState.
- bench/seed.ts: idempotent seeding reconciled by natural key, reusing
  gitea-axi's own tea-login credential discovery (no new secret handling).
- A live smoke tier (test:bench:smoke) validating the seed end-to-end and
  skipping cleanly when no host is configured, kept out of the deterministic
  bench tier.

Export selectLogin from src/context.ts so the bench reuses the exact
credential-selection path.
This commit was merged in pull request #26.
This commit is contained in:
2026-07-16 08:07:29 -04:00
parent 66f576a2b7
commit 8666c53557
11 changed files with 980 additions and 8 deletions

View File

@@ -8,6 +8,9 @@ export default defineConfig({
// source. It runs on its own via `test:bench` and is kept out of the main
// fast tier so bench code never counts against src coverage thresholds.
include: ["bench/**/*.test.ts"],
// The live seed smoke run is its own tier (vitest.bench-smoke.config.ts); it
// talks to a real Gitea host, so it stays out of this deterministic tier.
exclude: ["bench/**/*.smoke.test.ts", "**/node_modules/**"],
passWithNoTests: true,
},
});