1 Commits
Author SHA1 Message Date
lukaszraczylo 6ad9dfbe42 fix(runner): record wall-clock latency on error rows
An error row with zero latency reads as an instant rejection when it
can be three exhausted request timeouts. A 651-second thinking-model
generation looked instant in the 2026-08-30 run and misdirected the
diagnosis toward gateway rejection. The error path now records the
wall clock across all attempts.
2026-08-30 16:19:21 +01:00
2 changed files with 7 additions and 2 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ models:
- uni/qwen3.6-27b
- uni/btl-4
concurrency: 8 # default when omitted; matches internal/config's default
request_timeout: 300s # default when omitted
request_timeout: 900s # default when omitted
max_tokens_default: 12000 # default when omitted; a reasoning model can spend
# thousands of tokens on reasoning_content before
# writing an answer, so this must stay generous
+6 -1
View File
@@ -161,9 +161,14 @@ func (r *Runner) runOne(ctx context.Context, model string, test testkit.Test) Re
Temperature: r.cfg.Temperature,
}
// Wall-clock across all attempts, recorded even on error: an error row
// with zero latency reads as an instant rejection when it may be three
// exhausted timeouts (a 651-second generation looked "instant" in the
// 2026-08-30 run and misdirected the diagnosis).
callStart := time.Now()
resp, err := r.client.Complete(ctx, req)
if err != nil {
return Result{Model: model, TestID: test.ID, Err: err}
return Result{Model: model, TestID: test.ID, Err: err, Latency: time.Since(callStart)}
}
normalized := testkit.Normalize(resp.Text)