Add the ability for a Testbed to have a Spec - #673
Conversation
🤖 Claude Code ReviewPR: #673 Now I have all the information needed for a comprehensive review. PR Review: Testbed Spec FeatureSummaryThis PR adds "spec" (hardware specification) support to testbeds, allowing benchmarks to be associated with specific hardware configurations. It spans migrations, schema models, API endpoints, CLI, frontend, and extensive tests across ~6,000 new lines. Critical Issues1.
|
| Check | Status |
|---|---|
| Strong types (no raw primitives) | Pass |
#[expect] not #[allow] |
Pass |
thiserror not anyhow in libs |
Pass |
| Plus feature gating | Pass |
cargo gen-types run |
Pass (openapi.json + bencher.ts updated) |
| Test coverage | Pass |
| Deterministic time in tests | Pass |
| No shared global mutable state | Pass |
| Documentation updated (9 languages) | Pass |
Recommendation
The PR is well-implemented with strong adherence to project standards. The main concern is issue #1 — report.spec_id never being populated for new reports, which renders the detector's spec-based filtering inoperative. That TODO should be resolved before merge if spec-aware boundary detection is an intended feature of this PR. If it's intentionally deferred, that should be documented explicitly (e.g., a tracking issue).
Model: claude-opus-4-6
|
| Branch | u/ep/testbed-spec |
| Testbed | ubuntu-22.04 |
Click to view all benchmark results
| Benchmark | Latency | Benchmark Result microseconds (µs) (Result Δ%) | Upper Boundary microseconds (µs) (Limit %) |
|---|---|---|---|
| Adapter::Json | 📈 view plot 🚷 view threshold | 3.83 µs(+8.88%)Baseline: 3.51 µs | 4.68 µs (81.70%) |
| Adapter::Magic (JSON) | 📈 view plot 🚷 view threshold | 3.75 µs(+6.93%)Baseline: 3.51 µs | 4.61 µs (81.42%) |
| Adapter::Magic (Rust) | 📈 view plot 🚷 view threshold | 25.87 µs(+0.56%)Baseline: 25.73 µs | 29.48 µs (87.74%) |
| Adapter::Rust | 📈 view plot 🚷 view threshold | 2.84 µs(+1.37%)Baseline: 2.80 µs | 3.16 µs (89.89%) |
| Adapter::RustBench | 📈 view plot 🚷 view threshold | 2.85 µs(+1.56%)Baseline: 2.80 µs | 3.17 µs (89.97%) |
| head_version_insert/batch/10 | 📈 view plot 🚷 view threshold | 96.59 µs(+5.92%)Baseline: 91.19 µs | 112.52 µs (85.85%) |
| head_version_insert/batch/100 | 📈 view plot 🚷 view threshold | 232.80 µs(+2.08%)Baseline: 228.06 µs | 248.15 µs (93.82%) |
| head_version_insert/batch/255 | 📈 view plot 🚷 view threshold | 453.68 µs(+0.36%)Baseline: 452.07 µs | 483.88 µs (93.76%) |
| head_version_insert/batch/50 | 📈 view plot 🚷 view threshold | 157.42 µs(+3.84%)Baseline: 151.60 µs | 173.29 µs (90.84%) |
| threshold_query/join/10 | 📈 view plot 🚷 view threshold | 138.35 µs(+2.23%)Baseline: 135.33 µs | 156.93 µs (88.16%) |
| threshold_query/join/20 | 📈 view plot 🚷 view threshold | 153.06 µs(+2.01%)Baseline: 150.04 µs | 170.73 µs (89.65%) |
| threshold_query/join/5 | 📈 view plot 🚷 view threshold | 130.93 µs(+2.15%)Baseline: 128.17 µs | 149.57 µs (87.54%) |
| threshold_query/join/50 | 📈 view plot 🚷 view threshold | 196.87 µs(+2.98%)Baseline: 191.18 µs | 213.54 µs (92.19%) |
This changeset adds the ability for a Testbed to have an associated Spec.