Performance pass: benchmark the deterministic compute path (#32) #59

Merged
christian merged 2 commits from feat/perf-pass into main 2026-07-09 21:54:14 +00:00
Owner

Locks in the PLAN.md compute targets so a regression that slips an O(n²) into the scheduler or forecast fails the suite.

  • scheduler + capacity layout + Monte Carlo forecast < 1s @ 200 open issues — measured 232ms, comfortable headroom.
  • scaling ~linear — 400 issues ≈ 3.9× the 100-issue time; asserts < 8× to rule out O(n²) while tolerating jitter.

Representative fixture: 200 open issues, varied estimates/priorities/assignees across 3 capacity lanes + a light acyclic dependency web. Bounds are the real targets with margin so timing jitter can't flake CI; actuals are logged ([perf] …ms).

Reconcile-<5s@500 is network-bound (~2N gitea calls) and stays covered by the live reconcile — this file benchmarks the pure compute the app runs each turn.

Acceptance — benchmarks meet the targets. +2 core tests.

🤖 Generated with Claude Code

Locks in the PLAN.md compute targets so a regression that slips an O(n²) into the scheduler or forecast fails the suite. - **scheduler + capacity layout + Monte Carlo forecast < 1s @ 200 open issues** — measured **232ms**, comfortable headroom. - **scaling ~linear** — 400 issues ≈ 3.9× the 100-issue time; asserts < 8× to rule out O(n²) while tolerating jitter. Representative fixture: 200 open issues, varied estimates/priorities/assignees across 3 capacity lanes + a light acyclic dependency web. Bounds are the real targets with margin so timing jitter can't flake CI; actuals are logged (`[perf] …ms`). Reconcile-<5s@500 is network-bound (~2N gitea calls) and stays covered by the **live reconcile** — this file benchmarks the pure compute the app runs each turn. **Acceptance ✅** — benchmarks meet the targets. +2 core tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
christian added 1 commit 2026-07-09 19:41:57 +00:00
Lock in the PLAN.md compute targets so a regression that slips an O(n²) into the
scheduler or forecast fails the suite:
- scheduler + capacity layout + Monte Carlo forecast < 1s @ 200 open issues —
  measured 232ms, comfortable headroom.
- scaling stays ~linear (400 issues ≈ 3.9x the 100-issue time; asserts < 8x to
  rule out O(n²) while tolerating jitter).

Representative fixture: 200 open issues with varied estimates/priorities/assignees
across 3 capacity lanes + a light acyclic dependency web. Bounds are the real
targets with margin so timing jitter can't flake CI; actuals are logged.

Reconcile-<5s@500 is network-bound (~2N gitea calls) and stays covered by the live
reconcile — this benchmarks the pure compute the app runs each turn. +2 core tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
christian added 1 commit 2026-07-09 21:54:10 +00:00
christian merged commit c0dd9e70ef into main 2026-07-09 21:54:14 +00:00
Sign in to join this conversation.
No description provided.