Jose Romero

← All benchmarks← Back to the post

Qwen 3.8 Flash-Next on Halogen: 72 coding runs

Agentic benchmark results for local coding models · suite v0.2.4 · 72 runs · updated 2026-09-18 18:41
how to read this page
66/72
runs resolved, 92%
97/100
mean score
14/18
pairs passing every repeat
12.3 h
agent time
1
model
3
harnesses
Model and setup

The model and how it ran 2026-09-16-v025-flashnext-halogen-w4b-think-xhigh-n4-60m

modelqwen38-flash-next-w4b.hgn + overlay
labelQwen3.8-Flash-Next on Halogen Flash Server 0.11.3 (W4B checkpoint + quality overlay, 118 GB; ROCm in Docker on the same 128 GB Strix Halo), thinking xhigh, MTP draft head on, ctx 163840, samplers server-side 1.0/0.95/20/0, requests logged by the metrics proxy
serverHalogen Flash Server 0.11.3 (closed-source container, ROCm)
engine settingsimage=ghcr.io/peonist-ai/halogen-flash-server:0.11.3, backend=ROCm/HIP, Docker, gfx1151, checkpoint=W4B + quality overlay, drafter=MTP head, HALOGEN_CTX=163840, HALOGEN_KV_POOL_POSITIONS=262144, HALOGEN_KV_SLOTS=1, HALOGEN_REASONING_EFFORT=xhigh
context window163840
samplingtemperature=1.0, top_p=0.95, top_k=20, min_p=0
speculative / mtpMTP draft head, depth 1 (HALOGEN_DRAFTER_DEFAULT=1); prompt lookup off under sampling
thinkingxhigh (template default); reasoning returned as reasoning_content, counted from the harness session stores
timeouts60 min cap on every task (campaign override); n=4 per (harness, task). Video 043 ran the same tasks on stock llama.cpp with 120-min caps and n=1: compare with care
harnessespi 0.73.1 · dsh 0.1.1-rc.2 · opencode 1.18.25
runs72 runs, n=4 per (harness, task), 2026-09-17T00:13:02 to 2026-09-17T12:13:19
platformLinux-7.2.5-1-cachyos-x86_64-with-glibc2.44
38.0
gen tok/s, mean per run
32.5 to 40.9
557
prefill tok/s, mean per run
345 to 820
100.4k
peak context, tokens
37.8k mean
1433k
tokens generated
32.4 tok/s over wall time
10 min
wall per run, mean
0 to 31 min
76 GB
lowest available memory
mean 77 GB, swap up to 7 GB
think tokens counted in 72 runs from the harness session store and in the rest from stdout; mean ~9837 per run; speeds measured by the request proxy (deltas, timings); draft tokens accepted 71% on average

Tasks resolved per task, click a card

11/12 resolved
mean 92/100, 2.0 min avg, some runs missed checks
10/12 resolved
mean 93/100, 15.2 min avg, some runs missed checks
12/12 resolved
mean 100/100, 8.9 min avg, all runs passed
9/12 resolved
mean 99/100, 14.2 min avg, some runs missed checks
12/12 resolved
mean 100/100, 3.5 min avg, all runs passed
12/12 resolved
mean 100/100, 17.5 min avg, all runs passed
Run map: all attempts

Run map every run at a glance

100 resolved 55 partial 0 nothing earned ? not scored · one square per run, hover for details, click to jump
t1-cold-fix · dsh
3/4
t2-logsift · dsh
3/4
t3-shoebox · dsh
4/4
t4-night-shift · dsh
4/4
t5-regression · dsh
4/4
t6-payroll · dsh
4/4
t1-cold-fix · opencode
4/4
t2-logsift · opencode
4/4
t3-shoebox · opencode
4/4
t4-night-shift · opencode
4/4
t5-regression · opencode
4/4
t6-payroll · opencode
4/4
t1-cold-fix · pi
4/4
t2-logsift · pi
3/4
t3-shoebox · pi
4/4
t4-night-shift · pi
1/4
t5-regression · pi
4/4
t6-payroll · pi
4/4
Results by task and harness

Reliability matrix n runs per (harness, task); pass^n = every run resolved

taskdshopencodepi
t1-cold-fix3/4 resolved · pass^4 ✗
mean 75/100 · 2.3 min
4/4 resolved · pass^4 ✓
mean 100/100 · 2.0 min
4/4 resolved · pass^4 ✓
mean 100/100 · 1.7 min
t2-logsift3/4 resolved · pass^4 ✗
mean 82/100 · 18.3 min
4/4 resolved · pass^4 ✓
mean 100/100 · 12.0 min
3/4 resolved · pass^4 ✗
mean 98/100 · 15.3 min
t3-shoebox4/4 resolved · pass^4 ✓
mean 100/100 · 10.4 min
4/4 resolved · pass^4 ✓
mean 100/100 · 9.4 min
4/4 resolved · pass^4 ✓
mean 100/100 · 7.0 min
t4-night-shift4/4 resolved · pass^4 ✓
mean 100/100 · 18.9 min
4/4 resolved · pass^4 ✓
mean 100/100 · 6.6 min
1/4 resolved · pass^4 ✗
mean 96/100 · 17.1 min
t5-regression4/4 resolved · pass^4 ✓
mean 100/100 · 5.1 min
4/4 resolved · pass^4 ✓
mean 100/100 · 2.6 min
4/4 resolved · pass^4 ✓
mean 100/100 · 2.9 min
t6-payroll4/4 resolved · pass^4 ✓
mean 100/100 · 20.2 min
4/4 resolved · pass^4 ✓
mean 100/100 · 18.3 min
4/4 resolved · pass^4 ✓
mean 100/100 · 14.1 min

Speed, context and memory from the model server log, one dot per request

Generation speed against context size, every request
dshopencodepi
02040600100kcontext size at the request, tokensgeneration, tok/sdsh / t1-cold-fix: 31 tokens at 33.4 tok/s, context 99dsh / t1-cold-fix: 84 tokens at 40.2 tok/s, context 7977dsh / t1-cold-fix: 33 tokens at 38.0 tok/s, context 312dsh / t1-cold-fix: 127 tokens at 39.4 tok/s, context 8332dsh / t1-cold-fix: 73 tokens at 37.9 tok/s, context 8685dsh / t1-cold-fix: 88 tokens at 39.0 tok/s, context 8996dsh / t1-cold-fix: 69 tokens at 45.1 tok/s, context 9282dsh / t1-cold-fix: 144 tokens at 37.2 tok/s, context 10218dsh / t1-cold-fix: 68 tokens at 41.8 tok/s, context 10555dsh / t1-cold-fix: 133 tokens at 38.6 tok/s, context 11428dsh / t1-cold-fix: 103 tokens at 43.2 tok/s, context 11863dsh / t1-cold-fix: 70 tokens at 40.8 tok/s, context 12777dsh / t1-cold-fix: 357 tokens at 38.2 tok/s, context 13933dsh / t1-cold-fix: 203 tokens at 35.7 tok/s, context 14787dsh / t1-cold-fix: 66 tokens at 45.0 tok/s, context 15681dsh / t1-cold-fix: 205 tokens at 38.1 tok/s, context 16308dsh / t1-cold-fix: 2473 tokens at 39.8 tok/s, context 18878dsh / t1-cold-fix: 142 tokens at 46.2 tok/s, context 19064dsh / t1-cold-fix: 141 tokens at 39.0 tok/s, context 19248dsh / t1-cold-fix: 408 tokens at 34.6 tok/s, context 19763dsh / t1-cold-fix: 493 tokens at 34.5 tok/s, context 20688dsh / t1-cold-fix: 31 tokens at 32.6 tok/s, context 99dsh / t1-cold-fix: 91 tokens at 43.8 tok/s, context 7984dsh / t1-cold-fix: 33 tokens at 35.2 tok/s, context 312dsh / t1-cold-fix: 101 tokens at 42.4 tok/s, context 8313dsh / t1-cold-fix: 58 tokens at 43.7 tok/s, context 8492dsh / t1-cold-fix: 64 tokens at 40.0 tok/s, context 8760dsh / t1-cold-fix: 107 tokens at 35.1 tok/s, context 9613dsh / t1-cold-fix: 95 tokens at 37.7 tok/s, context 9970dsh / t1-cold-fix: 84 tokens at 41.4 tok/s, context 10735dsh / t1-cold-fix: 76 tokens at 42.3 tok/s, context 11122dsh / t1-cold-fix: 165 tokens at 39.8 tok/s, context 12024dsh / t1-cold-fix: 71 tokens at 41.5 tok/s, context 12710dsh / t1-cold-fix: 120 tokens at 38.0 tok/s, context 13619dsh / t1-cold-fix: 89 tokens at 38.3 tok/s, context 14058dsh / t1-cold-fix: 130 tokens at 41.0 tok/s, context 14288dsh / t1-cold-fix: 1262 tokens at 36.7 tok/s, context 16449dsh / t1-cold-fix: 286 tokens at 36.3 tok/s, context 16776dsh / t1-cold-fix: 128 tokens at 42.8 tok/s, context 17000dsh / t1-cold-fix: 254 tokens at 43.2 tok/s, context 17286dsh / t1-cold-fix: 170 tokens at 42.6 tok/s, context 17500dsh / t1-cold-fix: 214 tokens at 36.6 tok/s, context 17757dsh / t1-cold-fix: 250 tokens at 35.4 tok/s, context 18042dsh / t1-cold-fix: 550 tokens at 35.0 tok/s, context 19006dsh / t1-cold-fix: 207 tokens at 34.9 tok/s, context 19801dsh / t1-cold-fix: 249 tokens at 38.7 tok/s, context 20090dsh / t1-cold-fix: 685 tokens at 35.0 tok/s, context 20823dsh / t1-cold-fix: 31 tokens at 33.1 tok/s, context 99dsh / t1-cold-fix: 31 tokens at 33.1 tok/s, context 99dsh / t1-cold-fix: 13 tokens at 30.4 tok/s, context 7908dsh / t1-cold-fix: 31 tokens at 40.2 tok/s, context 99dsh / t1-cold-fix: 31 tokens at 40.2 tok/s, context 99dsh / t1-cold-fix: 70 tokens at 44.2 tok/s, context 7965dsh / t1-cold-fix: 33 tokens at 35.5 tok/s, context 312dsh / t1-cold-fix: 119 tokens at 43.4 tok/s, context 8312dsh / t1-cold-fix: 98 tokens at 45.0 tok/s, context 8554dsh / t1-cold-fix: 95 tokens at 44.0 tok/s, context 10769dsh / t1-cold-fix: 122 tokens at 43.8 tok/s, context 13001dsh / t1-cold-fix: 1048 tokens at 33.9 tok/s, context 15334dsh / t1-cold-fix: 326 tokens at 43.2 tok/s, context 15904dsh / t1-cold-fix: 70 tokens at 43.0 tok/s, context 16026dsh / t1-cold-fix: 151 tokens at 38.9 tok/s, context 16924dsh / t1-cold-fix: 387 tokens at 41.1 tok/s, context 17993dsh / t1-cold-fix: 192 tokens at 42.4 tok/s, context 18230dsh / t1-cold-fix: 154 tokens at 37.5 tok/s, context 18428dsh / t1-cold-fix: 260 tokens at 38.4 tok/s, context 19192dsh / t1-cold-fix: 500 tokens at 35.0 tok/s, context 19747dsh / t1-cold-fix: 31 tokens at 40.1 tok/s, context 99dsh / t2-logsift: 31 tokens at 40.1 tok/s, context 99dsh / t2-logsift: 126 tokens at 42.2 tok/s, context 9303dsh / t2-logsift: 53 tokens at 45.3 tok/s, context 9525dsh / t2-logsift: 14024 tokens at 36.5 tok/s, context 24811dsh / t2-logsift: 250 tokens at 39.2 tok/s, context 25117dsh / t2-logsift: 8143 tokens at 40.3 tok/s, context 34041dsh / t2-logsift: 87 tokens at 40.6 tok/s, context 34173dsh / t2-logsift: 146 tokens at 38.7 tok/s, context 34360dsh / t2-logsift: 242 tokens at 13.4 tok/s, context 34740dsh / t2-logsift: 389 tokens at 32.3 tok/s, context 35522dsh / t2-logsift: 7633 tokens at 42.9 tok/s, context 43191dsh / t2-logsift: 177 tokens at 43.9 tok/s, context 43427dsh / t2-logsift: 138 tokens at 40.0 tok/s, context 43608dsh / t2-logsift: 951 tokens at 38.4 tok/s, context 47766dsh / t2-logsift: 5622 tokens at 36.7 tok/s, context 53519dsh / t2-logsift: 1297 tokens at 33.6 tok/s, context 54876dsh / t2-logsift: 887 tokens at 33.9 tok/s, context 55786dsh / t2-logsift: 321 tokens at 39.5 tok/s, context 56397dsh / t2-logsift: 2220 tokens at 32.9 tok/s, context 59014dsh / t2-logsift: 1168 tokens at 34.6 tok/s, context 60519dsh / t2-logsift: 1154 tokens at 32.6 tok/s, context 61923dsh / t2-logsift: 31 tokens at 33.6 tok/s, context 99dsh / t2-logsift: 31 tokens at 33.6 tok/s, context 99dsh / t2-logsift: 117 tokens at 43.8 tok/s, context 9296dsh / t2-logsift: 169 tokens at 36.5 tok/s, context 9634dsh / t2-logsift: 301 tokens at 39.3 tok/s, context 11344dsh / t2-logsift: 9423 tokens at 35.2 tok/s, context 21885dsh / t2-logsift: 3361 tokens at 40.2 tok/s, context 25265dsh / t2-logsift: 205 tokens at 36.0 tok/s, context 25528dsh / t2-logsift: 284 tokens at 37.3 tok/s, context 25854dsh / t2-logsift: 392 tokens at 44.1 tok/s, context 26522dsh / t2-logsift: 200 tokens at 35.2 tok/s, context 26764dsh / t2-logsift: 862 tokens at 42.5 tok/s, context 27678dsh / t2-logsift: 9068 tokens at 40.4 tok/s, context 37597dsh / t2-logsift: 943 tokens at 40.0 tok/s, context 38584dsh / t2-logsift: 374 tokens at 38.3 tok/s, context 38988dsh / t2-logsift: 571 tokens at 32.8 tok/s, context 39625dsh / t2-logsift: 255 tokens at 35.1 tok/s, context 40158dsh / t2-logsift: 8534 tokens at 43.0 tok/s, context 48708dsh / t2-logsift: 576 tokens at 38.1 tok/s, context 49344dsh / t2-logsift: 577 tokens at 39.0 tok/s, context 49965dsh / t2-logsift: 211 tokens at 37.7 tok/s, context 50220dsh / t2-logsift: 969 tokens at 37.5 tok/s, context 52249dsh / t2-logsift: 181 tokens at 35.2 tok/s, context 53007dsh / t2-logsift: 3655 tokens at 37.5 tok/s, context 56872dsh / t2-logsift: 604 tokens at 35.7 tok/s, context 57536dsh / t2-logsift: 2193 tokens at 33.1 tok/s, context 62240dsh / t2-logsift: 2027 tokens at 34.5 tok/s, context 64393dsh / t2-logsift: 347 tokens at 37.8 tok/s, context 64952dsh / t2-logsift: 1323 tokens at 38.8 tok/s, context 66317dsh / t2-logsift: 579 tokens at 37.8 tok/s, context 67005dsh / t2-logsift: 173 tokens at 37.1 tok/s, context 67276dsh / t2-logsift: 1614 tokens at 34.0 tok/s, context 73727dsh / t2-logsift: 823 tokens at 42.6 tok/s, context 74592dsh / t2-logsift: 567 tokens at 40.1 tok/s, context 75201dsh / t2-logsift: 609 tokens at 42.5 tok/s, context 75852dsh / t2-logsift: 621 tokens at 38.8 tok/s, context 76515dsh / t2-logsift: 1092 tokens at 34.3 tok/s, context 77772dsh / t2-logsift: 665 tokens at 34.0 tok/s, context 78561dsh / t2-logsift: 459 tokens at 36.5 tok/s, context 79241dsh / t2-logsift: 212 tokens at 38.4 tok/s, context 79834dsh / t2-logsift: 146 tokens at 37.8 tok/s, context 80090dsh / t2-logsift: 359 tokens at 36.0 tok/s, context 82046dsh / t2-logsift: 758 tokens at 35.2 tok/s, context 83472dsh / t2-logsift: 31 tokens at 40.4 tok/s, context 99dsh / t2-logsift: 31 tokens at 40.4 tok/s, context 99dsh / t2-logsift: 159 tokens at 42.0 tok/s, context 9338dsh / t2-logsift: 161 tokens at 40.9 tok/s, context 10469dsh / t2-logsift: 11410 tokens at 35.9 tok/s, context 22982dsh / t2-logsift: 291 tokens at 37.6 tok/s, context 23331dsh / t2-logsift: 152 tokens at 40.1 tok/s, context 23525dsh / t2-logsift: 200 tokens at 38.3 tok/s, context 23811dsh / t2-logsift: 70 tokens at 28.2 tok/s, context 23923dsh / t2-logsift: 31 tokens at 39.9 tok/s, context 99dsh / t2-logsift: 165 tokens at 34.9 tok/s, context 9342dsh / t2-logsift: 303 tokens at 31.8 tok/s, context 10623dsh / t2-logsift: 9438 tokens at 35.1 tok/s, context 20496dsh / t2-logsift: 683 tokens at 36.3 tok/s, context 21236dsh / t2-logsift: 670 tokens at 46.0 tok/s, context 22765dsh / t2-logsift: 307 tokens at 28.1 tok/s, context 23113dsh / t2-logsift: 285 tokens at 41.5 tok/s, context 23470dsh / t2-logsift: 149 tokens at 39.4 tok/s, context 23660dsh / t2-logsift: 6647 tokens at 38.5 tok/s, context 31051dsh / t2-logsift: 267 tokens at 40.3 tok/s, context 31376dsh / t2-logsift: 187 tokens at 37.2 tok/s, context 31605dsh / t2-logsift: 164 tokens at 44.2 tok/s, context 31968dsh / t2-logsift: 102 tokens at 41.0 tok/s, context 32112dsh / t2-logsift: 1359 tokens at 35.5 tok/s, context 34399dsh / t2-logsift: 565 tokens at 43.0 tok/s, context 34989dsh / t2-logsift: 368 tokens at 40.7 tok/s, context 35431dsh / t2-logsift: 174 tokens at 38.0 tok/s, context 35647dsh / t2-logsift: 2737 tokens at 38.4 tok/s, context 38485dsh / t2-logsift: 959 tokens at 33.3 tok/s, context 39505dsh / t2-logsift: 571 tokens at 36.1 tok/s, context 40098dsh / t2-logsift: 365 tokens at 36.6 tok/s, context 40650dsh / t2-logsift: 226 tokens at 37.6 tok/s, context 42112dsh / t2-logsift: 1173 tokens at 37.5 tok/s, context 46007dsh / t2-logsift: 195 tokens at 39.9 tok/s, context 46243dsh / t2-logsift: 655 tokens at 41.9 tok/s, context 46939dsh / t2-logsift: 165 tokens at 34.7 tok/s, context 47145dsh / t2-logsift: 164 tokens at 41.0 tok/s, context 47350dsh / t2-logsift: 196 tokens at 37.2 tok/s, context 47587dsh / t2-logsift: 780 tokens at 36.3 tok/s, context 48447dsh / t2-logsift: 1180 tokens at 33.9 tok/s, context 50000dsh / t2-logsift: 269 tokens at 36.4 tok/s, context 50603dsh / t2-logsift: 243 tokens at 36.8 tok/s, context 51145dsh / t2-logsift: 116 tokens at 41.5 tok/s, context 51655dsh / t2-logsift: 895 tokens at 34.5 tok/s, context 53742dsh / t2-logsift: 31 tokens at 33.5 tok/s, context 99dsh / t3-shoebox: 107 tokens at 41.6 tok/s, context 9087dsh / t3-shoebox: 148 tokens at 42.3 tok/s, context 9514dsh / t3-shoebox: 166 tokens at 38.3 tok/s, context 12596dsh / t3-shoebox: 1313 tokens at 35.7 tok/s, context 19152dsh / t3-shoebox: 144 tokens at 40.8 tok/s, context 21208dsh / t3-shoebox: 1961 tokens at 36.0 tok/s, context 25486dsh / t3-shoebox: 2426 tokens at 38.8 tok/s, context 28040dsh / t3-shoebox: 240 tokens at 33.5 tok/s, context 28339dsh / t3-shoebox: 6612 tokens at 37.8 tok/s, context 35570dsh / t3-shoebox: 1476 tokens at 35.1 tok/s, context 37672dsh / t3-shoebox: 1948 tokens at 34.4 tok/s, context 40595dsh / t3-shoebox: 3065 tokens at 36.0 tok/s, context 43885dsh / t3-shoebox: 674 tokens at 34.4 tok/s, context 44603dsh / t3-shoebox: 93 tokens at 38.1 tok/s, context 44724dsh / t3-shoebox: 150 tokens at 32.1 tok/s, context 44926dsh / t3-shoebox: 126 tokens at 33.5 tok/s, context 45356dsh / t3-shoebox: 228 tokens at 34.4 tok/s, context 45602dsh / t3-shoebox: 1914 tokens at 40.5 tok/s, context 47534dsh / t3-shoebox: 2019 tokens at 37.4 tok/s, context 53196dsh / t3-shoebox: 1037 tokens at 35.4 tok/s, context 54349dsh / t3-shoebox: 194 tokens at 36.8 tok/s, context 54768dsh / t3-shoebox: 1299 tokens at 38.0 tok/s, context 56603dsh / t3-shoebox: 31 tokens at 34.6 tok/s, context 99dsh / t3-shoebox: 31 tokens at 34.6 tok/s, context 99dsh / t3-shoebox: 164 tokens at 44.8 tok/s, context 9144dsh / t3-shoebox: 245 tokens at 41.1 tok/s, context 10939dsh / t3-shoebox: 2235 tokens at 32.4 tok/s, context 17343dsh / t3-shoebox: 278 tokens at 23.7 tok/s, context 19844dsh / t3-shoebox: 179 tokens at 39.5 tok/s, context 23247dsh / t3-shoebox: 1856 tokens at 36.1 tok/s, context 29233dsh / t3-shoebox: 2052 tokens at 40.4 tok/s, context 31540dsh / t3-shoebox: 512 tokens at 36.1 tok/s, context 32112dsh / t3-shoebox: 264 tokens at 41.4 tok/s, context 32420dsh / t3-shoebox: 946 tokens at 41.6 tok/s, context 33410dsh / t3-shoebox: 76 tokens at 40.9 tok/s, context 33516dsh / t3-shoebox: 1151 tokens at 40.0 tok/s, context 35029dsh / t3-shoebox: 850 tokens at 35.5 tok/s, context 36294dsh / t3-shoebox: 567 tokens at 36.6 tok/s, context 37117dsh / t3-shoebox: 1028 tokens at 33.5 tok/s, context 38611dsh / t3-shoebox: 3305 tokens at 38.4 tok/s, context 42332dsh / t3-shoebox: 311 tokens at 36.5 tok/s, context 42701dsh / t3-shoebox: 1108 tokens at 37.4 tok/s, context 44738dsh / t3-shoebox: 568 tokens at 43.8 tok/s, context 45403dsh / t3-shoebox: 1051 tokens at 39.6 tok/s, context 48278dsh / t3-shoebox: 180 tokens at 40.2 tok/s, context 48729dsh / t3-shoebox: 890 tokens at 37.9 tok/s, context 50059dsh / t3-shoebox: 31 tokens at 39.3 tok/s, context 99dsh / t3-shoebox: 127 tokens at 45.6 tok/s, context 9109dsh / t3-shoebox: 163 tokens at 43.1 tok/s, context 9815dsh / t3-shoebox: 224 tokens at 39.9 tok/s, context 10692dsh / t3-shoebox: 636 tokens at 38.5 tok/s, context 17202dsh / t3-shoebox: 3729 tokens at 38.0 tok/s, context 23253dsh / t3-shoebox: 1837 tokens at 36.6 tok/s, context 25355dsh / t3-shoebox: 2002 tokens at 41.6 tok/s, context 27461dsh / t3-shoebox: 206 tokens at 37.5 tok/s, context 27728dsh / t3-shoebox: 897 tokens at 37.3 tok/s, context 28998dsh / t3-shoebox: 430 tokens at 39.6 tok/s, context 29835dsh / t3-shoebox: 1071 tokens at 39.1 tok/s, context 31316dsh / t3-shoebox: 1982 tokens at 40.3 tok/s, context 33499dsh / t3-shoebox: 250 tokens at 37.1 tok/s, context 33808dsh / t3-shoebox: 1203 tokens at 41.7 tok/s, context 35030dsh / t3-shoebox: 1352 tokens at 38.7 tok/s, context 36402dsh / t3-shoebox: 1616 tokens at 40.1 tok/s, context 39371dsh / t3-shoebox: 257 tokens at 43.0 tok/s, context 39705dsh / t3-shoebox: 209 tokens at 38.7 tok/s, context 39967dsh / t3-shoebox: 1270 tokens at 40.0 tok/s, context 41319dsh / t3-shoebox: 31 tokens at 39.7 tok/s, context 99dsh / t3-shoebox: 31 tokens at 39.7 tok/s, context 99dsh / t3-shoebox: 104 tokens at 42.9 tok/s, context 9082dsh / t3-shoebox: 175 tokens at 42.4 tok/s, context 9997dsh / t3-shoebox: 65 tokens at 41.2 tok/s, context 11204dsh / t3-shoebox: 117 tokens at 39.9 tok/s, context 13592dsh / t3-shoebox: 76 tokens at 42.2 tok/s, context 14828dsh / t3-shoebox: 185 tokens at 39.4 tok/s, context 17284dsh / t3-shoebox: 1992 tokens at 36.0 tok/s, context 23405dsh / t3-shoebox: 626 tokens at 35.7 tok/s, context 25123dsh / t3-shoebox: 1892 tokens at 41.8 tok/s, context 27116dsh / t3-shoebox: 1002 tokens at 42.0 tok/s, context 28175dsh / t3-shoebox: 439 tokens at 35.4 tok/s, context 28688dsh / t3-shoebox: 621 tokens at 43.1 tok/s, context 29350dsh / t3-shoebox: 316 tokens at 41.1 tok/s, context 29686dsh / t3-shoebox: 541 tokens at 39.4 tok/s, context 30589dsh / t3-shoebox: 1226 tokens at 36.9 tok/s, context 32286dsh / t3-shoebox: 3196 tokens at 39.0 tok/s, context 36055dsh / t3-shoebox: 233 tokens at 34.9 tok/s, context 36346dsh / t3-shoebox: 152 tokens at 38.3 tok/s, context 36621dsh / t3-shoebox: 98 tokens at 31.7 tok/s, context 36761dsh / t3-shoebox: 1228 tokens at 40.1 tok/s, context 39973dsh / t3-shoebox: 188 tokens at 39.1 tok/s, context 40592dsh / t3-shoebox: 98 tokens at 42.3 tok/s, context 40805dsh / t3-shoebox: 1429 tokens at 37.0 tok/s, context 42405dsh / t3-shoebox: 31 tokens at 39.2 tok/s, context 99dsh / t4-night-shift: 31 tokens at 39.2 tok/s, context 99dsh / t4-night-shift: 109 tokens at 44.9 tok/s, context 8623dsh / t4-night-shift: 33 tokens at 37.6 tok/s, context 946dsh / t4-night-shift: 142 tokens at 42.4 tok/s, context 9247dsh / t4-night-shift: 9631 tokens at 25.6 tok/s, context 20126dsh / t4-night-shift: 678 tokens at 41.5 tok/s, context 20890dsh / t4-night-shift: 152 tokens at 41.4 tok/s, context 21144dsh / t4-night-shift: 1105 tokens at 44.4 tok/s, context 22774dsh / t4-night-shift: 391 tokens at 44.3 tok/s, context 23691dsh / t4-night-shift: 1954 tokens at 39.6 tok/s, context 26250dsh / t4-night-shift: 3167 tokens at 34.5 tok/s, context 29602dsh / t4-night-shift: 1018 tokens at 39.0 tok/s, context 30706dsh / t4-night-shift: 356 tokens at 32.2 tok/s, context 31140dsh / t4-night-shift: 3552 tokens at 36.2 tok/s, context 34806dsh / t4-night-shift: 2014 tokens at 32.9 tok/s, context 43471dsh / t4-night-shift: 5182 tokens at 35.9 tok/s, context 49430dsh / t4-night-shift: 1867 tokens at 35.7 tok/s, context 52146dsh / t4-night-shift: 593 tokens at 35.0 tok/s, context 52870dsh / t4-night-shift: 1726 tokens at 32.8 tok/s, context 54720dsh / t4-night-shift: 464 tokens at 33.7 tok/s, context 55266dsh / t4-night-shift: 1327 tokens at 35.6 tok/s, context 56692dsh / t4-night-shift: 31 tokens at 33.8 tok/s, context 99dsh / t4-night-shift: 109 tokens at 40.9 tok/s, context 8623dsh / t4-night-shift: 34 tokens at 37.6 tok/s, context 947dsh / t4-night-shift: 138 tokens at 42.0 tok/s, context 9243dsh / t4-night-shift: 5516 tokens at 35.4 tok/s, context 16007dsh / t4-night-shift: 318 tokens at 40.2 tok/s, context 16363dsh / t4-night-shift: 1103 tokens at 42.8 tok/s, context 17499dsh / t4-night-shift: 329 tokens at 42.7 tok/s, context 18017dsh / t4-night-shift: 1865 tokens at 45.7 tok/s, context 21353dsh / t4-night-shift: 1355 tokens at 39.8 tok/s, context 22964dsh / t4-night-shift: 219 tokens at 42.1 tok/s, context 23319dsh / t4-night-shift: 1003 tokens at 38.3 tok/s, context 24638dsh / t4-night-shift: 3958 tokens at 38.5 tok/s, context 28983dsh / t4-night-shift: 374 tokens at 34.0 tok/s, context 29458dsh / t4-night-shift: 1200 tokens at 34.0 tok/s, context 31019dsh / t4-night-shift: 2692 tokens at 40.1 tok/s, context 33760dsh / t4-night-shift: 1395 tokens at 36.2 tok/s, context 35289dsh / t4-night-shift: 588 tokens at 34.5 tok/s, context 36003dsh / t4-night-shift: 362 tokens at 35.3 tok/s, context 36571dsh / t4-night-shift: 404 tokens at 40.9 tok/s, context 37041dsh / t4-night-shift: 981 tokens at 36.7 tok/s, context 38055dsh / t4-night-shift: 31 tokens at 39.1 tok/s, context 99dsh / t4-night-shift: 204 tokens at 44.1 tok/s, context 8720dsh / t4-night-shift: 35 tokens at 36.5 tok/s, context 948dsh / t4-night-shift: 128 tokens at 41.4 tok/s, context 9177dsh / t4-night-shift: 3740 tokens at 36.4 tok/s, context 14165dsh / t4-night-shift: 591 tokens at 38.7 tok/s, context 14853dsh / t4-night-shift: 1028 tokens at 38.8 tok/s, context 15914dsh / t4-night-shift: 71 tokens at 41.8 tok/s, context 16089dsh / t4-night-shift: 1098 tokens at 39.3 tok/s, context 17463dsh / t4-night-shift: 352 tokens at 43.2 tok/s, context 18140dsh / t4-night-shift: 227 tokens at 42.5 tok/s, context 18566dsh / t4-night-shift: 673 tokens at 33.9 tok/s, context 19300dsh / t4-night-shift: 1305 tokens at 40.5 tok/s, context 21025dsh / t4-night-shift: 927 tokens at 38.9 tok/s, context 22012dsh / t4-night-shift: 744 tokens at 40.6 tok/s, context 23051dsh / t4-night-shift: 247 tokens at 41.6 tok/s, context 23436dsh / t4-night-shift: 131 tokens at 33.9 tok/s, context 23675dsh / t4-night-shift: 151 tokens at 32.8 tok/s, context 23912dsh / t4-night-shift: 2146 tokens at 38.8 tok/s, context 26120dsh / t4-night-shift: 325 tokens at 43.9 tok/s, context 26671dsh / t4-night-shift: 1179 tokens at 38.8 tok/s, context 27893dsh / t4-night-shift: 107 tokens at 44.4 tok/s, context 28043dsh / t4-night-shift: 868 tokens at 38.5 tok/s, context 28976dsh / t4-night-shift: 3124 tokens at 37.1 tok/s, context 32480dsh / t4-night-shift: 754 tokens at 33.1 tok/s, context 33274dsh / t4-night-shift: 1141 tokens at 32.6 tok/s, context 34490dsh / t4-night-shift: 3015 tokens at 39.9 tok/s, context 37595dsh / t4-night-shift: 166 tokens at 38.3 tok/s, context 37821dsh / t4-night-shift: 727 tokens at 33.1 tok/s, context 38781dsh / t4-night-shift: 1113 tokens at 34.5 tok/s, context 39938dsh / t4-night-shift: 197 tokens at 37.8 tok/s, context 40196dsh / t4-night-shift: 850 tokens at 32.5 tok/s, context 41622dsh / t4-night-shift: 2455 tokens at 36.7 tok/s, context 44778dsh / t4-night-shift: 383 tokens at 40.3 tok/s, context 45222dsh / t4-night-shift: 156 tokens at 35.2 tok/s, context 45423dsh / t4-night-shift: 234 tokens at 42.4 tok/s, context 45721dsh / t4-night-shift: 778 tokens at 38.7 tok/s, context 46544dsh / t4-night-shift: 175 tokens at 36.4 tok/s, context 46763dsh / t4-night-shift: 797 tokens at 42.5 tok/s, context 48241dsh / t4-night-shift: 282 tokens at 40.7 tok/s, context 48567dsh / t4-night-shift: 197 tokens at 36.5 tok/s, context 48808dsh / t4-night-shift: 1075 tokens at 34.8 tok/s, context 50488dsh / t4-night-shift: 740 tokens at 35.6 tok/s, context 51579dsh / t4-night-shift: 1818 tokens at 30.8 tok/s, context 53500dsh / t4-night-shift: 218 tokens at 37.0 tok/s, context 54016dsh / t4-night-shift: 1851 tokens at 38.3 tok/s, context 55908dsh / t4-night-shift: 198 tokens at 44.2 tok/s, context 56166dsh / t4-night-shift: 601 tokens at 38.6 tok/s, context 56811dsh / t4-night-shift: 71 tokens at 43.1 tok/s, context 56944dsh / t4-night-shift: 674 tokens at 35.7 tok/s, context 57834dsh / t4-night-shift: 160 tokens at 38.5 tok/s, context 58053dsh / t4-night-shift: 461 tokens at 39.3 tok/s, context 58556dsh / t4-night-shift: 486 tokens at 36.8 tok/s, context 59159dsh / t4-night-shift: 597 tokens at 33.6 tok/s, context 59873dsh / t4-night-shift: 3080 tokens at 34.3 tok/s, context 62988dsh / t4-night-shift: 924 tokens at 38.0 tok/s, context 63972dsh / t4-night-shift: 187 tokens at 37.3 tok/s, context 64203dsh / t4-night-shift: 185 tokens at 36.5 tok/s, context 64430dsh / t4-night-shift: 363 tokens at 36.7 tok/s, context 64830dsh / t4-night-shift: 288 tokens at 36.8 tok/s, context 65433dsh / t4-night-shift: 147 tokens at 36.1 tok/s, context 65784dsh / t4-night-shift: 287 tokens at 34.0 tok/s, context 67970dsh / t4-night-shift: 777 tokens at 31.0 tok/s, context 70507dsh / t4-night-shift: 356 tokens at 41.0 tok/s, context 71198dsh / t4-night-shift: 515 tokens at 38.4 tok/s, context 71754dsh / t4-night-shift: 305 tokens at 36.3 tok/s, context 72218dsh / t4-night-shift: 653 tokens at 35.2 tok/s, context 73373dsh / t4-night-shift: 333 tokens at 36.7 tok/s, context 73747dsh / t4-night-shift: 511 tokens at 33.0 tok/s, context 74681dsh / t4-night-shift: 448 tokens at 38.6 tok/s, context 75386dsh / t4-night-shift: 994 tokens at 33.6 tok/s, context 76413dsh / t4-night-shift: 31 tokens at 32.0 tok/s, context 99dsh / t4-night-shift: 107 tokens at 43.7 tok/s, context 8619dsh / t4-night-shift: 33 tokens at 34.9 tok/s, context 946dsh / t4-night-shift: 109 tokens at 39.9 tok/s, context 9198dsh / t4-night-shift: 8132 tokens at 36.9 tok/s, context 18578dsh / t4-night-shift: 350 tokens at 39.4 tok/s, context 18978dsh / t4-night-shift: 496 tokens at 39.3 tok/s, context 19507dsh / t4-night-shift: 5640 tokens at 43.4 tok/s, context 26612dsh / t4-night-shift: 121 tokens at 42.8 tok/s, context 27123dsh / t4-night-shift: 412 tokens at 34.9 tok/s, context 27599dsh / t4-night-shift: 2509 tokens at 37.3 tok/s, context 30244dsh / t4-night-shift: 890 tokens at 36.9 tok/s, context 31503dsh / t4-night-shift: 3197 tokens at 34.3 tok/s, context 36628dsh / t4-night-shift: 1716 tokens at 34.3 tok/s, context 38458dsh / t4-night-shift: 1881 tokens at 36.5 tok/s, context 41613dsh / t4-night-shift: 611 tokens at 38.7 tok/s, context 42996dsh / t4-night-shift: 870 tokens at 36.7 tok/s, context 43899dsh / t5-regression: 31 tokens at 40.4 tok/s, context 99dsh / t5-regression: 946 tokens at 34.4 tok/s, context 8914dsh / t5-regression: 35 tokens at 34.6 tok/s, context 391dsh / t5-regression: 781 tokens at 34.1 tok/s, context 9746dsh / t5-regression: 690 tokens at 34.1 tok/s, context 10695dsh / t5-regression: 243 tokens at 35.6 tok/s, context 11040dsh / t5-regression: 120 tokens at 38.5 tok/s, context 11470dsh / t5-regression: 94 tokens at 36.5 tok/s, context 13151dsh / t5-regression: 232 tokens at 35.5 tok/s, context 14160dsh / t5-regression: 213 tokens at 38.1 tok/s, context 15971dsh / t5-regression: 2228 tokens at 38.9 tok/s, context 19423dsh / t5-regression: 1370 tokens at 35.5 tok/s, context 21960dsh / t5-regression: 564 tokens at 38.1 tok/s, context 22860dsh / t5-regression: 2345 tokens at 34.4 tok/s, context 29055dsh / t5-regression: 237 tokens at 41.6 tok/s, context 29402dsh / t5-regression: 145 tokens at 39.3 tok/s, context 29589dsh / t5-regression: 264 tokens at 39.8 tok/s, context 29994dsh / t5-regression: 312 tokens at 38.4 tok/s, context 30370dsh / t5-regression: 211 tokens at 33.8 tok/s, context 30639dsh / t5-regression: 349 tokens at 37.2 tok/s, context 31066dsh / t5-regression: 283 tokens at 35.8 tok/s, context 31444dsh / t5-regression: 888 tokens at 38.9 tok/s, context 32412dsh / t5-regression: 31 tokens at 39.4 tok/s, context 99dsh / t5-regression: 31 tokens at 39.4 tok/s, context 99dsh / t5-regression: 448 tokens at 34.0 tok/s, context 8414dsh / t5-regression: 32 tokens at 34.3 tok/s, context 388dsh / t5-regression: 88 tokens at 39.8 tok/s, context 8565dsh / t5-regression: 73 tokens at 42.1 tok/s, context 9077dsh / t5-regression: 74 tokens at 46.9 tok/s, context 9719dsh / t5-regression: 62 tokens at 42.2 tok/s, context 10156dsh / t5-regression: 58 tokens at 42.1 tok/s, context 11811dsh / t5-regression: 61 tokens at 41.8 tok/s, context 12648dsh / t5-regression: 940 tokens at 40.2 tok/s, context 15174dsh / t5-regression: 459 tokens at 36.0 tok/s, context 18035dsh / t5-regression: 1643 tokens at 36.0 tok/s, context 20385dsh / t5-regression: 487 tokens at 38.1 tok/s, context 21810dsh / t5-regression: 401 tokens at 41.1 tok/s, context 22487dsh / t5-regression: 129 tokens at 37.8 tok/s, context 22663dsh / t5-regression: 1065 tokens at 35.7 tok/s, context 23889dsh / t5-regression: 397 tokens at 37.6 tok/s, context 24483dsh / t5-regression: 276 tokens at 39.1 tok/s, context 24800dsh / t5-regression: 255 tokens at 38.2 tok/s, context 25214dsh / t5-regression: 257 tokens at 39.7 tok/s, context 25662dsh / t5-regression: 143 tokens at 37.7 tok/s, context 25846dsh / t5-regression: 345 tokens at 37.8 tok/s, context 26447dsh / t5-regression: 151 tokens at 42.3 tok/s, context 26655dsh / t5-regression: 156 tokens at 40.6 tok/s, context 26856dsh / t5-regression: 286 tokens at 39.1 tok/s, context 27242dsh / t5-regression: 658 tokens at 35.0 tok/s, context 27953dsh / t5-regression: 780 tokens at 39.2 tok/s, context 28980dsh / t5-regression: 31 tokens at 39.8 tok/s, context 99dsh / t5-regression: 31 tokens at 39.8 tok/s, context 99dsh / t5-regression: 138 tokens at 44.7 tok/s, context 8108dsh / t5-regression: 35 tokens at 33.4 tok/s, context 391dsh / t5-regression: 87 tokens at 40.7 tok/s, context 8623dsh / t5-regression: 138 tokens at 45.2 tok/s, context 9723dsh / t5-regression: 89 tokens at 44.3 tok/s, context 12114dsh / t5-regression: 103 tokens at 33.0 tok/s, context 12590dsh / t5-regression: 860 tokens at 38.4 tok/s, context 15806dsh / t5-regression: 740 tokens at 36.2 tok/s, context 18756dsh / t5-regression: 594 tokens at 36.3 tok/s, context 20460dsh / t5-regression: 703 tokens at 35.0 tok/s, context 21245dsh / t5-regression: 1030 tokens at 34.6 tok/s, context 23277dsh / t5-regression: 109 tokens at 43.5 tok/s, context 23408dsh / t5-regression: 143 tokens at 42.1 tok/s, context 23594dsh / t5-regression: 221 tokens at 42.1 tok/s, context 23850dsh / t5-regression: 544 tokens at 39.8 tok/s, context 24448dsh / t5-regression: 271 tokens at 42.2 tok/s, context 24778dsh / t5-regression: 343 tokens at 38.0 tok/s, context 25180dsh / t5-regression: 196 tokens at 36.5 tok/s, context 25504dsh / t5-regression: 206 tokens at 38.3 tok/s, context 25928dsh / t5-regression: 467 tokens at 38.1 tok/s, context 26603dsh / t5-regression: 115 tokens at 42.6 tok/s, context 26775dsh / t5-regression: 624 tokens at 39.3 tok/s, context 27440dsh / t5-regression: 31 tokens at 39.8 tok/s, context 99dsh / t5-regression: 122 tokens at 47.0 tok/s, context 8092dsh / t5-regression: 35 tokens at 37.0 tok/s, context 391dsh / t5-regression: 79 tokens at 42.0 tok/s, context 8616dsh / t5-regression: 159 tokens at 43.0 tok/s, context 9331dsh / t5-regression: 351 tokens at 39.8 tok/s, context 11300dsh / t5-regression: 577 tokens at 38.3 tok/s, context 12616dsh / t5-regression: 615 tokens at 38.2 tok/s, context 13859dsh / t5-regression: 1612 tokens at 38.3 tok/s, context 17877dsh / t5-regression: 755 tokens at 36.7 tok/s, context 21551dsh / t5-regression: 251 tokens at 39.8 tok/s, context 21846dsh / t5-regression: 371 tokens at 36.5 tok/s, context 22398dsh / t5-regression: 129 tokens at 40.1 tok/s, context 22577dsh / t5-regression: 241 tokens at 41.0 tok/s, context 23046dsh / t5-regression: 144 tokens at 44.0 tok/s, context 23233dsh / t5-regression: 318 tokens at 40.2 tok/s, context 23688dsh / t5-regression: 143 tokens at 42.7 tok/s, context 23890dsh / t5-regression: 275 tokens at 41.4 tok/s, context 24343dsh / t5-regression: 138 tokens at 37.8 tok/s, context 24549dsh / t5-regression: 625 tokens at 37.2 tok/s, context 25427dsh / t5-regression: 31 tokens at 39.8 tok/s, context 99dsh / t6-payroll: 31 tokens at 39.8 tok/s, context 99dsh / t6-payroll: 179 tokens at 44.1 tok/s, context 9974dsh / t6-payroll: 166 tokens at 43.6 tok/s, context 10580dsh / t6-payroll: 119 tokens at 39.6 tok/s, context 11397dsh / t6-payroll: 8645 tokens at 35.7 tok/s, context 31264dsh / t6-payroll: 2805 tokens at 32.8 tok/s, context 34598dsh / t6-payroll: 90 tokens at 36.7 tok/s, context 34745dsh / t6-payroll: 573 tokens at 38.1 tok/s, context 40628dsh / t6-payroll: 5741 tokens at 36.3 tok/s, context 55923dsh / t6-payroll: 382 tokens at 35.3 tok/s, context 56362dsh / t6-payroll: 2328 tokens at 36.2 tok/s, context 58834dsh / t6-payroll: 937 tokens at 37.7 tok/s, context 60282dsh / t6-payroll: 955 tokens at 37.5 tok/s, context 61758dsh / t6-payroll: 1127 tokens at 35.5 tok/s, context 63141dsh / t6-payroll: 1308 tokens at 37.1 tok/s, context 65010dsh / t6-payroll: 156 tokens at 38.1 tok/s, context 65207dsh / t6-payroll: 2836 tokens at 36.7 tok/s, context 68064dsh / t6-payroll: 1932 tokens at 38.1 tok/s, context 70613dsh / t6-payroll: 124 tokens at 37.6 tok/s, context 70846dsh / t6-payroll: 788 tokens at 35.3 tok/s, context 73949dsh / t6-payroll: 1825 tokens at 37.8 tok/s, context 75995dsh / t6-payroll: 132 tokens at 39.5 tok/s, context 76181dsh / t6-payroll: 129 tokens at 38.7 tok/s, context 76529dsh / t6-payroll: 928 tokens at 36.1 tok/s, context 78602dsh / t6-payroll: 31 tokens at 33.5 tok/s, context 99dsh / t6-payroll: 31 tokens at 33.5 tok/s, context 99dsh / t6-payroll: 51 tokens at 45.3 tok/s, context 9842dsh / t6-payroll: 68 tokens at 43.1 tok/s, context 9936dsh / t6-payroll: 66 tokens at 42.3 tok/s, context 10376dsh / t6-payroll: 58 tokens at 40.2 tok/s, context 10772dsh / t6-payroll: 54 tokens at 40.1 tok/s, context 22046dsh / t6-payroll: 57 tokens at 42.3 tok/s, context 22209dsh / t6-payroll: 22002 tokens at 39.0 tok/s, context 44479dsh / t6-payroll: 73 tokens at 41.0 tok/s, context 44608dsh / t6-payroll: 13912 tokens at 38.9 tok/s, context 61970dsh / t6-payroll: 997 tokens at 40.0 tok/s, context 63066dsh / t6-payroll: 747 tokens at 37.6 tok/s, context 64198dsh / t6-payroll: 31 tokens at 39.7 tok/s, context 99dsh / t6-payroll: 31 tokens at 39.7 tok/s, context 99dsh / t6-payroll: 91 tokens at 41.0 tok/s, context 9884dsh / t6-payroll: 143 tokens at 43.5 tok/s, context 10357dsh / t6-payroll: 87 tokens at 42.9 tok/s, context 11139dsh / t6-payroll: 8726 tokens at 38.5 tok/s, context 31086dsh / t6-payroll: 3130 tokens at 39.7 tok/s, context 34570dsh / t6-payroll: 599 tokens at 38.6 tok/s, context 35226dsh / t6-payroll: 99 tokens at 42.4 tok/s, context 35731dsh / t6-payroll: 409 tokens at 37.4 tok/s, context 37139dsh / t6-payroll: 289 tokens at 34.3 tok/s, context 37471dsh / t6-payroll: 303 tokens at 35.9 tok/s, context 37980dsh / t6-payroll: 4661 tokens at 37.7 tok/s, context 47533dsh / t6-payroll: 184 tokens at 38.1 tok/s, context 47772dsh / t6-payroll: 5896 tokens at 40.0 tok/s, context 65386dsh / t6-payroll: 441 tokens at 35.7 tok/s, context 65868dsh / t6-payroll: 5357 tokens at 37.5 tok/s, context 74222dsh / t6-payroll: 443 tokens at 37.7 tok/s, context 74721dsh / t6-payroll: 380 tokens at 36.9 tok/s, context 75141dsh / t6-payroll: 371 tokens at 37.2 tok/s, context 75598dsh / t6-payroll: 1788 tokens at 39.6 tok/s, context 77411dsh / t6-payroll: 2120 tokens at 36.9 tok/s, context 80700dsh / t6-payroll: 1661 tokens at 39.4 tok/s, context 82984dsh / t6-payroll: 890 tokens at 40.0 tok/s, context 84387dsh / t6-payroll: 2825 tokens at 38.9 tok/s, context 87846dsh / t6-payroll: 2466 tokens at 39.7 tok/s, context 91600dsh / t6-payroll: 3995 tokens at 38.6 tok/s, context 96237dsh / t6-payroll: 1274 tokens at 38.0 tok/s, context 97840dsh / t6-payroll: 1114 tokens at 43.1 tok/s, context 98994dsh / t6-payroll: 331 tokens at 37.0 tok/s, context 99380dsh / t6-payroll: 655 tokens at 36.4 tok/s, context 100404dsh / t6-payroll: 31 tokens at 39.0 tok/s, context 99dsh / t6-payroll: 31 tokens at 39.0 tok/s, context 99dsh / t6-payroll: 67 tokens at 43.9 tok/s, context 9862dsh / t6-payroll: 72 tokens at 44.3 tok/s, context 9960dsh / t6-payroll: 101 tokens at 43.5 tok/s, context 10313dsh / t6-payroll: 57 tokens at 40.8 tok/s, context 10808dsh / t6-payroll: 10964 tokens at 37.6 tok/s, context 32994dsh / t6-payroll: 3093 tokens at 40.5 tok/s, context 36269dsh / t6-payroll: 196 tokens at 35.6 tok/s, context 36522dsh / t6-payroll: 5941 tokens at 38.3 tok/s, context 44053dsh / t6-payroll: 13030 tokens at 39.5 tok/s, context 58185dsh / t6-payroll: 5919 tokens at 37.8 tok/s, context 65660dsh / t6-payroll: 1661 tokens at 34.5 tok/s, context 67378dsh / t6-payroll: 629 tokens at 37.2 tok/s, context 68079dsh / t6-payroll: 239 tokens at 33.4 tok/s, context 68359dsh / t6-payroll: 894 tokens at 31.5 tok/s, context 69277dsh / t6-payroll: 450 tokens at 36.2 tok/s, context 70784dsh / t6-payroll: 1138 tokens at 36.4 tok/s, context 72152opencode / t1-cold-fix: 31 tokens at 39.2 tok/s, context 99opencode / t1-cold-fix: 141 tokens at 33.4 tok/s, context 846opencode / t1-cold-fix: 58 tokens at 39.1 tok/s, context 7305opencode / t1-cold-fix: 70 tokens at 39.2 tok/s, context 7636opencode / t1-cold-fix: 124 tokens at 36.8 tok/s, context 8883opencode / t1-cold-fix: 137 tokens at 39.7 tok/s, context 9701opencode / t1-cold-fix: 97 tokens at 37.4 tok/s, context 10060opencode / t1-cold-fix: 132 tokens at 39.6 tok/s, context 10938opencode / t1-cold-fix: 176 tokens at 40.6 tok/s, context 11851opencode / t1-cold-fix: 139 tokens at 40.1 tok/s, context 12605opencode / t1-cold-fix: 199 tokens at 40.8 tok/s, context 13593opencode / t1-cold-fix: 373 tokens at 38.8 tok/s, context 14388opencode / t1-cold-fix: 191 tokens at 42.4 tok/s, context 14890opencode / t1-cold-fix: 293 tokens at 43.2 tok/s, context 15202opencode / t1-cold-fix: 82 tokens at 40.6 tok/s, context 15303opencode / t1-cold-fix: 69 tokens at 42.6 tok/s, context 15407opencode / t1-cold-fix: 178 tokens at 38.7 tok/s, context 15663opencode / t1-cold-fix: 270 tokens at 38.1 tok/s, context 15960opencode / t1-cold-fix: 31 tokens at 36.5 tok/s, context 99opencode / t1-cold-fix: 101 tokens at 37.2 tok/s, context 806opencode / t1-cold-fix: 48 tokens at 45.1 tok/s, context 7291opencode / t1-cold-fix: 56 tokens at 43.6 tok/s, context 7608opencode / t1-cold-fix: 57 tokens at 43.6 tok/s, context 8219opencode / t1-cold-fix: 221 tokens at 44.0 tok/s, context 8538opencode / t1-cold-fix: 139 tokens at 44.6 tok/s, context 10831opencode / t1-cold-fix: 75 tokens at 44.2 tok/s, context 13021opencode / t1-cold-fix: 1249 tokens at 38.5 tok/s, context 14857opencode / t1-cold-fix: 1495 tokens at 40.2 tok/s, context 16772opencode / t1-cold-fix: 159 tokens at 40.6 tok/s, context 16950opencode / t1-cold-fix: 74 tokens at 45.8 tok/s, context 17043opencode / t1-cold-fix: 78 tokens at 42.7 tok/s, context 17156opencode / t1-cold-fix: 253 tokens at 37.4 tok/s, context 17487opencode / t1-cold-fix: 216 tokens at 35.9 tok/s, context 17732opencode / t1-cold-fix: 31 tokens at 40.6 tok/s, context 99opencode / t1-cold-fix: 31 tokens at 40.6 tok/s, context 99opencode / t1-cold-fix: 91 tokens at 34.9 tok/s, context 796opencode / t1-cold-fix: 48 tokens at 47.4 tok/s, context 7297opencode / t1-cold-fix: 62 tokens at 41.8 tok/s, context 7620opencode / t1-cold-fix: 52 tokens at 40.7 tok/s, context 8240opencode / t1-cold-fix: 57 tokens at 45.7 tok/s, context 9612opencode / t1-cold-fix: 62 tokens at 46.1 tok/s, context 10421opencode / t1-cold-fix: 107 tokens at 39.0 tok/s, context 10791opencode / t1-cold-fix: 113 tokens at 38.8 tok/s, context 11642opencode / t1-cold-fix: 110 tokens at 38.8 tok/s, context 12434opencode / t1-cold-fix: 59 tokens at 44.5 tok/s, context 12805opencode / t1-cold-fix: 47 tokens at 45.7 tok/s, context 12953opencode / t1-cold-fix: 345 tokens at 39.0 tok/s, context 13633opencode / t1-cold-fix: 91 tokens at 41.6 tok/s, context 14340opencode / t1-cold-fix: 943 tokens at 42.2 tok/s, context 16073opencode / t1-cold-fix: 134 tokens at 46.5 tok/s, context 16226opencode / t1-cold-fix: 64 tokens at 43.1 tok/s, context 16309opencode / t1-cold-fix: 50 tokens at 41.8 tok/s, context 16394opencode / t1-cold-fix: 203 tokens at 38.6 tok/s, context 16675opencode / t1-cold-fix: 206 tokens at 34.6 tok/s, context 16908opencode / t1-cold-fix: 31 tokens at 40.5 tok/s, context 99opencode / t1-cold-fix: 31 tokens at 40.5 tok/s, context 99opencode / t1-cold-fix: 233 tokens at 34.2 tok/s, context 938opencode / t1-cold-fix: 47 tokens at 49.6 tok/s, context 7294opencode / t1-cold-fix: 46 tokens at 44.0 tok/s, context 7568opencode / t1-cold-fix: 56 tokens at 40.5 tok/s, context 7718opencode / t1-cold-fix: 235 tokens at 46.6 tok/s, context 9263opencode / t1-cold-fix: 145 tokens at 43.6 tok/s, context 11572opencode / t1-cold-fix: 488 tokens at 37.9 tok/s, context 14181opencode / t1-cold-fix: 1105 tokens at 41.5 tok/s, context 15708opencode / t1-cold-fix: 183 tokens at 45.2 tok/s, context 15910opencode / t1-cold-fix: 52 tokens at 43.6 tok/s, context 15981opencode / t1-cold-fix: 50 tokens at 49.4 tok/s, context 16066opencode / t1-cold-fix: 76 tokens at 42.0 tok/s, context 16184opencode / t1-cold-fix: 140 tokens at 38.5 tok/s, context 16351opencode / t1-cold-fix: 31 tokens at 40.4 tok/s, context 99opencode / t2-logsift: 31 tokens at 40.4 tok/s, context 99opencode / t2-logsift: 151 tokens at 32.9 tok/s, context 2147opencode / t2-logsift: 53 tokens at 44.7 tok/s, context 8593opencode / t2-logsift: 54 tokens at 46.0 tok/s, context 8791opencode / t2-logsift: 15761 tokens at 33.6 tok/s, context 25815opencode / t2-logsift: 2461 tokens at 40.9 tok/s, context 28306opencode / t2-logsift: 2667 tokens at 42.2 tok/s, context 30993opencode / t2-logsift: 185 tokens at 38.4 tok/s, context 31198opencode / t2-logsift: 66 tokens at 43.1 tok/s, context 31283opencode / t2-logsift: 1543 tokens at 39.2 tok/s, context 32871opencode / t2-logsift: 552 tokens at 36.2 tok/s, context 33636opencode / t2-logsift: 31 tokens at 40.2 tok/s, context 99opencode / t2-logsift: 31 tokens at 40.2 tok/s, context 99opencode / t2-logsift: 234 tokens at 35.0 tok/s, context 2230opencode / t2-logsift: 90 tokens at 44.5 tok/s, context 8626opencode / t2-logsift: 8052 tokens at 33.4 tok/s, context 18068opencode / t2-logsift: 1908 tokens at 34.5 tok/s, context 20064opencode / t2-logsift: 125 tokens at 35.1 tok/s, context 20209opencode / t2-logsift: 1989 tokens at 37.4 tok/s, context 22243opencode / t2-logsift: 2244 tokens at 36.3 tok/s, context 24507opencode / t2-logsift: 177 tokens at 36.5 tok/s, context 24704opencode / t2-logsift: 132 tokens at 37.2 tok/s, context 24855opencode / t2-logsift: 155 tokens at 33.3 tok/s, context 25164opencode / t2-logsift: 1605 tokens at 34.4 tok/s, context 26788opencode / t2-logsift: 122 tokens at 44.1 tok/s, context 27026opencode / t2-logsift: 199 tokens at 32.8 tok/s, context 27244opencode / t2-logsift: 205 tokens at 34.7 tok/s, context 27561opencode / t2-logsift: 77 tokens at 34.8 tok/s, context 27729opencode / t2-logsift: 90 tokens at 38.9 tok/s, context 28025opencode / t2-logsift: 155 tokens at 41.1 tok/s, context 28924opencode / t2-logsift: 98 tokens at 39.2 tok/s, context 29041opencode / t2-logsift: 3165 tokens at 36.8 tok/s, context 32231opencode / t2-logsift: 701 tokens at 31.9 tok/s, context 32952opencode / t2-logsift: 52 tokens at 42.0 tok/s, context 33023opencode / t2-logsift: 2417 tokens at 39.7 tok/s, context 35462opencode / t2-logsift: 52 tokens at 42.8 tok/s, context 35534opencode / t2-logsift: 266 tokens at 42.9 tok/s, context 36038opencode / t2-logsift: 135 tokens at 42.5 tok/s, context 36192opencode / t2-logsift: 930 tokens at 33.9 tok/s, context 37144opencode / t2-logsift: 656 tokens at 34.8 tok/s, context 37922opencode / t2-logsift: 215 tokens at 37.0 tok/s, context 38170opencode / t2-logsift: 342 tokens at 34.1 tok/s, context 39281opencode / t2-logsift: 96 tokens at 39.0 tok/s, context 39405opencode / t2-logsift: 288 tokens at 33.9 tok/s, context 39714opencode / t2-logsift: 31 tokens at 36.6 tok/s, context 99opencode / t2-logsift: 31 tokens at 36.6 tok/s, context 99opencode / t2-logsift: 110 tokens at 34.5 tok/s, context 2106opencode / t2-logsift: 64 tokens at 41.1 tok/s, context 8604opencode / t2-logsift: 58 tokens at 46.1 tok/s, context 8808opencode / t2-logsift: 6250 tokens at 36.5 tok/s, context 16321opencode / t2-logsift: 221 tokens at 41.2 tok/s, context 16562opencode / t2-logsift: 518 tokens at 45.1 tok/s, context 17099opencode / t2-logsift: 2387 tokens at 43.6 tok/s, context 19505opencode / t2-logsift: 147 tokens at 41.9 tok/s, context 19701opencode / t2-logsift: 537 tokens at 36.6 tok/s, context 21026opencode / t2-logsift: 216 tokens at 40.0 tok/s, context 21261opencode / t2-logsift: 726 tokens at 39.9 tok/s, context 22172opencode / t2-logsift: 31 tokens at 40.5 tok/s, context 99opencode / t2-logsift: 31 tokens at 40.5 tok/s, context 99opencode / t2-logsift: 283 tokens at 34.3 tok/s, context 2279opencode / t2-logsift: 65 tokens at 42.5 tok/s, context 8601opencode / t2-logsift: 256 tokens at 38.9 tok/s, context 10087opencode / t2-logsift: 9766 tokens at 35.6 tok/s, context 20432opencode / t2-logsift: 232 tokens at 41.8 tok/s, context 20684opencode / t2-logsift: 179 tokens at 35.1 tok/s, context 20882opencode / t2-logsift: 304 tokens at 39.4 tok/s, context 21318opencode / t2-logsift: 220 tokens at 35.2 tok/s, context 21680opencode / t2-logsift: 321 tokens at 36.8 tok/s, context 22123opencode / t2-logsift: 291 tokens at 39.6 tok/s, context 22800opencode / t2-logsift: 417 tokens at 39.9 tok/s, context 23260opencode / t2-logsift: 234 tokens at 35.3 tok/s, context 23513opencode / t2-logsift: 5999 tokens at 39.9 tok/s, context 30129opencode / t2-logsift: 163 tokens at 38.5 tok/s, context 30312opencode / t2-logsift: 199 tokens at 34.3 tok/s, context 30530opencode / t2-logsift: 412 tokens at 39.5 tok/s, context 31047opencode / t2-logsift: 288 tokens at 37.8 tok/s, context 31432opencode / t2-logsift: 191 tokens at 37.6 tok/s, context 31721opencode / t2-logsift: 345 tokens at 36.9 tok/s, context 32339opencode / t2-logsift: 264 tokens at 38.9 tok/s, context 32701opencode / t2-logsift: 534 tokens at 36.5 tok/s, context 33981opencode / t2-logsift: 5881 tokens at 42.8 tok/s, context 39911opencode / t2-logsift: 327 tokens at 36.9 tok/s, context 40258opencode / t2-logsift: 556 tokens at 41.0 tok/s, context 41216opencode / t2-logsift: 1392 tokens at 35.2 tok/s, context 42628opencode / t2-logsift: 396 tokens at 34.1 tok/s, context 44204opencode / t2-logsift: 109 tokens at 40.5 tok/s, context 44346opencode / t2-logsift: 82 tokens at 39.0 tok/s, context 44478opencode / t2-logsift: 183 tokens at 34.0 tok/s, context 45674opencode / t2-logsift: 31 tokens at 40.6 tok/s, context 99opencode / t3-shoebox: 31 tokens at 40.6 tok/s, context 99opencode / t3-shoebox: 192 tokens at 37.5 tok/s, context 1992opencode / t3-shoebox: 58 tokens at 41.6 tok/s, context 8402opencode / t3-shoebox: 110 tokens at 46.5 tok/s, context 9019opencode / t3-shoebox: 180 tokens at 40.3 tok/s, context 12622opencode / t3-shoebox: 148 tokens at 38.9 tok/s, context 19162opencode / t3-shoebox: 6639 tokens at 37.2 tok/s, context 25941opencode / t3-shoebox: 1859 tokens at 39.2 tok/s, context 28106opencode / t3-shoebox: 1226 tokens at 36.1 tok/s, context 29650opencode / t3-shoebox: 1136 tokens at 39.4 tok/s, context 30934opencode / t3-shoebox: 1401 tokens at 38.6 tok/s, context 32419opencode / t3-shoebox: 552 tokens at 37.9 tok/s, context 33117opencode / t3-shoebox: 3763 tokens at 38.5 tok/s, context 37038opencode / t3-shoebox: 115 tokens at 36.8 tok/s, context 37520opencode / t3-shoebox: 160 tokens at 34.4 tok/s, context 37712opencode / t3-shoebox: 31 tokens at 39.9 tok/s, context 99opencode / t3-shoebox: 123 tokens at 36.3 tok/s, context 1923opencode / t3-shoebox: 51 tokens at 47.6 tok/s, context 8391opencode / t3-shoebox: 178 tokens at 39.8 tok/s, context 8954opencode / t3-shoebox: 114 tokens at 41.7 tok/s, context 9264opencode / t3-shoebox: 416 tokens at 38.7 tok/s, context 13744opencode / t3-shoebox: 176 tokens at 41.9 tok/s, context 17339opencode / t3-shoebox: 7795 tokens at 35.9 tok/s, context 29790opencode / t3-shoebox: 1508 tokens at 41.8 tok/s, context 31388opencode / t3-shoebox: 720 tokens at 41.4 tok/s, context 32128opencode / t3-shoebox: 1373 tokens at 40.7 tok/s, context 33871opencode / t3-shoebox: 733 tokens at 36.7 tok/s, context 36839opencode / t3-shoebox: 1762 tokens at 37.7 tok/s, context 39127opencode / t3-shoebox: 148 tokens at 40.1 tok/s, context 39641opencode / t3-shoebox: 292 tokens at 38.1 tok/s, context 39956opencode / t3-shoebox: 31 tokens at 39.9 tok/s, context 99opencode / t3-shoebox: 31 tokens at 39.9 tok/s, context 99opencode / t3-shoebox: 431 tokens at 32.9 tok/s, context 2231opencode / t3-shoebox: 54 tokens at 42.3 tok/s, context 8394opencode / t3-shoebox: 150 tokens at 43.3 tok/s, context 9051opencode / t3-shoebox: 267 tokens at 42.6 tok/s, context 12786opencode / t3-shoebox: 63 tokens at 42.4 tok/s, context 16268opencode / t3-shoebox: 3486 tokens at 35.4 tok/s, context 23882opencode / t3-shoebox: 3148 tokens at 37.5 tok/s, context 27590opencode / t3-shoebox: 129 tokens at 32.6 tok/s, context 27739opencode / t3-shoebox: 1096 tokens at 38.3 tok/s, context 29237opencode / t3-shoebox: 214 tokens at 37.3 tok/s, context 29470opencode / t3-shoebox: 175 tokens at 41.2 tok/s, context 29664opencode / t3-shoebox: 291 tokens at 37.0 tok/s, context 29974opencode / t3-shoebox: 72 tokens at 40.3 tok/s, context 30065opencode / t3-shoebox: 894 tokens at 37.3 tok/s, context 31508opencode / t3-shoebox: 213 tokens at 35.9 tok/s, context 31777opencode / t3-shoebox: 775 tokens at 37.0 tok/s, context 32646opencode / t3-shoebox: 66 tokens at 37.0 tok/s, context 32731opencode / t3-shoebox: 891 tokens at 36.4 tok/s, context 33640opencode / t3-shoebox: 104 tokens at 36.6 tok/s, context 33763opencode / t3-shoebox: 549 tokens at 36.6 tok/s, context 34418opencode / t3-shoebox: 186 tokens at 34.1 tok/s, context 34684opencode / t3-shoebox: 91 tokens at 43.0 tok/s, context 35306opencode / t3-shoebox: 593 tokens at 36.2 tok/s, context 36158opencode / t3-shoebox: 1982 tokens at 35.3 tok/s, context 38218opencode / t3-shoebox: 160 tokens at 32.1 tok/s, context 40213opencode / t3-shoebox: 554 tokens at 37.1 tok/s, context 40813opencode / t3-shoebox: 597 tokens at 35.6 tok/s, context 41572opencode / t3-shoebox: 1770 tokens at 37.3 tok/s, context 43406opencode / t3-shoebox: 170 tokens at 31.9 tok/s, context 43595opencode / t3-shoebox: 1060 tokens at 33.0 tok/s, context 45545opencode / t3-shoebox: 794 tokens at 38.6 tok/s, context 46444opencode / t3-shoebox: 90 tokens at 38.5 tok/s, context 47020opencode / t3-shoebox: 218 tokens at 36.1 tok/s, context 47414opencode / t3-shoebox: 31 tokens at 33.6 tok/s, context 99opencode / t3-shoebox: 31 tokens at 33.6 tok/s, context 99opencode / t3-shoebox: 313 tokens at 31.5 tok/s, context 2113opencode / t3-shoebox: 50 tokens at 47.4 tok/s, context 8392opencode / t3-shoebox: 126 tokens at 42.3 tok/s, context 8903opencode / t3-shoebox: 74 tokens at 44.6 tok/s, context 10047opencode / t3-shoebox: 155 tokens at 40.2 tok/s, context 12473opencode / t3-shoebox: 219 tokens at 39.7 tok/s, context 13852opencode / t3-shoebox: 144 tokens at 42.0 tok/s, context 16267opencode / t3-shoebox: 6360 tokens at 36.8 tok/s, context 26756opencode / t3-shoebox: 93 tokens at 39.9 tok/s, context 26869opencode / t3-shoebox: 1258 tokens at 35.1 tok/s, context 28478opencode / t3-shoebox: 673 tokens at 38.4 tok/s, context 29228opencode / t3-shoebox: 432 tokens at 37.7 tok/s, context 29719opencode / t3-shoebox: 472 tokens at 39.7 tok/s, context 30210opencode / t3-shoebox: 141 tokens at 36.9 tok/s, context 30422opencode / t3-shoebox: 1567 tokens at 37.3 tok/s, context 32350opencode / t3-shoebox: 876 tokens at 36.6 tok/s, context 33530opencode / t3-shoebox: 221 tokens at 40.0 tok/s, context 33782opencode / t3-shoebox: 278 tokens at 37.5 tok/s, context 34107opencode / t3-shoebox: 1155 tokens at 36.8 tok/s, context 35532opencode / t3-shoebox: 1725 tokens at 37.6 tok/s, context 37317opencode / t3-shoebox: 2438 tokens at 40.2 tok/s, context 40127opencode / t3-shoebox: 226 tokens at 33.1 tok/s, context 40406opencode / t3-shoebox: 31 tokens at 33.1 tok/s, context 99opencode / t4-night-shift: 31 tokens at 33.1 tok/s, context 99opencode / t4-night-shift: 178 tokens at 33.3 tok/s, context 1507opencode / t4-night-shift: 57 tokens at 42.2 tok/s, context 7924opencode / t4-night-shift: 527 tokens at 44.7 tok/s, context 8761opencode / t4-night-shift: 4571 tokens at 36.0 tok/s, context 15508opencode / t4-night-shift: 159 tokens at 42.0 tok/s, context 16116opencode / t4-night-shift: 326 tokens at 45.4 tok/s, context 16462opencode / t4-night-shift: 518 tokens at 45.9 tok/s, context 17000opencode / t4-night-shift: 267 tokens at 44.2 tok/s, context 17287opencode / t4-night-shift: 457 tokens at 43.9 tok/s, context 17772opencode / t4-night-shift: 534 tokens at 45.1 tok/s, context 18326opencode / t4-night-shift: 671 tokens at 42.2 tok/s, context 19026opencode / t4-night-shift: 105 tokens at 39.6 tok/s, context 19160opencode / t4-night-shift: 2218 tokens at 39.2 tok/s, context 21449opencode / t4-night-shift: 123 tokens at 39.2 tok/s, context 21592opencode / t4-night-shift: 273 tokens at 41.7 tok/s, context 21949opencode / t4-night-shift: 138 tokens at 37.2 tok/s, context 22106opencode / t4-night-shift: 360 tokens at 35.9 tok/s, context 22634opencode / t4-night-shift: 487 tokens at 36.2 tok/s, context 23160opencode / t4-night-shift: 1160 tokens at 33.8 tok/s, context 24569opencode / t4-night-shift: 1347 tokens at 35.7 tok/s, context 27070opencode / t4-night-shift: 162 tokens at 41.1 tok/s, context 27251opencode / t4-night-shift: 524 tokens at 36.6 tok/s, context 27888opencode / t4-night-shift: 124 tokens at 41.9 tok/s, context 28075opencode / t4-night-shift: 112 tokens at 40.9 tok/s, context 28307opencode / t4-night-shift: 600 tokens at 40.3 tok/s, context 28981opencode / t4-night-shift: 185 tokens at 37.4 tok/s, context 29614opencode / t4-night-shift: 31 tokens at 33.9 tok/s, context 99opencode / t4-night-shift: 150 tokens at 33.1 tok/s, context 1479opencode / t4-night-shift: 55 tokens at 41.0 tok/s, context 7926opencode / t4-night-shift: 556 tokens at 45.6 tok/s, context 8792opencode / t4-night-shift: 145 tokens at 37.9 tok/s, context 11137opencode / t4-night-shift: 246 tokens at 35.3 tok/s, context 11654opencode / t4-night-shift: 5582 tokens at 36.8 tok/s, context 17269opencode / t4-night-shift: 205 tokens at 41.5 tok/s, context 17974opencode / t4-night-shift: 524 tokens at 45.0 tok/s, context 18518opencode / t4-night-shift: 262 tokens at 47.4 tok/s, context 18800opencode / t4-night-shift: 312 tokens at 39.1 tok/s, context 19131opencode / t4-night-shift: 526 tokens at 43.5 tok/s, context 19687opencode / t4-night-shift: 544 tokens at 41.7 tok/s, context 20251opencode / t4-night-shift: 406 tokens at 42.5 tok/s, context 20677opencode / t4-night-shift: 638 tokens at 42.2 tok/s, context 21335opencode / t4-night-shift: 67 tokens at 44.9 tok/s, context 21431opencode / t4-night-shift: 457 tokens at 38.1 tok/s, context 21921opencode / t4-night-shift: 1012 tokens at 36.1 tok/s, context 2341opencode / t4-night-shift: 95 tokens at 46.0 tok/s, context 7964opencode / t4-night-shift: 365 tokens at 43.1 tok/s, context 8438opencode / t4-night-shift: 183 tokens at 44.6 tok/s, context 10259opencode / t4-night-shift: 5761 tokens at 35.0 tok/s, context 16580opencode / t4-night-shift: 307 tokens at 41.3 tok/s, context 17007opencode / t4-night-shift: 531 tokens at 43.5 tok/s, context 17920opencode / t4-night-shift: 660 tokens at 44.4 tok/s, context 18610opencode / t4-night-shift: 589 tokens at 41.7 tok/s, context 19229opencode / t4-night-shift: 500 tokens at 44.2 tok/s, context 19759opencode / t4-night-shift: 797 tokens at 35.2 tok/s, context 20586opencode / t4-night-shift: 120 tokens at 38.7 tok/s, context 20725opencode / t4-night-shift: 476 tokens at 38.0 tok/s, context 21234opencode / t4-night-shift: 31 tokens at 33.8 tok/s, context 99opencode / t4-night-shift: 278 tokens at 35.6 tok/s, context 1607opencode / t4-night-shift: 81 tokens at 40.7 tok/s, context 7948opencode / t4-night-shift: 358 tokens at 44.4 tok/s, context 8606opencode / t4-night-shift: 200 tokens at 44.2 tok/s, context 10436opencode / t4-night-shift: 10192 tokens at 37.3 tok/s, context 21162opencode / t4-night-shift: 514 tokens at 46.6 tok/s, context 22003opencode / t4-night-shift: 1011 tokens at 45.5 tok/s, context 23054opencode / t4-night-shift: 382 tokens at 46.4 tok/s, context 23466opencode / t4-night-shift: 1242 tokens at 42.5 tok/s, context 24748opencode / t4-night-shift: 373 tokens at 36.0 tok/s, context 25161opencode / t4-night-shift: 147 tokens at 42.1 tok/s, context 25331opencode / t5-regression: 31 tokens at 40.6 tok/s, context 99opencode / t5-regression: 464 tokens at 33.1 tok/s, context 1245opencode / t5-regression: 47 tokens at 46.4 tok/s, context 7364opencode / t5-regression: 85 tokens at 41.9 tok/s, context 7661opencode / t5-regression: 479 tokens at 39.3 tok/s, context 8637opencode / t5-regression: 838 tokens at 39.9 tok/s, context 9637opencode / t5-regression: 357 tokens at 36.1 tok/s, context 10540opencode / t5-regression: 138 tokens at 39.5 tok/s, context 10799opencode / t5-regression: 134 tokens at 39.6 tok/s, context 10994opencode / t5-regression: 451 tokens at 35.9 tok/s, context 11916opencode / t5-regression: 111 tokens at 45.4 tok/s, context 12097opencode / t5-regression: 66 tokens at 41.7 tok/s, context 12182opencode / t5-regression: 227 tokens at 41.5 tok/s, context 12553opencode / t5-regression: 95 tokens at 39.6 tok/s, context 12668opencode / t5-regression: 246 tokens at 41.3 tok/s, context 12961opencode / t5-regression: 31 tokens at 40.2 tok/s, context 99opencode / t5-regression: 1277 tokens at 39.4 tok/s, context 2058opencode / t5-regression: 46 tokens at 47.0 tok/s, context 7365opencode / t5-regression: 126 tokens at 37.9 tok/s, context 7703opencode / t5-regression: 74 tokens at 38.7 tok/s, context 8345opencode / t5-regression: 66 tokens at 45.4 tok/s, context 9658opencode / t5-regression: 192 tokens at 37.6 tok/s, context 10223opencode / t5-regression: 941 tokens at 39.2 tok/s, context 12832opencode / t5-regression: 62 tokens at 41.6 tok/s, context 13096opencode / t5-regression: 465 tokens at 36.7 tok/s, context 15771opencode / t5-regression: 395 tokens at 39.2 tok/s, context 16908opencode / t5-regression: 413 tokens at 39.3 tok/s, context 18181opencode / t5-regression: 155 tokens at 43.6 tok/s, context 18557opencode / t5-regression: 121 tokens at 37.9 tok/s, context 18697opencode / t5-regression: 88 tokens at 44.7 tok/s, context 18820opencode / t5-regression: 220 tokens at 40.8 tok/s, context 19094opencode / t5-regression: 55 tokens at 42.2 tok/s, context 19169opencode / t5-regression: 232 tokens at 38.9 tok/s, context 19425opencode / t5-regression: 31 tokens at 40.2 tok/s, context 99opencode / t5-regression: 72 tokens at 38.2 tok/s, context 853opencode / t5-regression: 45 tokens at 44.5 tok/s, context 7364opencode / t5-regression: 50 tokens at 41.9 tok/s, context 7626opencode / t5-regression: 58 tokens at 41.5 tok/s, context 8240opencode / t5-regression: 700 tokens at 39.0 tok/s, context 9282opencode / t5-regression: 193 tokens at 36.8 tok/s, context 11143opencode / t5-regression: 100 tokens at 43.3 tok/s, context 11394opencode / t5-regression: 467 tokens at 37.5 tok/s, context 12639opencode / t5-regression: 172 tokens at 33.2 tok/s, context 12840opencode / t5-regression: 125 tokens at 44.1 tok/s, context 13033opencode / t5-regression: 117 tokens at 40.4 tok/s, context 13200opencode / t5-regression: 141 tokens at 39.9 tok/s, context 13522opencode / t5-regression: 96 tokens at 40.9 tok/s, context 13637opencode / t5-regression: 101 tokens at 46.3 tok/s, context 13773opencode / t5-regression: 254 tokens at 38.9 tok/s, context 14081opencode / t5-regression: 58 tokens at 44.4 tok/s, context 14159opencode / t5-regression: 237 tokens at 38.8 tok/s, context 14441opencode / t5-regression: 31 tokens at 40.2 tok/s, context 99opencode / t5-regression: 31 tokens at 40.2 tok/s, context 99opencode / t5-regression: 92 tokens at 33.7 tok/s, context 873opencode / t5-regression: 49 tokens at 48.0 tok/s, context 7374opencode / t5-regression: 45 tokens at 39.9 tok/s, context 7843opencode / t5-regression: 66 tokens at 39.7 tok/s, context 8465opencode / t5-regression: 185 tokens at 36.9 tok/s, context 8993opencode / t5-regression: 1590 tokens at 38.8 tok/s, context 12950opencode / t5-regression: 913 tokens at 36.6 tok/s, context 15686opencode / t5-regression: 365 tokens at 35.1 tok/s, context 16079opencode / t5-regression: 345 tokens at 35.1 tok/s, context 17399opencode / t5-regression: 549 tokens at 36.8 tok/s, context 18102opencode / t5-regression: 1120 tokens at 35.9 tok/s, context 19704opencode / t5-regression: 154 tokens at 40.9 tok/s, context 19921opencode / t5-regression: 82 tokens at 44.9 tok/s, context 20022opencode / t5-regression: 296 tokens at 40.3 tok/s, context 20353opencode / t5-regression: 189 tokens at 34.7 tok/s, context 20562opencode / t5-regression: 238 tokens at 40.2 tok/s, context 20845opencode / t5-regression: 31 tokens at 40.0 tok/s, context 99opencode / t6-payroll: 31 tokens at 40.0 tok/s, context 99opencode / t6-payroll: 172 tokens at 32.8 tok/s, context 2779opencode / t6-payroll: 61 tokens at 42.4 tok/s, context 9212opencode / t6-payroll: 153 tokens at 43.2 tok/s, context 9617opencode / t6-payroll: 58 tokens at 40.8 tok/s, context 10376opencode / t6-payroll: 11531 tokens at 36.2 tok/s, context 33130opencode / t6-payroll: 2125 tokens at 40.8 tok/s, context 35275opencode / t6-payroll: 2797 tokens at 41.1 tok/s, context 38092opencode / t6-payroll: 505 tokens at 36.0 tok/s, context 38617opencode / t6-payroll: 11220 tokens at 39.4 tok/s, context 56047opencode / t6-payroll: 799 tokens at 44.1 tok/s, context 56926opencode / t6-payroll: 6384 tokens at 39.6 tok/s, context 64187opencode / t6-payroll: 8503 tokens at 39.0 tok/s, context 73231opencode / t6-payroll: 1406 tokens at 38.9 tok/s, context 75215opencode / t6-payroll: 443 tokens at 36.1 tok/s, context 75753opencode / t6-payroll: 31 tokens at 39.9 tok/s, context 99opencode / t6-payroll: 31 tokens at 39.9 tok/s, context 99opencode / t6-payroll: 641 tokens at 33.1 tok/s, context 3248opencode / t6-payroll: 45 tokens at 47.8 tok/s, context 9194opencode / t6-payroll: 161 tokens at 43.4 tok/s, context 9685opencode / t6-payroll: 60 tokens at 44.1 tok/s, context 10443opencode / t6-payroll: 11463 tokens at 36.3 tok/s, context 33128opencode / t6-payroll: 70 tokens at 43.2 tok/s, context 33218opencode / t6-payroll: 8042 tokens at 42.1 tok/s, context 42057opencode / t6-payroll: 2279 tokens at 38.3 tok/s, context 45962opencode / t6-payroll: 6205 tokens at 40.9 tok/s, context 53052opencode / t6-payroll: 2625 tokens at 41.7 tok/s, context 56500opencode / t6-payroll: 141 tokens at 38.9 tok/s, context 57987opencode / t6-payroll: 108 tokens at 41.6 tok/s, context 58131opencode / t6-payroll: 224 tokens at 37.4 tok/s, context 58373opencode / t6-payroll: 31 tokens at 39.9 tok/s, context 99opencode / t6-payroll: 31 tokens at 39.9 tok/s, context 99opencode / t6-payroll: 628 tokens at 32.6 tok/s, context 3235opencode / t6-payroll: 48 tokens at 46.8 tok/s, context 9195opencode / t6-payroll: 167 tokens at 45.2 tok/s, context 9692opencode / t6-payroll: 88 tokens at 41.4 tok/s, context 10475opencode / t6-payroll: 12333 tokens at 35.7 tok/s, context 34029opencode / t6-payroll: 206 tokens at 35.5 tok/s, context 34255opencode / t6-payroll: 482 tokens at 39.5 tok/s, context 34826opencode / t6-payroll: 4371 tokens at 36.8 tok/s, context 39433opencode / t6-payroll: 4606 tokens at 40.9 tok/s, context 45384opencode / t6-payroll: 1188 tokens at 37.2 tok/s, context 47929opencode / t6-payroll: 6688 tokens at 39.7 tok/s, context 55745opencode / t6-payroll: 6022 tokens at 39.5 tok/s, context 62821opencode / t6-payroll: 5777 tokens at 38.8 tok/s, context 69940opencode / t6-payroll: 3971 tokens at 38.4 tok/s, context 75929opencode / t6-payroll: 147 tokens at 35.9 tok/s, context 76251opencode / t6-payroll: 31 tokens at 33.0 tok/s, context 99opencode / t6-payroll: 450 tokens at 32.1 tok/s, context 3057opencode / t6-payroll: 58 tokens at 42.1 tok/s, context 9205opencode / t6-payroll: 149 tokens at 39.6 tok/s, context 9606opencode / t6-payroll: 11618 tokens at 36.2 tok/s, context 32871opencode / t6-payroll: 1961 tokens at 39.7 tok/s, context 35101opencode / t6-payroll: 700 tokens at 36.8 tok/s, context 35821opencode / t6-payroll: 134 tokens at 38.0 tok/s, context 35974opencode / t6-payroll: 1736 tokens at 39.4 tok/s, context 38704opencode / t6-payroll: 3741 tokens at 38.0 tok/s, context 44156opencode / t6-payroll: 502 tokens at 34.5 tok/s, context 44678opencode / t6-payroll: 6641 tokens at 40.8 tok/s, context 51339opencode / t6-payroll: 1956 tokens at 40.5 tok/s, context 55229opencode / t6-payroll: 126 tokens at 35.4 tok/s, context 55585opencode / t6-payroll: 31 tokens at 38.5 tok/s, context 99pi / t1-cold-fix: 59 tokens at 43.3 tok/s, context 1738pi / t1-cold-fix: 82 tokens at 39.2 tok/s, context 2118pi / t1-cold-fix: 83 tokens at 39.8 tok/s, context 2828pi / t1-cold-fix: 100 tokens at 39.0 tok/s, context 3810pi / t1-cold-fix: 104 tokens at 40.1 tok/s, context 5454pi / t1-cold-fix: 135 tokens at 37.9 tok/s, context 6481pi / t1-cold-fix: 663 tokens at 39.3 tok/s, context 7479pi / t1-cold-fix: 337 tokens at 41.3 tok/s, context 7844pi / t1-cold-fix: 163 tokens at 38.3 tok/s, context 8036pi / t1-cold-fix: 150 tokens at 40.3 tok/s, context 8686pi / t1-cold-fix: 338 tokens at 33.8 tok/s, context 9072pi / t1-cold-fix: 31 tokens at 39.7 tok/s, context 99pi / t1-cold-fix: 31 tokens at 39.7 tok/s, context 99pi / t1-cold-fix: 60 tokens at 50.9 tok/s, context 1739pi / t1-cold-fix: 67 tokens at 39.0 tok/s, context 2104pi / t1-cold-fix: 115 tokens at 36.2 tok/s, context 3124pi / t1-cold-fix: 474 tokens at 36.5 tok/s, context 8139pi / t1-cold-fix: 404 tokens at 40.0 tok/s, context 9441pi / t1-cold-fix: 120 tokens at 39.6 tok/s, context 9607pi / t1-cold-fix: 145 tokens at 43.0 tok/s, context 9922pi / t1-cold-fix: 159 tokens at 38.5 tok/s, context 10126pi / t1-cold-fix: 158 tokens at 42.7 tok/s, context 10747pi / t1-cold-fix: 350 tokens at 35.1 tok/s, context 11145pi / t1-cold-fix: 31 tokens at 40.1 tok/s, context 99pi / t1-cold-fix: 31 tokens at 40.1 tok/s, context 99pi / t1-cold-fix: 60 tokens at 49.9 tok/s, context 1740pi / t1-cold-fix: 151 tokens at 36.5 tok/s, context 2189pi / t1-cold-fix: 130 tokens at 44.8 tok/s, context 2492pi / t1-cold-fix: 176 tokens at 39.6 tok/s, context 4014pi / t1-cold-fix: 218 tokens at 43.1 tok/s, context 5776pi / t1-cold-fix: 1151 tokens at 40.9 tok/s, context 8146pi / t1-cold-fix: 156 tokens at 35.9 tok/s, context 8349pi / t1-cold-fix: 153 tokens at 39.4 tok/s, context 8982pi / t1-cold-fix: 415 tokens at 34.8 tok/s, context 9445pi / t1-cold-fix: 31 tokens at 40.1 tok/s, context 99pi / t1-cold-fix: 61 tokens at 49.6 tok/s, context 1741pi / t1-cold-fix: 73 tokens at 43.9 tok/s, context 2112pi / t1-cold-fix: 75 tokens at 41.4 tok/s, context 2263pi / t1-cold-fix: 137 tokens at 40.0 tok/s, context 3297pi / t1-cold-fix: 199 tokens at 38.4 tok/s, context 4994pi / t1-cold-fix: 1289 tokens at 39.8 tok/s, context 8170pi / t1-cold-fix: 215 tokens at 40.8 tok/s, context 8506pi / t1-cold-fix: 752 tokens at 39.7 tok/s, context 9286pi / t1-cold-fix: 465 tokens at 35.5 tok/s, context 9779pi / t1-cold-fix: 606 tokens at 42.3 tok/s, context 10411pi / t1-cold-fix: 312 tokens at 44.6 tok/s, context 10751pi / t1-cold-fix: 108 tokens at 39.3 tok/s, context 10888pi / t1-cold-fix: 108 tokens at 39.6 tok/s, context 11470pi / t1-cold-fix: 169 tokens at 38.0 tok/s, context 11883pi / t1-cold-fix: 404 tokens at 34.5 tok/s, context 12348pi / t1-cold-fix: 31 tokens at 39.9 tok/s, context 99pi / t2-logsift: 60 tokens at 43.7 tok/s, context 3021pi / t2-logsift: 1826 tokens at 32.8 tok/s, context 5798pi / t2-logsift: 2460 tokens at 39.5 tok/s, context 8590pi / t2-logsift: 600 tokens at 42.0 tok/s, context 9231pi / t2-logsift: 354 tokens at 32.5 tok/s, context 9626pi / t2-logsift: 423 tokens at 40.0 tok/s, context 10567pi / t2-logsift: 175 tokens at 39.1 tok/s, context 10783pi / t2-logsift: 677 tokens at 40.1 tok/s, context 11553pi / t2-logsift: 196 tokens at 35.5 tok/s, context 11790pi / t2-logsift: 5570 tokens at 40.0 tok/s, context 18075pi / t2-logsift: 1941 tokens at 34.6 tok/s, context 20047pi / t2-logsift: 133 tokens at 24.8 tok/s, context 20210pi / t2-logsift: 109 tokens at 42.4 tok/s, context 20457pi / t2-logsift: 101 tokens at 31.2 tok/s, context 20588pi / t2-logsift: 1874 tokens at 35.4 tok/s, context 30058pi / t2-logsift: 636 tokens at 41.9 tok/s, context 30737pi / t2-logsift: 374 tokens at 40.3 tok/s, context 31141pi / t2-logsift: 135 tokens at 42.1 tok/s, context 31306pi / t2-logsift: 329 tokens at 34.8 tok/s, context 32187pi / t2-logsift: 112 tokens at 41.4 tok/s, context 32329pi / t2-logsift: 70 tokens at 37.8 tok/s, context 32429pi / t2-logsift: 994 tokens at 34.6 tok/s, context 33447pi / t2-logsift: 498 tokens at 39.0 tok/s, context 34714pi / t2-logsift: 740 tokens at 36.3 tok/s, context 35883pi / t2-logsift: 293 tokens at 38.8 tok/s, context 36605pi / t2-logsift: 568 tokens at 35.7 tok/s, context 37383pi / t2-logsift: 894 tokens at 33.6 tok/s, context 38473pi / t2-logsift: 153 tokens at 42.1 tok/s, context 38691pi / t2-logsift: 648 tokens at 38.0 tok/s, context 39380pi / t2-logsift: 344 tokens at 34.0 tok/s, context 39754pi / t2-logsift: 278 tokens at 33.5 tok/s, context 40056pi / t2-logsift: 536 tokens at 36.1 tok/s, context 40648pi / t2-logsift: 169 tokens at 37.5 tok/s, context 40884pi / t2-logsift: 535 tokens at 41.4 tok/s, context 41734pi / t2-logsift: 591 tokens at 34.5 tok/s, context 42583pi / t2-logsift: 1213 tokens at 34.8 tok/s, context 46196pi / t2-logsift: 209 tokens at 35.1 tok/s, context 46446pi / t2-logsift: 757 tokens at 39.7 tok/s, context 47299pi / t2-logsift: 237 tokens at 38.7 tok/s, context 47577pi / t2-logsift: 342 tokens at 37.5 tok/s, context 48232pi / t2-logsift: 393 tokens at 34.9 tok/s, context 48653pi / t2-logsift: 206 tokens at 37.7 tok/s, context 48975pi / t2-logsift: 738 tokens at 34.4 tok/s, context 49897pi / t2-logsift: 1056 tokens at 35.1 tok/s, context 18065pi / t2-logsift: 31 tokens at 34.4 tok/s, context 99pi / t2-logsift: 60 tokens at 43.4 tok/s, context 3024pi / t2-logsift: 2258 tokens at 33.8 tok/s, context 6480pi / t2-logsift: 3174 tokens at 41.8 tok/s, context 9898pi / t2-logsift: 163 tokens at 38.5 tok/s, context 10106pi / t2-logsift: 890 tokens at 39.3 tok/s, context 11742pi / t2-logsift: 527 tokens at 37.1 tok/s, context 12961pi / t2-logsift: 114 tokens at 38.5 tok/s, context 13119pi / t2-logsift: 172 tokens at 42.8 tok/s, context 13585pi / t2-logsift: 913 tokens at 38.2 tok/s, context 14542pi / t2-logsift: 1771 tokens at 37.0 tok/s, context 18139pi / t2-logsift: 1750 tokens at 43.8 tok/s, context 19966pi / t2-logsift: 1843 tokens at 42.0 tok/s, context 21878pi / t2-logsift: 621 tokens at 36.5 tok/s, context 22595pi / t2-logsift: 360 tokens at 36.6 tok/s, context 23102pi / t2-logsift: 930 tokens at 36.2 tok/s, context 24051pi / t2-logsift: 165 tokens at 35.4 tok/s, context 24541pi / t2-logsift: 71 tokens at 43.7 tok/s, context 24982pi / t2-logsift: 561 tokens at 33.6 tok/s, context 25719pi / t2-logsift: 31 tokens at 40.2 tok/s, context 99pi / t2-logsift: 90 tokens at 46.1 tok/s, context 3054pi / t2-logsift: 5550 tokens at 37.8 tok/s, context 9852pi / t2-logsift: 582 tokens at 36.1 tok/s, context 10461pi / t2-logsift: 342 tokens at 37.0 tok/s, context 10830pi / t2-logsift: 4962 tokens at 40.4 tok/s, context 16639pi / t2-logsift: 94 tokens at 35.3 tok/s, context 16762pi / t2-logsift: 798 tokens at 38.6 tok/s, context 18162pi / t2-logsift: 868 tokens at 35.1 tok/s, context 19474pi / t2-logsift: 2812 tokens at 43.4 tok/s, context 23020pi / t2-logsift: 1113 tokens at 40.6 tok/s, context 24160pi / t2-logsift: 168 tokens at 34.5 tok/s, context 24355pi / t2-logsift: 649 tokens at 39.9 tok/s, context 25226pi / t2-logsift: 282 tokens at 41.2 tok/s, context 25536pi / t2-logsift: 120 tokens at 36.4 tok/s, context 25684pi / t2-logsift: 1423 tokens at 34.6 tok/s, context 27221pi / t2-logsift: 657 tokens at 34.5 tok/s, context 28145pi / t2-logsift: 59 tokens at 38.9 tok/s, context 28338pi / t2-logsift: 2666 tokens at 37.5 tok/s, context 33495pi / t2-logsift: 91 tokens at 37.5 tok/s, context 33626pi / t2-logsift: 123 tokens at 33.4 tok/s, context 33974pi / t2-logsift: 159 tokens at 33.3 tok/s, context 34212pi / t2-logsift: 1335 tokens at 45.8 tok/s, context 35586pi / t2-logsift: 259 tokens at 36.8 tok/s, context 35872pi / t2-logsift: 590 tokens at 35.0 tok/s, context 36593pi / t2-logsift: 784 tokens at 34.0 tok/s, context 37499pi / t2-logsift: 349 tokens at 36.5 tok/s, context 37935pi / t2-logsift: 404 tokens at 36.1 tok/s, context 38366pi / t2-logsift: 2026 tokens at 38.8 tok/s, context 40419pi / t2-logsift: 1335 tokens at 34.2 tok/s, context 41785pi / t2-logsift: 348 tokens at 33.7 tok/s, context 42164pi / t2-logsift: 124 tokens at 41.5 tok/s, context 42311pi / t2-logsift: 2054 tokens at 41.4 tok/s, context 44395pi / t2-logsift: 563 tokens at 40.1 tok/s, context 44990pi / t2-logsift: 149 tokens at 37.9 tok/s, context 45171pi / t2-logsift: 252 tokens at 38.5 tok/s, context 45446pi / t2-logsift: 120 tokens at 41.2 tok/s, context 45976pi / t2-logsift: 79 tokens at 43.0 tok/s, context 46275pi / t2-logsift: 667 tokens at 33.2 tok/s, context 48069pi / t2-logsift: 31 tokens at 39.2 tok/s, context 99pi / t2-logsift: 31 tokens at 39.2 tok/s, context 99pi / t2-logsift: 90 tokens at 44.7 tok/s, context 3052pi / t2-logsift: 4984 tokens at 36.8 tok/s, context 9284pi / t2-logsift: 1214 tokens at 34.0 tok/s, context 10525pi / t2-logsift: 787 tokens at 43.3 tok/s, context 11339pi / t2-logsift: 150 tokens at 39.0 tok/s, context 11516pi / t2-logsift: 426 tokens at 37.1 tok/s, context 12682pi / t2-logsift: 5994 tokens at 40.6 tok/s, context 18842pi / t2-logsift: 2213 tokens at 37.7 tok/s, context 21097pi / t2-logsift: 388 tokens at 35.6 tok/s, context 21512pi / t2-logsift: 242 tokens at 44.5 tok/s, context 22242pi / t2-logsift: 135 tokens at 39.6 tok/s, context 22404pi / t2-logsift: 103 tokens at 40.8 tok/s, context 22909pi / t2-logsift: 1179 tokens at 36.9 tok/s, context 24742pi / t2-logsift: 469 tokens at 35.3 tok/s, context 27154pi / t2-logsift: 340 tokens at 42.1 tok/s, context 27595pi / t2-logsift: 1571 tokens at 40.9 tok/s, context 29398pi / t2-logsift: 82 tokens at 42.2 tok/s, context 29519pi / t2-logsift: 98 tokens at 37.7 tok/s, context 29670pi / t2-logsift: 1246 tokens at 45.5 tok/s, context 31351pi / t2-logsift: 118 tokens at 43.2 tok/s, context 31508pi / t2-logsift: 1301 tokens at 44.6 tok/s, context 32988pi / t2-logsift: 232 tokens at 36.4 tok/s, context 33246pi / t2-logsift: 265 tokens at 40.0 tok/s, context 33540pi / t2-logsift: 128 tokens at 37.0 tok/s, context 33694pi / t2-logsift: 2049 tokens at 39.9 tok/s, context 35777pi / t2-logsift: 610 tokens at 34.3 tok/s, context 36430pi / t2-logsift: 1113 tokens at 37.4 tok/s, context 37564pi / t2-logsift: 571 tokens at 37.1 tok/s, context 38250pi / t2-logsift: 313 tokens at 32.9 tok/s, context 38606pi / t2-logsift: 508 tokens at 35.8 tok/s, context 41365pi / t2-logsift: 177 tokens at 37.1 tok/s, context 41569pi / t2-logsift: 174 tokens at 39.1 tok/s, context 41995pi / t2-logsift: 293 tokens at 36.1 tok/s, context 42508pi / t2-logsift: 625 tokens at 35.7 tok/s, context 43233pi / t2-logsift: 31 tokens at 39.9 tok/s, context 99pi / t3-shoebox: 31 tokens at 39.9 tok/s, context 99pi / t3-shoebox: 54 tokens at 43.5 tok/s, context 2818pi / t3-shoebox: 91 tokens at 37.7 tok/s, context 3092pi / t3-shoebox: 133 tokens at 41.4 tok/s, context 5292pi / t3-shoebox: 91 tokens at 39.4 tok/s, context 6405pi / t3-shoebox: 466 tokens at 34.9 tok/s, context 10101pi / t3-shoebox: 2422 tokens at 36.0 tok/s, context 15346pi / t3-shoebox: 512 tokens at 38.4 tok/s, context 16050pi / t3-shoebox: 1463 tokens at 40.0 tok/s, context 17601pi / t3-shoebox: 144 tokens at 34.6 tok/s, context 17772pi / t3-shoebox: 923 tokens at 37.7 tok/s, context 19100pi / t3-shoebox: 617 tokens at 40.8 tok/s, context 19796pi / t3-shoebox: 551 tokens at 38.4 tok/s, context 20645pi / t3-shoebox: 644 tokens at 39.9 tok/s, context 21501pi / t3-shoebox: 528 tokens at 36.1 tok/s, context 22085pi / t3-shoebox: 475 tokens at 36.5 tok/s, context 22739pi / t3-shoebox: 579 tokens at 34.4 tok/s, context 23432pi / t3-shoebox: 667 tokens at 36.6 tok/s, context 24226pi / t3-shoebox: 718 tokens at 35.8 tok/s, context 25143pi / t3-shoebox: 2438 tokens at 36.9 tok/s, context 27771pi / t3-shoebox: 1238 tokens at 37.6 tok/s, context 30059pi / t3-shoebox: 1192 tokens at 36.9 tok/s, context 31856pi / t3-shoebox: 401 tokens at 38.2 tok/s, context 32746pi / t3-shoebox: 809 tokens at 37.6 tok/s, context 34024pi / t3-shoebox: 31 tokens at 39.8 tok/s, context 99pi / t3-shoebox: 31 tokens at 39.8 tok/s, context 99pi / t3-shoebox: 57 tokens at 46.8 tok/s, context 2822pi / t3-shoebox: 96 tokens at 41.7 tok/s, context 3186pi / t3-shoebox: 58 tokens at 43.5 tok/s, context 6854pi / t3-shoebox: 108 tokens at 39.6 tok/s, context 8664pi / t3-shoebox: 146 tokens at 42.6 tok/s, context 10391pi / t3-shoebox: 254 tokens at 38.8 tok/s, context 12872pi / t3-shoebox: 3348 tokens at 38.8 tok/s, context 19043pi / t3-shoebox: 193 tokens at 34.6 tok/s, context 19261pi / t3-shoebox: 423 tokens at 37.5 tok/s, context 20800pi / t3-shoebox: 1257 tokens at 37.2 tok/s, context 22237pi / t3-shoebox: 457 tokens at 40.5 tok/s, context 24521pi / t3-shoebox: 885 tokens at 40.1 tok/s, context 25593pi / t3-shoebox: 988 tokens at 36.0 tok/s, context 26654pi / t3-shoebox: 132 tokens at 39.3 tok/s, context 27152pi / t3-shoebox: 904 tokens at 39.1 tok/s, context 28117pi / t3-shoebox: 31 tokens at 33.6 tok/s, context 99pi / t3-shoebox: 31 tokens at 33.6 tok/s, context 99pi / t3-shoebox: 54 tokens at 48.0 tok/s, context 2817pi / t3-shoebox: 109 tokens at 33.9 tok/s, context 3109pi / t3-shoebox: 56 tokens at 44.7 tok/s, context 3625pi / t3-shoebox: 143 tokens at 38.6 tok/s, context 5470pi / t3-shoebox: 91 tokens at 40.3 tok/s, context 6760pi / t3-shoebox: 500 tokens at 37.4 tok/s, context 10490pi / t3-shoebox: 1702 tokens at 35.1 tok/s, context 15015pi / t3-shoebox: 1963 tokens at 40.6 tok/s, context 17267pi / t3-shoebox: 127 tokens at 35.2 tok/s, context 17420pi / t3-shoebox: 512 tokens at 38.3 tok/s, context 18294pi / t3-shoebox: 870 tokens at 41.0 tok/s, context 19616pi / t3-shoebox: 307 tokens at 37.6 tok/s, context 20273pi / t3-shoebox: 746 tokens at 37.8 tok/s, context 21101pi / t3-shoebox: 151 tokens at 40.5 tok/s, context 21335pi / t3-shoebox: 205 tokens at 39.1 tok/s, context 21644pi / t3-shoebox: 2140 tokens at 37.0 tok/s, context 24007pi / t3-shoebox: 1716 tokens at 41.7 tok/s, context 25782pi / t3-shoebox: 1433 tokens at 40.4 tok/s, context 27597pi / t3-shoebox: 388 tokens at 39.3 tok/s, context 28412pi / t3-shoebox: 959 tokens at 38.1 tok/s, context 29756pi / t3-shoebox: 31 tokens at 39.0 tok/s, context 99pi / t3-shoebox: 31 tokens at 39.0 tok/s, context 99pi / t3-shoebox: 163 tokens at 38.6 tok/s, context 2929pi / t3-shoebox: 123 tokens at 41.3 tok/s, context 3241pi / t3-shoebox: 134 tokens at 43.9 tok/s, context 4511pi / t3-shoebox: 83 tokens at 41.1 tok/s, context 5116pi / t3-shoebox: 88 tokens at 40.4 tok/s, context 7144pi / t3-shoebox: 202 tokens at 40.5 tok/s, context 8318pi / t3-shoebox: 292 tokens at 39.3 tok/s, context 10685pi / t3-shoebox: 62 tokens at 41.5 tok/s, context 11075pi / t3-shoebox: 2121 tokens at 35.9 tok/s, context 16019pi / t3-shoebox: 1846 tokens at 41.0 tok/s, context 18030pi / t3-shoebox: 635 tokens at 37.5 tok/s, context 18712pi / t3-shoebox: 131 tokens at 36.2 tok/s, context 18890pi / t3-shoebox: 406 tokens at 38.4 tok/s, context 19658pi / t3-shoebox: 698 tokens at 37.0 tok/s, context 20959pi / t3-shoebox: 503 tokens at 34.4 tok/s, context 21729pi / t3-shoebox: 243 tokens at 40.3 tok/s, context 22824pi / t3-shoebox: 1867 tokens at 39.4 tok/s, context 24799pi / t3-shoebox: 1095 tokens at 44.1 tok/s, context 25968pi / t3-shoebox: 1035 tokens at 38.7 tok/s, context 27067pi / t3-shoebox: 699 tokens at 41.8 tok/s, context 27858pi / t3-shoebox: 1262 tokens at 39.8 tok/s, context 29669pi / t3-shoebox: 106 tokens at 42.5 tok/s, context 30202pi / t3-shoebox: 746 tokens at 40.7 tok/s, context 31119pi / t3-shoebox: 31 tokens at 39.9 tok/s, context 99pi / t4-night-shift: 31 tokens at 39.9 tok/s, context 99pi / t4-night-shift: 120 tokens at 43.6 tok/s, context 2418pi / t4-night-shift: 166 tokens at 41.6 tok/s, context 2955pi / t4-night-shift: 5168 tokens at 34.8 tok/s, context 9334pi / t4-night-shift: 1292 tokens at 38.7 tok/s, context 10782pi / t4-night-shift: 1632 tokens at 39.1 tok/s, context 12490pi / t4-night-shift: 421 tokens at 38.4 tok/s, context 12954pi / t4-night-shift: 384 tokens at 43.1 tok/s, context 13381pi / t4-night-shift: 1063 tokens at 41.8 tok/s, context 14519pi / t4-night-shift: 415 tokens at 39.9 tok/s, context 15010pi / t4-night-shift: 2740 tokens at 35.1 tok/s, context 17823pi / t4-night-shift: 1336 tokens at 39.1 tok/s, context 19243pi / t4-night-shift: 1979 tokens at 40.0 tok/s, context 21296pi / t4-night-shift: 3625 tokens at 36.4 tok/s, context 24997pi / t4-night-shift: 969 tokens at 39.4 tok/s, context 26008pi / t4-night-shift: 379 tokens at 39.4 tok/s, context 26430pi / t4-night-shift: 448 tokens at 36.9 tok/s, context 27367pi / t4-night-shift: 281 tokens at 36.6 tok/s, context 28366pi / t4-night-shift: 732 tokens at 41.2 tok/s, context 29576pi / t4-night-shift: 98 tokens at 39.1 tok/s, context 29793pi / t4-night-shift: 272 tokens at 43.6 tok/s, context 30083pi / t4-night-shift: 1280 tokens at 43.7 tok/s, context 31485pi / t4-night-shift: 231 tokens at 33.3 tok/s, context 31758pi / t4-night-shift: 800 tokens at 41.2 tok/s, context 32961pi / t4-night-shift: 141 tokens at 36.6 tok/s, context 33177pi / t4-night-shift: 1806 tokens at 38.3 tok/s, context 35019pi / t4-night-shift: 328 tokens at 37.1 tok/s, context 35377pi / t4-night-shift: 153 tokens at 34.3 tok/s, context 35560pi / t4-night-shift: 608 tokens at 33.4 tok/s, context 36829pi / t4-night-shift: 1395 tokens at 35.0 tok/s, context 38440pi / t4-night-shift: 117 tokens at 37.7 tok/s, context 38599pi / t4-night-shift: 1087 tokens at 34.5 tok/s, context 40546pi / t4-night-shift: 423 tokens at 41.7 tok/s, context 41012pi / t4-night-shift: 539 tokens at 35.5 tok/s, context 41593pi / t4-night-shift: 479 tokens at 39.1 tok/s, context 42348pi / t4-night-shift: 749 tokens at 41.5 tok/s, context 43398pi / t4-night-shift: 762 tokens at 36.8 tok/s, context 44296pi / t4-night-shift: 305 tokens at 38.2 tok/s, context 44770pi / t4-night-shift: 1034 tokens at 33.2 tok/s, context 45930pi / t4-night-shift: 451 tokens at 32.1 tok/s, context 46424pi / t4-night-shift: 1187 tokens at 32.5 tok/s, context 47709pi / t4-night-shift: 1047 tokens at 31.4 tok/s, context 48797pi / t4-night-shift: 398 tokens at 35.3 tok/s, context 49234pi / t4-night-shift: 436 tokens at 37.2 tok/s, context 49853pi / t4-night-shift: 387 tokens at 36.5 tok/s, context 50801pi / t4-night-shift: 143 tokens at 36.4 tok/s, context 50987pi / t4-night-shift: 238 tokens at 38.6 tok/s, context 51879pi / t4-night-shift: 427 tokens at 37.3 tok/s, context 52654pi / t4-night-shift: 212 tokens at 36.9 tok/s, context 53155pi / t4-night-shift: 766 tokens at 36.7 tok/s, context 54085pi / t4-night-shift: 3527 tokens at 35.5 tok/s, context 31467pi / t4-night-shift: 121 tokens at 44.5 tok/s, context 2421pi / t4-night-shift: 130 tokens at 43.5 tok/s, context 2923pi / t4-night-shift: 4377 tokens at 34.3 tok/s, context 8972pi / t4-night-shift: 1073 tokens at 39.5 tok/s, context 10111pi / t4-night-shift: 505 tokens at 40.6 tok/s, context 10696pi / t4-night-shift: 548 tokens at 43.1 tok/s, context 11323pi / t4-night-shift: 678 tokens at 41.3 tok/s, context 12054pi / t4-night-shift: 795 tokens at 40.2 tok/s, context 12929pi / t4-night-shift: 373 tokens at 36.7 tok/s, context 13377pi / t4-night-shift: 430 tokens at 37.8 tok/s, context 13908pi / t4-night-shift: 1912 tokens at 38.5 tok/s, context 16050pi / t4-night-shift: 353 tokens at 36.3 tok/s, context 16435pi / t4-night-shift: 95 tokens at 36.9 tok/s, context 16562pi / t4-night-shift: 294 tokens at 38.0 tok/s, context 17047pi / t4-night-shift: 720 tokens at 38.0 tok/s, context 18848pi / t4-night-shift: 1771 tokens at 37.7 tok/s, context 20821pi / t4-night-shift: 2141 tokens at 41.4 tok/s, context 23039pi / t4-night-shift: 303 tokens at 39.2 tok/s, context 23420pi / t4-night-shift: 85 tokens at 41.7 tok/s, context 23549pi / t4-night-shift: 1621 tokens at 37.8 tok/s, context 25205pi / t4-night-shift: 414 tokens at 39.0 tok/s, context 25694pi / t4-night-shift: 460 tokens at 36.2 tok/s, context 26310pi / t4-night-shift: 183 tokens at 37.1 tok/s, context 26584pi / t4-night-shift: 233 tokens at 36.3 tok/s, context 26860pi / t4-night-shift: 561 tokens at 36.6 tok/s, context 27483pi / t4-night-shift: 313 tokens at 34.8 tok/s, context 27876pi / t4-night-shift: 1278 tokens at 38.3 tok/s, context 29173pi / t4-night-shift: 287 tokens at 37.9 tok/s, context 29489pi / t4-night-shift: 200 tokens at 41.4 tok/s, context 29777pi / t4-night-shift: 225 tokens at 35.4 tok/s, context 30249pi / t4-night-shift: 374 tokens at 35.9 tok/s, context 30719pi / t4-night-shift: 785 tokens at 35.0 tok/s, context 32104pi / t4-night-shift: 31 tokens at 32.9 tok/s, context 99pi / t4-night-shift: 112 tokens at 43.3 tok/s, context 2412pi / t4-night-shift: 117 tokens at 39.0 tok/s, context 2867pi / t4-night-shift: 6597 tokens at 34.6 tok/s, context 10702pi / t4-night-shift: 296 tokens at 38.9 tok/s, context 11078pi / t4-night-shift: 343 tokens at 41.3 tok/s, context 11466pi / t4-night-shift: 681 tokens at 42.8 tok/s, context 12227pi / t4-night-shift: 1009 tokens at 39.8 tok/s, context 13315pi / t4-night-shift: 371 tokens at 42.3 tok/s, context 13766pi / t4-night-shift: 2636 tokens at 33.9 tok/s, context 16479pi / t4-night-shift: 769 tokens at 38.7 tok/s, context 17288pi / t4-night-shift: 1214 tokens at 40.0 tok/s, context 18547pi / t4-night-shift: 866 tokens at 41.9 tok/s, context 19458pi / t4-night-shift: 1014 tokens at 39.0 tok/s, context 20551pi / t4-night-shift: 764 tokens at 38.6 tok/s, context 21360pi / t4-night-shift: 1795 tokens at 38.5 tok/s, context 23199pi / t4-night-shift: 1357 tokens at 42.3 tok/s, context 24600pi / t4-night-shift: 1937 tokens at 36.4 tok/s, context 26581pi / t4-night-shift: 950 tokens at 40.3 tok/s, context 27575pi / t4-night-shift: 565 tokens at 39.5 tok/s, context 28184pi / t4-night-shift: 588 tokens at 37.0 tok/s, context 28816pi / t4-night-shift: 256 tokens at 35.9 tok/s, context 29535pi / t4-night-shift: 172 tokens at 38.0 tok/s, context 29752pi / t4-night-shift: 626 tokens at 36.8 tok/s, context 30413pi / t4-night-shift: 707 tokens at 40.9 tok/s, context 31316pi / t4-night-shift: 1281 tokens at 38.2 tok/s, context 33085pi / t4-night-shift: 268 tokens at 37.2 tok/s, context 33694pi / t4-night-shift: 1191 tokens at 35.2 tok/s, context 35239pi / t4-night-shift: 632 tokens at 36.0 tok/s, context 35915pi / t4-night-shift: 228 tokens at 35.3 tok/s, context 36258pi / t4-night-shift: 887 tokens at 33.9 tok/s, context 39658pi / t4-night-shift: 768 tokens at 39.4 tok/s, context 40471pi / t4-night-shift: 236 tokens at 35.4 tok/s, context 40751pi / t4-night-shift: 383 tokens at 35.2 tok/s, context 41197pi / t4-night-shift: 229 tokens at 37.7 tok/s, context 41487pi / t4-night-shift: 221 tokens at 35.5 tok/s, context 42028pi / t4-night-shift: 883 tokens at 35.7 tok/s, context 43266pi / t4-night-shift: 31 tokens at 33.3 tok/s, context 99pi / t4-night-shift: 111 tokens at 43.9 tok/s, context 2411pi / t4-night-shift: 190 tokens at 46.9 tok/s, context 2937pi / t4-night-shift: 207 tokens at 42.3 tok/s, context 4048pi / t4-night-shift: 3791 tokens at 35.6 tok/s, context 8166pi / t4-night-shift: 313 tokens at 35.6 tok/s, context 8524pi / t4-night-shift: 405 tokens at 43.1 tok/s, context 8957pi / t4-night-shift: 536 tokens at 40.5 tok/s, context 9539pi / t4-night-shift: 828 tokens at 39.8 tok/s, context 10395pi / t4-night-shift: 541 tokens at 40.2 tok/s, context 10964pi / t4-night-shift: 965 tokens at 38.0 tok/s, context 11957pi / t4-night-shift: 660 tokens at 41.4 tok/s, context 12645pi / t4-night-shift: 276 tokens at 37.4 tok/s, context 12949pi / t4-night-shift: 880 tokens at 38.5 tok/s, context 13854pi / t4-night-shift: 166 tokens at 42.1 tok/s, context 14082pi / t4-night-shift: 472 tokens at 36.8 tok/s, context 14611pi / t4-night-shift: 1482 tokens at 38.2 tok/s, context 16430pi / t4-night-shift: 546 tokens at 34.9 tok/s, context 17337pi / t4-night-shift: 263 tokens at 33.8 tok/s, context 18293pi / t4-night-shift: 1139 tokens at 38.5 tok/s, context 19615pi / t4-night-shift: 2470 tokens at 38.9 tok/s, context 22254pi / t4-night-shift: 1442 tokens at 37.6 tok/s, context 23917pi / t4-night-shift: 1012 tokens at 38.2 tok/s, context 25000pi / t4-night-shift: 722 tokens at 38.0 tok/s, context 25867pi / t4-night-shift: 221 tokens at 38.1 tok/s, context 26219pi / t4-night-shift: 1243 tokens at 35.1 tok/s, context 27515pi / t4-night-shift: 424 tokens at 40.3 tok/s, context 28105pi / t4-night-shift: 234 tokens at 35.9 tok/s, context 28414pi / t4-night-shift: 795 tokens at 36.7 tok/s, context 29420pi / t4-night-shift: 205 tokens at 37.5 tok/s, context 29935pi / t4-night-shift: 940 tokens at 36.4 tok/s, context 31621pi / t5-regression: 31 tokens at 39.8 tok/s, context 99pi / t5-regression: 114 tokens at 46.0 tok/s, context 1867pi / t5-regression: 81 tokens at 43.9 tok/s, context 3609pi / t5-regression: 272 tokens at 41.4 tok/s, context 4315pi / t5-regression: 529 tokens at 37.5 tok/s, context 6090pi / t5-regression: 292 tokens at 35.5 tok/s, context 8592pi / t5-regression: 359 tokens at 37.1 tok/s, context 8969pi / t5-regression: 1103 tokens at 35.2 tok/s, context 10256pi / t5-regression: 404 tokens at 38.4 tok/s, context 12560pi / t5-regression: 176 tokens at 25.4 tok/s, context 12815pi / t5-regression: 143 tokens at 39.3 tok/s, context 13001pi / t5-regression: 281 tokens at 37.8 tok/s, context 13317pi / t5-regression: 274 tokens at 38.3 tok/s, context 13633pi / t5-regression: 85 tokens at 40.6 tok/s, context 13760pi / t5-regression: 230 tokens at 38.6 tok/s, context 14153pi / t5-regression: 693 tokens at 39.1 tok/s, context 14897pi / t5-regression: 31 tokens at 40.4 tok/s, context 99pi / t5-regression: 31 tokens at 40.4 tok/s, context 99pi / t5-regression: 80 tokens at 47.3 tok/s, context 1834pi / t5-regression: 111 tokens at 44.5 tok/s, context 3606pi / t5-regression: 241 tokens at 43.6 tok/s, context 4786pi / t5-regression: 1398 tokens at 41.3 tok/s, context 8552pi / t5-regression: 992 tokens at 34.1 tok/s, context 11946pi / t5-regression: 390 tokens at 39.9 tok/s, context 13823pi / t5-regression: 558 tokens at 36.8 tok/s, context 14589pi / t5-regression: 571 tokens at 37.1 tok/s, context 15460pi / t5-regression: 99 tokens at 41.6 tok/s, context 15603pi / t5-regression: 419 tokens at 41.0 tok/s, context 16228pi / t5-regression: 173 tokens at 35.1 tok/s, context 16498pi / t5-regression: 433 tokens at 39.0 tok/s, context 17093pi / t5-regression: 413 tokens at 37.9 tok/s, context 17584pi / t5-regression: 31 tokens at 40.1 tok/s, context 99pi / t5-regression: 116 tokens at 49.4 tok/s, context 1870pi / t5-regression: 83 tokens at 42.9 tok/s, context 3614pi / t5-regression: 648 tokens at 36.7 tok/s, context 4697pi / t5-regression: 1057 tokens at 40.2 tok/s, context 8123pi / t5-regression: 374 tokens at 39.1 tok/s, context 10610pi / t5-regression: 359 tokens at 40.2 tok/s, context 13535pi / t5-regression: 675 tokens at 34.8 tok/s, context 14293pi / t5-regression: 186 tokens at 41.9 tok/s, context 14771pi / t5-regression: 126 tokens at 41.0 tok/s, context 14941pi / t5-regression: 162 tokens at 43.8 tok/s, context 15200pi / t5-regression: 304 tokens at 40.6 tok/s, context 15589pi / t5-regression: 312 tokens at 40.6 tok/s, context 15944pi / t5-regression: 212 tokens at 38.0 tok/s, context 16199pi / t5-regression: 351 tokens at 37.9 tok/s, context 16752pi / t5-regression: 31 tokens at 40.0 tok/s, context 99pi / t5-regression: 31 tokens at 40.0 tok/s, context 99pi / t5-regression: 133 tokens at 44.9 tok/s, context 1887pi / t5-regression: 138 tokens at 45.2 tok/s, context 2529pi / t5-regression: 191 tokens at 40.7 tok/s, context 5028pi / t5-regression: 1841 tokens at 40.7 tok/s, context 9061pi / t5-regression: 591 tokens at 37.7 tok/s, context 12536pi / t5-regression: 671 tokens at 38.2 tok/s, context 13736pi / t5-regression: 370 tokens at 34.6 tok/s, context 14205pi / t5-regression: 145 tokens at 38.9 tok/s, context 14394pi / t5-regression: 345 tokens at 40.2 tok/s, context 14836pi / t5-regression: 399 tokens at 38.9 tok/s, context 15356pi / t5-regression: 254 tokens at 41.4 tok/s, context 15762pi / t5-regression: 452 tokens at 36.4 tok/s, context 16272pi / t5-regression: 31 tokens at 39.9 tok/s, context 99pi / t6-payroll: 31 tokens at 39.9 tok/s, context 99pi / t6-payroll: 103 tokens at 43.7 tok/s, context 3683pi / t6-payroll: 584 tokens at 38.3 tok/s, context 6292pi / t6-payroll: 290 tokens at 41.1 tok/s, context 7045pi / t6-payroll: 73 tokens at 38.3 tok/s, context 7610pi / t6-payroll: 6386 tokens at 37.4 tok/s, context 24467pi / t6-payroll: 155 tokens at 32.2 tok/s, context 24663pi / t6-payroll: 1491 tokens at 32.7 tok/s, context 26579pi / t6-payroll: 150 tokens at 32.6 tok/s, context 26747pi / t6-payroll: 568 tokens at 36.9 tok/s, context 31960pi / t6-payroll: 135 tokens at 37.6 tok/s, context 32136pi / t6-payroll: 934 tokens at 34.1 tok/s, context 34700pi / t6-payroll: 196 tokens at 37.9 tok/s, context 34937pi / t6-payroll: 1776 tokens at 37.2 tok/s, context 37490pi / t6-payroll: 353 tokens at 36.3 tok/s, context 37885pi / t6-payroll: 372 tokens at 34.2 tok/s, context 38299pi / t6-payroll: 1086 tokens at 36.8 tok/s, context 39501pi / t6-payroll: 3197 tokens at 38.1 tok/s, context 46948pi / t6-payroll: 2537 tokens at 36.7 tok/s, context 50998pi / t6-payroll: 3145 tokens at 38.9 tok/s, context 54236pi / t6-payroll: 682 tokens at 41.3 tok/s, context 55084pi / t6-payroll: 4375 tokens at 40.3 tok/s, context 59684pi / t6-payroll: 1021 tokens at 36.6 tok/s, context 62341pi / t6-payroll: 1742 tokens at 39.7 tok/s, context 64737pi / t6-payroll: 687 tokens at 38.1 tok/s, context 67496pi / t6-payroll: 156 tokens at 37.3 tok/s, context 68650pi / t6-payroll: 93 tokens at 41.4 tok/s, context 69187pi / t6-payroll: 651 tokens at 35.7 tok/s, context 70013pi / t6-payroll: 827 tokens at 37.0 tok/s, context 19710pi / t6-payroll: 31 tokens at 33.2 tok/s, context 99pi / t6-payroll: 31 tokens at 33.2 tok/s, context 99pi / t6-payroll: 112 tokens at 45.6 tok/s, context 3692pi / t6-payroll: 1773 tokens at 36.6 tok/s, context 7490pi / t6-payroll: 2473 tokens at 39.6 tok/s, context 10605pi / t6-payroll: 207 tokens at 34.2 tok/s, context 10838pi / t6-payroll: 88 tokens at 41.5 tok/s, context 11017pi / t6-payroll: 128 tokens at 37.1 tok/s, context 11171pi / t6-payroll: 4082 tokens at 36.4 tok/s, context 16247pi / t6-payroll: 130 tokens at 35.5 tok/s, context 16403pi / t6-payroll: 1067 tokens at 36.5 tok/s, context 19559pi / t6-payroll: 1332 tokens at 38.9 tok/s, context 21238pi / t6-payroll: 2591 tokens at 39.3 tok/s, context 42627pi / t6-payroll: 6676 tokens at 40.5 tok/s, context 51063pi / t6-payroll: 112 tokens at 39.6 tok/s, context 51615pi / t6-payroll: 1108 tokens at 38.0 tok/s, context 53883pi / t6-payroll: 1437 tokens at 37.0 tok/s, context 11755pi / t6-payroll: 31 tokens at 39.8 tok/s, context 99pi / t6-payroll: 107 tokens at 45.9 tok/s, context 3686pi / t6-payroll: 136 tokens at 45.6 tok/s, context 7043pi / t6-payroll: 2335 tokens at 35.2 tok/s, context 9764pi / t6-payroll: 2581 tokens at 39.8 tok/s, context 13647pi / t6-payroll: 279 tokens at 37.0 tok/s, context 13967pi / t6-payroll: 254 tokens at 43.0 tok/s, context 14311pi / t6-payroll: 126 tokens at 37.1 tok/s, context 14478pi / t6-payroll: 326 tokens at 38.4 tok/s, context 14921pi / t6-payroll: 149 tokens at 37.6 tok/s, context 15111pi / t6-payroll: 1122 tokens at 35.8 tok/s, context 17337pi / t6-payroll: 1315 tokens at 39.0 tok/s, context 18949pi / t6-payroll: 934 tokens at 38.1 tok/s, context 20037pi / t6-payroll: 1457 tokens at 37.9 tok/s, context 21727pi / t6-payroll: 3578 tokens at 38.2 tok/s, context 28005pi / t6-payroll: 1866 tokens at 40.0 tok/s, context 29936pi / t6-payroll: 2585 tokens at 38.3 tok/s, context 32660pi / t6-payroll: 2095 tokens at 39.6 tok/s, context 36924pi / t6-payroll: 3034 tokens at 37.0 tok/s, context 40197pi / t6-payroll: 197 tokens at 35.0 tok/s, context 40435pi / t6-payroll: 1499 tokens at 36.6 tok/s, context 43199pi / t6-payroll: 1315 tokens at 39.1 tok/s, context 44624pi / t6-payroll: 156 tokens at 38.4 tok/s, context 45005pi / t6-payroll: 735 tokens at 35.8 tok/s, context 46499pi / t6-payroll: 31 tokens at 38.1 tok/s, context 99pi / t6-payroll: 31 tokens at 38.1 tok/s, context 99pi / t6-payroll: 115 tokens at 44.9 tok/s, context 3696pi / t6-payroll: 2520 tokens at 35.5 tok/s, context 8363pi / t6-payroll: 2431 tokens at 39.2 tok/s, context 11017pi / t6-payroll: 232 tokens at 42.1 tok/s, context 11275pi / t6-payroll: 230 tokens at 32.3 tok/s, context 11531pi / t6-payroll: 278 tokens at 42.3 tok/s, context 11955pi / t6-payroll: 115 tokens at 38.5 tok/s, context 12096pi / t6-payroll: 1988 tokens at 36.7 tok/s, context 15078pi / t6-payroll: 185 tokens at 41.6 tok/s, context 15289pi / t6-payroll: 113 tokens at 35.4 tok/s, context 15428pi / t6-payroll: 2490 tokens at 38.2 tok/s, context 18913pi / t6-payroll: 200 tokens at 36.3 tok/s, context 19139pi / t6-payroll: 1667 tokens at 39.6 tok/s, context 22161pi / t6-payroll: 180 tokens at 35.5 tok/s, context 22367pi / t6-payroll: 5675 tokens at 40.7 tok/s, context 46847pi / t6-payroll: 740 tokens at 39.1 tok/s, context 48693pi / t6-payroll: 174 tokens at 39.0 tok/s, context 48940pi / t6-payroll: 4009 tokens at 38.7 tok/s, context 53412pi / t6-payroll: 2734 tokens at 38.5 tok/s, context 56569pi / t6-payroll: 428 tokens at 38.1 tok/s, context 57063pi / t6-payroll: 280 tokens at 36.3 tok/s, context 57568pi / t6-payroll: 724 tokens at 37.5 tok/s, context 58621pi / t6-payroll: 1023 tokens at 36.4 tok/s, context 12188pi / t6-payroll: 31 tokens at 33.4 tok/s, context 99dsh · mean 38.3opencode · mean 39.4pi · mean 38.5
Prefill speed against prompt size, every request
dshopencodepi
02004006008001000010k20k30kprompt tokens processed in the requestprefill, tok/sdsh / t1-cold-fix: 7893 prompt tokens at 811 tok/sdsh / t1-cold-fix: 279 prompt tokens at 205 tok/sdsh / t1-cold-fix: 312 prompt tokens at 222 tok/sdsh / t1-cold-fix: 407 prompt tokens at 254 tok/sdsh / t1-cold-fix: 296 prompt tokens at 200 tok/sdsh / t1-cold-fix: 305 prompt tokens at 183 tok/sdsh / t1-cold-fix: 861 prompt tokens at 369 tok/sdsh / t1-cold-fix: 413 prompt tokens at 243 tok/sdsh / t1-cold-fix: 808 prompt tokens at 340 tok/sdsh / t1-cold-fix: 465 prompt tokens at 262 tok/sdsh / t1-cold-fix: 947 prompt tokens at 380 tok/sdsh / t1-cold-fix: 869 prompt tokens at 379 tok/sdsh / t1-cold-fix: 1008 prompt tokens at 407 tok/sdsh / t1-cold-fix: 1031 prompt tokens at 388 tok/sdsh / t1-cold-fix: 488 prompt tokens at 288 tok/sdsh / t1-cold-fix: 302 prompt tokens at 185 tok/sdsh / t1-cold-fix: 2517 prompt tokens at 616 tok/sdsh / t1-cold-fix: 185 prompt tokens at 104 tok/sdsh / t1-cold-fix: 248 prompt tokens at 140 tok/sdsh / t1-cold-fix: 840 prompt tokens at 348 tok/sdsh / t1-cold-fix: 7893 prompt tokens at 793 tok/sdsh / t1-cold-fix: 319 prompt tokens at 224 tok/sdsh / t1-cold-fix: 222 prompt tokens at 133 tok/sdsh / t1-cold-fix: 262 prompt tokens at 154 tok/sdsh / t1-cold-fix: 810 prompt tokens at 358 tok/sdsh / t1-cold-fix: 369 prompt tokens at 235 tok/sdsh / t1-cold-fix: 776 prompt tokens at 354 tok/sdsh / t1-cold-fix: 395 prompt tokens at 241 tok/sdsh / t1-cold-fix: 813 prompt tokens at 353 tok/sdsh / t1-cold-fix: 780 prompt tokens at 352 tok/sdsh / t1-cold-fix: 860 prompt tokens at 383 tok/sdsh / t1-cold-fix: 470 prompt tokens at 278 tok/sdsh / t1-cold-fix: 189 prompt tokens at 106 tok/sdsh / t1-cold-fix: 1029 prompt tokens at 387 tok/sdsh / t1-cold-fix: 1303 prompt tokens at 386 tok/sdsh / t1-cold-fix: 382 prompt tokens at 247 tok/sdsh / t1-cold-fix: 160 prompt tokens at 94 tok/sdsh / t1-cold-fix: 298 prompt tokens at 172 tok/sdsh / t1-cold-fix: 213 prompt tokens at 110 tok/sdsh / t1-cold-fix: 249 prompt tokens at 138 tok/sdsh / t1-cold-fix: 664 prompt tokens at 295 tok/sdsh / t1-cold-fix: 1138 prompt tokens at 411 tok/sdsh / t1-cold-fix: 247 prompt tokens at 158 tok/sdsh / t1-cold-fix: 297 prompt tokens at 190 tok/sdsh / t1-cold-fix: 7895 prompt tokens at 796 tok/sdsh / t1-cold-fix: 7895 prompt tokens at 869 tok/sdsh / t1-cold-fix: 298 prompt tokens at 219 tok/sdsh / t1-cold-fix: 263 prompt tokens at 178 tok/sdsh / t1-cold-fix: 2218 prompt tokens at 582 tok/sdsh / t1-cold-fix: 2205 prompt tokens at 590 tok/sdsh / t1-cold-fix: 1407 prompt tokens at 496 tok/sdsh / t1-cold-fix: 1292 prompt tokens at 481 tok/sdsh / t1-cold-fix: 378 prompt tokens at 227 tok/sdsh / t1-cold-fix: 817 prompt tokens at 345 tok/sdsh / t1-cold-fix: 833 prompt tokens at 356 tok/sdsh / t1-cold-fix: 432 prompt tokens at 244 tok/sdsh / t1-cold-fix: 236 prompt tokens at 121 tok/sdsh / t1-cold-fix: 658 prompt tokens at 312 tok/sdsh / t1-cold-fix: 315 prompt tokens at 206 tok/sdsh / t2-logsift: 9177 prompt tokens at 863 tok/sdsh / t2-logsift: 295 prompt tokens at 210 tok/sdsh / t2-logsift: 1315 prompt tokens at 493 tok/sdsh / t2-logsift: 14080 prompt tokens at 942 tok/sdsh / t2-logsift: 1031 prompt tokens at 404 tok/sdsh / t2-logsift: 8188 prompt tokens at 909 tok/sdsh / t2-logsift: 128 prompt tokens at 94 tok/sdsh / t2-logsift: 284 prompt tokens at 182 tok/sdsh / t2-logsift: 635 prompt tokens at 358 tok/sdsh / t2-logsift: 425 prompt tokens at 278 tok/sdsh / t2-logsift: 7692 prompt tokens at 847 tok/sdsh / t2-logsift: 220 prompt tokens at 113 tok/sdsh / t2-logsift: 3345 prompt tokens at 718 tok/sdsh / t2-logsift: 1082 prompt tokens at 454 tok/sdsh / t2-logsift: 5682 prompt tokens at 777 tok/sdsh / t2-logsift: 1320 prompt tokens at 586 tok/sdsh / t2-logsift: 1177 prompt tokens at 453 tok/sdsh / t2-logsift: 718 prompt tokens at 360 tok/sdsh / t2-logsift: 2557 prompt tokens at 630 tok/sdsh / t2-logsift: 1418 prompt tokens at 544 tok/sdsh / t2-logsift: 9179 prompt tokens at 824 tok/sdsh / t2-logsift: 286 prompt tokens at 217 tok/sdsh / t2-logsift: 1578 prompt tokens at 538 tok/sdsh / t2-logsift: 1419 prompt tokens at 488 tok/sdsh / t2-logsift: 9442 prompt tokens at 900 tok/sdsh / t2-logsift: 3419 prompt tokens at 701 tok/sdsh / t2-logsift: 247 prompt tokens at 133 tok/sdsh / t2-logsift: 560 prompt tokens at 308 tok/sdsh / t2-logsift: 434 prompt tokens at 251 tok/sdsh / t2-logsift: 252 prompt tokens at 155 tok/sdsh / t2-logsift: 1713 prompt tokens at 546 tok/sdsh / t2-logsift: 9112 prompt tokens at 851 tok/sdsh / t2-logsift: 973 prompt tokens at 413 tok/sdsh / t2-logsift: 440 prompt tokens at 254 tok/sdsh / t2-logsift: 849 prompt tokens at 397 tok/sdsh / t2-logsift: 271 prompt tokens at 202 tok/sdsh / t2-logsift: 8594 prompt tokens at 861 tok/sdsh / t2-logsift: 620 prompt tokens at 310 tok/sdsh / t2-logsift: 621 prompt tokens at 311 tok/sdsh / t2-logsift: 1271 prompt tokens at 463 tok/sdsh / t2-logsift: 1546 prompt tokens at 517 tok/sdsh / t2-logsift: 391 prompt tokens at 245 tok/sdsh / t2-logsift: 3715 prompt tokens at 711 tok/sdsh / t2-logsift: 3115 prompt tokens at 650 tok/sdsh / t2-logsift: 2319 prompt tokens at 694 tok/sdsh / t2-logsift: 2239 prompt tokens at 602 tok/sdsh / t2-logsift: 389 prompt tokens at 229 tok/sdsh / t2-logsift: 1432 prompt tokens at 522 tok/sdsh / t2-logsift: 677 prompt tokens at 344 tok/sdsh / t2-logsift: 5010 prompt tokens at 724 tok/sdsh / t2-logsift: 1656 prompt tokens at 530 tok/sdsh / t2-logsift: 865 prompt tokens at 366 tok/sdsh / t2-logsift: 609 prompt tokens at 296 tok/sdsh / t2-logsift: 651 prompt tokens at 301 tok/sdsh / t2-logsift: 786 prompt tokens at 394 tok/sdsh / t2-logsift: 1216 prompt tokens at 455 tok/sdsh / t2-logsift: 886 prompt tokens at 384 tok/sdsh / t2-logsift: 840 prompt tokens at 361 tok/sdsh / t2-logsift: 322 prompt tokens at 213 tok/sdsh / t2-logsift: 1743 prompt tokens at 514 tok/sdsh / t2-logsift: 1027 prompt tokens at 389 tok/sdsh / t2-logsift: 68 prompt tokens at 88 tok/sdsh / t2-logsift: 68 prompt tokens at 88 tok/sdsh / t2-logsift: 9179 prompt tokens at 863 tok/sdsh / t2-logsift: 1129 prompt tokens at 466 tok/sdsh / t2-logsift: 1264 prompt tokens at 478 tok/sdsh / t2-logsift: 11468 prompt tokens at 916 tok/sdsh / t2-logsift: 333 prompt tokens at 215 tok/sdsh / t2-logsift: 238 prompt tokens at 139 tok/sdsh / t2-logsift: 242 prompt tokens at 153 tok/sdsh / t2-logsift: 9177 prompt tokens at 834 tok/sdsh / t2-logsift: 1143 prompt tokens at 458 tok/sdsh / t2-logsift: 738 prompt tokens at 361 tok/sdsh / t2-logsift: 9495 prompt tokens at 897 tok/sdsh / t2-logsift: 1542 prompt tokens at 493 tok/sdsh / t2-logsift: 711 prompt tokens at 332 tok/sdsh / t2-logsift: 379 prompt tokens at 240 tok/sdsh / t2-logsift: 326 prompt tokens at 182 tok/sdsh / t2-logsift: 893 prompt tokens at 385 tok/sdsh / t2-logsift: 6705 prompt tokens at 835 tok/sdsh / t2-logsift: 309 prompt tokens at 183 tok/sdsh / t2-logsift: 386 prompt tokens at 222 tok/sdsh / t2-logsift: 206 prompt tokens at 106 tok/sdsh / t2-logsift: 1030 prompt tokens at 399 tok/sdsh / t2-logsift: 1384 prompt tokens at 508 tok/sdsh / t2-logsift: 639 prompt tokens at 309 tok/sdsh / t2-logsift: 410 prompt tokens at 232 tok/sdsh / t2-logsift: 275 prompt tokens at 151 tok/sdsh / t2-logsift: 2798 prompt tokens at 646 tok/sdsh / t2-logsift: 981 prompt tokens at 465 tok/sdsh / t2-logsift: 758 prompt tokens at 363 tok/sdsh / t2-logsift: 1601 prompt tokens at 476 tok/sdsh / t2-logsift: 2948 prompt tokens at 640 tok/sdsh / t2-logsift: 1214 prompt tokens at 446 tok/sdsh / t2-logsift: 236 prompt tokens at 131 tok/sdsh / t2-logsift: 696 prompt tokens at 321 tok/sdsh / t2-logsift: 206 prompt tokens at 108 tok/sdsh / t2-logsift: 205 prompt tokens at 108 tok/sdsh / t2-logsift: 276 prompt tokens at 168 tok/sdsh / t2-logsift: 1153 prompt tokens at 428 tok/sdsh / t2-logsift: 1514 prompt tokens at 497 tok/sdsh / t2-logsift: 568 prompt tokens at 281 tok/sdsh / t2-logsift: 637 prompt tokens at 308 tok/sdsh / t2-logsift: 1308 prompt tokens at 443 tok/sdsh / t3-shoebox: 8980 prompt tokens at 812 tok/sdsh / t3-shoebox: 386 prompt tokens at 255 tok/sdsh / t3-shoebox: 3064 prompt tokens at 692 tok/sdsh / t3-shoebox: 5409 prompt tokens at 804 tok/sdsh / t3-shoebox: 3225 prompt tokens at 672 tok/sdsh / t3-shoebox: 2461 prompt tokens at 625 tok/sdsh / t3-shoebox: 2089 prompt tokens at 589 tok/sdsh / t3-shoebox: 2485 prompt tokens at 623 tok/sdsh / t3-shoebox: 859 prompt tokens at 351 tok/sdsh / t3-shoebox: 7238 prompt tokens at 804 tok/sdsh / t3-shoebox: 2451 prompt tokens at 601 tok/sdsh / t3-shoebox: 2173 prompt tokens at 253 tok/sdsh / t3-shoebox: 3109 prompt tokens at 674 tok/sdsh / t3-shoebox: 702 prompt tokens at 350 tok/sdsh / t3-shoebox: 145 prompt tokens at 94 tok/sdsh / t3-shoebox: 454 prompt tokens at 254 tok/sdsh / t3-shoebox: 144 prompt tokens at 112 tok/sdsh / t3-shoebox: 246 prompt tokens at 176 tok/sdsh / t3-shoebox: 5557 prompt tokens at 760 tok/sdsh / t3-shoebox: 2135 prompt tokens at 577 tok/sdsh / t3-shoebox: 1262 prompt tokens at 452 tok/sdsh / t3-shoebox: 730 prompt tokens at 334 tok/sdsh / t3-shoebox: 8980 prompt tokens at 812 tok/sdsh / t3-shoebox: 1714 prompt tokens at 569 tok/sdsh / t3-shoebox: 4414 prompt tokens at 771 tok/sdsh / t3-shoebox: 4458 prompt tokens at 762 tok/sdsh / t3-shoebox: 3502 prompt tokens at 693 tok/sdsh / t3-shoebox: 4309 prompt tokens at 749 tok/sdsh / t3-shoebox: 2111 prompt tokens at 580 tok/sdsh / t3-shoebox: 2112 prompt tokens at 592 tok/sdsh / t3-shoebox: 556 prompt tokens at 305 tok/sdsh / t3-shoebox: 308 prompt tokens at 171 tok/sdsh / t3-shoebox: 976 prompt tokens at 428 tok/sdsh / t3-shoebox: 438 prompt tokens at 273 tok/sdsh / t3-shoebox: 1566 prompt tokens at 520 tok/sdsh / t3-shoebox: 1106 prompt tokens at 449 tok/sdsh / t3-shoebox: 1033 prompt tokens at 414 tok/sdsh / t3-shoebox: 1444 prompt tokens at 484 tok/sdsh / t3-shoebox: 3363 prompt tokens at 697 tok/sdsh / t3-shoebox: 1240 prompt tokens at 454 tok/sdsh / t3-shoebox: 1205 prompt tokens at 456 tok/sdsh / t3-shoebox: 2392 prompt tokens at 606 tok/sdsh / t3-shoebox: 1322 prompt tokens at 466 tok/sdsh / t3-shoebox: 620 prompt tokens at 310 tok/sdsh / t3-shoebox: 8982 prompt tokens at 888 tok/sdsh / t3-shoebox: 670 prompt tokens at 355 tok/sdsh / t3-shoebox: 816 prompt tokens at 394 tok/sdsh / t3-shoebox: 6098 prompt tokens at 830 tok/sdsh / t3-shoebox: 2958 prompt tokens at 660 tok/sdsh / t3-shoebox: 3994 prompt tokens at 778 tok/sdsh / t3-shoebox: 1941 prompt tokens at 584 tok/sdsh / t3-shoebox: 2063 prompt tokens at 584 tok/sdsh / t3-shoebox: 579 prompt tokens at 307 tok/sdsh / t3-shoebox: 1304 prompt tokens at 473 tok/sdsh / t3-shoebox: 840 prompt tokens at 378 tok/sdsh / t3-shoebox: 1272 prompt tokens at 485 tok/sdsh / t3-shoebox: 2041 prompt tokens at 595 tok/sdsh / t3-shoebox: 269 prompt tokens at 173 tok/sdsh / t3-shoebox: 1223 prompt tokens at 486 tok/sdsh / t3-shoebox: 2705 prompt tokens at 650 tok/sdsh / t3-shoebox: 1693 prompt tokens at 547 tok/sdsh / t3-shoebox: 310 prompt tokens at 191 tok/sdsh / t3-shoebox: 291 prompt tokens at 190 tok/sdsh / t3-shoebox: 8978 prompt tokens at 887 tok/sdsh / t3-shoebox: 844 prompt tokens at 398 tok/sdsh / t3-shoebox: 1317 prompt tokens at 498 tok/sdsh / t3-shoebox: 2336 prompt tokens at 642 tok/sdsh / t3-shoebox: 1277 prompt tokens at 493 tok/sdsh / t3-shoebox: 2347 prompt tokens at 633 tok/sdsh / t3-shoebox: 4314 prompt tokens at 762 tok/sdsh / t3-shoebox: 3084 prompt tokens at 677 tok/sdsh / t3-shoebox: 727 prompt tokens at 363 tok/sdsh / t3-shoebox: 1949 prompt tokens at 580 tok/sdsh / t3-shoebox: 1076 prompt tokens at 450 tok/sdsh / t3-shoebox: 480 prompt tokens at 283 tok/sdsh / t3-shoebox: 641 prompt tokens at 319 tok/sdsh / t3-shoebox: 678 prompt tokens at 350 tok/sdsh / t3-shoebox: 1012 prompt tokens at 421 tok/sdsh / t3-shoebox: 1799 prompt tokens at 551 tok/sdsh / t3-shoebox: 3254 prompt tokens at 697 tok/sdsh / t3-shoebox: 356 prompt tokens at 224 tok/sdsh / t3-shoebox: 194 prompt tokens at 109 tok/sdsh / t3-shoebox: 2082 prompt tokens at 588 tok/sdsh / t3-shoebox: 1659 prompt tokens at 526 tok/sdsh / t3-shoebox: 303 prompt tokens at 193 tok/sdsh / t3-shoebox: 269 prompt tokens at 167 tok/sdsh / t4-night-shift: 8514 prompt tokens at 864 tok/sdsh / t4-night-shift: 913 prompt tokens at 426 tok/sdsh / t4-night-shift: 591 prompt tokens at 327 tok/sdsh / t4-night-shift: 1390 prompt tokens at 487 tok/sdsh / t4-night-shift: 9717 prompt tokens at 787 tok/sdsh / t4-night-shift: 780 prompt tokens at 348 tok/sdsh / t4-night-shift: 677 prompt tokens at 314 tok/sdsh / t4-night-shift: 1631 prompt tokens at 510 tok/sdsh / t4-night-shift: 996 prompt tokens at 400 tok/sdsh / t4-night-shift: 2139 prompt tokens at 568 tok/sdsh / t4-night-shift: 3253 prompt tokens at 684 tok/sdsh / t4-night-shift: 1096 prompt tokens at 424 tok/sdsh / t4-night-shift: 470 prompt tokens at 268 tok/sdsh / t4-night-shift: 10203 prompt tokens at 847 tok/sdsh / t4-night-shift: 2791 prompt tokens at 638 tok/sdsh / t4-night-shift: 6031 prompt tokens at 812 tok/sdsh / t4-night-shift: 1998 prompt tokens at 583 tok/sdsh / t4-night-shift: 717 prompt tokens at 337 tok/sdsh / t4-night-shift: 1808 prompt tokens at 558 tok/sdsh / t4-night-shift: 563 prompt tokens at 302 tok/sdsh / t4-night-shift: 8514 prompt tokens at 829 tok/sdsh / t4-night-shift: 913 prompt tokens at 424 tok/sdsh / t4-night-shift: 591 prompt tokens at 328 tok/sdsh / t4-night-shift: 1386 prompt tokens at 469 tok/sdsh / t4-night-shift: 5554 prompt tokens at 791 tok/sdsh / t4-night-shift: 351 prompt tokens at 230 tok/sdsh / t4-night-shift: 1292 prompt tokens at 457 tok/sdsh / t4-night-shift: 1800 prompt tokens at 518 tok/sdsh / t4-night-shift: 2121 prompt tokens at 575 tok/sdsh / t4-night-shift: 1491 prompt tokens at 490 tok/sdsh / t4-night-shift: 535 prompt tokens at 270 tok/sdsh / t4-night-shift: 1390 prompt tokens at 473 tok/sdsh / t4-night-shift: 4059 prompt tokens at 767 tok/sdsh / t4-night-shift: 735 prompt tokens at 331 tok/sdsh / t4-night-shift: 1249 prompt tokens at 491 tok/sdsh / t4-night-shift: 2826 prompt tokens at 659 tok/sdsh / t4-night-shift: 1521 prompt tokens at 519 tok/sdsh / t4-night-shift: 794 prompt tokens at 351 tok/sdsh / t4-night-shift: 428 prompt tokens at 270 tok/sdsh / t4-night-shift: 437 prompt tokens at 257 tok/sdsh / t4-night-shift: 8516 prompt tokens at 889 tok/sdsh / t4-night-shift: 533 prompt tokens at 303 tok/sdsh / t4-night-shift: 1376 prompt tokens at 495 tok/sdsh / t4-night-shift: 3837 prompt tokens at 755 tok/sdsh / t4-night-shift: 624 prompt tokens at 335 tok/sdsh / t4-night-shift: 1132 prompt tokens at 449 tok/sdsh / t4-night-shift: 347 prompt tokens at 207 tok/sdsh / t4-night-shift: 1423 prompt tokens at 488 tok/sdsh / t4-night-shift: 551 prompt tokens at 281 tok/sdsh / t4-night-shift: 288 prompt tokens at 160 tok/sdsh / t4-night-shift: 1093 prompt tokens at 430 tok/sdsh / t4-night-shift: 1365 prompt tokens at 484 tok/sdsh / t4-night-shift: 1222 prompt tokens at 453 tok/sdsh / t4-night-shift: 882 prompt tokens at 382 tok/sdsh / t4-night-shift: 355 prompt tokens at 232 tok/sdsh / t4-night-shift: 217 prompt tokens at 118 tok/sdsh / t4-night-shift: 213 prompt tokens at 116 tok/sdsh / t4-night-shift: 2372 prompt tokens at 618 tok/sdsh / t4-night-shift: 368 prompt tokens at 223 tok/sdsh / t4-night-shift: 1222 prompt tokens at 463 tok/sdsh / t4-night-shift: 172 prompt tokens at 106 tok/sdsh / t4-night-shift: 1248 prompt tokens at 455 tok/sdsh / t4-night-shift: 3164 prompt tokens at 788 tok/sdsh / t4-night-shift: 829 prompt tokens at 466 tok/sdsh / t4-night-shift: 1231 prompt tokens at 484 tok/sdsh / t4-night-shift: 3075 prompt tokens at 655 tok/sdsh / t4-night-shift: 399 prompt tokens at 231 tok/sdsh / t4-night-shift: 771 prompt tokens at 357 tok/sdsh / t4-night-shift: 1174 prompt tokens at 450 tok/sdsh / t4-night-shift: 773 prompt tokens at 345 tok/sdsh / t4-night-shift: 1551 prompt tokens at 499 tok/sdsh / t4-night-shift: 2516 prompt tokens at 596 tok/sdsh / t4-night-shift: 428 prompt tokens at 233 tok/sdsh / t4-night-shift: 220 prompt tokens at 126 tok/sdsh / t4-night-shift: 279 prompt tokens at 145 tok/sdsh / t4-night-shift: 822 prompt tokens at 360 tok/sdsh / t4-night-shift: 856 prompt tokens at 327 tok/sdsh / t4-night-shift: 841 prompt tokens at 353 tok/sdsh / t4-night-shift: 326 prompt tokens at 192 tok/sdsh / t4-night-shift: 802 prompt tokens at 341 tok/sdsh / t4-night-shift: 1426 prompt tokens at 480 tok/sdsh / t4-night-shift: 843 prompt tokens at 394 tok/sdsh / t4-night-shift: 2116 prompt tokens at 544 tok/sdsh / t4-night-shift: 259 prompt tokens at 132 tok/sdsh / t4-night-shift: 1911 prompt tokens at 560 tok/sdsh / t4-night-shift: 242 prompt tokens at 116 tok/sdsh / t4-night-shift: 663 prompt tokens at 317 tok/sdsh / t4-night-shift: 287 prompt tokens at 133 tok/sdsh / t4-night-shift: 733 prompt tokens at 348 tok/sdsh / t4-night-shift: 202 prompt tokens at 114 tok/sdsh / t4-night-shift: 578 prompt tokens at 300 tok/sdsh / t4-night-shift: 603 prompt tokens at 337 tok/sdsh / t4-night-shift: 632 prompt tokens at 367 tok/sdsh / t4-night-shift: 3140 prompt tokens at 607 tok/sdsh / t4-night-shift: 968 prompt tokens at 382 tok/sdsh / t4-night-shift: 229 prompt tokens at 120 tok/sdsh / t4-night-shift: 222 prompt tokens at 121 tok/sdsh / t4-night-shift: 678 prompt tokens at 316 tok/sdsh / t4-night-shift: 492 prompt tokens at 273 tok/sdsh / t4-night-shift: 2046 prompt tokens at 530 tok/sdsh / t4-night-shift: 2047 prompt tokens at 528 tok/sdsh / t4-night-shift: 1112 prompt tokens at 400 tok/sdsh / t4-night-shift: 397 prompt tokens at 231 tok/sdsh / t4-night-shift: 674 prompt tokens at 345 tok/sdsh / t4-night-shift: 807 prompt tokens at 345 tok/sdsh / t4-night-shift: 694 prompt tokens at 329 tok/sdsh / t4-night-shift: 756 prompt tokens at 346 tok/sdsh / t4-night-shift: 768 prompt tokens at 355 tok/sdsh / t4-night-shift: 481 prompt tokens at 264 tok/sdsh / t4-night-shift: 8512 prompt tokens at 823 tok/sdsh / t4-night-shift: 577 prompt tokens at 322 tok/sdsh / t4-night-shift: 1357 prompt tokens at 492 tok/sdsh / t4-night-shift: 8182 prompt tokens at 921 tok/sdsh / t4-night-shift: 383 prompt tokens at 246 tok/sdsh / t4-night-shift: 1961 prompt tokens at 536 tok/sdsh / t4-night-shift: 6030 prompt tokens at 815 tok/sdsh / t4-night-shift: 185 prompt tokens at 108 tok/sdsh / t4-night-shift: 548 prompt tokens at 299 tok/sdsh / t4-night-shift: 2878 prompt tokens at 660 tok/sdsh / t4-night-shift: 2818 prompt tokens at 765 tok/sdsh / t4-night-shift: 3311 prompt tokens at 714 tok/sdsh / t4-night-shift: 2990 prompt tokens at 654 tok/sdsh / t4-night-shift: 2653 prompt tokens at 618 tok/sdsh / t4-night-shift: 644 prompt tokens at 322 tok/sdsh / t5-regression: 7968 prompt tokens at 933 tok/sdsh / t5-regression: 228 prompt tokens at 163 tok/sdsh / t5-regression: 997 prompt tokens at 455 tok/sdsh / t5-regression: 1040 prompt tokens at 440 tok/sdsh / t5-regression: 792 prompt tokens at 388 tok/sdsh / t5-regression: 553 prompt tokens at 283 tok/sdsh / t5-regression: 1707 prompt tokens at 517 tok/sdsh / t5-regression: 871 prompt tokens at 390 tok/sdsh / t5-regression: 1830 prompt tokens at 528 tok/sdsh / t5-regression: 1437 prompt tokens at 502 tok/sdsh / t5-regression: 3395 prompt tokens at 684 tok/sdsh / t5-regression: 1706 prompt tokens at 587 tok/sdsh / t5-regression: 4414 prompt tokens at 716 tok/sdsh / t5-regression: 2455 prompt tokens at 630 tok/sdsh / t5-regression: 279 prompt tokens at 158 tok/sdsh / t5-regression: 286 prompt tokens at 142 tok/sdsh / t5-regression: 328 prompt tokens at 213 tok/sdsh / t5-regression: 370 prompt tokens at 235 tok/sdsh / t5-regression: 289 prompt tokens at 179 tok/sdsh / t5-regression: 444 prompt tokens at 252 tok/sdsh / t5-regression: 363 prompt tokens at 233 tok/sdsh / t5-regression: 7966 prompt tokens at 913 tok/sdsh / t5-regression: 511 prompt tokens at 307 tok/sdsh / t5-regression: 527 prompt tokens at 298 tok/sdsh / t5-regression: 641 prompt tokens at 307 tok/sdsh / t5-regression: 449 prompt tokens at 285 tok/sdsh / t5-regression: 1659 prompt tokens at 543 tok/sdsh / t5-regression: 834 prompt tokens at 382 tok/sdsh / t5-regression: 1647 prompt tokens at 532 tok/sdsh / t5-regression: 3342 prompt tokens at 698 tok/sdsh / t5-regression: 1166 prompt tokens at 459 tok/sdsh / t5-regression: 2581 prompt tokens at 623 tok/sdsh / t5-regression: 763 prompt tokens at 375 tok/sdsh / t5-regression: 448 prompt tokens at 255 tok/sdsh / t5-regression: 290 prompt tokens at 183 tok/sdsh / t5-regression: 1262 prompt tokens at 471 tok/sdsh / t5-regression: 438 prompt tokens at 264 tok/sdsh / t5-regression: 435 prompt tokens at 262 tok/sdsh / t5-regression: 446 prompt tokens at 266 tok/sdsh / t5-regression: 298 prompt tokens at 174 tok/sdsh / t5-regression: 399 prompt tokens at 225 tok/sdsh / t5-regression: 402 prompt tokens at 251 tok/sdsh / t5-regression: 196 prompt tokens at 110 tok/sdsh / t5-regression: 256 prompt tokens at 150 tok/sdsh / t5-regression: 339 prompt tokens at 203 tok/sdsh / t5-regression: 905 prompt tokens at 390 tok/sdsh / t5-regression: 7970 prompt tokens at 918 tok/sdsh / t5-regression: 566 prompt tokens at 313 tok/sdsh / t5-regression: 1049 prompt tokens at 430 tok/sdsh / t5-regression: 2440 prompt tokens at 637 tok/sdsh / t5-regression: 462 prompt tokens at 279 tok/sdsh / t5-regression: 2459 prompt tokens at 641 tok/sdsh / t5-regression: 3070 prompt tokens at 686 tok/sdsh / t5-regression: 1850 prompt tokens at 552 tok/sdsh / t5-regression: 676 prompt tokens at 362 tok/sdsh / t5-regression: 1705 prompt tokens at 512 tok/sdsh / t5-regression: 1052 prompt tokens at 449 tok/sdsh / t5-regression: 152 prompt tokens at 100 tok/sdsh / t5-regression: 178 prompt tokens at 106 tok/sdsh / t5-regression: 275 prompt tokens at 173 tok/sdsh / t5-regression: 603 prompt tokens at 324 tok/sdsh / t5-regression: 330 prompt tokens at 206 tok/sdsh / t5-regression: 471 prompt tokens at 274 tok/sdsh / t5-regression: 414 prompt tokens at 245 tok/sdsh / t5-regression: 414 prompt tokens at 250 tok/sdsh / t5-regression: 524 prompt tokens at 284 tok/sdsh / t5-regression: 156 prompt tokens at 100 tok/sdsh / t5-regression: 7970 prompt tokens at 914 tok/sdsh / t5-regression: 567 prompt tokens at 314 tok/sdsh / t5-regression: 635 prompt tokens at 343 tok/sdsh / t5-regression: 1777 prompt tokens at 563 tok/sdsh / t5-regression: 1090 prompt tokens at 451 tok/sdsh / t5-regression: 1205 prompt tokens at 468 tok/sdsh / t5-regression: 3021 prompt tokens at 681 tok/sdsh / t5-regression: 4531 prompt tokens at 744 tok/sdsh / t5-regression: 799 prompt tokens at 392 tok/sdsh / t5-regression: 432 prompt tokens at 255 tok/sdsh / t5-regression: 421 prompt tokens at 256 tok/sdsh / t5-regression: 357 prompt tokens at 211 tok/sdsh / t5-regression: 284 prompt tokens at 164 tok/sdsh / t5-regression: 281 prompt tokens at 173 tok/sdsh / t5-regression: 377 prompt tokens at 243 tok/sdsh / t5-regression: 321 prompt tokens at 196 tok/sdsh / t5-regression: 343 prompt tokens at 213 tok/sdsh / t5-regression: 391 prompt tokens at 228 tok/sdsh / t6-payroll: 9795 prompt tokens at 868 tok/sdsh / t6-payroll: 619 prompt tokens at 343 tok/sdsh / t6-payroll: 864 prompt tokens at 385 tok/sdsh / t6-payroll: 11341 prompt tokens at 917 tok/sdsh / t6-payroll: 9174 prompt tokens at 863 tok/sdsh / t6-payroll: 2862 prompt tokens at 650 tok/sdsh / t6-payroll: 5400 prompt tokens at 782 tok/sdsh / t6-payroll: 10127 prompt tokens at 850 tok/sdsh / t6-payroll: 5798 prompt tokens at 800 tok/sdsh / t6-payroll: 526 prompt tokens at 283 tok/sdsh / t6-payroll: 2839 prompt tokens at 641 tok/sdsh / t6-payroll: 1458 prompt tokens at 473 tok/sdsh / t6-payroll: 1211 prompt tokens at 449 tok/sdsh / t6-payroll: 1688 prompt tokens at 538 tok/sdsh / t6-payroll: 1349 prompt tokens at 485 tok/sdsh / t6-payroll: 177 prompt tokens at 108 tok/sdsh / t6-payroll: 3453 prompt tokens at 684 tok/sdsh / t6-payroll: 2041 prompt tokens at 583 tok/sdsh / t6-payroll: 2439 prompt tokens at 588 tok/sdsh / t6-payroll: 1009 prompt tokens at 423 tok/sdsh / t6-payroll: 1879 prompt tokens at 549 tok/sdsh / t6-payroll: 351 prompt tokens at 212 tok/sdsh / t6-payroll: 1274 prompt tokens at 452 tok/sdsh / t6-payroll: 9791 prompt tokens at 833 tok/sdsh / t6-payroll: 77 prompt tokens at 80 tok/sdsh / t6-payroll: 442 prompt tokens at 277 tok/sdsh / t6-payroll: 404 prompt tokens at 258 tok/sdsh / t6-payroll: 11278 prompt tokens at 907 tok/sdsh / t6-payroll: 160 prompt tokens at 102 tok/sdsh / t6-payroll: 325 prompt tokens at 217 tok/sdsh / t6-payroll: 22058 prompt tokens at 965 tok/sdsh / t6-payroll: 3523 prompt tokens at 708 tok/sdsh / t6-payroll: 14011 prompt tokens at 920 tok/sdsh / t6-payroll: 1382 prompt tokens at 476 tok/sdsh / t6-payroll: 9793 prompt tokens at 900 tok/sdsh / t6-payroll: 421 prompt tokens at 275 tok/sdsh / t6-payroll: 838 prompt tokens at 384 tok/sdsh / t6-payroll: 11308 prompt tokens at 924 tok/sdsh / t6-payroll: 9080 prompt tokens at 879 tok/sdsh / t6-payroll: 3187 prompt tokens at 692 tok/sdsh / t6-payroll: 1005 prompt tokens at 433 tok/sdsh / t6-payroll: 1098 prompt tokens at 449 tok/sdsh / t6-payroll: 452 prompt tokens at 284 tok/sdsh / t6-payroll: 495 prompt tokens at 290 tok/sdsh / t6-payroll: 5195 prompt tokens at 769 tok/sdsh / t6-payroll: 4716 prompt tokens at 777 tok/sdsh / t6-payroll: 11902 prompt tokens at 889 tok/sdsh / t6-payroll: 5937 prompt tokens at 798 tok/sdsh / t6-payroll: 3438 prompt tokens at 683 tok/sdsh / t6-payroll: 5413 prompt tokens at 780 tok/sdsh / t6-payroll: 483 prompt tokens at 266 tok/sdsh / t6-payroll: 466 prompt tokens at 270 tok/sdsh / t6-payroll: 396 prompt tokens at 252 tok/sdsh / t6-payroll: 2957 prompt tokens at 650 tok/sdsh / t6-payroll: 2743 prompt tokens at 635 tok/sdsh / t6-payroll: 2174 prompt tokens at 582 tok/sdsh / t6-payroll: 1524 prompt tokens at 505 tok/sdsh / t6-payroll: 4113 prompt tokens at 718 tok/sdsh / t6-payroll: 3108 prompt tokens at 665 tok/sdsh / t6-payroll: 4324 prompt tokens at 726 tok/sdsh / t6-payroll: 1314 prompt tokens at 471 tok/sdsh / t6-payroll: 1169 prompt tokens at 433 tok/sdsh / t6-payroll: 700 prompt tokens at 326 tok/sdsh / t6-payroll: 68 prompt tokens at 81 tok/sdsh / t6-payroll: 68 prompt tokens at 81 tok/sdsh / t6-payroll: 9795 prompt tokens at 898 tok/sdsh / t6-payroll: 93 prompt tokens at 89 tok/sdsh / t6-payroll: 324 prompt tokens at 227 tok/sdsh / t6-payroll: 539 prompt tokens at 308 tok/sdsh / t6-payroll: 11279 prompt tokens at 924 tok/sdsh / t6-payroll: 11146 prompt tokens at 886 tok/sdsh / t6-payroll: 3150 prompt tokens at 669 tok/sdsh / t6-payroll: 1786 prompt tokens at 527 tok/sdsh / t6-payroll: 7043 prompt tokens at 831 tok/sdsh / t6-payroll: 14586 prompt tokens at 910 tok/sdsh / t6-payroll: 5976 prompt tokens at 793 tok/sdsh / t6-payroll: 1733 prompt tokens at 526 tok/sdsh / t6-payroll: 670 prompt tokens at 316 tok/sdsh / t6-payroll: 263 prompt tokens at 182 tok/sdsh / t6-payroll: 1951 prompt tokens at 568 tok/sdsh / t6-payroll: 680 prompt tokens at 302 tok/sopencode / t1-cold-fix: 68 prompt tokens at 39 tok/sopencode / t1-cold-fix: 705 prompt tokens at 357 tok/sopencode / t1-cold-fix: 7247 prompt tokens at 797 tok/sopencode / t1-cold-fix: 319 prompt tokens at 221 tok/sopencode / t1-cold-fix: 1193 prompt tokens at 466 tok/sopencode / t1-cold-fix: 805 prompt tokens at 379 tok/sopencode / t1-cold-fix: 399 prompt tokens at 245 tok/sopencode / t1-cold-fix: 843 prompt tokens at 372 tok/sopencode / t1-cold-fix: 869 prompt tokens at 382 tok/sopencode / t1-cold-fix: 791 prompt tokens at 359 tok/sopencode / t1-cold-fix: 928 prompt tokens at 404 tok/sopencode / t1-cold-fix: 621 prompt tokens at 331 tok/sopencode / t1-cold-fix: 684 prompt tokens at 327 tok/sopencode / t1-cold-fix: 210 prompt tokens at 101 tok/sopencode / t1-cold-fix: 312 prompt tokens at 180 tok/sopencode / t1-cold-fix: 117 prompt tokens at 89 tok/sopencode / t1-cold-fix: 147 prompt tokens at 95 tok/sopencode / t1-cold-fix: 205 prompt tokens at 151 tok/sopencode / t1-cold-fix: 7243 prompt tokens at 816 tok/sopencode / t1-cold-fix: 309 prompt tokens at 222 tok/sopencode / t1-cold-fix: 610 prompt tokens at 344 tok/sopencode / t1-cold-fix: 155 prompt tokens at 104 tok/sopencode / t1-cold-fix: 2375 prompt tokens at 632 tok/sopencode / t1-cold-fix: 2254 prompt tokens at 615 tok/sopencode / t1-cold-fix: 662 prompt tokens at 330 tok/sopencode / t1-cold-fix: 1669 prompt tokens at 559 tok/sopencode / t1-cold-fix: 1514 prompt tokens at 513 tok/sopencode / t1-cold-fix: 178 prompt tokens at 104 tok/sopencode / t1-cold-fix: 109 prompt tokens at 91 tok/sopencode / t1-cold-fix: 156 prompt tokens at 107 tok/sopencode / t1-cold-fix: 282 prompt tokens at 213 tok/sopencode / t1-cold-fix: 7249 prompt tokens at 812 tok/sopencode / t1-cold-fix: 309 prompt tokens at 216 tok/sopencode / t1-cold-fix: 630 prompt tokens at 334 tok/sopencode / t1-cold-fix: 1367 prompt tokens at 501 tok/sopencode / t1-cold-fix: 804 prompt tokens at 379 tok/sopencode / t1-cold-fix: 325 prompt tokens at 219 tok/sopencode / t1-cold-fix: 845 prompt tokens at 383 tok/sopencode / t1-cold-fix: 795 prompt tokens at 379 tok/sopencode / t1-cold-fix: 422 prompt tokens at 254 tok/sopencode / t1-cold-fix: 160 prompt tokens at 104 tok/sopencode / t1-cold-fix: 382 prompt tokens at 275 tok/sopencode / t1-cold-fix: 961 prompt tokens at 407 tok/sopencode / t1-cold-fix: 881 prompt tokens at 393 tok/sopencode / t1-cold-fix: 962 prompt tokens at 409 tok/sopencode / t1-cold-fix: 153 prompt tokens at 100 tok/sopencode / t1-cold-fix: 99 prompt tokens at 86 tok/sopencode / t1-cold-fix: 128 prompt tokens at 100 tok/sopencode / t1-cold-fix: 230 prompt tokens at 170 tok/sopencode / t1-cold-fix: 7247 prompt tokens at 835 tok/sopencode / t1-cold-fix: 275 prompt tokens at 203 tok/sopencode / t1-cold-fix: 140 prompt tokens at 103 tok/sopencode / t1-cold-fix: 1366 prompt tokens at 503 tok/sopencode / t1-cold-fix: 2399 prompt tokens at 633 tok/sopencode / t1-cold-fix: 2266 prompt tokens at 613 tok/sopencode / t1-cold-fix: 910 prompt tokens at 412 tok/sopencode / t1-cold-fix: 1124 prompt tokens at 446 tok/sopencode / t1-cold-fix: 202 prompt tokens at 109 tok/sopencode / t1-cold-fix: 87 prompt tokens at 84 tok/sopencode / t1-cold-fix: 92 prompt tokens at 85 tok/sopencode / t1-cold-fix: 103 prompt tokens at 89 tok/sopencode / t2-logsift: 1996 prompt tokens at 623 tok/sopencode / t2-logsift: 8540 prompt tokens at 865 tok/sopencode / t2-logsift: 197 prompt tokens at 130 tok/sopencode / t2-logsift: 1317 prompt tokens at 509 tok/sopencode / t2-logsift: 15791 prompt tokens at 955 tok/sopencode / t2-logsift: 2481 prompt tokens at 629 tok/sopencode / t2-logsift: 2687 prompt tokens at 642 tok/sopencode / t2-logsift: 204 prompt tokens at 120 tok/sopencode / t2-logsift: 111 prompt tokens at 90 tok/sopencode / t2-logsift: 1756 prompt tokens at 555 tok/sopencode / t2-logsift: 8536 prompt tokens at 865 tok/sopencode / t2-logsift: 1480 prompt tokens at 531 tok/sopencode / t2-logsift: 8140 prompt tokens at 930 tok/sopencode / t2-logsift: 1928 prompt tokens at 596 tok/sopencode / t2-logsift: 170 prompt tokens at 110 tok/sopencode / t2-logsift: 2009 prompt tokens at 606 tok/sopencode / t2-logsift: 2264 prompt tokens at 625 tok/sopencode / t2-logsift: 196 prompt tokens at 114 tok/sopencode / t2-logsift: 286 prompt tokens at 178 tok/sopencode / t2-logsift: 174 prompt tokens at 110 tok/sopencode / t2-logsift: 1721 prompt tokens at 547 tok/sopencode / t2-logsift: 141 prompt tokens at 95 tok/sopencode / t2-logsift: 311 prompt tokens at 194 tok/sopencode / t2-logsift: 296 prompt tokens at 200 tok/sopencode / t2-logsift: 283 prompt tokens at 155 tok/sopencode / t2-logsift: 834 prompt tokens at 362 tok/sopencode / t2-logsift: 174 prompt tokens at 102 tok/sopencode / t2-logsift: 123 prompt tokens at 98 tok/sopencode / t2-logsift: 3185 prompt tokens at 694 tok/sopencode / t2-logsift: 720 prompt tokens at 350 tok/sopencode / t2-logsift: 74 prompt tokens at 83 tok/sopencode / t2-logsift: 2437 prompt tokens at 628 tok/sopencode / t2-logsift: 290 prompt tokens at 201 tok/sopencode / t2-logsift: 285 prompt tokens at 170 tok/sopencode / t2-logsift: 157 prompt tokens at 105 tok/sopencode / t2-logsift: 1052 prompt tokens at 439 tok/sopencode / t2-logsift: 689 prompt tokens at 398 tok/sopencode / t2-logsift: 984 prompt tokens at 413 tok/sopencode / t2-logsift: 370 prompt tokens at 246 tok/sopencode / t2-logsift: 117 prompt tokens at 94 tok/sopencode / t2-logsift: 8540 prompt tokens at 831 tok/sopencode / t2-logsift: 210 prompt tokens at 126 tok/sopencode / t2-logsift: 1321 prompt tokens at 508 tok/sopencode / t2-logsift: 6270 prompt tokens at 842 tok/sopencode / t2-logsift: 240 prompt tokens at 130 tok/sopencode / t2-logsift: 537 prompt tokens at 280 tok/sopencode / t2-logsift: 2436 prompt tokens at 635 tok/sopencode / t2-logsift: 935 prompt tokens at 416 tok/sopencode / t2-logsift: 556 prompt tokens at 313 tok/sopencode / t2-logsift: 401 prompt tokens at 262 tok/sopencode / t2-logsift: 8536 prompt tokens at 866 tok/sopencode / t2-logsift: 1295 prompt tokens at 492 tok/sopencode / t2-logsift: 835 prompt tokens at 388 tok/sopencode / t2-logsift: 9786 prompt tokens at 904 tok/sopencode / t2-logsift: 251 prompt tokens at 151 tok/sopencode / t2-logsift: 311 prompt tokens at 198 tok/sopencode / t2-logsift: 446 prompt tokens at 276 tok/sopencode / t2-logsift: 342 prompt tokens at 230 tok/sopencode / t2-logsift: 707 prompt tokens at 332 tok/sopencode / t2-logsift: 334 prompt tokens at 218 tok/sopencode / t2-logsift: 436 prompt tokens at 257 tok/sopencode / t2-logsift: 851 prompt tokens at 389 tok/sopencode / t2-logsift: 6019 prompt tokens at 816 tok/sopencode / t2-logsift: 182 prompt tokens at 114 tok/sopencode / t2-logsift: 304 prompt tokens at 193 tok/sopencode / t2-logsift: 509 prompt tokens at 291 tok/sopencode / t2-logsift: 386 prompt tokens at 247 tok/sopencode / t2-logsift: 464 prompt tokens at 277 tok/sopencode / t2-logsift: 443 prompt tokens at 265 tok/sopencode / t2-logsift: 1010 prompt tokens at 453 tok/sopencode / t2-logsift: 583 prompt tokens at 319 tok/sopencode / t2-logsift: 5901 prompt tokens at 803 tok/sopencode / t2-logsift: 729 prompt tokens at 371 tok/sopencode / t2-logsift: 576 prompt tokens at 333 tok/sopencode / t2-logsift: 2572 prompt tokens at 649 tok/sopencode / t2-logsift: 429 prompt tokens at 267 tok/sopencode / t2-logsift: 159 prompt tokens at 102 tok/sopencode / t2-logsift: 1095 prompt tokens at 413 tok/sopencode / t3-shoebox: 1288 prompt tokens at 509 tok/sopencode / t3-shoebox: 8344 prompt tokens at 861 tok/sopencode / t3-shoebox: 565 prompt tokens at 326 tok/sopencode / t3-shoebox: 3533 prompt tokens at 739 tok/sopencode / t3-shoebox: 6572 prompt tokens at 831 tok/sopencode / t3-shoebox: 288 prompt tokens at 198 tok/sopencode / t3-shoebox: 6945 prompt tokens at 848 tok/sopencode / t3-shoebox: 2177 prompt tokens at 597 tok/sopencode / t3-shoebox: 1374 prompt tokens at 510 tok/sopencode / t3-shoebox: 1220 prompt tokens at 460 tok/sopencode / t3-shoebox: 1547 prompt tokens at 510 tok/sopencode / t3-shoebox: 710 prompt tokens at 359 tok/sopencode / t3-shoebox: 4130 prompt tokens at 731 tok/sopencode / t3-shoebox: 147 prompt tokens at 108 tok/sopencode / t3-shoebox: 8340 prompt tokens at 863 tok/sopencode / t3-shoebox: 436 prompt tokens at 287 tok/sopencode / t3-shoebox: 374 prompt tokens at 202 tok/sopencode / t3-shoebox: 4178 prompt tokens at 723 tok/sopencode / t3-shoebox: 3835 prompt tokens at 709 tok/sopencode / t3-shoebox: 4832 prompt tokens at 745 tok/sopencode / t3-shoebox: 7885 prompt tokens at 873 tok/sopencode / t3-shoebox: 1528 prompt tokens at 527 tok/sopencode / t3-shoebox: 1090 prompt tokens at 436 tok/sopencode / t3-shoebox: 3608 prompt tokens at 709 tok/sopencode / t3-shoebox: 1259 prompt tokens at 481 tok/sopencode / t3-shoebox: 2128 prompt tokens at 586 tok/sopencode / t3-shoebox: 171 prompt tokens at 122 tok/sopencode / t3-shoebox: 8340 prompt tokens at 859 tok/sopencode / t3-shoebox: 561 prompt tokens at 299 tok/sopencode / t3-shoebox: 3618 prompt tokens at 736 tok/sopencode / t3-shoebox: 3686 prompt tokens at 734 tok/sopencode / t3-shoebox: 4191 prompt tokens at 760 tok/sopencode / t3-shoebox: 4046 prompt tokens at 792 tok/sopencode / t3-shoebox: 3168 prompt tokens at 699 tok/sopencode / t3-shoebox: 531 prompt tokens at 304 tok/sopencode / t3-shoebox: 1115 prompt tokens at 452 tok/sopencode / t3-shoebox: 233 prompt tokens at 156 tok/sopencode / t3-shoebox: 194 prompt tokens at 112 tok/sopencode / t3-shoebox: 310 prompt tokens at 213 tok/sopencode / t3-shoebox: 621 prompt tokens at 324 tok/sopencode / t3-shoebox: 950 prompt tokens at 436 tok/sopencode / t3-shoebox: 307 prompt tokens at 201 tok/sopencode / t3-shoebox: 794 prompt tokens at 378 tok/sopencode / t3-shoebox: 84 prompt tokens at 82 tok/sopencode / t3-shoebox: 910 prompt tokens at 407 tok/sopencode / t3-shoebox: 210 prompt tokens at 118 tok/sopencode / t3-shoebox: 629 prompt tokens at 346 tok/sopencode / t3-shoebox: 717 prompt tokens at 332 tok/sopencode / t3-shoebox: 350 prompt tokens at 222 tok/sopencode / t3-shoebox: 671 prompt tokens at 320 tok/sopencode / t3-shoebox: 3817 prompt tokens at 727 tok/sopencode / t3-shoebox: 206 prompt tokens at 141 tok/sopencode / t3-shoebox: 716 prompt tokens at 357 tok/sopencode / t3-shoebox: 661 prompt tokens at 354 tok/sopencode / t3-shoebox: 1789 prompt tokens at 532 tok/sopencode / t3-shoebox: 1060 prompt tokens at 422 tok/sopencode / t3-shoebox: 1165 prompt tokens at 472 tok/sopencode / t3-shoebox: 1280 prompt tokens at 466 tok/sopencode / t3-shoebox: 266 prompt tokens at 169 tok/sopencode / t3-shoebox: 8342 prompt tokens at 832 tok/sopencode / t3-shoebox: 435 prompt tokens at 288 tok/sopencode / t3-shoebox: 1196 prompt tokens at 480 tok/sopencode / t3-shoebox: 2345 prompt tokens at 643 tok/sopencode / t3-shoebox: 1315 prompt tokens at 493 tok/sopencode / t3-shoebox: 2490 prompt tokens at 652 tok/sopencode / t3-shoebox: 4273 prompt tokens at 761 tok/sopencode / t3-shoebox: 6380 prompt tokens at 837 tok/sopencode / t3-shoebox: 444 prompt tokens at 277 tok/sopencode / t3-shoebox: 1335 prompt tokens at 508 tok/sopencode / t3-shoebox: 732 prompt tokens at 378 tok/sopencode / t3-shoebox: 451 prompt tokens at 279 tok/sopencode / t3-shoebox: 543 prompt tokens at 297 tok/sopencode / t3-shoebox: 502 prompt tokens at 296 tok/sopencode / t3-shoebox: 1871 prompt tokens at 562 tok/sopencode / t3-shoebox: 907 prompt tokens at 416 tok/sopencode / t3-shoebox: 268 prompt tokens at 178 tok/sopencode / t3-shoebox: 548 prompt tokens at 306 tok/sopencode / t3-shoebox: 1215 prompt tokens at 473 tok/sopencode / t3-shoebox: 2097 prompt tokens at 584 tok/sopencode / t3-shoebox: 2491 prompt tokens at 641 tok/sopencode / t4-night-shift: 1329 prompt tokens at 517 tok/sopencode / t4-night-shift: 7867 prompt tokens at 823 tok/sopencode / t4-night-shift: 367 prompt tokens at 255 tok/sopencode / t4-night-shift: 2703 prompt tokens at 648 tok/sopencode / t4-night-shift: 5020 prompt tokens at 785 tok/sopencode / t4-night-shift: 179 prompt tokens at 105 tok/sopencode / t4-night-shift: 346 prompt tokens at 222 tok/sopencode / t4-night-shift: 538 prompt tokens at 287 tok/sopencode / t4-night-shift: 295 prompt tokens at 157 tok/sopencode / t4-night-shift: 477 prompt tokens at 269 tok/sopencode / t4-night-shift: 563 prompt tokens at 301 tok/sopencode / t4-night-shift: 700 prompt tokens at 335 tok/sopencode / t4-night-shift: 176 prompt tokens at 103 tok/sopencode / t4-night-shift: 2238 prompt tokens at 611 tok/sopencode / t4-night-shift: 207 prompt tokens at 114 tok/sopencode / t4-night-shift: 292 prompt tokens at 160 tok/sopencode / t4-night-shift: 306 prompt tokens at 183 tok/sopencode / t4-night-shift: 399 prompt tokens at 297 tok/sopencode / t4-night-shift: 736 prompt tokens at 413 tok/sopencode / t4-night-shift: 2314 prompt tokens at 605 tok/sopencode / t4-night-shift: 1366 prompt tokens at 499 tok/sopencode / t4-night-shift: 275 prompt tokens at 175 tok/sopencode / t4-night-shift: 587 prompt tokens at 344 tok/sopencode / t4-night-shift: 244 prompt tokens at 153 tok/sopencode / t4-night-shift: 186 prompt tokens at 112 tok/sopencode / t4-night-shift: 1048 prompt tokens at 423 tok/sopencode / t4-night-shift: 7871 prompt tokens at 850 tok/sopencode / t4-night-shift: 365 prompt tokens at 262 tok/sopencode / t4-night-shift: 2756 prompt tokens at 666 tok/sopencode / t4-night-shift: 416 prompt tokens at 262 tok/sopencode / t4-night-shift: 279 prompt tokens at 211 tok/sopencode / t4-night-shift: 6082 prompt tokens at 829 tok/sopencode / t4-night-shift: 225 prompt tokens at 129 tok/sopencode / t4-night-shift: 544 prompt tokens at 289 tok/sopencode / t4-night-shift: 281 prompt tokens at 144 tok/sopencode / t4-night-shift: 342 prompt tokens at 225 tok/sopencode / t4-night-shift: 546 prompt tokens at 290 tok/sopencode / t4-night-shift: 564 prompt tokens at 302 tok/sopencode / t4-night-shift: 426 prompt tokens at 265 tok/sopencode / t4-night-shift: 667 prompt tokens at 332 tok/sopencode / t4-night-shift: 100 prompt tokens at 88 tok/sopencode / t4-night-shift: 7869 prompt tokens at 850 tok/sopencode / t4-night-shift: 204 prompt tokens at 148 tok/sopencode / t4-night-shift: 2003 prompt tokens at 593 tok/sopencode / t4-night-shift: 743 prompt tokens at 362 tok/sopencode / t4-night-shift: 5881 prompt tokens at 801 tok/sopencode / t4-night-shift: 689 prompt tokens at 339 tok/sopencode / t4-night-shift: 561 prompt tokens at 294 tok/sopencode / t4-night-shift: 690 prompt tokens at 328 tok/sopencode / t4-night-shift: 619 prompt tokens at 308 tok/sopencode / t4-night-shift: 530 prompt tokens at 290 tok/sopencode / t4-night-shift: 816 prompt tokens at 385 tok/sopencode / t4-night-shift: 153 prompt tokens at 100 tok/sopencode / t4-night-shift: 7867 prompt tokens at 822 tok/sopencode / t4-night-shift: 381 prompt tokens at 263 tok/sopencode / t4-night-shift: 1988 prompt tokens at 598 tok/sopencode / t4-night-shift: 734 prompt tokens at 354 tok/sopencode / t4-night-shift: 10519 prompt tokens at 909 tok/sopencode / t4-night-shift: 554 prompt tokens at 297 tok/sopencode / t4-night-shift: 1041 prompt tokens at 410 tok/sopencode / t4-night-shift: 422 prompt tokens at 243 tok/sopencode / t4-night-shift: 1282 prompt tokens at 464 tok/sopencode / t4-night-shift: 396 prompt tokens at 273 tok/sopencode / t5-regression: 269 prompt tokens at 236 tok/sopencode / t5-regression: 7317 prompt tokens at 838 tok/sopencode / t5-regression: 259 prompt tokens at 202 tok/sopencode / t5-regression: 582 prompt tokens at 324 tok/sopencode / t5-regression: 641 prompt tokens at 349 tok/sopencode / t5-regression: 1384 prompt tokens at 509 tok/sopencode / t5-regression: 478 prompt tokens at 292 tok/sopencode / t5-regression: 199 prompt tokens at 117 tok/sopencode / t5-regression: 605 prompt tokens at 309 tok/sopencode / t5-regression: 521 prompt tokens at 296 tok/sopencode / t5-regression: 130 prompt tokens at 94 tok/sopencode / t5-regression: 210 prompt tokens at 111 tok/sopencode / t5-regression: 247 prompt tokens at 153 tok/sopencode / t5-regression: 142 prompt tokens at 98 tok/sopencode / t5-regression: 7319 prompt tokens at 838 tok/sopencode / t5-regression: 258 prompt tokens at 204 tok/sopencode / t5-regression: 694 prompt tokens at 356 tok/sopencode / t5-regression: 1321 prompt tokens at 488 tok/sopencode / t5-regression: 439 prompt tokens at 275 tok/sopencode / t5-regression: 1860 prompt tokens at 562 tok/sopencode / t5-regression: 1143 prompt tokens at 476 tok/sopencode / t5-regression: 2272 prompt tokens at 604 tok/sopencode / t5-regression: 1207 prompt tokens at 469 tok/sopencode / t5-regression: 1255 prompt tokens at 460 tok/sopencode / t5-regression: 634 prompt tokens at 333 tok/sopencode / t5-regression: 174 prompt tokens at 105 tok/sopencode / t5-regression: 156 prompt tokens at 106 tok/sopencode / t5-regression: 142 prompt tokens at 99 tok/sopencode / t5-regression: 240 prompt tokens at 142 tok/sopencode / t5-regression: 79 prompt tokens at 80 tok/sopencode / t5-regression: 7319 prompt tokens at 850 tok/sopencode / t5-regression: 257 prompt tokens at 204 tok/sopencode / t5-regression: 606 prompt tokens at 339 tok/sopencode / t5-regression: 400 prompt tokens at 268 tok/sopencode / t5-regression: 2368 prompt tokens at 633 tok/sopencode / t5-regression: 344 prompt tokens at 239 tok/sopencode / t5-regression: 878 prompt tokens at 389 tok/sopencode / t5-regression: 496 prompt tokens at 305 tok/sopencode / t5-regression: 240 prompt tokens at 143 tok/sopencode / t5-regression: 175 prompt tokens at 109 tok/sopencode / t5-regression: 298 prompt tokens at 159 tok/sopencode / t5-regression: 160 prompt tokens at 101 tok/sopencode / t5-regression: 131 prompt tokens at 96 tok/sopencode / t5-regression: 155 prompt tokens at 109 tok/sopencode / t5-regression: 274 prompt tokens at 178 tok/sopencode / t5-regression: 103 prompt tokens at 89 tok/sopencode / t5-regression: 7325 prompt tokens at 838 tok/sopencode / t5-regression: 473 prompt tokens at 289 tok/sopencode / t5-regression: 601 prompt tokens at 337 tok/sopencode / t5-regression: 409 prompt tokens at 269 tok/sopencode / t5-regression: 2552 prompt tokens at 644 tok/sopencode / t5-regression: 3413 prompt tokens at 712 tok/sopencode / t5-regression: 941 prompt tokens at 433 tok/sopencode / t5-regression: 1340 prompt tokens at 480 tok/sopencode / t5-regression: 499 prompt tokens at 293 tok/sopencode / t5-regression: 1031 prompt tokens at 435 tok/sopencode / t5-regression: 1183 prompt tokens at 477 tok/sopencode / t5-regression: 173 prompt tokens at 104 tok/sopencode / t5-regression: 117 prompt tokens at 91 tok/sopencode / t5-regression: 316 prompt tokens at 219 tok/sopencode / t5-regression: 234 prompt tokens at 143 tok/sopencode / t6-payroll: 2607 prompt tokens at 691 tok/sopencode / t6-payroll: 9151 prompt tokens at 875 tok/sopencode / t6-payroll: 313 prompt tokens at 231 tok/sopencode / t6-payroll: 854 prompt tokens at 385 tok/sopencode / t6-payroll: 11281 prompt tokens at 919 tok/sopencode / t6-payroll: 11551 prompt tokens at 917 tok/sopencode / t6-payroll: 2145 prompt tokens at 590 tok/sopencode / t6-payroll: 2817 prompt tokens at 650 tok/sopencode / t6-payroll: 6715 prompt tokens at 830 tok/sopencode / t6-payroll: 11300 prompt tokens at 897 tok/sopencode / t6-payroll: 1676 prompt tokens at 529 tok/sopencode / t6-payroll: 6925 prompt tokens at 827 tok/sopencode / t6-payroll: 9081 prompt tokens at 861 tok/sopencode / t6-payroll: 1501 prompt tokens at 499 tok/sopencode / t6-payroll: 9149 prompt tokens at 875 tok/sopencode / t6-payroll: 375 prompt tokens at 268 tok/sopencode / t6-payroll: 859 prompt tokens at 395 tok/sopencode / t6-payroll: 11282 prompt tokens at 922 tok/sopencode / t6-payroll: 11483 prompt tokens at 919 tok/sopencode / t6-payroll: 867 prompt tokens at 415 tok/sopencode / t6-payroll: 9668 prompt tokens at 886 tok/sopencode / t6-payroll: 3164 prompt tokens at 678 tok/sopencode / t6-payroll: 7028 prompt tokens at 831 tok/sopencode / t6-payroll: 3971 prompt tokens at 747 tok/sopencode / t6-payroll: 177 prompt tokens at 122 tok/sopencode / t6-payroll: 126 prompt tokens at 98 tok/sopencode / t6-payroll: 9147 prompt tokens at 867 tok/sopencode / t6-payroll: 378 prompt tokens at 258 tok/sopencode / t6-payroll: 862 prompt tokens at 396 tok/sopencode / t6-payroll: 11309 prompt tokens at 923 tok/sopencode / t6-payroll: 12353 prompt tokens at 901 tok/sopencode / t6-payroll: 295 prompt tokens at 183 tok/sopencode / t6-payroll: 718 prompt tokens at 340 tok/sopencode / t6-payroll: 5716 prompt tokens at 808 tok/sopencode / t6-payroll: 5963 prompt tokens at 806 tok/sopencode / t6-payroll: 2316 prompt tokens at 598 tok/sopencode / t6-payroll: 7742 prompt tokens at 844 tok/sopencode / t6-payroll: 7364 prompt tokens at 829 tok/sopencode / t6-payroll: 7795 prompt tokens at 835 tok/sopencode / t6-payroll: 4146 prompt tokens at 725 tok/sopencode / t6-payroll: 68 prompt tokens at 75 tok/sopencode / t6-payroll: 2607 prompt tokens at 671 tok/sopencode / t6-payroll: 9147 prompt tokens at 849 tok/sopencode / t6-payroll: 310 prompt tokens at 227 tok/sopencode / t6-payroll: 11796 prompt tokens at 923 tok/sopencode / t6-payroll: 11887 prompt tokens at 921 tok/sopencode / t6-payroll: 1981 prompt tokens at 584 tok/sopencode / t6-payroll: 719 prompt tokens at 359 tok/sopencode / t6-payroll: 1128 prompt tokens at 457 tok/sopencode / t6-payroll: 3447 prompt tokens at 698 tok/sopencode / t6-payroll: 3761 prompt tokens at 723 tok/sopencode / t6-payroll: 522 prompt tokens at 297 tok/sopencode / t6-payroll: 8575 prompt tokens at 864 tok/sopencode / t6-payroll: 2186 prompt tokens at 595 tok/spi / t1-cold-fix: 1679 prompt tokens at 546 tok/spi / t1-cold-fix: 357 prompt tokens at 239 tok/spi / t1-cold-fix: 709 prompt tokens at 361 tok/spi / t1-cold-fix: 965 prompt tokens at 422 tok/spi / t1-cold-fix: 1640 prompt tokens at 535 tok/spi / t1-cold-fix: 996 prompt tokens at 426 tok/spi / t1-cold-fix: 470 prompt tokens at 281 tok/spi / t1-cold-fix: 691 prompt tokens at 342 tok/spi / t1-cold-fix: 366 prompt tokens at 227 tok/spi / t1-cold-fix: 663 prompt tokens at 317 tok/spi / t1-cold-fix: 198 prompt tokens at 120 tok/spi / t1-cold-fix: 143 prompt tokens at 123 tok/spi / t1-cold-fix: 358 prompt tokens at 256 tok/spi / t1-cold-fix: 972 prompt tokens at 425 tok/spi / t1-cold-fix: 4656 prompt tokens at 776 tok/spi / t1-cold-fix: 1372 prompt tokens at 492 tok/spi / t1-cold-fix: 450 prompt tokens at 256 tok/spi / t1-cold-fix: 290 prompt tokens at 172 tok/spi / t1-cold-fix: 190 prompt tokens at 108 tok/spi / t1-cold-fix: 622 prompt tokens at 309 tok/spi / t1-cold-fix: 206 prompt tokens at 123 tok/spi / t1-cold-fix: 144 prompt tokens at 124 tok/spi / t1-cold-fix: 358 prompt tokens at 260 tok/spi / t1-cold-fix: 324 prompt tokens at 226 tok/spi / t1-cold-fix: 1476 prompt tokens at 530 tok/spi / t1-cold-fix: 1720 prompt tokens at 566 tok/spi / t1-cold-fix: 1437 prompt tokens at 507 tok/spi / t1-cold-fix: 1198 prompt tokens at 457 tok/spi / t1-cold-fix: 636 prompt tokens at 314 tok/spi / t1-cold-fix: 201 prompt tokens at 121 tok/spi / t1-cold-fix: 144 prompt tokens at 121 tok/spi / t1-cold-fix: 359 prompt tokens at 256 tok/spi / t1-cold-fix: 149 prompt tokens at 99 tok/spi / t1-cold-fix: 972 prompt tokens at 429 tok/spi / t1-cold-fix: 1635 prompt tokens at 543 tok/spi / t1-cold-fix: 2086 prompt tokens at 594 tok/spi / t1-cold-fix: 1410 prompt tokens at 505 tok/spi / t1-cold-fix: 243 prompt tokens at 124 tok/spi / t1-cold-fix: 780 prompt tokens at 361 tok/spi / t1-cold-fix: 491 prompt tokens at 302 tok/spi / t1-cold-fix: 634 prompt tokens at 318 tok/spi / t1-cold-fix: 341 prompt tokens at 210 tok/spi / t1-cold-fix: 582 prompt tokens at 291 tok/spi / t1-cold-fix: 352 prompt tokens at 242 tok/spi / t1-cold-fix: 230 prompt tokens at 138 tok/spi / t2-logsift: 1425 prompt tokens at 559 tok/spi / t2-logsift: 1011 prompt tokens at 458 tok/spi / t2-logsift: 2158 prompt tokens at 616 tok/spi / t2-logsift: 2501 prompt tokens at 634 tok/spi / t2-logsift: 641 prompt tokens at 320 tok/spi / t2-logsift: 872 prompt tokens at 382 tok/spi / t2-logsift: 464 prompt tokens at 268 tok/spi / t2-logsift: 268 prompt tokens at 177 tok/spi / t2-logsift: 718 prompt tokens at 348 tok/spi / t2-logsift: 911 prompt tokens at 402 tok/spi / t2-logsift: 5601 prompt tokens at 810 tok/spi / t2-logsift: 1971 prompt tokens at 547 tok/spi / t2-logsift: 271 prompt tokens at 160 tok/spi / t2-logsift: 139 prompt tokens at 96 tok/spi / t2-logsift: 7697 prompt tokens at 911 tok/spi / t2-logsift: 1917 prompt tokens at 575 tok/spi / t2-logsift: 666 prompt tokens at 312 tok/spi / t2-logsift: 404 prompt tokens at 245 tok/spi / t2-logsift: 687 prompt tokens at 370 tok/spi / t2-logsift: 359 prompt tokens at 246 tok/spi / t2-logsift: 142 prompt tokens at 97 tok/spi / t2-logsift: 94 prompt tokens at 90 tok/spi / t2-logsift: 1763 prompt tokens at 540 tok/spi / t2-logsift: 927 prompt tokens at 395 tok/spi / t2-logsift: 1169 prompt tokens at 453 tok/spi / t2-logsift: 503 prompt tokens at 275 tok/spi / t2-logsift: 764 prompt tokens at 368 tok/spi / t2-logsift: 959 prompt tokens at 435 tok/spi / t2-logsift: 194 prompt tokens at 107 tok/spi / t2-logsift: 678 prompt tokens at 338 tok/spi / t2-logsift: 368 prompt tokens at 278 tok/spi / t2-logsift: 334 prompt tokens at 235 tok/spi / t2-logsift: 603 prompt tokens at 381 tok/spi / t2-logsift: 484 prompt tokens at 277 tok/spi / t2-logsift: 793 prompt tokens at 360 tok/spi / t2-logsift: 2991 prompt tokens at 661 tok/spi / t2-logsift: 1254 prompt tokens at 472 tok/spi / t2-logsift: 305 prompt tokens at 217 tok/spi / t2-logsift: 798 prompt tokens at 370 tok/spi / t2-logsift: 550 prompt tokens at 326 tok/spi / t2-logsift: 370 prompt tokens at 250 tok/spi / t2-logsift: 509 prompt tokens at 296 tok/spi / t2-logsift: 390 prompt tokens at 263 tok/spi / t2-logsift: 17009 prompt tokens at 965 tok/spi / t2-logsift: 1428 prompt tokens at 579 tok/spi / t2-logsift: 1258 prompt tokens at 501 tok/spi / t2-logsift: 2502 prompt tokens at 658 tok/spi / t2-logsift: 3219 prompt tokens at 666 tok/spi / t2-logsift: 909 prompt tokens at 397 tok/spi / t2-logsift: 1582 prompt tokens at 536 tok/spi / t2-logsift: 571 prompt tokens at 308 tok/spi / t2-logsift: 408 prompt tokens at 237 tok/spi / t2-logsift: 216 prompt tokens at 119 tok/spi / t2-logsift: 2739 prompt tokens at 667 tok/spi / t2-logsift: 1848 prompt tokens at 567 tok/spi / t2-logsift: 1819 prompt tokens at 547 tok/spi / t2-logsift: 1939 prompt tokens at 560 tok/spi / t2-logsift: 768 prompt tokens at 368 tok/spi / t2-logsift: 379 prompt tokens at 248 tok/spi / t2-logsift: 1255 prompt tokens at 477 tok/spi / t2-logsift: 535 prompt tokens at 279 tok/spi / t2-logsift: 247 prompt tokens at 162 tok/spi / t2-logsift: 1428 prompt tokens at 579 tok/spi / t2-logsift: 1338 prompt tokens at 509 tok/spi / t2-logsift: 5577 prompt tokens at 813 tok/spi / t2-logsift: 609 prompt tokens at 332 tok/spi / t2-logsift: 1189 prompt tokens at 458 tok/spi / t2-logsift: 4991 prompt tokens at 795 tok/spi / t2-logsift: 696 prompt tokens at 349 tok/spi / t2-logsift: 1242 prompt tokens at 462 tok/spi / t2-logsift: 1602 prompt tokens at 522 tok/spi / t2-logsift: 2839 prompt tokens at 652 tok/spi / t2-logsift: 1140 prompt tokens at 439 tok/spi / t2-logsift: 390 prompt tokens at 244 tok/spi / t2-logsift: 677 prompt tokens at 325 tok/spi / t2-logsift: 310 prompt tokens at 176 tok/spi / t2-logsift: 234 prompt tokens at 129 tok/spi / t2-logsift: 1690 prompt tokens at 557 tok/spi / t2-logsift: 791 prompt tokens at 395 tok/spi / t2-logsift: 2550 prompt tokens at 617 tok/spi / t2-logsift: 2706 prompt tokens at 640 tok/spi / t2-logsift: 316 prompt tokens at 173 tok/spi / t2-logsift: 202 prompt tokens at 118 tok/spi / t2-logsift: 198 prompt tokens at 124 tok/spi / t2-logsift: 1362 prompt tokens at 468 tok/spi / t2-logsift: 390 prompt tokens at 257 tok/spi / t2-logsift: 712 prompt tokens at 357 tok/spi / t2-logsift: 871 prompt tokens at 403 tok/spi / t2-logsift: 376 prompt tokens at 237 tok/spi / t2-logsift: 431 prompt tokens at 255 tok/spi / t2-logsift: 2057 prompt tokens at 575 tok/spi / t2-logsift: 1366 prompt tokens at 495 tok/spi / t2-logsift: 371 prompt tokens at 278 tok/spi / t2-logsift: 154 prompt tokens at 109 tok/spi / t2-logsift: 2086 prompt tokens at 572 tok/spi / t2-logsift: 595 prompt tokens at 290 tok/spi / t2-logsift: 172 prompt tokens at 113 tok/spi / t2-logsift: 662 prompt tokens at 316 tok/spi / t2-logsift: 340 prompt tokens at 211 tok/spi / t2-logsift: 1206 prompt tokens at 437 tok/spi / t2-logsift: 1426 prompt tokens at 566 tok/spi / t2-logsift: 1338 prompt tokens at 508 tok/spi / t2-logsift: 5011 prompt tokens at 802 tok/spi / t2-logsift: 1241 prompt tokens at 493 tok/spi / t2-logsift: 814 prompt tokens at 368 tok/spi / t2-logsift: 890 prompt tokens at 403 tok/spi / t2-logsift: 592 prompt tokens at 327 tok/spi / t2-logsift: 6036 prompt tokens at 827 tok/spi / t2-logsift: 2240 prompt tokens at 608 tok/spi / t2-logsift: 876 prompt tokens at 375 tok/spi / t2-logsift: 269 prompt tokens at 148 tok/spi / t2-logsift: 537 prompt tokens at 294 tok/spi / t2-logsift: 757 prompt tokens at 370 tok/spi / t2-logsift: 3122 prompt tokens at 689 tok/spi / t2-logsift: 570 prompt tokens at 322 tok/spi / t2-logsift: 572 prompt tokens at 305 tok/spi / t2-logsift: 1610 prompt tokens at 515 tok/spi / t2-logsift: 135 prompt tokens at 91 tok/spi / t2-logsift: 533 prompt tokens at 280 tok/spi / t2-logsift: 1285 prompt tokens at 457 tok/spi / t2-logsift: 297 prompt tokens at 178 tok/spi / t2-logsift: 1327 prompt tokens at 463 tok/spi / t2-logsift: 261 prompt tokens at 169 tok/spi / t2-logsift: 291 prompt tokens at 154 tok/spi / t2-logsift: 162 prompt tokens at 105 tok/spi / t2-logsift: 2092 prompt tokens at 583 tok/spi / t2-logsift: 631 prompt tokens at 402 tok/spi / t2-logsift: 1228 prompt tokens at 522 tok/spi / t2-logsift: 614 prompt tokens at 358 tok/spi / t2-logsift: 2564 prompt tokens at 620 tok/spi / t2-logsift: 535 prompt tokens at 286 tok/spi / t2-logsift: 429 prompt tokens at 288 tok/spi / t2-logsift: 394 prompt tokens at 237 tok/spi / t2-logsift: 393 prompt tokens at 240 tok/spi / t3-shoebox: 1228 prompt tokens at 537 tok/spi / t3-shoebox: 237 prompt tokens at 157 tok/spi / t3-shoebox: 2158 prompt tokens at 617 tok/spi / t3-shoebox: 1155 prompt tokens at 461 tok/spi / t3-shoebox: 3321 prompt tokens at 716 tok/spi / t3-shoebox: 3289 prompt tokens at 703 tok/spi / t3-shoebox: 2614 prompt tokens at 667 tok/spi / t3-shoebox: 600 prompt tokens at 330 tok/spi / t3-shoebox: 1490 prompt tokens at 516 tok/spi / t3-shoebox: 549 prompt tokens at 301 tok/spi / t3-shoebox: 1002 prompt tokens at 448 tok/spi / t3-shoebox: 915 prompt tokens at 396 tok/spi / t3-shoebox: 763 prompt tokens at 366 tok/spi / t3-shoebox: 700 prompt tokens at 346 tok/spi / t3-shoebox: 707 prompt tokens at 349 tok/spi / t3-shoebox: 589 prompt tokens at 307 tok/spi / t3-shoebox: 706 prompt tokens at 353 tok/spi / t3-shoebox: 866 prompt tokens at 400 tok/spi / t3-shoebox: 908 prompt tokens at 400 tok/spi / t3-shoebox: 3488 prompt tokens at 703 tok/spi / t3-shoebox: 1843 prompt tokens at 551 tok/spi / t3-shoebox: 1681 prompt tokens at 530 tok/spi / t3-shoebox: 870 prompt tokens at 374 tok/spi / t3-shoebox: 1229 prompt tokens at 533 tok/spi / t3-shoebox: 325 prompt tokens at 238 tok/spi / t3-shoebox: 3706 prompt tokens at 741 tok/spi / t3-shoebox: 1760 prompt tokens at 580 tok/spi / t3-shoebox: 1689 prompt tokens at 571 tok/spi / t3-shoebox: 2373 prompt tokens at 638 tok/spi / t3-shoebox: 3077 prompt tokens at 622 tok/spi / t3-shoebox: 3373 prompt tokens at 714 tok/spi / t3-shoebox: 1309 prompt tokens at 480 tok/spi / t3-shoebox: 603 prompt tokens at 331 tok/spi / t3-shoebox: 3084 prompt tokens at 648 tok/spi / t3-shoebox: 644 prompt tokens at 338 tok/spi / t3-shoebox: 958 prompt tokens at 428 tok/spi / t3-shoebox: 1354 prompt tokens at 482 tok/spi / t3-shoebox: 193 prompt tokens at 116 tok/spi / t3-shoebox: 1227 prompt tokens at 526 tok/spi / t3-shoebox: 237 prompt tokens at 159 tok/spi / t3-shoebox: 569 prompt tokens at 312 tok/spi / t3-shoebox: 1758 prompt tokens at 498 tok/spi / t3-shoebox: 1342 prompt tokens at 469 tok/spi / t3-shoebox: 3321 prompt tokens at 720 tok/spi / t3-shoebox: 3323 prompt tokens at 652 tok/spi / t3-shoebox: 1991 prompt tokens at 608 tok/spi / t3-shoebox: 1989 prompt tokens at 604 tok/spi / t3-shoebox: 489 prompt tokens at 284 tok/spi / t3-shoebox: 964 prompt tokens at 413 tok/spi / t3-shoebox: 1220 prompt tokens at 465 tok/spi / t3-shoebox: 389 prompt tokens at 248 tok/spi / t3-shoebox: 829 prompt tokens at 392 tok/spi / t3-shoebox: 255 prompt tokens at 161 tok/spi / t3-shoebox: 428 prompt tokens at 266 tok/spi / t3-shoebox: 2199 prompt tokens at 602 tok/spi / t3-shoebox: 2098 prompt tokens at 574 tok/spi / t3-shoebox: 1860 prompt tokens at 555 tok/spi / t3-shoebox: 773 prompt tokens at 348 tok/spi / t3-shoebox: 1230 prompt tokens at 536 tok/spi / t3-shoebox: 352 prompt tokens at 231 tok/spi / t3-shoebox: 1259 prompt tokens at 493 tok/spi / t3-shoebox: 656 prompt tokens at 345 tok/spi / t3-shoebox: 2023 prompt tokens at 620 tok/spi / t3-shoebox: 1060 prompt tokens at 452 tok/spi / t3-shoebox: 2277 prompt tokens at 629 tok/spi / t3-shoebox: 620 prompt tokens at 326 tok/spi / t3-shoebox: 2885 prompt tokens at 686 tok/spi / t3-shoebox: 2286 prompt tokens at 642 tok/spi / t3-shoebox: 1893 prompt tokens at 580 tok/spi / t3-shoebox: 682 prompt tokens at 327 tok/spi / t3-shoebox: 493 prompt tokens at 290 tok/spi / t3-shoebox: 1009 prompt tokens at 436 tok/spi / t3-shoebox: 965 prompt tokens at 423 tok/spi / t3-shoebox: 1355 prompt tokens at 497 tok/spi / t3-shoebox: 351 prompt tokens at 237 tok/spi / t3-shoebox: 1941 prompt tokens at 571 tok/spi / t3-shoebox: 1159 prompt tokens at 437 tok/spi / t3-shoebox: 1127 prompt tokens at 453 tok/spi / t3-shoebox: 1248 prompt tokens at 473 tok/spi / t3-shoebox: 1689 prompt tokens at 542 tok/spi / t3-shoebox: 277 prompt tokens at 178 tok/spi / t4-night-shift: 762 prompt tokens at 416 tok/spi / t4-night-shift: 491 prompt tokens at 296 tok/spi / t4-night-shift: 1377 prompt tokens at 492 tok/spi / t4-night-shift: 5324 prompt tokens at 817 tok/spi / t4-night-shift: 1368 prompt tokens at 485 tok/spi / t4-night-shift: 1675 prompt tokens at 540 tok/spi / t4-night-shift: 464 prompt tokens at 260 tok/spi / t4-night-shift: 459 prompt tokens at 254 tok/spi / t4-night-shift: 1139 prompt tokens at 437 tok/spi / t4-night-shift: 488 prompt tokens at 275 tok/spi / t4-night-shift: 2824 prompt tokens at 658 tok/spi / t4-night-shift: 1410 prompt tokens at 488 tok/spi / t4-night-shift: 2055 prompt tokens at 495 tok/spi / t4-night-shift: 3667 prompt tokens at 720 tok/spi / t4-night-shift: 1012 prompt tokens at 422 tok/spi / t4-night-shift: 868 prompt tokens at 416 tok/spi / t4-night-shift: 1166 prompt tokens at 449 tok/spi / t4-night-shift: 759 prompt tokens at 348 tok/spi / t4-night-shift: 851 prompt tokens at 359 tok/spi / t4-night-shift: 116 prompt tokens at 89 tok/spi / t4-night-shift: 394 prompt tokens at 226 tok/spi / t4-night-shift: 1322 prompt tokens at 460 tok/spi / t4-night-shift: 634 prompt tokens at 355 tok/spi / t4-night-shift: 875 prompt tokens at 371 tok/spi / t4-night-shift: 177 prompt tokens at 120 tok/spi / t4-night-shift: 1836 prompt tokens at 550 tok/spi / t4-night-shift: 358 prompt tokens at 220 tok/spi / t4-night-shift: 814 prompt tokens at 432 tok/spi / t4-night-shift: 824 prompt tokens at 373 tok/spi / t4-night-shift: 1437 prompt tokens at 505 tok/spi / t4-night-shift: 977 prompt tokens at 393 tok/spi / t4-night-shift: 1130 prompt tokens at 445 tok/spi / t4-night-shift: 465 prompt tokens at 255 tok/spi / t4-night-shift: 815 prompt tokens at 369 tok/spi / t4-night-shift: 780 prompt tokens at 360 tok/spi / t4-night-shift: 885 prompt tokens at 443 tok/spi / t4-night-shift: 931 prompt tokens at 407 tok/spi / t4-night-shift: 431 prompt tokens at 258 tok/spi / t4-night-shift: 1077 prompt tokens at 429 tok/spi / t4-night-shift: 549 prompt tokens at 347 tok/spi / t4-night-shift: 1228 prompt tokens at 501 tok/spi / t4-night-shift: 1086 prompt tokens at 467 tok/spi / t4-night-shift: 581 prompt tokens at 346 tok/spi / t4-night-shift: 997 prompt tokens at 405 tok/spi / t4-night-shift: 430 prompt tokens at 250 tok/spi / t4-night-shift: 797 prompt tokens at 408 tok/spi / t4-night-shift: 586 prompt tokens at 346 tok/spi / t4-night-shift: 716 prompt tokens at 387 tok/spi / t4-night-shift: 376 prompt tokens at 236 tok/spi / t4-night-shift: 27940 prompt tokens at 991 tok/spi / t4-night-shift: 764 prompt tokens at 464 tok/spi / t4-night-shift: 493 prompt tokens at 300 tok/spi / t4-night-shift: 1802 prompt tokens at 542 tok/spi / t4-night-shift: 4443 prompt tokens at 785 tok/spi / t4-night-shift: 1153 prompt tokens at 444 tok/spi / t4-night-shift: 584 prompt tokens at 298 tok/spi / t4-night-shift: 601 prompt tokens at 307 tok/spi / t4-night-shift: 758 prompt tokens at 357 tok/spi / t4-night-shift: 870 prompt tokens at 383 tok/spi / t4-night-shift: 474 prompt tokens at 264 tok/spi / t4-night-shift: 660 prompt tokens at 339 tok/spi / t4-night-shift: 1944 prompt tokens at 574 tok/spi / t4-night-shift: 385 prompt tokens at 234 tok/spi / t4-night-shift: 286 prompt tokens at 187 tok/spi / t4-night-shift: 1375 prompt tokens at 491 tok/spi / t4-night-shift: 922 prompt tokens at 426 tok/spi / t4-night-shift: 1848 prompt tokens at 555 tok/spi / t4-night-shift: 2219 prompt tokens at 597 tok/spi / t4-night-shift: 347 prompt tokens at 211 tok/spi / t4-night-shift: 120 prompt tokens at 95 tok/spi / t4-night-shift: 1696 prompt tokens at 546 tok/spi / t4-night-shift: 570 prompt tokens at 346 tok/spi / t4-night-shift: 551 prompt tokens at 343 tok/spi / t4-night-shift: 226 prompt tokens at 124 tok/spi / t4-night-shift: 295 prompt tokens at 204 tok/spi / t4-night-shift: 641 prompt tokens at 350 tok/spi / t4-night-shift: 332 prompt tokens at 235 tok/spi / t4-night-shift: 1307 prompt tokens at 472 tok/spi / t4-night-shift: 375 prompt tokens at 231 tok/spi / t4-night-shift: 447 prompt tokens at 274 tok/spi / t4-night-shift: 321 prompt tokens at 211 tok/spi / t4-night-shift: 974 prompt tokens at 389 tok/spi / t4-night-shift: 764 prompt tokens at 462 tok/spi / t4-night-shift: 450 prompt tokens at 286 tok/spi / t4-night-shift: 1355 prompt tokens at 491 tok/spi / t4-night-shift: 6677 prompt tokens at 851 tok/spi / t4-night-shift: 341 prompt tokens at 214 tok/spi / t4-night-shift: 423 prompt tokens at 245 tok/spi / t4-night-shift: 760 prompt tokens at 347 tok/spi / t4-night-shift: 1089 prompt tokens at 424 tok/spi / t4-night-shift: 448 prompt tokens at 260 tok/spi / t4-night-shift: 2676 prompt tokens at 668 tok/spi / t4-night-shift: 814 prompt tokens at 375 tok/spi / t4-night-shift: 1259 prompt tokens at 420 tok/spi / t4-night-shift: 945 prompt tokens at 395 tok/spi / t4-night-shift: 1059 prompt tokens at 387 tok/spi / t4-night-shift: 808 prompt tokens at 369 tok/spi / t4-night-shift: 1839 prompt tokens at 553 tok/spi / t4-night-shift: 1401 prompt tokens at 475 tok/spi / t4-night-shift: 1981 prompt tokens at 581 tok/spi / t4-night-shift: 994 prompt tokens at 412 tok/spi / t4-night-shift: 609 prompt tokens at 303 tok/spi / t4-night-shift: 1051 prompt tokens at 413 tok/spi / t4-night-shift: 301 prompt tokens at 190 tok/spi / t4-night-shift: 207 prompt tokens at 116 tok/spi / t4-night-shift: 822 prompt tokens at 382 tok/spi / t4-night-shift: 1195 prompt tokens at 506 tok/spi / t4-night-shift: 1622 prompt tokens at 537 tok/spi / t4-night-shift: 622 prompt tokens at 346 tok/spi / t4-night-shift: 1235 prompt tokens at 469 tok/spi / t4-night-shift: 747 prompt tokens at 344 tok/spi / t4-night-shift: 2741 prompt tokens at 630 tok/spi / t4-night-shift: 932 prompt tokens at 407 tok/spi / t4-night-shift: 812 prompt tokens at 354 tok/spi / t4-night-shift: 299 prompt tokens at 199 tok/spi / t4-night-shift: 444 prompt tokens at 287 tok/spi / t4-night-shift: 549 prompt tokens at 302 tok/spi / t4-night-shift: 576 prompt tokens at 315 tok/spi / t4-night-shift: 764 prompt tokens at 456 tok/spi / t4-night-shift: 447 prompt tokens at 289 tok/spi / t4-night-shift: 1094 prompt tokens at 444 tok/spi / t4-night-shift: 534 prompt tokens at 298 tok/spi / t4-night-shift: 3836 prompt tokens at 750 tok/spi / t4-night-shift: 341 prompt tokens at 228 tok/spi / t4-night-shift: 451 prompt tokens at 251 tok/spi / t4-night-shift: 564 prompt tokens at 294 tok/spi / t4-night-shift: 856 prompt tokens at 375 tok/spi / t4-night-shift: 569 prompt tokens at 304 tok/spi / t4-night-shift: 993 prompt tokens at 440 tok/spi / t4-night-shift: 688 prompt tokens at 339 tok/spi / t4-night-shift: 301 prompt tokens at 177 tok/spi / t4-night-shift: 942 prompt tokens at 407 tok/spi / t4-night-shift: 223 prompt tokens at 128 tok/spi / t4-night-shift: 809 prompt tokens at 374 tok/spi / t4-night-shift: 1843 prompt tokens at 585 tok/spi / t4-night-shift: 1239 prompt tokens at 487 tok/spi / t4-night-shift: 446 prompt tokens at 271 tok/spi / t4-night-shift: 1308 prompt tokens at 472 tok/spi / t4-night-shift: 2691 prompt tokens at 645 tok/spi / t4-night-shift: 1513 prompt tokens at 597 tok/spi / t4-night-shift: 1157 prompt tokens at 444 tok/spi / t4-night-shift: 853 prompt tokens at 442 tok/spi / t4-night-shift: 274 prompt tokens at 169 tok/spi / t4-night-shift: 1409 prompt tokens at 491 tok/spi / t4-night-shift: 499 prompt tokens at 276 tok/spi / t4-night-shift: 445 prompt tokens at 269 tok/spi / t4-night-shift: 1105 prompt tokens at 444 tok/spi / t4-night-shift: 951 prompt tokens at 389 tok/spi / t5-regression: 217 prompt tokens at 162 tok/spi / t5-regression: 1775 prompt tokens at 555 tok/spi / t5-regression: 515 prompt tokens at 298 tok/spi / t5-regression: 1518 prompt tokens at 516 tok/spi / t5-regression: 2739 prompt tokens at 653 tok/spi / t5-regression: 310 prompt tokens at 217 tok/spi / t5-regression: 543 prompt tokens at 337 tok/spi / t5-regression: 3003 prompt tokens at 665 tok/spi / t5-regression: 483 prompt tokens at 278 tok/spi / t5-regression: 219 prompt tokens at 114 tok/spi / t5-regression: 178 prompt tokens at 106 tok/spi / t5-regression: 323 prompt tokens at 209 tok/spi / t5-regression: 316 prompt tokens at 200 tok/spi / t5-regression: 248 prompt tokens at 119 tok/spi / t5-regression: 281 prompt tokens at 155 tok/spi / t5-regression: 218 prompt tokens at 198 tok/spi / t5-regression: 1741 prompt tokens at 556 tok/spi / t5-regression: 1050 prompt tokens at 437 tok/spi / t5-regression: 2609 prompt tokens at 651 tok/spi / t5-regression: 3800 prompt tokens at 735 tok/spi / t5-regression: 2479 prompt tokens at 620 tok/spi / t5-regression: 598 prompt tokens at 322 tok/spi / t5-regression: 858 prompt tokens at 387 tok/spi / t5-regression: 615 prompt tokens at 318 tok/spi / t5-regression: 305 prompt tokens at 160 tok/spi / t5-regression: 516 prompt tokens at 284 tok/spi / t5-regression: 335 prompt tokens at 217 tok/spi / t5-regression: 511 prompt tokens at 292 tok/spi / t5-regression: 218 prompt tokens at 194 tok/spi / t5-regression: 1777 prompt tokens at 559 tok/spi / t5-regression: 518 prompt tokens at 303 tok/spi / t5-regression: 3017 prompt tokens at 685 tok/spi / t5-regression: 3170 prompt tokens at 690 tok/spi / t5-regression: 2940 prompt tokens at 667 tok/spi / t5-regression: 442 prompt tokens at 269 tok/spi / t5-regression: 967 prompt tokens at 416 tok/spi / t5-regression: 230 prompt tokens at 116 tok/spi / t5-regression: 223 prompt tokens at 118 tok/spi / t5-regression: 247 prompt tokens at 152 tok/spi / t5-regression: 347 prompt tokens at 226 tok/spi / t5-regression: 355 prompt tokens at 229 tok/spi / t5-regression: 414 prompt tokens at 236 tok/spi / t5-regression: 218 prompt tokens at 190 tok/spi / t5-regression: 637 prompt tokens at 340 tok/spi / t5-regression: 2446 prompt tokens at 643 tok/spi / t5-regression: 2383 prompt tokens at 619 tok/spi / t5-regression: 4725 prompt tokens at 778 tok/spi / t5-regression: 1120 prompt tokens at 460 tok/spi / t5-regression: 770 prompt tokens at 376 tok/spi / t5-regression: 414 prompt tokens at 258 tok/spi / t5-regression: 242 prompt tokens at 125 tok/spi / t5-regression: 466 prompt tokens at 267 tok/spi / t5-regression: 551 prompt tokens at 289 tok/spi / t5-regression: 312 prompt tokens at 186 tok/spi / t6-payroll: 2044 prompt tokens at 662 tok/spi / t6-payroll: 2128 prompt tokens at 552 tok/spi / t6-payroll: 1047 prompt tokens at 432 tok/spi / t6-payroll: 782 prompt tokens at 368 tok/spi / t6-payroll: 10544 prompt tokens at 913 tok/spi / t6-payroll: 6427 prompt tokens at 833 tok/spi / t6-payroll: 580 prompt tokens at 313 tok/spi / t6-payroll: 1509 prompt tokens at 550 tok/spi / t6-payroll: 4795 prompt tokens at 777 tok/spi / t6-payroll: 609 prompt tokens at 324 tok/spi / t6-payroll: 1765 prompt tokens at 541 tok/spi / t6-payroll: 975 prompt tokens at 415 tok/spi / t6-payroll: 973 prompt tokens at 406 tok/spi / t6-payroll: 1818 prompt tokens at 559 tok/spi / t6-payroll: 395 prompt tokens at 239 tok/spi / t6-payroll: 488 prompt tokens at 283 tok/spi / t6-payroll: 5336 prompt tokens at 782 tok/spi / t6-payroll: 4710 prompt tokens at 760 tok/spi / t6-payroll: 2630 prompt tokens at 642 tok/spi / t6-payroll: 3311 prompt tokens at 687 tok/spi / t6-payroll: 907 prompt tokens at 379 tok/spi / t6-payroll: 6011 prompt tokens at 801 tok/spi / t6-payroll: 1675 prompt tokens at 530 tok/spi / t6-payroll: 3814 prompt tokens at 707 tok/spi / t6-payroll: 1685 prompt tokens at 523 tok/spi / t6-payroll: 600 prompt tokens at 306 tok/spi / t6-payroll: 268 prompt tokens at 153 tok/spi / t6-payroll: 18883 prompt tokens at 966 tok/spi / t6-payroll: 68 prompt tokens at 83 tok/spi / t6-payroll: 68 prompt tokens at 83 tok/spi / t6-payroll: 3580 prompt tokens at 719 tok/spi / t6-payroll: 2137 prompt tokens at 608 tok/spi / t6-payroll: 2415 prompt tokens at 636 tok/spi / t6-payroll: 2499 prompt tokens at 651 tok/spi / t6-payroll: 298 prompt tokens at 184 tok/spi / t6-payroll: 114 prompt tokens at 91 tok/spi / t6-payroll: 1122 prompt tokens at 460 tok/spi / t6-payroll: 4108 prompt tokens at 751 tok/spi / t6-payroll: 2219 prompt tokens at 611 tok/spi / t6-payroll: 1414 prompt tokens at 502 tok/spi / t6-payroll: 20130 prompt tokens at 954 tok/spi / t6-payroll: 4351 prompt tokens at 749 tok/spi / t6-payroll: 7116 prompt tokens at 834 tok/spi / t6-payroll: 1272 prompt tokens at 465 tok/spi / t6-payroll: 10254 prompt tokens at 908 tok/spi / t6-payroll: 2043 prompt tokens at 677 tok/spi / t6-payroll: 3328 prompt tokens at 723 tok/spi / t6-payroll: 522 prompt tokens at 284 tok/spi / t6-payroll: 3637 prompt tokens at 730 tok/spi / t6-payroll: 2622 prompt tokens at 654 tok/spi / t6-payroll: 369 prompt tokens at 239 tok/spi / t6-payroll: 295 prompt tokens at 178 tok/spi / t6-payroll: 243 prompt tokens at 132 tok/spi / t6-payroll: 367 prompt tokens at 242 tok/spi / t6-payroll: 1253 prompt tokens at 481 tok/spi / t6-payroll: 1419 prompt tokens at 503 tok/spi / t6-payroll: 1469 prompt tokens at 516 tok/spi / t6-payroll: 1167 prompt tokens at 447 tok/spi / t6-payroll: 4157 prompt tokens at 746 tok/spi / t6-payroll: 3643 prompt tokens at 715 tok/spi / t6-payroll: 2005 prompt tokens at 582 tok/spi / t6-payroll: 4754 prompt tokens at 765 tok/spi / t6-payroll: 2334 prompt tokens at 598 tok/spi / t6-payroll: 3075 prompt tokens at 676 tok/spi / t6-payroll: 1462 prompt tokens at 490 tok/spi / t6-payroll: 1609 prompt tokens at 515 tok/spi / t6-payroll: 1540 prompt tokens at 502 tok/spi / t6-payroll: 915 prompt tokens at 393 tok/spi / t6-payroll: 2045 prompt tokens at 674 tok/spi / t6-payroll: 2262 prompt tokens at 621 tok/spi / t6-payroll: 2743 prompt tokens at 682 tok/spi / t6-payroll: 2457 prompt tokens at 646 tok/spi / t6-payroll: 258 prompt tokens at 145 tok/spi / t6-payroll: 376 prompt tokens at 239 tok/spi / t6-payroll: 304 prompt tokens at 182 tok/spi / t6-payroll: 1109 prompt tokens at 455 tok/spi / t6-payroll: 2014 prompt tokens at 610 tok/spi / t6-payroll: 211 prompt tokens at 110 tok/spi / t6-payroll: 1108 prompt tokens at 450 tok/spi / t6-payroll: 2516 prompt tokens at 638 tok/spi / t6-payroll: 1555 prompt tokens at 515 tok/spi / t6-payroll: 1693 prompt tokens at 545 tok/spi / t6-payroll: 18985 prompt tokens at 949 tok/spi / t6-payroll: 6781 prompt tokens at 833 tok/spi / t6-payroll: 813 prompt tokens at 389 tok/spi / t6-payroll: 637 prompt tokens at 320 tok/spi / t6-payroll: 4432 prompt tokens at 750 tok/spi / t6-payroll: 2800 prompt tokens at 651 tok/spi / t6-payroll: 653 prompt tokens at 320 tok/spi / t6-payroll: 609 prompt tokens at 302 tok/spi / t6-payroll: 11165 prompt tokens at 905 tok/sdsh · mean 439.4opencode · mean 416.2pi · mean 415.9
Available memory over the campaign
0255075010hours into the campaignavailable memory, GB0.0 h: 79.80.0 h: 77.90.0 h: 77.80.1 h: 77.60.1 h: 77.60.1 h: 77.00.1 h: 77.10.1 h: 77.00.1 h: 77.00.1 h: 77.10.2 h: 77.10.2 h: 77.20.2 h: 77.10.2 h: 77.10.2 h: 77.10.2 h: 77.00.3 h: 77.00.3 h: 77.00.3 h: 77.10.3 h: 77.00.3 h: 78.10.3 h: 77.20.4 h: 77.20.4 h: 77.20.4 h: 77.20.4 h: 77.20.4 h: 77.20.5 h: 77.20.5 h: 76.80.5 h: 77.00.5 h: 77.00.5 h: 77.00.5 h: 77.00.6 h: 77.00.6 h: 77.20.6 h: 77.20.6 h: 77.20.6 h: 76.80.6 h: 76.80.7 h: 76.80.7 h: 76.80.7 h: 76.80.7 h: 77.20.7 h: 76.80.7 h: 76.90.8 h: 76.80.8 h: 76.90.8 h: 76.90.8 h: 76.90.8 h: 76.90.8 h: 76.90.8 h: 76.90.9 h: 76.80.9 h: 76.90.9 h: 76.90.9 h: 77.40.9 h: 77.20.9 h: 77.11.0 h: 77.11.0 h: 77.01.0 h: 76.91.0 h: 77.01.0 h: 77.01.1 h: 77.11.1 h: 77.01.1 h: 77.01.1 h: 77.11.1 h: 77.11.1 h: 77.11.1 h: 77.11.2 h: 77.01.2 h: 77.01.2 h: 77.11.2 h: 77.11.2 h: 76.91.2 h: 77.01.3 h: 77.01.3 h: 77.01.3 h: 77.01.3 h: 77.01.3 h: 77.01.4 h: 77.01.4 h: 76.91.4 h: 77.01.4 h: 76.91.4 h: 77.01.4 h: 76.91.4 h: 76.91.5 h: 76.91.5 h: 76.91.5 h: 76.91.5 h: 76.91.5 h: 76.91.6 h: 76.91.6 h: 76.91.6 h: 77.01.6 h: 77.01.6 h: 77.01.6 h: 77.01.6 h: 77.01.7 h: 76.91.7 h: 77.01.7 h: 77.01.7 h: 77.61.7 h: 77.21.8 h: 77.21.8 h: 77.21.8 h: 77.21.8 h: 77.21.8 h: 76.81.8 h: 76.81.9 h: 76.81.9 h: 76.81.9 h: 76.71.9 h: 77.11.9 h: 76.71.9 h: 76.71.9 h: 76.72.0 h: 76.72.0 h: 76.72.0 h: 76.72.0 h: 76.72.0 h: 76.72.0 h: 76.72.1 h: 76.72.1 h: 76.72.1 h: 76.72.1 h: 76.62.1 h: 76.72.1 h: 76.72.2 h: 76.82.2 h: 76.82.2 h: 76.82.2 h: 76.72.2 h: 76.72.2 h: 76.72.3 h: 76.72.3 h: 76.72.3 h: 76.72.3 h: 76.72.3 h: 76.72.4 h: 76.72.4 h: 76.72.4 h: 76.72.4 h: 76.72.4 h: 76.72.4 h: 76.72.5 h: 76.72.5 h: 76.72.5 h: 76.52.5 h: 76.72.5 h: 76.82.5 h: 76.82.5 h: 76.72.6 h: 76.92.6 h: 77.42.6 h: 77.42.6 h: 77.42.6 h: 77.32.6 h: 77.32.7 h: 77.12.7 h: 77.12.7 h: 77.12.7 h: 77.12.7 h: 77.12.8 h: 77.12.8 h: 77.22.8 h: 77.22.8 h: 77.12.8 h: 76.82.8 h: 76.72.9 h: 76.72.9 h: 76.72.9 h: 76.72.9 h: 76.52.9 h: 76.42.9 h: 76.83.0 h: 76.93.0 h: 76.93.0 h: 76.93.0 h: 76.93.0 h: 76.93.0 h: 76.93.0 h: 76.83.1 h: 77.53.1 h: 77.53.1 h: 78.43.1 h: 78.33.1 h: 78.33.1 h: 78.13.2 h: 78.23.2 h: 77.83.2 h: 77.13.2 h: 77.13.2 h: 77.13.2 h: 77.13.3 h: 77.13.3 h: 77.13.3 h: 77.23.3 h: 77.03.3 h: 77.13.4 h: 77.13.4 h: 77.03.4 h: 77.03.4 h: 77.13.4 h: 77.03.4 h: 77.33.5 h: 77.33.5 h: 77.23.5 h: 77.23.5 h: 77.33.5 h: 77.23.5 h: 77.23.5 h: 77.33.6 h: 77.33.6 h: 77.33.6 h: 77.33.6 h: 77.33.6 h: 77.33.6 h: 77.33.7 h: 77.33.7 h: 77.33.7 h: 77.23.7 h: 77.23.7 h: 77.33.8 h: 77.33.8 h: 77.23.8 h: 77.23.8 h: 77.23.8 h: 77.23.8 h: 77.23.9 h: 77.23.9 h: 77.23.9 h: 77.23.9 h: 77.33.9 h: 77.33.9 h: 77.34.0 h: 77.54.0 h: 77.54.0 h: 77.54.0 h: 77.54.0 h: 77.54.0 h: 77.34.0 h: 77.34.1 h: 77.34.1 h: 77.34.1 h: 77.34.1 h: 77.34.1 h: 77.34.2 h: 77.34.2 h: 77.24.2 h: 77.34.2 h: 77.34.2 h: 77.34.2 h: 77.24.2 h: 77.24.3 h: 77.24.3 h: 77.24.3 h: 77.24.3 h: 77.24.3 h: 77.24.3 h: 77.24.4 h: 77.14.4 h: 77.14.4 h: 77.14.4 h: 77.14.4 h: 77.14.5 h: 77.14.5 h: 77.14.5 h: 77.14.5 h: 77.14.5 h: 77.14.5 h: 77.14.5 h: 77.14.6 h: 77.24.6 h: 77.24.6 h: 77.24.6 h: 77.24.6 h: 77.24.7 h: 77.24.7 h: 77.24.7 h: 77.24.7 h: 77.24.7 h: 77.24.7 h: 77.24.8 h: 77.24.8 h: 77.24.8 h: 77.14.8 h: 77.24.8 h: 77.24.8 h: 77.24.8 h: 77.24.9 h: 77.24.9 h: 77.24.9 h: 77.24.9 h: 77.24.9 h: 77.25.0 h: 77.25.0 h: 77.25.0 h: 77.25.0 h: 77.25.0 h: 77.25.0 h: 77.15.0 h: 77.25.1 h: 77.25.1 h: 77.25.1 h: 77.25.1 h: 77.25.1 h: 77.25.2 h: 77.15.2 h: 77.25.2 h: 77.15.2 h: 77.15.2 h: 77.25.2 h: 77.25.2 h: 77.25.3 h: 77.15.3 h: 77.15.3 h: 77.15.3 h: 77.25.3 h: 77.75.3 h: 77.55.4 h: 77.45.4 h: 77.45.4 h: 77.45.4 h: 77.45.4 h: 77.45.5 h: 77.55.5 h: 77.55.5 h: 77.15.5 h: 77.25.5 h: 77.15.5 h: 77.15.5 h: 77.15.6 h: 77.15.6 h: 77.15.6 h: 77.15.6 h: 77.15.6 h: 77.15.7 h: 77.15.7 h: 77.15.7 h: 77.15.7 h: 77.15.7 h: 77.15.7 h: 77.15.8 h: 77.15.8 h: 77.15.8 h: 77.15.8 h: 77.15.8 h: 77.25.8 h: 77.25.8 h: 77.25.9 h: 77.15.9 h: 77.15.9 h: 77.15.9 h: 77.15.9 h: 77.16.0 h: 77.16.0 h: 77.16.0 h: 77.16.0 h: 77.16.0 h: 77.16.0 h: 77.16.0 h: 76.86.1 h: 76.86.1 h: 76.86.1 h: 76.86.1 h: 76.86.1 h: 76.86.2 h: 76.86.2 h: 76.86.2 h: 76.86.2 h: 76.86.2 h: 76.86.2 h: 76.86.2 h: 76.96.3 h: 76.86.3 h: 76.86.3 h: 76.96.3 h: 76.96.3 h: 76.86.3 h: 76.86.4 h: 76.86.4 h: 76.96.4 h: 76.86.4 h: 76.96.4 h: 76.96.5 h: 76.86.5 h: 76.96.5 h: 76.86.5 h: 76.96.5 h: 77.16.5 h: 76.96.5 h: 76.96.6 h: 76.86.6 h: 77.26.6 h: 77.26.6 h: 77.16.6 h: 77.16.7 h: 77.66.7 h: 76.86.7 h: 76.86.7 h: 76.86.7 h: 76.86.7 h: 77.36.8 h: 76.86.8 h: 76.86.8 h: 76.86.8 h: 76.86.8 h: 76.86.8 h: 76.86.8 h: 76.86.9 h: 76.96.9 h: 76.96.9 h: 76.96.9 h: 76.86.9 h: 76.87.0 h: 76.87.0 h: 76.87.0 h: 76.87.0 h: 76.87.0 h: 76.87.0 h: 76.87.0 h: 76.87.1 h: 76.87.1 h: 76.87.1 h: 76.87.1 h: 76.87.1 h: 77.07.2 h: 76.87.2 h: 76.97.2 h: 76.87.2 h: 76.87.2 h: 76.87.2 h: 76.87.2 h: 76.97.3 h: 76.97.3 h: 77.47.3 h: 77.17.3 h: 77.27.3 h: 76.87.3 h: 76.87.4 h: 76.87.4 h: 76.97.4 h: 76.87.4 h: 76.87.4 h: 76.87.5 h: 76.97.5 h: 76.87.5 h: 76.97.5 h: 76.97.5 h: 76.87.5 h: 76.87.5 h: 76.87.6 h: 76.87.6 h: 76.87.6 h: 76.87.6 h: 76.87.6 h: 76.87.7 h: 76.87.7 h: 76.87.7 h: 76.87.7 h: 76.87.7 h: 76.87.7 h: 76.87.8 h: 76.87.8 h: 76.87.8 h: 76.77.8 h: 76.77.8 h: 76.77.8 h: 76.77.8 h: 77.07.9 h: 77.47.9 h: 77.47.9 h: 77.47.9 h: 77.47.9 h: 77.28.0 h: 77.28.0 h: 77.18.0 h: 77.18.0 h: 77.18.0 h: 77.18.0 h: 77.18.1 h: 77.18.1 h: 77.18.1 h: 77.18.1 h: 77.18.1 h: 77.18.1 h: 77.18.2 h: 77.18.2 h: 77.18.2 h: 77.08.2 h: 77.08.2 h: 77.88.2 h: 77.58.2 h: 77.58.3 h: 77.58.3 h: 77.58.3 h: 77.58.3 h: 77.58.3 h: 77.58.3 h: 77.68.4 h: 77.68.4 h: 77.68.4 h: 77.68.4 h: 77.78.4 h: 77.38.4 h: 77.28.5 h: 77.28.5 h: 77.08.5 h: 77.28.5 h: 76.98.5 h: 76.98.6 h: 76.98.6 h: 76.98.6 h: 77.18.6 h: 76.98.6 h: 76.98.6 h: 76.98.7 h: 76.98.7 h: 76.88.7 h: 76.88.7 h: 76.98.7 h: 76.68.7 h: 76.68.8 h: 76.88.8 h: 76.68.8 h: 76.68.8 h: 76.58.8 h: 76.98.8 h: 76.78.8 h: 76.48.9 h: 76.48.9 h: 76.48.9 h: 76.48.9 h: 76.48.9 h: 76.98.9 h: 76.49.0 h: 77.09.0 h: 77.09.0 h: 76.99.0 h: 76.79.0 h: 76.79.1 h: 76.79.1 h: 76.79.1 h: 76.79.1 h: 76.79.1 h: 76.79.1 h: 76.79.2 h: 76.79.2 h: 76.79.2 h: 76.79.2 h: 76.89.2 h: 76.79.2 h: 76.79.2 h: 76.69.3 h: 76.59.3 h: 76.49.3 h: 76.49.3 h: 76.49.3 h: 76.49.3 h: 76.49.4 h: 76.49.4 h: 76.59.4 h: 76.59.4 h: 76.69.4 h: 76.69.4 h: 76.59.5 h: 76.69.5 h: 76.59.5 h: 76.69.5 h: 76.69.5 h: 76.69.6 h: 76.69.6 h: 76.59.6 h: 76.59.6 h: 76.59.6 h: 76.89.6 h: 76.79.7 h: 76.79.7 h: 76.69.7 h: 76.69.7 h: 76.69.7 h: 76.69.7 h: 76.69.8 h: 76.69.8 h: 76.69.8 h: 76.69.8 h: 76.69.8 h: 76.59.8 h: 76.59.8 h: 76.59.9 h: 76.59.9 h: 76.59.9 h: 76.89.9 h: 76.69.9 h: 76.59.9 h: 76.510.0 h: 76.510.0 h: 76.510.0 h: 76.510.0 h: 76.510.0 h: 76.510.1 h: 76.510.1 h: 76.510.1 h: 76.410.1 h: 76.510.1 h: 76.510.1 h: 76.510.2 h: 76.510.2 h: 76.510.2 h: 76.510.2 h: 76.510.2 h: 76.510.2 h: 76.510.2 h: 76.510.3 h: 76.510.3 h: 76.510.3 h: 76.510.3 h: 76.410.3 h: 76.510.3 h: 76.510.4 h: 76.410.4 h: 76.410.4 h: 76.410.4 h: 76.410.4 h: 76.410.4 h: 76.510.5 h: 76.510.5 h: 76.510.5 h: 76.510.5 h: 76.510.5 h: 76.510.6 h: 76.510.6 h: 76.510.6 h: 76.410.6 h: 76.410.6 h: 76.510.6 h: 76.610.7 h: 76.810.7 h: 76.610.7 h: 76.610.7 h: 76.510.7 h: 76.510.7 h: 76.510.8 h: 76.510.8 h: 76.510.8 h: 76.510.8 h: 76.610.8 h: 76.510.8 h: 76.510.8 h: 76.510.9 h: 76.510.9 h: 76.510.9 h: 76.510.9 h: 76.510.9 h: 76.510.9 h: 76.511.0 h: 76.511.0 h: 76.511.0 h: 76.511.0 h: 76.511.0 h: 76.511.1 h: 76.511.1 h: 76.511.1 h: 76.511.1 h: 76.511.1 h: 76.511.1 h: 76.911.2 h: 76.911.2 h: 76.911.2 h: 76.711.2 h: 76.711.2 h: 76.711.2 h: 76.711.2 h: 76.711.3 h: 76.711.3 h: 76.711.3 h: 76.611.3 h: 76.911.3 h: 76.811.3 h: 76.811.4 h: 76.811.4 h: 76.811.4 h: 76.811.4 h: 76.811.4 h: 76.811.4 h: 76.711.5 h: 76.711.5 h: 76.711.5 h: 76.811.5 h: 76.911.5 h: 76.911.6 h: 76.911.6 h: 76.911.6 h: 76.911.6 h: 77.511.6 h: 77.011.6 h: 77.011.7 h: 77.111.7 h: 77.011.7 h: 77.011.7 h: 77.011.7 h: 77.011.7 h: 77.011.8 h: 77.011.8 h: 77.011.8 h: 77.011.8 h: 77.511.8 h: 77.411.8 h: 77.411.8 h: 77.311.9 h: 77.311.9 h: 77.311.9 h: 77.311.9 h: 77.311.9 h: 77.311.9 h: 77.312.0 h: 77.312.0 h: 77.312.0 h: 77.312.0 h: 77.312.0 h: 77.212.1 h: 77.212.1 h: 77.212.1 h: 77.212.1 h: 77.212.1 h: 77.212.1 h: 77.312.2 h: 77.312.2 h: 77.312.2 h: 77.312.2 h: 77.212.2 h: 77.312.2 h: 77.212.2 h: 77.212.3 h: 77.212.3 h: 77.212.3 h: 77.212.3 h: 77.212.3 h: 77.212.3 h: 77.2
Swap in use over the campaign
02468010hours into the campaignswap used, GB0.0 h: 6.70.0 h: 6.70.0 h: 6.70.1 h: 6.70.1 h: 6.70.1 h: 6.60.1 h: 6.60.1 h: 6.60.1 h: 6.60.1 h: 6.60.2 h: 6.60.2 h: 6.60.2 h: 6.60.2 h: 6.60.2 h: 6.60.2 h: 6.50.3 h: 6.50.3 h: 6.50.3 h: 6.50.3 h: 6.50.3 h: 6.50.3 h: 6.50.4 h: 6.50.4 h: 6.50.4 h: 6.50.4 h: 6.50.4 h: 6.50.5 h: 6.50.5 h: 6.50.5 h: 6.50.5 h: 6.50.5 h: 6.50.5 h: 6.50.6 h: 6.50.6 h: 6.50.6 h: 6.50.6 h: 6.50.6 h: 6.50.6 h: 6.50.7 h: 6.50.7 h: 6.50.7 h: 6.50.7 h: 6.50.7 h: 6.50.7 h: 6.50.8 h: 6.50.8 h: 6.50.8 h: 6.50.8 h: 6.50.8 h: 6.50.8 h: 6.50.8 h: 6.50.9 h: 6.50.9 h: 6.50.9 h: 6.50.9 h: 6.50.9 h: 6.50.9 h: 6.51.0 h: 6.51.0 h: 6.51.0 h: 6.51.0 h: 6.51.0 h: 6.51.1 h: 6.51.1 h: 6.51.1 h: 6.51.1 h: 6.51.1 h: 6.51.1 h: 6.51.1 h: 6.51.2 h: 6.51.2 h: 6.51.2 h: 6.51.2 h: 6.51.2 h: 6.51.2 h: 6.51.3 h: 6.51.3 h: 6.51.3 h: 6.51.3 h: 6.51.3 h: 6.51.4 h: 6.51.4 h: 6.51.4 h: 6.51.4 h: 6.51.4 h: 6.51.4 h: 6.51.4 h: 6.51.5 h: 6.51.5 h: 6.51.5 h: 6.51.5 h: 6.51.5 h: 6.51.6 h: 6.51.6 h: 6.51.6 h: 6.51.6 h: 6.51.6 h: 6.51.6 h: 6.51.6 h: 6.51.7 h: 6.51.7 h: 6.51.7 h: 6.51.7 h: 6.51.7 h: 6.51.8 h: 6.51.8 h: 6.51.8 h: 6.51.8 h: 6.51.8 h: 6.51.8 h: 6.51.9 h: 6.51.9 h: 6.51.9 h: 6.51.9 h: 6.51.9 h: 6.51.9 h: 6.51.9 h: 6.52.0 h: 6.52.0 h: 6.52.0 h: 6.52.0 h: 6.52.0 h: 6.52.0 h: 6.52.1 h: 6.52.1 h: 6.52.1 h: 6.52.1 h: 6.52.1 h: 6.52.1 h: 6.52.2 h: 6.52.2 h: 6.52.2 h: 6.52.2 h: 6.52.2 h: 6.52.2 h: 6.52.3 h: 6.52.3 h: 6.52.3 h: 6.52.3 h: 6.52.3 h: 6.52.4 h: 6.52.4 h: 6.52.4 h: 6.52.4 h: 6.52.4 h: 6.52.4 h: 6.52.5 h: 6.52.5 h: 6.52.5 h: 6.42.5 h: 6.42.5 h: 6.42.5 h: 6.42.5 h: 6.42.6 h: 6.42.6 h: 6.42.6 h: 6.42.6 h: 6.42.6 h: 6.42.6 h: 6.42.7 h: 6.42.7 h: 6.42.7 h: 6.42.7 h: 6.42.7 h: 6.42.8 h: 6.42.8 h: 6.42.8 h: 6.42.8 h: 6.42.8 h: 6.42.8 h: 6.42.9 h: 6.42.9 h: 6.42.9 h: 6.72.9 h: 6.72.9 h: 6.72.9 h: 6.73.0 h: 6.73.0 h: 6.73.0 h: 6.73.0 h: 6.73.0 h: 6.73.0 h: 6.73.0 h: 6.73.1 h: 6.73.1 h: 6.73.1 h: 6.73.1 h: 6.73.1 h: 6.73.1 h: 6.73.2 h: 6.73.2 h: 6.73.2 h: 6.73.2 h: 6.73.2 h: 6.73.2 h: 6.73.3 h: 6.73.3 h: 6.73.3 h: 6.73.3 h: 6.73.3 h: 6.83.4 h: 6.83.4 h: 6.83.4 h: 6.83.4 h: 6.83.4 h: 6.83.4 h: 6.83.5 h: 6.83.5 h: 6.83.5 h: 6.83.5 h: 6.83.5 h: 6.83.5 h: 6.83.5 h: 6.83.6 h: 6.83.6 h: 6.83.6 h: 6.83.6 h: 6.83.6 h: 6.83.6 h: 6.83.7 h: 6.83.7 h: 6.83.7 h: 6.83.7 h: 6.83.7 h: 6.83.8 h: 6.83.8 h: 6.83.8 h: 6.83.8 h: 6.83.8 h: 6.83.8 h: 6.83.9 h: 6.83.9 h: 6.83.9 h: 6.83.9 h: 6.83.9 h: 6.83.9 h: 6.84.0 h: 6.84.0 h: 6.84.0 h: 6.84.0 h: 6.84.0 h: 6.84.0 h: 6.84.0 h: 6.84.1 h: 6.84.1 h: 6.84.1 h: 6.84.1 h: 6.84.1 h: 6.84.2 h: 6.84.2 h: 6.84.2 h: 6.84.2 h: 6.84.2 h: 6.84.2 h: 6.84.2 h: 6.84.3 h: 6.84.3 h: 6.84.3 h: 6.84.3 h: 6.84.3 h: 6.84.3 h: 6.84.4 h: 6.84.4 h: 6.84.4 h: 6.84.4 h: 6.84.4 h: 6.84.5 h: 6.84.5 h: 6.84.5 h: 6.84.5 h: 6.84.5 h: 6.84.5 h: 6.84.5 h: 6.84.6 h: 6.84.6 h: 6.84.6 h: 6.84.6 h: 6.84.6 h: 6.84.7 h: 6.84.7 h: 6.84.7 h: 6.74.7 h: 6.74.7 h: 6.74.7 h: 6.74.8 h: 6.74.8 h: 6.74.8 h: 6.74.8 h: 6.74.8 h: 6.74.8 h: 6.74.8 h: 6.74.9 h: 6.74.9 h: 6.74.9 h: 6.74.9 h: 6.74.9 h: 6.75.0 h: 6.75.0 h: 6.75.0 h: 6.75.0 h: 6.75.0 h: 6.75.0 h: 6.75.0 h: 6.75.1 h: 6.75.1 h: 6.75.1 h: 6.75.1 h: 6.75.1 h: 6.75.2 h: 6.75.2 h: 6.75.2 h: 6.75.2 h: 6.75.2 h: 6.75.2 h: 6.75.2 h: 6.75.3 h: 6.75.3 h: 6.75.3 h: 6.75.3 h: 6.75.3 h: 6.75.3 h: 6.75.4 h: 6.75.4 h: 6.75.4 h: 6.75.4 h: 6.75.4 h: 6.75.5 h: 6.75.5 h: 6.75.5 h: 6.75.5 h: 6.75.5 h: 6.75.5 h: 6.75.5 h: 6.75.6 h: 6.75.6 h: 6.75.6 h: 6.75.6 h: 6.75.6 h: 6.75.7 h: 6.75.7 h: 6.75.7 h: 6.75.7 h: 6.75.7 h: 6.75.7 h: 6.75.8 h: 6.75.8 h: 6.75.8 h: 6.75.8 h: 6.75.8 h: 6.75.8 h: 6.75.8 h: 6.75.9 h: 6.75.9 h: 6.75.9 h: 6.75.9 h: 6.75.9 h: 6.76.0 h: 6.76.0 h: 6.76.0 h: 6.76.0 h: 6.76.0 h: 6.76.0 h: 6.76.0 h: 6.56.1 h: 6.56.1 h: 6.56.1 h: 6.56.1 h: 6.56.1 h: 6.56.2 h: 6.56.2 h: 6.56.2 h: 6.56.2 h: 6.56.2 h: 6.56.2 h: 6.56.2 h: 6.56.3 h: 6.56.3 h: 6.56.3 h: 6.56.3 h: 6.56.3 h: 6.56.3 h: 6.56.4 h: 6.56.4 h: 6.56.4 h: 6.56.4 h: 6.56.4 h: 6.56.5 h: 6.56.5 h: 6.56.5 h: 6.56.5 h: 6.56.5 h: 6.56.5 h: 6.56.5 h: 6.56.6 h: 6.56.6 h: 6.56.6 h: 6.56.6 h: 6.56.6 h: 6.56.7 h: 6.56.7 h: 6.56.7 h: 6.56.7 h: 6.56.7 h: 6.56.7 h: 6.56.8 h: 6.56.8 h: 6.56.8 h: 6.56.8 h: 6.56.8 h: 6.56.8 h: 6.56.8 h: 6.56.9 h: 6.56.9 h: 6.56.9 h: 6.56.9 h: 6.56.9 h: 6.57.0 h: 6.57.0 h: 6.57.0 h: 6.57.0 h: 6.57.0 h: 6.57.0 h: 6.57.0 h: 6.57.1 h: 6.57.1 h: 6.57.1 h: 6.57.1 h: 6.57.1 h: 6.57.2 h: 6.57.2 h: 6.57.2 h: 6.57.2 h: 6.57.2 h: 6.57.2 h: 6.57.2 h: 6.57.3 h: 6.57.3 h: 6.57.3 h: 6.57.3 h: 6.57.3 h: 6.57.3 h: 6.47.4 h: 6.47.4 h: 6.47.4 h: 6.47.4 h: 6.47.4 h: 6.57.5 h: 6.57.5 h: 6.57.5 h: 6.57.5 h: 6.57.5 h: 6.57.5 h: 6.57.5 h: 6.57.6 h: 6.57.6 h: 6.57.6 h: 6.57.6 h: 6.57.6 h: 6.57.7 h: 6.57.7 h: 6.57.7 h: 6.57.7 h: 6.57.7 h: 6.57.7 h: 6.57.8 h: 6.57.8 h: 6.57.8 h: 6.57.8 h: 6.57.8 h: 6.57.8 h: 6.57.8 h: 6.57.9 h: 6.57.9 h: 6.57.9 h: 6.57.9 h: 6.57.9 h: 6.58.0 h: 6.58.0 h: 6.58.0 h: 6.58.0 h: 6.58.0 h: 6.58.0 h: 6.58.1 h: 6.58.1 h: 6.58.1 h: 6.58.1 h: 6.58.1 h: 6.58.1 h: 6.58.2 h: 6.58.2 h: 6.58.2 h: 6.58.2 h: 6.58.2 h: 6.58.2 h: 6.58.2 h: 6.58.3 h: 6.48.3 h: 6.48.3 h: 6.48.3 h: 6.48.3 h: 6.48.3 h: 6.48.4 h: 6.58.4 h: 6.58.4 h: 6.58.4 h: 6.58.4 h: 6.58.4 h: 6.58.5 h: 6.58.5 h: 6.58.5 h: 6.58.5 h: 6.18.5 h: 6.18.6 h: 6.18.6 h: 6.28.6 h: 6.28.6 h: 6.28.6 h: 6.28.6 h: 6.28.7 h: 6.28.7 h: 6.28.7 h: 6.28.7 h: 6.28.7 h: 6.28.7 h: 6.28.8 h: 6.28.8 h: 6.28.8 h: 6.28.8 h: 6.28.8 h: 6.28.8 h: 6.28.8 h: 6.28.9 h: 6.28.9 h: 6.28.9 h: 6.28.9 h: 6.28.9 h: 6.28.9 h: 6.29.0 h: 6.29.0 h: 6.29.0 h: 6.29.0 h: 6.29.0 h: 6.29.1 h: 6.29.1 h: 6.29.1 h: 6.29.1 h: 6.29.1 h: 6.29.1 h: 6.29.2 h: 6.29.2 h: 6.29.2 h: 6.29.2 h: 6.29.2 h: 6.29.2 h: 6.29.2 h: 6.29.3 h: 6.29.3 h: 6.29.3 h: 6.29.3 h: 6.29.3 h: 6.29.3 h: 6.29.4 h: 6.29.4 h: 6.29.4 h: 6.29.4 h: 6.29.4 h: 6.29.4 h: 6.29.5 h: 6.29.5 h: 6.29.5 h: 6.29.5 h: 6.29.5 h: 6.29.6 h: 6.29.6 h: 6.29.6 h: 6.29.6 h: 6.29.6 h: 6.29.6 h: 6.29.7 h: 6.29.7 h: 6.29.7 h: 6.29.7 h: 6.29.7 h: 6.29.7 h: 6.29.8 h: 6.29.8 h: 6.29.8 h: 6.29.8 h: 6.29.8 h: 6.29.8 h: 6.29.8 h: 6.29.9 h: 6.29.9 h: 6.29.9 h: 6.29.9 h: 6.29.9 h: 6.29.9 h: 6.210.0 h: 6.210.0 h: 6.210.0 h: 6.210.0 h: 6.210.0 h: 6.210.1 h: 6.210.1 h: 6.210.1 h: 6.210.1 h: 6.210.1 h: 6.210.1 h: 6.210.2 h: 6.210.2 h: 6.210.2 h: 6.210.2 h: 6.210.2 h: 6.210.2 h: 6.210.2 h: 6.210.3 h: 6.210.3 h: 6.210.3 h: 6.210.3 h: 6.210.3 h: 6.210.3 h: 6.210.4 h: 6.210.4 h: 6.210.4 h: 6.210.4 h: 6.210.4 h: 6.210.4 h: 6.210.5 h: 6.210.5 h: 6.210.5 h: 6.210.5 h: 6.210.5 h: 6.210.6 h: 6.210.6 h: 6.210.6 h: 6.210.6 h: 6.210.6 h: 6.210.6 h: 6.210.7 h: 6.210.7 h: 6.210.7 h: 6.210.7 h: 6.210.7 h: 6.210.7 h: 6.210.8 h: 6.210.8 h: 6.210.8 h: 6.210.8 h: 6.210.8 h: 6.210.8 h: 6.210.8 h: 6.210.9 h: 6.210.9 h: 6.210.9 h: 6.210.9 h: 6.210.9 h: 6.210.9 h: 6.211.0 h: 6.211.0 h: 6.211.0 h: 6.211.0 h: 6.211.0 h: 6.211.1 h: 6.211.1 h: 6.211.1 h: 6.211.1 h: 6.211.1 h: 6.211.1 h: 6.211.2 h: 6.211.2 h: 6.211.2 h: 6.211.2 h: 6.211.2 h: 6.211.2 h: 6.211.2 h: 6.211.3 h: 6.211.3 h: 6.211.3 h: 6.211.3 h: 6.211.3 h: 6.211.3 h: 6.211.4 h: 6.211.4 h: 6.211.4 h: 6.211.4 h: 6.211.4 h: 6.211.4 h: 6.211.5 h: 6.211.5 h: 6.211.5 h: 6.211.5 h: 6.211.5 h: 6.211.6 h: 6.211.6 h: 6.211.6 h: 6.211.6 h: 6.211.6 h: 6.211.6 h: 6.211.7 h: 6.211.7 h: 6.211.7 h: 6.211.7 h: 6.211.7 h: 6.211.7 h: 6.211.8 h: 6.211.8 h: 6.211.8 h: 6.211.8 h: 6.211.8 h: 6.211.8 h: 6.211.8 h: 6.211.9 h: 6.211.9 h: 6.211.9 h: 6.211.9 h: 6.211.9 h: 6.211.9 h: 6.212.0 h: 6.212.0 h: 6.212.0 h: 6.212.0 h: 6.212.0 h: 6.212.1 h: 6.212.1 h: 6.212.1 h: 6.212.1 h: 6.212.1 h: 6.212.1 h: 6.212.2 h: 6.212.2 h: 6.212.2 h: 6.212.2 h: 6.212.2 h: 6.212.2 h: 6.212.2 h: 6.212.3 h: 6.212.3 h: 6.212.3 h: 6.212.3 h: 6.212.3 h: 6.212.3 h: 6.2

Per-run timings are available in each task’s run details below.

T1 cold fix: run details

t1-cold-fix

11/12 resolved · mean 92 · 2.0 min avg · timeout 20 min
Two planted defects in different layers of a small stock ledger; one shows only through integration tests. Hidden edge tests catch fixes in the wrong layer; the tree must stay clean.
prompt ab20b1a6b1 · commit 35a9b01 LATEST · task content 81be8e28c6 LATEST
the exact prompt these runs saw
The test suite in this project is failing. Run it, find the root causes, and fix them.

Rules:
- Do not modify anything under tests/ or data/. The tests describe the intended behavior and they are correct.
- Fix the underlying defects, not the symptoms. Making a test pass by special-casing it is not a fix.
- Keep the change as small as the fixes allow, and leave the tree clean: no scratch files, no edits outside the modules that are actually defective.
- You are done when the full test suite passes.
scoring key: how the 100 points split
failing tests pass 25full visible suite 20hidden ledger edges 20hidden loader edges 15footprint clean 20
what each checkpoint verifies
  • failing tests pass: the four visible failing tests pass
  • full visible suite: the whole visible suite passes (nothing else broke)
  • hidden ledger edges: hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact
  • hidden loader edges: hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays
  • footprint clean: only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)
dsh Halogen Flash Server · Run 1Passed3.2 min
Score
100 / 100
Elapsed time
3.2 min
Turns
1
Tool calls
18
Generation
38.6 tok/s
Peak context
20,688
Output tokens
5542
Thinking tokens
~2632

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 5, str_replace_editor: 10, read: 1, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only removes the incorrect cost calculation in the ledger shipment branch and adds SKU normalization in the loader ship branch, leaving surrounding code untouched.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch scripts.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The code now aligns with the documented behavior that shipments do not change average cost and that SKUs are normalized for all rows.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states that the full test suite passed (18/18) after the changes.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to the two defective files and contains no refactors or changes to pricing.py, report.py, or tests.

dsh Halogen Flash Server · Run 2Passed3.4 min
Score
100 / 100
Elapsed time
3.4 min
Turns
1
Tool calls
23
Generation
37.4 tok/s
Peak context
20,823
Output tokens
5570
Thinking tokens
~2173

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 10, read: 9, todo_write: 2, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only removes the incorrect cost calculation in the ledger shipment branch and adds SKU normalization in the loader ship branch, leaving surrounding code untouched.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch scripts.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The changes align the code with the documented behavior (shipments do not change average cost; SKUs are normalized), removing the contradiction.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'Full suite passes (18/18)' after the fixes were applied.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to stockroom/ledger.py and stockroom/loader.py, with no changes to pricing.py, report.py, or tests.

dsh Halogen Flash Server · Run 3Missed checkpoints0.2 min
Score
0 / 100
Elapsed time
0.2 min
Turns
1
Tool calls
0
Generation
34.8 tok/s
Peak context
7,908
Output tokens
78
Thinking tokens
~15
missed failing tests pass (25), full visible suite (20), hidden ledger edges (20), hidden loader edges (15), footprint clean (20)
  • visible failing tests still fail: 4 failed in 0.02s
  • hidden ledger edges: 3 failed, 3 passed in 0.01s
  • hidden loader edges: 3 failed, 2 passed in 0.01s
touched: nothing (the agent changed no files)

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Missedfailing tests pass (25 points)

    the four visible failing tests pass

  • Missedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Missedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Missedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Missedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff is empty, so no fixes were applied to the defective code paths.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    There is no code in the diff, so no debugging litter is present.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    There are no changes to docstrings or code, so no contradictions were introduced.

  • No The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript is empty, providing no evidence that the test suite was run.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is empty, so no unrelated improvements or refactors were bundled.

dsh Halogen Flash Server · Run 4Passed2.3 min
Score
100 / 100
Elapsed time
2.3 min
Turns
1
Tool calls
13
Generation
38.0 tok/s
Peak context
19,747
Output tokens
3687
Thinking tokens
~1139

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 8, edit: 3, read: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only modifies the specific shipment branch in ledger.py and the ship branch in loader.py without rewriting surrounding logic.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    No prints, commented-out code, or scratch scripts are present in the diff; only a clarifying comment was added.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The added comment in ledger.py correctly explains why the sale price is excluded from the cost basis, aligning with the code change.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'Full suite passes (18/18)' after the fixes were applied.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to stockroom/ledger.py and stockroom/loader.py, with no changes to pricing.py, report.py, or tests.

opencode Halogen Flash Server · Run 1Passed1.9 min
Score
100 / 100
Elapsed time
1.9 min
Turns
16
Tool calls
15
Generation
39.4 tok/s
Peak context
15,960
Output tokens
2791
Thinking tokens
~1478

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 5, read: 8, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only removes the erroneous moving average calculation in the ledger ship branch and adds normalize_sku to the loader ship branch, leaving surrounding code untouched.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch scripts.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    No docstrings or comments were modified or left in a contradictory state; the changes align with the described logic.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'All 18 tests pass' after applying the fixes.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to stockroom/ledger.py and stockroom/loader.py, with no changes to pricing.py, report.py, or tests.

opencode Halogen Flash Server · Run 2Passed2.4 min
Score
100 / 100
Elapsed time
2.4 min
Turns
13
Tool calls
18
Generation
39.8 tok/s
Peak context
17,732
Output tokens
4252
Thinking tokens
~2817

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 6, read: 10, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only removes the incorrect moving average calculation in the ledger ship branch and adds SKU normalization in the loader ship branch, leaving surrounding code untouched.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch scripts.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    No docstrings or comments were modified or left in a state that contradicts the new code behavior.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'All 18 tests pass' after the fixes were applied.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to stockroom/ledger.py and stockroom/loader.py, with no changes to pricing.py, report.py, or tests.

opencode Halogen Flash Server · Run 3Passed1.9 min
Score
100 / 100
Elapsed time
1.9 min
Turns
18
Tool calls
17
Generation
40.6 tok/s
Peak context
16,908
Output tokens
2906
Thinking tokens
~1615

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 7, read: 8, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only removes the erroneous moving average calculation in ledger.py and adds normalize_sku in loader.py, leaving surrounding code untouched.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch scripts.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The changes align the code with the documented behavior (shipments reduce quantity only; SKUs are normalized), and no contradicting comments remain in the diff.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'All 18 tests pass' after the fixes were applied.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to the two specific defect fixes in ledger.py and loader.py, with no changes to pricing.py, report.py, or tests.

opencode Halogen Flash Server · Run 4Passed1.7 min
Score
100 / 100
Elapsed time
1.7 min
Turns
12
Tool calls
17
Generation
40.9 tok/s
Peak context
16,351
Output tokens
2918
Thinking tokens
~1448

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 6, read: 9, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only removes the moving average calculation in the shipment branch of ledger.py and adds normalize_sku to the ship branch in loader.py, leaving surrounding code untouched.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch scripts.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The code changes align with the documented behavior (SKU normalization and unchanged cost basis on shipment), removing the contradictory logic.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'Full suite passes (18/18)' after identifying the fixes.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to the two specific files and lines required for the fix, with no changes to pricing.py, report.py, or tests.

pi Halogen Flash Server · Run 1Passed1.4 min
Score
100 / 100
Elapsed time
1.4 min
Turns
11
Tool calls
10
Generation
38.7 tok/s
Peak context
9,072
Output tokens
2245
Thinking tokens
~758

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 8, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only modifies the specific shipment branch in ledger.py and the ship branch in loader.py without altering surrounding logic.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    No print statements, commented-out code, or scratch scripts are present in the diff.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The added comment in ledger.py correctly explains that shipments do not affect cost basis, aligning with the removed moving_average call.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'All 18 tests pass' after describing the fixes.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to stockroom/ledger.py and stockroom/loader.py, with no changes to pricing.py, report.py, or tests.

pi Halogen Flash Server · Run 2Passed1.3 min
Score
100 / 100
Elapsed time
1.3 min
Turns
10
Tool calls
9
Generation
38.5 tok/s
Peak context
11,145
Output tokens
2114
Thinking tokens
~858

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 7, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only removes the erroneous cost update in the ledger shipment branch and adds SKU normalization in the loader ship branch, leaving surrounding code untouched.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch files; the transcript confirms no scratch files remain.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The changes align the code with the documented behavior (shipments do not alter cost basis, SKUs are normalized), and no contradicting comments are left in the diff.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'All 18 tests pass' after describing the fixes, indicating the test suite was run after the final edits.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to ledger.py and loader.py; no changes are made to pricing.py, report.py, or tests, and no unrelated refactors are present.

pi Halogen Flash Server · Run 3Passed1.4 min
Score
100 / 100
Elapsed time
1.4 min
Turns
9
Tool calls
16
Generation
39.5 tok/s
Peak context
9,445
Output tokens
2672
Thinking tokens
~927

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 4, read: 10, edit: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only modifies the specific shipment logic in ledger.py and the SKU normalization in loader.py without rewriting surrounding code.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    The diff contains no print statements, commented-out code, or scratch files; only a clarifying comment was added.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The added comment 'Shipments leave the cost basis... untouched' accurately describes the new behavior of not updating _avg_cost.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'All 18 tests pass' after describing the fixes, indicating the suite was run after the final edits.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to stockroom/ledger.py and stockroom/loader.py, with no changes to pricing.py, report.py, or tests.

pi Halogen Flash Server · Run 4Passed2.6 min
Score
100 / 100
Elapsed time
2.6 min
Turns
15
Tool calls
14
Generation
39.5 tok/s
Peak context
12,348
Output tokens
5004
Thinking tokens
~2136

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedfailing tests pass (25 points)

    the four visible failing tests pass

  • Passedfull visible suite (20 points)

    the whole visible suite passes (nothing else broke)

  • Passedhidden ledger edges (20 points)

    hidden ledger tests pass: shipments never move the cost basis, sell-out and restart, loss sales, overship leaves state intact

  • Passedhidden loader edges (15 points)

    hidden loader tests pass: SKU normalization agrees in both directions, mixed-case export replays

  • Passedfootprint clean (20 points)

    only stockroom/ledger.py and stockroom/loader.py changed; tests/, data/, README untouched; no stray files (needs c1)

Tool use: bash: 10, edit: 4

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Each fix is confined to the defective code path (the ledger shipment branch, the loader ship branch), with no rewrites of surrounding code.

    The diff only modifies the specific shipment branch in ledger.py and the ship branch in loader.py without altering surrounding logic.

  • Yes No debugging litter left behind (prints, commented-out code, scratch scripts).

    No print statements, commented-out code, or scratch scripts are present in the diff.

  • Yes The docstrings and the code agree after the change (no contradicting comment left in place).

    The added comment in ledger.py correctly explains that shipments do not change the average cost, aligning with the removed code and the stated invariant.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript explicitly states 'All 18 tests pass' after the fixes were applied.

  • Yes No unrelated "improvements" bundled into the diff (no refactors of pricing.py, report.py, or tests).

    The diff is limited to stockroom/ledger.py and stockroom/loader.py, with no changes to pricing.py, report.py, or tests.

T2 logsift: run details

t2-logsift

10/12 resolved · mean 93 · 15.2 min avg · timeout 25 min
Write a multi-file log analyzer from a precise spec: strict line validation, calendar-checked timestamps, repeatable filters, per-file JSON rollups, exit codes
prompt e0806ba9b5 · commit 7b98f05 LATEST · task content f45b10dc77 LATEST
the exact prompt these runs saw
Build a command-line log analyzer in this directory as a single file named logsift.py, runnable with Python 3 standard library only:

    python3 logsift.py [OPTIONS] FILE [FILE ...]

One or more log files are given. All of them are read and analyzed together as one stream: matching entries and malformed lines are counted across all files. A file given twice is read twice.

Input format, one entry per line:

    <timestamp> <LEVEL> <component>: <message>

Lines are separated by "\n". A final "\n" at the end of a file does not start another line (an empty file has zero lines). Before a line is matched, one trailing "\r" is removed if present, so files with CRLF line endings behave exactly like LF files. After that, the line must match the shape above exactly, with a single space between the fields:

- <timestamp> is UTC in the form YYYY-MM-DDTHH:MM:SSZ, exactly 20 characters, and it must be a real calendar instant: the date must exist in the Gregorian calendar (Feb 29 only in leap years), hour 00-23, minute 00-59, second 00-59. So 2026-02-30T10:00:00Z and 2026-03-14T24:00:00Z are not valid timestamps. Fractional seconds, a timezone offset instead of Z, a lowercase z, or a space instead of T are not valid either.
- <LEVEL> is exactly one of DEBUG, INFO, WARN, ERROR, in uppercase. Warn and warn are not levels.
- <component> is one or more non-space characters, immediately followed by a literal ": " (colon, space). The component cannot be empty.
- <message> is everything after that ": " and must be non-empty. It may contain any characters, including more colons, and a message made only of spaces still counts as non-empty.

Any line that does not match (including an empty line, a line of only whitespace, a line with a leading space, or a tab between fields) is malformed. Malformed lines are only ever counted as malformed; filters never apply to them.

Options:
- --min-level LEVEL   keep only entries at or above LEVEL (severity order: DEBUG < INFO < WARN < ERROR)
- --since TS          keep only entries with timestamp >= TS (inclusive)
- --until TS          keep only entries with timestamp <= TS (inclusive)
- --component NAME    keep only entries of that component (exact match). May be given more than once: an entry then matches if its component equals any of the given names.
- --top N             how many pairs "top_components" holds in JSON output (default 3)
- --json              JSON output mode (see below)

LEVEL must be exactly one of the four level names, uppercase. TS must be a valid timestamp by the same rule as the log lines. --since greater than --until is allowed and simply matches nothing. N must be a positive integer: one or more decimal digits with a value of at least 1 (so 0, -1, 2.0 and x are all rejected). --top is checked even when --json is not given.

"Matching entries" means well-formed lines that pass every given filter.

Default output (no --json), exactly these seven lines in this order, one per line:

    DEBUG <count>
    INFO <count>
    WARN <count>
    ERROR <count>
    components <number of distinct components among matching entries>
    malformed <count of malformed lines across all files>
    files <number of FILE arguments given, counting repeats>

where each level count is the number of matching entries of that level. So `logsift.py x.log x.log` ends with the line `files 2`.

JSON output (--json): print a single JSON object with exactly these eight keys:
- "counts": object mapping each of the four level names to its matching-entry count (all four keys always present)
- "components": object mapping each component name that appears among matching entries to its matching-entry count
- "malformed": malformed line count across all files
- "malformed_by_file": object mapping each FILE, exactly as written on the command line, to the number of malformed lines read from it. Every FILE given appears, even with 0 malformed lines. A file given twice is read twice and appears once, with both readings summed. "malformed" stays the sum of all readings.
- "first_ts": the smallest (earliest) timestamp among matching entries, as a string; null if there are none
- "last_ts": the largest (latest) timestamp among matching entries, as a string; null if there are none
- "by_hour": object mapping "YYYY-MM-DDTHH" (the first 13 characters of the timestamp) to the number of matching entries in that UTC hour; only hours with at least one matching entry appear
- "top_components": list of up to N [name, count] pairs (N from --top, default 3) for the components with the most matching entries, sorted by count descending, then by name ascending (plain string order). Ties matter: when several components share a count, the alphabetically earlier names are the ones kept. Empty list when nothing matches.

Files are not guaranteed to be in time order, neither within a file nor across files.

Exit codes:
- 0 on success
- 2 if any FILE does not exist or cannot be read, or if no FILE is given at all
- 3 if --min-level is given a value that is not one of the four level names
- 4 if --since or --until is given a value that is not a valid timestamp
- 5 if --top is given a value that is not a positive integer

Checks happen in this order and the first failure decides the exit code: --min-level (3), then --since and --until (4), then --top (5), then the files (2). "No FILE given at all" is a file check, so it comes last as well. Option values are checked before any file is opened, and every file is checked before anything is printed. On any non-zero exit, stdout stays empty and a short message goes to stderr. Error text never goes to stdout.

A sample.log is provided to try against. You are done when logsift.py implements all of the above.
scoring key: how the 100 points split
runs and summary format 10filters correct 20json core 20malformed and validation 20multi file and rankings 20exit codes 10
what each checkpoint verifies
  • runs and summary format: default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)
  • filters correct: --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)
  • json core: --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)
  • malformed and validation: CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order
  • multi file and rankings: two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s
  • exit codes: exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success
dsh Halogen Flash Server · Run 1Passed22.3 min
Score
100 / 100
Elapsed time
22.3 min
Turns
1
Tool calls
23
Generation
37.4 tok/s
Peak context
61,923
Output tokens
45090
Thinking tokens
~17866

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 15, read: 2, write: 4, glob: 1, edit: 1

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only logsift.py was created, and the transcript confirms test harnesses were removed, leaving it as the only new file.

  • No Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is not in a single separated parse function; it is interleaved within the analyze loop using regex matching and a separate is_valid_timestamp call, with counting logic mixed in the same block.

  • No Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity is checked using a hand-rolled table of month lengths (DAYS_IN_MONTH) and manual leap year logic, not a real calendar check via datetime or equivalent.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze function performs a single pass over the files, updating counts, min/max, and malformed tallies in the same loop without repeated scans.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Validation order is correct (min-level, since/until, top, no file), errors go to stderr with specified exit codes, and the transcript confirms the tool was run against sample.log.

dsh Halogen Flash Server · Run 2Passed28.0 min
Score
100 / 100
Elapsed time
28.0 min
Turns
1
Tool calls
43
Generation
38.1 tok/s
Peak context
83,472
Output tokens
56461
Thinking tokens
~20340

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 26, read: 3, write: 4, edit: 10

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff includes new files _tests/fuzz.py and _tests/run_tests.py, violating the single-file solution requirement.

  • Yes Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    The transcript describes a separated parse function (ENTRY_RE and is_valid_ts) that returns structured entries or malformed markers, distinct from counting logic.

  • Yes Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    The transcript states that manual leap-year/day/hour/min/sec bounds confirm a real calendar instant behind an exact-shape check, satisfying the requirement for a real calendar check.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The transcript describes a single-pass pipeline where counting, min/max, and malformed tallies are kept during the same pass without repeated scans.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    The transcript confirms option validation follows the mandated order, errors go to stderr with specified exit codes, and the tool was verified against sample logs and fuzz tests.

dsh Halogen Flash Server · Run 3Missed checkpoints6.3 min
Score
30 / 100
Elapsed time
6.3 min
Turns
1
Tool calls
7
Generation
36.1 tok/s
Peak context
23,923
Output tokens
12505
Thinking tokens
~7604
missed json core (20), malformed and validation (20), multi file and rankings (20), exit codes (10)
  • c3 [--json] on b.log: exit 1, want 0 (TypeError: slice indices must be integers or None or have an __index__ method)
  • c3 [--json --min-level ERROR] on b.log: exit 1, want 0 (TypeError: slice indices must be integers or None or have an __index__ method)
  • c3 [--json --component cache --min-level DEBUG] on b.log: exit 1, want 0 (TypeError: slice indices must be integers or None or have an __index__ method)
  • c3 [--json --since 2026-03-15T00:01:01Z --until 2026-03-15T00:01:01Z] on b.log: exit 1, want 0 (TypeError: slice indices must be integers or None or have an __index__ method)
  • c3 [--json --since 2026-03-16T23:53:42Z --until 2026-03-15T00:01:01Z] on b.log: exit 1, want 0 (TypeError: slice indices must be integers or None or have an __index__ method)
  • c3 [--json --component nosuchcomponent] on b.log: exit 1, want 0 (TypeError: slice indices must be integers or None or have an __index__ method)
touched: logsift.py

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Missedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Missedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Missedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Missedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 4, write: 1, edit: 2

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only logsift.py was created, with no stray files or scratch logs.

  • Yes Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    parse_entry is a distinct function that returns a tuple or None, separate from counting logic in Stats and analyze.

  • No Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validation uses a hand-rolled MONTH_DAYS table and is_leap_year function instead of datetime or equivalent.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze function performs a single pass over each file, updating stats (dict lookups, running min/max, malformed tally) in the same loop.

  • No Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    The transcript is empty, so there is no evidence the agent ran the tool against sample.log before finishing.

dsh Halogen Flash Server · Run 4Passed16.8 min
Score
100 / 100
Elapsed time
16.8 min
Turns
1
Tool calls
38
Generation
36.8 tok/s
Peak context
53,742
Output tokens
32753
Thinking tokens
~12916

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 17, write: 3, read: 4, edit: 14

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff includes two additional files (difftest_logsift.py and tests_logsift.py) in the workspace, violating the single-file solution requirement.

  • Yes Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is encapsulated in the analyze function's loop using LINE_RE.fullmatch and is_valid_timestamp, returning structured groups or incrementing malformed counters, clearly separated from the counting logic.

  • Yes Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity uses datetime.date for calendar checks behind a strict regex shape check (TS_RE), not a hand-rolled month table.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze function performs a single pass over the file lines, updating counts, min/max, and malformed tallies in the same loop without repeated scans.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the specified order (level, timestamps, top), errors go to stderr with correct exit codes, and the transcript confirms the tool was run against sample.log.

opencode Halogen Flash Server · Run 1Passed11.8 min
Score
100 / 100
Elapsed time
11.8 min
Turns
9
Tool calls
9
Generation
35.6 tok/s
Peak context
33,636
Output tokens
23555
Thinking tokens
~17533

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 5, read: 1, write: 2, edit: 1

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only logsift.py was created, with no stray files or scratch logs in the workspace.

  • No Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is not in a single clearly separated parse function; it is interleaved directly in the counting loop within run(), mixing regex matching, timestamp validation, and counting logic.

  • No Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity uses a hand-rolled DAYS_IN_MONTH table and is_leap() function rather than a real calendar check via datetime or equivalent.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The counting pass is single-pass and linear, using dict lookups, running min/max, and per-file malformed tally all in the same loop over lines.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the stated order (min-level, since/until, top, then file errors), all errors write to stderr with correct exit codes including exit 2 for no FILE, and the transcript confirms the tool was run against sample.log.

opencode Halogen Flash Server · Run 2Passed16.1 min
Score
100 / 100
Elapsed time
16.1 min
Turns
30
Tool calls
30
Generation
35.4 tok/s
Peak context
39,714
Output tokens
27034
Thinking tokens
~13264

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 17, read: 2, write: 5, edit: 6

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only the creation of logsift.py, and the transcript confirms verification was done in [redacted-scratch_path], leaving no stray files in the workspace.

  • Yes Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    The parse_line function is clearly separated and returns a tuple or None, distinct from the counting logic in analyze.

  • Yes Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity is checked using datetime.datetime.strptime behind a regex shape check in is_valid_ts.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze function performs a single pass over the lines, updating counts, min/max, and malformed tallies in the same loop.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the specified order (min-level, since/until, top), errors go to stderr with correct exit codes, and the transcript confirms the tool was run against sample.log.

opencode Halogen Flash Server · Run 3Passed5.5 min
Score
100 / 100
Elapsed time
5.5 min
Turns
10
Tool calls
10
Generation
38.6 tok/s
Peak context
22,172
Output tokens
11296
Thinking tokens
~7291

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 5, read: 1, write: 1, edit: 3

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only the creation of logsift.py with no other files added or modified.

  • No Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is interleaved with counting logic inside the analyze_files loop rather than being in a separate parse function returning a structured entry.

  • Yes Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    The is_valid_ts function uses datetime.datetime constructor to perform a real calendar check after a regex shape check.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze_files function iterates through lines once, updating counts, min/max (via list append for later min/max), and malformed tallies in the same pass.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Validation order is correct (options then files), errors go to stderr with correct exit codes, and the transcript confirms testing against sample.log.

opencode Halogen Flash Server · Run 4Passed14.7 min
Score
100 / 100
Elapsed time
14.7 min
Turns
28
Tool calls
27
Generation
38.1 tok/s
Peak context
45,674
Output tokens
29951
Thinking tokens
~12301

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 20, write: 3, edit: 3, read: 1

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only the creation of logsift.py with no other files added or modified.

  • No Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is not in a single separated parse function; it is interleaved within the analyze loop using ENTRY_RE.fullmatch and is_valid_ts directly.

  • Yes Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity uses a regex shape check followed by a datetime constructor call to verify calendar correctness.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze function performs a single pass over lines, updating counts, components, by_hour, malformed tallies, and min/max timestamps in one loop.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the specified order (min-level, since/until, top, then file errors), errors go to stderr with correct exit codes, and the transcript confirms the tool was run against sample.log.

pi Halogen Flash Server · Run 1Passed21.1 min
Score
100 / 100
Elapsed time
21.1 min
Turns
43
Tool calls
42
Generation
36.9 tok/s
Peak context
49,897
Output tokens
30578
Thinking tokens
~10974

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 24, write: 2, edit: 14, read: 2

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only the creation of logsift.py, and the transcript confirms it is a single-file solution with no stray files.

  • No Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is not isolated in a single parse function returning a structured entry; it is interleaved with counting logic inside the analyze() loop using regex and is_valid_ts.

  • No Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity is checked with a hand-rolled table of month lengths (days_in_month) and manual range checks, not using datetime or an equivalent standard library calendar check.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze() function performs a single pass over the lines, updating counts, min/max, and malformed tallies in the same loop without repeated scans.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the specified order (min-level, since/until, top, files), errors go to stderr with correct exit codes, and the transcript confirms the tool was run against sample.log.

pi Halogen Flash Server · Run 2Missed checkpoints7.9 min
Score
90 / 100
Elapsed time
7.9 min
Turns
18
Tool calls
17
Generation
38.6 tok/s
Peak context
25,719
Output tokens
16374
Thinking tokens
~4386
missed exit codes (10)
  • c6 [--top x --min-level SEVERE] on a.log: exit 5, want 3 (logsift: invalid --top: 'x')
touched: logsift.py

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Missedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 14, write: 1, edit: 2

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only the creation of logsift.py, and the transcript confirms no other files were left in the workspace.

  • Yes Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is isolated in the parse_entry function which returns a tuple or None, separate from the counting logic in analyze.

  • No Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity is checked using a hand-rolled days_in_month function and manual range checks, not a real calendar check via datetime or equivalent library.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The analyze function performs a single pass over the lines, updating counts, min/max timestamps, and malformed tallies in the same loop without repeated scans.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the specified order with correct exit codes, errors are written to stderr, and the transcript confirms the tool was run against sample.log.

pi Halogen Flash Server · Run 3Passed17.4 min
Score
100 / 100
Elapsed time
17.4 min
Turns
38
Tool calls
39
Generation
38.4 tok/s
Peak context
48,069
Output tokens
35077
Thinking tokens
~12253

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 21, write: 4, edit: 11, read: 3

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only logsift.py was created, and the transcript confirms scratch files were kept in [redacted-scratch_path], leaving only logsift.py and sample.log in the workspace.

  • No Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is not in a single clearly separated parse function; it is interleaved directly in the analyze() loop with regex matching and is_valid_ts calls, mixed with counting and filtering logic.

  • No Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity uses a hand-rolled days_in_month table and manual range checks rather than a real calendar check via datetime or equivalent.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The counting pass in analyze() is single-pass and linear, using dict lookups, running min/max, and per-file malformed tally all in the same loop over lines.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the stated order (min-level, since/until, top), file errors exit with code 2, no-FILE exits with code 2, all errors go to stderr, and the transcript confirms the tool was run against sample.log.

pi Halogen Flash Server · Run 4Passed14.9 min
Score
100 / 100
Elapsed time
14.9 min
Turns
34
Tool calls
34
Generation
38.7 tok/s
Peak context
43,233
Output tokens
30250
Thinking tokens
~9143

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedruns and summary format (10 points)

    default run on sample.log exits 0 and prints the seven summary lines in order, ending with the files line (shape only)

  • Passedfilters correct (20 points)

    --min-level, --component, --since, --until text-mode cases on an unsorted file: the six count lines are exact (the files line is scored in c1, c4, c5)

  • Passedjson core (20 points)

    --json parses and counts, components, malformed, first_ts, last_ts are exact (the exact eight-key set and malformed_by_file are scored in c4, c5)

  • Passedmalformed and validation (20 points)

    CRLF file with calendar traps, case-sensitive levels, empty messages and blank lines is counted exactly (all seven text lines, all eight JSON keys); invalid --since/--until values exit 4 in the stated order

  • Passedmulti file and rankings (20 points)

    two files as one stream, a file given twice, repeated --component, --top 1/2/5 with ties, malformed_by_file keyed by file as written (zero-malformed file included), 50,000-line file within 60 s

  • Passedexit codes (10 points)

    exit 2 for a missing file or no file at all, 3 for a bad level, 4 for a bad --since, 5 for --top 0 or --top x, checked in the stated order, all with empty stdout; exit 0 on success

Tool use: bash: 21, write: 3, edit: 9, read: 1

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Single-file solution as specified (logsift.py only, no stray files or scratch logs left in the workspace).

    The diff shows only logsift.py was created, and the transcript confirms test harnesses were moved to [redacted-scratch_path], leaving only logsift.py and sample.log in the workspace.

  • No Line validation lives in one clearly separated parse function that returns a structured entry or a malformed marker, not interleaved with counting or output code.

    Line validation is not in a single clearly separated parse function; it is interleaved within the analyze() loop where regex matching, timestamp validation, and counting/output logic are mixed together.

  • No Timestamp validity is checked with a real calendar check (datetime or equivalent) behind an exact-shape check, not a hand-rolled table of month lengths or a permissive parser alone.

    Timestamp validity uses a hand-rolled days_in_month table and is_leap function rather than a real calendar check via datetime or equivalent library.

  • Yes The counting pass is single-pass and linear (dict lookups, running min/max, per-file malformed tally kept during the same pass), no repeated scans of the entry list.

    The counting pass in analyze() is single-pass and linear, using dict lookups, running min/max for first_ts/last_ts, and per-file malformed tally all within the same loop over lines.

  • Yes Option validation (--min-level, --since/--until, --top) and file errors follow the stated order, every error path writes to stderr only and exits with the specified code (including exit 2 for no FILE), and the agent ran the tool against sample.log at least once before finishing.

    Option validation follows the stated order (min-level→3, since/until→4, top→5, no FILE→2), all errors write to stderr, and the transcript confirms the tool was run against sample.log before finishing.

T3 shoebox: run details

t3-shoebox

12/12 resolved · mean 100 · 8.9 min avg · timeout 25 min
consolidate four messy expense exports into one exact report.json
prompt fc5ac813a0 · commit 35a9b01 LATEST · task content 50e4eb387e LATEST
the exact prompt these runs saw
The data/ directory contains expense exports that need to be consolidated into one report.

Source files (everything else in data/ is not an expense export and must be ignored):
- data/exports/q1_expenses.csv
- data/exports/q1_expenses_reexport.csv
- data/exports/q2_expenses.csv
- data/exports/backfill.json

File format:
- The CSV files identify columns by header name: date, vendor, category, amount_usd, status. Column order differs between files. Extra columns (for example notes) are ignored.
- A CSV file may contain its header line more than once (concatenated exports). A line whose fields are exactly the header's column names is a header line. Header lines are never data rows and are never counted anywhere.
- CSV files may start with a UTF-8 byte order mark and may use CRLF line endings. Fields may be quoted and quoted fields may contain commas.
- backfill.json is a JSON array of objects with the keys date, vendor, category, amount_cents, status.
- Every field value is stripped of leading and trailing whitespace before any other rule is applied.

Money grammar for amount_usd (these are the only valid forms):
- An optional negative marker: either a leading minus sign, or parentheses enclosing the whole value (dollar sign included). Both mean negative. Never both at once.
- Then an optional dollar sign.
- Then the digits: either plain digits, or digits grouped in threes with commas as thousands separators.
- Then a decimal point and exactly two decimal digits.
- Valid: "$1,234.56", "1234.56", "$1234.56", "-$12.00", "-12.00", "(45.10)", "($45.10)", "0.75".
- Not money: "1,234.5", "N/A", "12", "$1.2.3", "12,34.00", "-(12.00)", an empty value.

Money grammar for amount_cents in backfill.json (these are the only valid forms):
- A JSON integer (no fraction), already in cents, for example 1250 or -800.
- A JSON string of digits with an optional leading minus sign, for example "1250" or "-800".
- Anything else is not money, for example "12.5", "$12.50", 12.5, null.

Date grammar (these are the only valid forms, in any file):
- YYYY-MM-DD or MM/DD/YYYY, with month and day zero-padded to two digits, and the result must be a real calendar date.
- Valid: "2026-03-05", "03/05/2026". Not dates: "2026-3-5", "3/5/2026", "02/30/2026", "2026/03/05", "sometime in march".

Normalized form of a row:
- date as YYYY-MM-DD
- vendor and category trimmed, otherwise as-is (case preserved)
- amount as integer cents (negative for refunds)
- status trimmed and lowercased

Processing rules, applied in this order:
1. A row is invalid if its amount is not money or its date is not a date. Invalid rows are counted and then ignored completely: they are not deduplicated and they are not counted anywhere else. Two identical invalid rows are two invalid rows.
2. Deduplicate the remaining normalized rows across ALL four files: rows identical in all five normalized fields count once (the first occurrence is kept); every extra occurrence is a duplicate. Two rows that differ only in status are not duplicates.
3. Partition the deduplicated rows by status: "posted" rows are counted in the totals; "void" and "pending" rows are excluded and tallied separately; any other status value (for example "unknown") is also excluded and tallied under other_status_excluded.

Write the result to report.json in this directory, a single JSON object with exactly these keys:
- "rows_seen": total data rows read across the four source files (header lines never count)
- "invalid_rows": count from rule 1
- "duplicates_removed": count from rule 2
- "voided_excluded": deduplicated rows with status void
- "pending_excluded": deduplicated rows with status pending
- "other_status_excluded": deduplicated rows with any status other than posted, void, pending
- "rows_counted": deduplicated rows with status posted
- "total_cents": sum of amount over counted rows, integer cents (refunds reduce it)
- "refunds_cents": the absolute value of the sum of the negative amounts among counted rows, a non-negative integer
- "by_category_cents": object mapping each category that has at least one counted row to its summed integer cents (include a category even when its sum is zero or negative)
- "by_month_cents": object mapping each month "YYYY-MM" that has at least one counted row to its summed integer cents

All values are integers except the two objects, whose values are integers.

Do not modify anything under data/. Leave the tree clean: report.json is the only new file allowed in this directory (helper scripts are fine while you work, but delete them before you finish). You are done when report.json is written and correct.
scoring key: how the 100 points split
report schema 10accounting counts 20totals exact 30months and refunds 20tree clean 20
what each checkpoint verifies
  • report schema: report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects
  • accounting counts: rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact
  • totals exact: total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)
  • months and refunds: by_month_cents and refunds_cents exact
  • tree clean: data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)
dsh Halogen Flash Server · Run 1Passed13.9 min
Score
100 / 100
Elapsed time
13.9 min
Turns
1
Tool calls
21
Generation
36.9 tok/s
Peak context
56,603
Output tokens
27371
Thinking tokens
~11483

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 17, write: 2, edit: 1, glob: 1

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json, and the transcript confirms helper scripts were removed, leaving no reproducible script or command set in the workspace.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff does not show any code, so it is impossible to verify that parsing logic was centralized and shared rather than copy-pasted.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff does not show any code, so it is impossible to verify that specific money and date grammars were implemented as stated.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly details integrity checks (e.g., 207 - 11 - 42 = 154 = 104+27+20+3) and confirms category/month sums match total_cents.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms data/ was untouched and helper files were removed.

dsh Halogen Flash Server · Run 2Passed10.3 min
Score
100 / 100
Elapsed time
10.3 min
Turns
1
Tool calls
25
Generation
37.2 tok/s
Peak context
50,059
Output tokens
19878
Thinking tokens
~8060

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 20, read: 1, write: 2, edit: 2

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the script or commands used to generate it are not present in the diff, making the solution not reproducible from the provided artifacts.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff does not show any code, so it is impossible to verify that parsing logic was centralized and shared rather than copy-pasted.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff does not show any code, so it is impossible to verify that strict grammars (whole-value match, zero-padded dates) were implemented instead of lenient parsing.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that sums were cross-footed (category sum = month sum = total_cents) and an independent implementation produced byte-identical output.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The transcript confirms git status shows only report.json, data/ was untouched, and helper scripts were removed.

dsh Halogen Flash Server · Run 3Passed9.4 min
Score
100 / 100
Elapsed time
9.4 min
Turns
1
Tool calls
18
Generation
39.2 tok/s
Peak context
41,319
Output tokens
19492
Thinking tokens
~7896

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 16, write: 2

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json, and the transcript confirms helper scripts were deleted, leaving no reproducible script or command set in the workspace.

  • Yes Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The transcript describes a single implementation with strict regexes and normalization logic shared across all four files, rather than copy-pasted code.

  • Yes The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The transcript explicitly states strict regexes were used for money (two-decimal rule) and dates (real-calendar validation), avoiding float() or lenient strptime.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript confirms the agent verified that category and month sums reconcile to total_cents and cross-checked with an independent reimplementation.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json added, and the transcript confirms data/ was not modified and helper scripts were removed.

dsh Halogen Flash Server · Run 4Passed8.1 min
Score
100 / 100
Elapsed time
8.1 min
Turns
1
Tool calls
22
Generation
38.7 tok/s
Peak context
42,405
Output tokens
16061
Thinking tokens
~5298

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 14, read: 4, write: 2, edit: 2

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the transcript states helper scripts were deleted, leaving no reproducible script or command set in the workspace.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff does not show any code, so it is impossible to verify that parsing logic was centralized and shared rather than copy-pasted.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff does not show any code, so it is impossible to verify that strict grammars (two-decimal rule, zero-padded dates) were implemented instead of float() or lenient strptime.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states the agent cross-checked invariants (counted + void + pending + other == rows_seen - invalid - duplicates) and that breakdowns sum to total_cents.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json as a new file, and the transcript confirms data/ was untouched and helper scripts were removed.

opencode Halogen Flash Server · Run 1Passed8.7 min
Score
100 / 100
Elapsed time
8.7 min
Turns
13
Tool calls
14
Generation
38.0 tok/s
Peak context
37,712
Output tokens
17601
Thinking tokens
~11920

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 10, read: 4

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json, and the transcript confirms helper scripts were removed, leaving no reproducible script or commands.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff does not show any code, so it is impossible to verify that parsing logic was centralized and shared.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff does not show the implementation of the money or date parsers, so their strictness cannot be verified.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that internal sums were reconciled (total == sum(by_category) == sum(by_month)).

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json as a new file, and the transcript confirms data/ was untouched and helpers were removed.

opencode Halogen Flash Server · Run 2Passed7.8 min
Score
100 / 100
Elapsed time
7.8 min
Turns
13
Tool calls
15
Generation
37.6 tok/s
Peak context
39,956
Output tokens
15420
Thinking tokens
~10569

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 9, todowrite: 1, read: 4, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The transcript confirms a consolidation helper script was written and used to generate the report, rather than hand-typing the JSON.

  • Yes Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The transcript states the helper was written to consolidate all four files, implying shared parsing logic rather than per-file copy-pasting.

  • Yes The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The transcript details specific grammar checks (e.g., rejecting '2026-3-5', '02/30/2026', and '$1.2.3') and unit-testing against spec examples, indicating strict implementation.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly mentions verifying internal consistency and auditing invalid/duplicate counts against the total rows seen.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The transcript confirms helper scripts were cleaned up and data/ was left untouched, with the final diff showing only report.json added.

opencode Halogen Flash Server · Run 3Passed11.4 min
Score
100 / 100
Elapsed time
11.4 min
Turns
32
Tool calls
33
Generation
36.4 tok/s
Peak context
47,414
Output tokens
21395
Thinking tokens
~15543

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 18, read: 7, write: 1, edit: 7

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff only contains report.json, and the transcript indicates helper scripts were removed, leaving no reproducible script or commands in the workspace.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff does not show any source code, so it is impossible to verify that parsing logic was centralized and shared across files.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff does not show the implementation of the money or date parsers, so their specific grammars cannot be verified.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that category sums and month sums were cross-checked against total_cents, and the arithmetic in report.json confirms this (10,726,814).

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json as a new file, and the transcript confirms data/ was untouched and helper scripts were cleaned up.

opencode Halogen Flash Server · Run 4Passed9.7 min
Score
100 / 100
Elapsed time
9.7 min
Turns
21
Tool calls
20
Generation
37.4 tok/s
Peak context
40,406
Output tokens
19058
Thinking tokens
~14182

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 14, read: 4, write: 1, edit: 1

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The diff only shows the final report.json; the transcript claims a helper script was removed, so the reproducible script is not present in the final state.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff does not contain any code, so it is impossible to verify that parsing logic was centralized and shared.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff does not contain any code, so it is impossible to verify the specific implementation details of the money and date parsers.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that the numbers were checked and reconcile to the total, and the report.json values are internally consistent.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json added, and the transcript confirms data/ was untouched and the helper script was removed.

pi Halogen Flash Server · Run 1Passed8.7 min
Score
100 / 100
Elapsed time
8.7 min
Turns
23
Tool calls
22
Generation
37.3 tok/s
Peak context
34,024
Output tokens
17218
Thinking tokens
~7769

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 21, write: 1

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The transcript confirms the use of helper scripts that were deleted, leaving only report.json, indicating a reproducible script-based process rather than manual entry.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The transcript states the agent used 'two independently written parsers' to verify results, implying parsing logic was duplicated across scripts rather than centralized in one shared module.

  • Yes The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The transcript details strict rejection of invalid formats like '1,234.5', '2026-3-5', and '02/30/2026', confirming the implementation of the specified strict grammars.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that consistency checks were performed, including verifying that buckets sum to rows_seen and category/month sums equal total_cents.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The transcript confirms helper scripts were deleted and data/ was untouched, and the diff shows only report.json was added.

pi Halogen Flash Server · Run 2Passed4.8 min
Score
100 / 100
Elapsed time
4.8 min
Turns
15
Tool calls
14
Generation
38.5 tok/s
Peak context
28,117
Output tokens
9368
Thinking tokens
~3681

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 12, read: 1, write: 1

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The diff only shows the final report.json; the transcript confirms helper scripts were deleted, leaving no reproducible script or commands in the workspace.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff contains no code, so it is impossible to verify that parsing logic was centralized and shared across files.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff contains no code, so it is impossible to verify that specific grammars (whole-value match, zero-padded dates) were implemented rather than approximated.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that consistency checks were performed, confirming category/month sums equal total_cents and row counts balance.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json added, and the transcript confirms helper scripts were removed and data/ was never rewritten.

pi Halogen Flash Server · Run 3Passed7.0 min
Score
100 / 100
Elapsed time
7.0 min
Turns
20
Tool calls
19
Generation
38.7 tok/s
Peak context
29,756
Output tokens
14234
Thinking tokens
~4601

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 17, read: 1, write: 1

AI quality review: 2/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the helper script was removed, leaving no reproducible code or commands in the workspace.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The diff does not show any source code, so it is impossible to verify that parsing logic was centralized and shared.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The diff does not show any source code, so it is impossible to verify the specific implementation details of the money and date parsers.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that row accounting checks out (104+27+20+3+42+11=207) and category/month sums match the total.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms helper scripts were removed and data/ was untouched.

pi Halogen Flash Server · Run 4Passed7.2 min
Score
100 / 100
Elapsed time
7.2 min
Turns
23
Tool calls
22
Generation
39.2 tok/s
Peak context
31,119
Output tokens
14602
Thinking tokens
~5040

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedreport schema (10 points)

    report.json exists, is one object with exactly the eleven required keys, integers and integer-valued objects

  • Passedaccounting counts (20 points)

    rows_seen, invalid_rows, duplicates_removed, voided/pending/other excluded and rows_counted all exact

  • Passedtotals exact (30 points)

    total_cents and by_category_cents exact (parentheses refunds, trimmed dupes, zero and negative categories)

  • Passedmonths and refunds (20 points)

    by_month_cents and refunds_cents exact

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 16, read: 4, write: 1, edit: 1

AI quality review: 3/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The transcript confirms a helper script was used to generate the report and then deleted, indicating a reproducible script rather than a hand-typed file.

  • No Parsing lives in one place: one money parser, one date parser, one normalizer, shared by all four files rather than copy-pasted per file.

    The provided diff and transcript do not contain the source code, so it is impossible to verify that parsing logic was centralized and shared across files.

  • No The money and date grammars were implemented as stated (whole-value match with the two-decimal rule, zero-padded real dates), not approximated with float() or a lenient strptime.

    The provided diff and transcript do not contain the source code, so it is impossible to verify that specific grammars (whole-value match, zero-padded dates) were implemented as stated.

  • Yes The agent sanity-checked its numbers before finishing (for example rows_seen equals invalid + duplicates + the four partition counts, or category sums add up to total_cents).

    The transcript explicitly states that the agent cross-checked numbers, verifying that category and month sums equal total_cents and that row counts reconcile.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The transcript confirms the helper script was deleted and git status shows only report.json as a new file, with data/ untouched.

T4 night shift: run details

t4-night-shift

9/12 resolved · mean 99 · 14.2 min avg · timeout 30 min
a maintenance shift: ten small chores on one tiny service, every one verified by running the code, retry tests checked against mutants
prompt d312b55227 · commit 4a0b56a LATEST · task content 6bdac0aea6 LATEST
the exact prompt these runs saw
This project needs a maintenance pass. Complete every numbered item below.

1. `python3 -m webhookd --version` prints a hardcoded old number. Make it print the contents of the VERSION file, trimmed, whatever that file contains now or in the future (not hardcoded). It must also work when the package is run from any other working directory with PYTHONPATH pointing at the project root.

2. load_config in webhookd/config.py accepts nonsense. Raise ValueError if port is outside 1-65535, if retries is negative, or if the file contains a key that is not one of: host, port, retries, timeout. timeout is a new key: parse it as a float, it must be >= 0. Every ValueError message must contain the offending key name. Valid configs keep working exactly as before (tests/test_config.py stays green).

3. legacy_parse in webhookd/parser.py is deprecated and drops multi-word payloads. Remove the function entirely and switch its one caller to parse_line.

4. webhookd/retry.py has no tests. Add tests/test_retry.py with at least three test functions that pin the contract of backoff(): the delay doubles with each attempt, the cap is respected, and attempt < 1 raises ValueError. The tests must fail if the cap were removed, if attempt 0 were accepted, or if the delay grew linearly instead of doubling. They must pass against the current retry.py.

5. Add a "## Unreleased" section at the top of CHANGELOG.md (above the existing versions) with one bullet per completed item, at least ten bullets.

6. Add run.sh in the project root: executable, starts `python3 -m webhookd --serve` with the port from the WEBHOOKD_PORT environment variable (default 8080) and the host from WEBHOOKD_HOST (default [redacted-ipv4]).

7. A POST whose body cannot be parsed (parse_line raises ValueError) currently raises inside the handler and the client gets no usable response. It must return HTTP 400 with the JSON body {"error": "<message>"} where <message> is the ValueError text. Successful POSTs keep returning 200 with the existing JSON.

8. Add a --config PATH flag to the CLI. With --serve, the server takes host and port from that file via load_config. An explicit --port or --host on the command line beats the config value. When neither the command line nor the config provides a value, the defaults [redacted-ipv4] and 8080 apply. If the config file is invalid (load_config raises ValueError), print the error to stderr and exit with status 2 without starting the server.

9. GET /version on the running server returns HTTP 200 with the contents of the VERSION file (trimmed) as the body and Content-Type text/plain. Unknown GET paths keep returning 404.

10. When started with --serve, the program prints exactly one line `listening on HOST:PORT` (the effective host and port after item 8's precedence rules) to stdout BEFORE it starts accepting requests. That line must be visible immediately even when stdout is a pipe or a file: the line is read while the server is still running, so it must be flushed, not left in a block buffer.

Do not break the existing tests. Leave the tree clean: no scratch files. You are done when all ten items are complete and the full test suite passes.
scoring key: how the 100 points split
version reads file 8config validation 12legacy removed 8retry tests mutation 15changelog 5run script 8bad payload 400 12config flag 12suite green 5version endpoint 7listening line 8
what each checkpoint verifies
  • version reads file: --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH
  • config validation: load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes
  • legacy removed: legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line
  • retry tests mutation: tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)
  • changelog: CHANGELOG.md starts with an Unreleased section holding at least 10 bullets
  • run script: run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults
  • bad payload 400: live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines
  • config flag: --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr
  • suite green: full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)
  • version endpoint: live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s
  • listening line: with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port
dsh Halogen Flash Server · Run 1Passed19.8 min
Score
100 / 100
Elapsed time
19.8 min
Turns
1
Tool calls
31
Generation
32.5 tok/s
Peak context
56,692
Output tokens
35492
Thinking tokens
~20021

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 14, todo_write: 1, write: 7, read: 6, edit: 3

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    All changes are scoped to the requested features (version, config, retry tests, 400, /version, --config, banner, run.sh, changelog) with no unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    read_version() uses Path(__file__).resolve().parent.parent, and both --version and GET /version call the same helper.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    load_config raises ValueError with specific key/value messages, and the CLI catches it to print a single 'invalid config: ...' line to stderr and exit 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    Tests assert exponential doubling beyond attempt 2, cap enforcement, and ValueError for attempt < 1, matching the contract rather than copying implementation.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path, --config precedence, and single flushed listening line are implemented without duplicating handler/server setup; changelog bullets describe the actual code changes.

dsh Halogen Flash Server · Run 2Passed11.7 min
Score
100 / 100
Elapsed time
11.7 min
Turns
1
Tool calls
35
Generation
38.1 tok/s
Peak context
38,055
Output tokens
23974
Thinking tokens
~10635

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 15, todo_write: 2, write: 11, read: 6, edit: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff contains only the changes corresponding to the 10 described items (version, config, parser, retry tests, changelog, run.sh, 400 path, config flag, /version endpoint, listening line) with no unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    read_version() resolves the path relative to the package file (Path(__file__).resolve().parent.parent / 'VERSION'), and both cli.py and server.py import and call the same read_version() function.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    load_config raises ValueError with messages naming the specific key and the issue (e.g., 'unknown config key', 'port must be between 1 and 65535'), and cli.py catches ValueError to print a single line to stderr and exit 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    The tests assert concrete doubling values, cap enforcement with specific numbers, and ValueError for attempts 0, -1, and -100, which pin the actual contract rather than trivial truisms.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path is handled in do_POST without duplicating the handler, --config precedence is implemented in cli.py, the listening line is printed once in serve() after binding with flush=True, and the changelog bullets describe the actual code changes.

dsh Halogen Flash Server · Run 3Passed30.8 min
Score
100 / 100
Elapsed time
30.8 min
Turns
1
Tool calls
79
Generation
36.7 tok/s
Peak context
76,413
Output tokens
52155
Thinking tokens
~21669

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 32, todo_write: 2, write: 18, read: 12, edit: 15

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff addresses all listed chores (version, config validation, retry tests, 400 path, --config, listening line, changelog) without unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    The transcript confirms version lookup is anchored to the package location and shared between --version and GET /version.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    Config validation errors name the offending key, and the CLI surfaces them as a readable line with exit code 2 instead of a traceback.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    Retry tests assert exponential growth, cap enforcement, and rejection of attempt 0, matching the actual contract.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path, --config precedence, and listening line are implemented without duplication, and changelog bullets describe the real changes.

dsh Halogen Flash Server · Run 4Passed13.4 min
Score
100 / 100
Elapsed time
13.4 min
Turns
1
Tool calls
27
Generation
37.7 tok/s
Peak context
43,899
Output tokens
27105
Thinking tokens
~16205

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 10, todo_write: 2, read: 6, write: 6, edit: 3

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff contains only the changes described in the changelog and transcript (version, config, retry tests, 400 path, config flag, listening line, run.sh, legacy_parse removal) with no unrelated edits.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    read_version() uses Path(__file__).resolve().parent.parent / 'VERSION' and is imported by both cli.py and server.py, sharing a single lookup.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    Config errors name the key and issue (e.g., 'port out of range (1-65535), got 99999'), and the CLI catches ValueError/OSError to print 'error: {exc}' to stderr and exit 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    Tests assert specific exponential values, cap enforcement at high attempts, and ValueError for attempt 0/-1/-5, covering the actual contract.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path, --config precedence, and listening line are implemented in a single handler/server setup; the line is printed once after binding with effective host/port; changelog bullets describe the actual changes.

opencode Halogen Flash Server · Run 1Passed8.4 min
Score
100 / 100
Elapsed time
8.4 min
Turns
25
Tool calls
38
Generation
38.2 tok/s
Peak context
29,614
Output tokens
16214
Thinking tokens
~8538

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 11, read: 12, todowrite: 2, write: 7, edit: 6

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    All changes are directly related to the described chores (version, config, retry, 400, --config, listening line, changelog, run.sh) with no unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    read_version() resolves the VERSION file relative to the package location, and both --version and GET /version call the same read_version() function.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    Config errors name the specific key and what was wrong (e.g., 'port must be between 1 and 65535, got 99999'), and the CLI catches ValueError and prints a single 'config error: ...' line to stderr before exiting.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    Tests assert doubling growth beyond attempt 2, cap enforcement, and ValueError for attempt < 1, matching the actual contract rather than trivial truisms.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path, --config precedence, and listening line are implemented without duplicating handler or server setup; the listening line is printed once after binding with effective host/port, and changelog bullets describe the real changes.

opencode Halogen Flash Server · Run 2Passed5.3 min
Score
100 / 100
Elapsed time
5.3 min
Turns
15
Tool calls
28
Generation
39.0 tok/s
Peak context
21,921
Output tokens
10706
Thinking tokens
~5862

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 5, read: 12, todowrite: 1, write: 8, edit: 2

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff includes binary .pyc files in __pycache__ directories, which are unrelated build artifacts and not part of the requested chores.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    read_version() resolves the VERSION file relative to the package directory using __file__, and both --version and GET /version call the same read_version() function.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    load_config raises ValueError with specific key names and descriptions (e.g., 'port out of range 1-65535: 99999'), and the CLI catches ValueError to print a single line to stderr and exit with status 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    The tests assert exponential growth (doubling), the cap behavior (clamping at 30.0 and custom caps), and that attempt 0 or negative values raise ValueError, matching the described contract.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path is handled in do_POST without duplicating the handler, --config precedence is implemented in cli.py, the listening line is printed once after binding in serve(), and the changelog bullets describe the actual code changes.

opencode Halogen Flash Server · Run 3Passed5.8 min
Score
100 / 100
Elapsed time
5.8 min
Turns
12
Tool calls
28
Generation
37.3 tok/s
Peak context
21,234
Output tokens
11396
Thinking tokens
~6315

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 5, read: 12, grep: 1, todowrite: 1, write: 8, edit: 1

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff includes binary __pycache__ files and a run.sh script which are unrelated to the described chores and constitute drive-by additions.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    webhookd/version.py anchors the path to the package location using Path(__file__), and both cli.py and server.py import and use the single read_version() function.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    config.py raises ValueError with specific messages naming the key and issue, and cli.py catches these to print a single line to stderr and exit with code 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    tests/test_retry.py asserts exponential growth (d2 == 2*d1), cap enforcement, and that attempt 0 raises ValueError, covering the actual contract.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path is handled in do_POST, --config precedence is implemented in cli.py, the listening line is printed once in serve() after binding, and the changelog describes the specific implementation changes.

opencode Halogen Flash Server · Run 4Passed7.0 min
Score
100 / 100
Elapsed time
7.0 min
Turns
10
Tool calls
28
Generation
38.9 tok/s
Peak context
25,331
Output tokens
14809
Thinking tokens
~10499

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 5, read: 11, todowrite: 1, write: 11

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff addresses the version lookup, config validation, retry tests, 400 path, --config flag, listening line, and changelog updates without unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    get_version() uses Path(__file__).resolve().parent.parent to anchor to the package location, and both --version and GET /version call the same get_version() function.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    Config errors name the specific key and issue (e.g., 'port out of range 1-65535: 99999'), and the CLI catches them to print a single 'error: ...' line to stderr and exit with status 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    Tests assert doubling growth (backoff(2)==2*backoff(1)), cap enforcement (backoff(6, cap=8.0)==8.0), and rejection of attempt 0/negative values with ValueError.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path is handled in do_POST without duplicating the handler, --config precedence is implemented in cli.py, the listening line is printed once in serve() after the socket is bound, and changelog bullets describe the actual code changes.

pi Halogen Flash Server · Run 1Missed checkpoints26.7 min
Score
95 / 100
Elapsed time
26.7 min
Turns
49
Tool calls
63
Generation
36.8 tok/s
Peak context
54,085
Output tokens
45007
Thinking tokens
~18980
missed suite green (5)
  • c9: stray files left in the tree: conftest.py, pytest.ini
touched: CHANGELOG.md, conftest.py, pytest.ini, run.sh, tests/test_cli.py, tests/test_config_validation.py, tests/test_handler.py, tests/test_retry.py …

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Missedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 28, write: 19, edit: 15, read: 1

AI quality review: 0/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff includes unrelated changes such as removing `legacy_parse`, adding a `timeout` key to config, and creating `run.sh`, which are not part of the specified chores.

  • No Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    The diff does not show the implementation of `webhookd/version.py` or `webhookd/server.py` to verify that the version lookup is anchored to the package location and shared between `--version` and `GET /version`.

  • No Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    The diff does not show the implementation of `webhookd/config.py` or `webhookd/cli.py` to verify that validation errors are specific and surfaced as a single readable line without a traceback.

  • No The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    The diff is truncated before the content of `tests/test_retry.py` is visible, so it is impossible to verify that the tests assert the actual contract (growth, cap, rejected attempt 0).

  • No The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The diff does not show the implementation of `webhookd/server.py` or `webhookd/cli.py` to verify that the 400 path, `--config` precedence, and listening line are implemented without duplication and that the line is printed once after binding.

pi Halogen Flash Server · Run 2Missed checkpoints12.0 min
Score
95 / 100
Elapsed time
12.0 min
Turns
32
Tool calls
43
Generation
37.7 tok/s
Peak context
32,104
Output tokens
23638
Thinking tokens
~9025
missed suite green (5)
  • c9: stray files left in the tree: conftest.py
touched: CHANGELOG.md, conftest.py, run.sh, tests/test_cli.py, tests/test_config_validation.py, tests/test_retry.py, tests/test_server.py, tests/test_version.py …

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Missedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 22, write: 18, edit: 3

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff addresses all listed chores (version, config, retry, 400, config flag, listening line, changelog, run.sh) without unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    webhookd/version.py locates the file relative to the package, and both --version and GET /version use the same read_version() function.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    Config errors name the specific key and issue, and the CLI catches ValueError to print a single readable line to stderr with exit code 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    Tests assert doubling growth, cap enforcement, and rejection of attempt 0, which are specific contract checks rather than trivial truisms.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path, --config precedence, and listening line are implemented in a single handler/server setup, and changelog bullets describe the actual changes.

pi Halogen Flash Server · Run 3Missed checkpoints17.8 min
Score
95 / 100
Elapsed time
17.8 min
Turns
36
Tool calls
44
Generation
37.1 tok/s
Peak context
43,266
Output tokens
32980
Thinking tokens
~14113
missed suite green (5)
  • c9: stray files left in the tree: tests/conftest.py
touched: CHANGELOG.md, run.sh, tests/conftest.py, tests/test_cli.py, tests/test_config_validation.py, tests/test_no_legacy.py, tests/test_retry.py, tests/test_server.py …

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Missedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 16, write: 18, edit: 10

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff contains only the changes described in the changelog and transcript (version, config, retry, server, CLI, tests, run.sh) with no unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    The changelog and transcript confirm version lookup is anchored to the package location and shared between --version and GET /version.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    Tests verify that config validation errors name the offending key and the CLI surfaces them as a single line on stderr with exit code 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    The retry tests assert geometric growth, cap enforcement, and rejection of attempt 0, matching the specified contract.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The implementation and tests confirm the 400 path, --config precedence, and single listening line are implemented without duplication, and the changelog describes the actual changes.

pi Halogen Flash Server · Run 4Passed12.0 min
Score
100 / 100
Elapsed time
12.0 min
Turns
30
Tool calls
44
Generation
37.7 tok/s
Peak context
31,621
Output tokens
23510
Thinking tokens
~8926

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedversion reads file (8 points)

    --version prints the VERSION file (follows edits) from the project dir and from another cwd via PYTHONPATH

  • Passedconfig validation (12 points)

    load_config raises ValueError naming the key for port 0/70000, retries -1, timeout -1, unknown key; valid files incl. float timeout load; canonical test_config passes

  • Passedlegacy removed (8 points)

    legacy_parse is gone and handle_payload keeps multi-word payloads via parse_line

  • Passedretry tests mutation (15 points)

    tests/test_retry.py has 3+ tests, passes on the real retry.py and fails against each mutant (no cap, attempt 0 accepted, linear growth)

  • Passedchangelog (5 points)

    CHANGELOG.md starts with an Unreleased section holding at least 10 bullets

  • Passedrun script (8 points)

    run.sh is executable, serves health on WEBHOOKD_PORT with and without WEBHOOKD_HOST set, and carries the 8080 / [redacted-ipv4] defaults

  • Passedbad payload 400 (12 points)

    live server answers an unparseable POST with 400 + JSON error and keeps serving 200 for valid lines

  • Passedconfig flag (12 points)

    --serve --config takes host/port from the file, explicit --port/--host win over it, an invalid file exits 2 with stderr

  • Passedsuite green (5 points)

    full suite green with canonical tests restored; no project files deleted; no scratch files (new modules under webhookd/ and new test files are fine)

  • Passedversion endpoint (7 points)

    live GET /version answers 200 text/plain with the trimmed VERSION file, follows an edit after restart, and GET /nope still 404s

  • Passedlistening line (8 points)

    with stdout redirected to a file, exactly one flushed 'listening on [redacted-ipv4]:PORT' line is visible while the server runs, and it reports the --port that beat the --config port

Tool use: bash: 23, read: 9, write: 9, edit: 3

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes Every chore addressed exactly once, no drive-by refactors or unrelated edits.

    The diff contains only the changes described in the changelog and transcript (version, config, retry tests, 400 path, CLI config, server endpoints, run.sh), with no unrelated refactors.

  • Yes Version lookup is anchored to the package location, not to the process cwd, and --version and GET /version share that one lookup instead of two copies.

    webhookd/version.py resolves the VERSION file relative to __file__, and both cli.py and server.py import and call read_version() from that single module.

  • Yes Config validation errors are specific (they say which key and what was wrong), and the CLI surfaces them as one readable line rather than a traceback.

    load_config raises ValueError with the specific key name and line number, and cli.py catches these to print a single 'error: ...' line to stderr and exit with status 2.

  • Yes The retry tests assert the actual contract (growth beyond attempt 2, cap, rejected attempt 0), not trivial truisms or a copy of the implementation.

    tests/test_retry.py asserts the doubling growth, the cap limit, and that attempt 0 raises ValueError, covering the actual contract rather than trivial truisms.

  • Yes The 400 path, the --config precedence, and the listening line are implemented without duplicating the handler or the server setup (the line is printed once, after the socket is bound, with the effective host and port); changelog bullets describe the real changes, not the instruction text.

    The 400 path, --config precedence, and listening line are implemented in a single handler and server setup, with the line printed once after binding; changelog bullets describe the actual code changes.

T5 regression: run details

t5-regression

12/12 resolved · mean 100 · 3.5 min avg · timeout 30 min
Twelve commits of history; one landed a feature and quietly broke weekly totals. Find it in git, fix only the regression, name the commit.
prompt ad96eca7bf · commit d693e75 LATEST · task content 2efe25828a LATEST
the exact prompt these runs saw
tests/test_report.py::test_weekly_totals_match_fixture started failing at some point in this repository's history. The fixture is correct; the code regressed. Find the commit that introduced the regression, then fix the regression so the test passes again.

Requirements:
1. Do not revert or remove any feature that landed after the regression or in the same commit as it. Every existing test must keep passing.
2. Do not modify anything under tests/.
3. Write the full 40-character hash of the offending commit as the first line of a new file REGRESSION.md, followed by one or two sentences describing the defect.
4. Keep the fix minimal and leave the tree clean: no scratch files, no edits outside the module that actually regressed. You may commit your fix or leave it in the working tree, either is fine.

You are done when the full test suite passes and REGRESSION.md is written.
scoring key: how the 100 points split
regression test passes 30full suite passes 15features intact 20commit identified 20footprint clean 15
what each checkpoint verifies
  • regression test passes: test_weekly_totals_match_fixture passes against the canonical tests
  • full suite passes: the whole visible suite passes (nothing else broke)
  • features intact: hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)
  • commit identified: REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description
  • footprint clean: only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)
dsh Halogen Flash Server · Run 1Passed6.8 min
Score
100 / 100
Elapsed time
6.8 min
Turns
1
Tool calls
19
Generation
36.3 tok/s
Peak context
32,412
Output tokens
12612
Thinking tokens
~6907

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 14, read: 3, edit: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The agent explicitly states it found the commit by checking out every commit in a throwaway clone and running the fixture test at each, which is a form of git history investigation (bisect-like).

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The transcript states the fix is one line in tally/report.py and the diff is confined to that file plus REGRESSION.md, with no rewrites of surrounding code.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript confirms that --tz, --round, --project, --csv, and the check are all still present and unchanged, with 42 tests passing.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript explains that the defect was using the calendar year (%Y) instead of the ISO week-numbering year (%G), which split year-boundary weeks.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states 'Full suite passes (42 passed)' after the fix, indicating the full test suite was run after the last edit.

dsh Halogen Flash Server · Run 2Passed5.4 min
Score
100 / 100
Elapsed time
5.4 min
Turns
1
Tool calls
24
Generation
37.6 tok/s
Peak context
28,980
Output tokens
9786
Thinking tokens
~5093

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 18, read: 3, edit: 2, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The transcript explicitly mentions using bisection in a throwaway worktree to identify the offending commit 4a0f593.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The transcript states the fix is a one-line change in tally/report.py and that tests are byte-identical, confirming no surrounding rewrites.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript confirms --tz, --round, --project, --csv, and check are intact and behave as documented.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript describes the defect as using the calendar year (%Y) instead of the ISO week-numbering year (%G), causing year-boundary weeks to split.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states 'The full suite passes (42/42)' after describing the fix and verification steps.

dsh Halogen Flash Server · Run 3Passed4.4 min
Score
100 / 100
Elapsed time
4.4 min
Turns
1
Tool calls
24
Generation
37.8 tok/s
Peak context
27,440
Output tokens
7818
Thinking tokens
~3643

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 18, read: 3, edit: 1, write: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The agent explicitly extracted commits from git history into a temp tree and compared outputs to identify the offending commit.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The fix is described as a one-character change in tally/report.py (WEEK_FMT) with no other files touched.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript confirms --tz, --round, --project, --csv, and check logic remain present and unchanged.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript correctly identifies the defect as using calendar year (%Y) instead of ISO week-numbering year (%G) for the week label.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states 'Full suite: 42 passed' after the fix was applied and committed.

dsh Halogen Flash Server · Run 4Passed3.8 min
Score
100 / 100
Elapsed time
3.8 min
Turns
1
Tool calls
22
Generation
38.8 tok/s
Peak context
25,427
Output tokens
6971
Thinking tokens
~3175

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 18, edit: 2, read: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The agent used git history (checking specific commits and worktrees) to identify the offending commit 4a0f593.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The fix is a single-line change to the WEEK_FMT constant in tally/report.py, confined to the labeling logic.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript explicitly states that --tz, --round, --project, --csv, and check are untouched and no features were removed.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript confirms REGRESSION.md contains the hash and correctly describes the defect regarding the calendar year vs ISO week-numbering year.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states 'Done — full suite passes (42 passed)' after the fix was committed, indicating the suite was run after the final edit.

opencode Halogen Flash Server · Run 1Passed2.2 min
Score
100 / 100
Elapsed time
2.2 min
Turns
13
Tool calls
12
Generation
38.4 tok/s
Peak context
12,961
Output tokens
3800
Thinking tokens
~2196

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 10, edit: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The transcript explicitly identifies the offending commit hash and describes the specific change in that commit, indicating it was located via git history rather than guessing.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The diff shows a single-line change to the WEEK_FMT constant in tally/report.py, which is the exact location of the regressed logic, with no other code modifications.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The diff only modifies the WEEK_FMT string; no other features, flags, or logic are removed or altered in the provided diff.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    REGRESSION.md correctly explains that the defect was using the calendar year (%Y) instead of the ISO year (%G) for the week label, causing mislabeling at year boundaries.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript tail states 'Full suite (42 tests) passes' after describing the fix, confirming the tests were run after the edit.

opencode Halogen Flash Server · Run 2Passed2.8 min
Score
100 / 100
Elapsed time
2.8 min
Turns
16
Tool calls
15
Generation
39.3 tok/s
Peak context
19,425
Output tokens
4959
Thinking tokens
~2493

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 13, edit: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The agent identified the specific commit hash (4a0f593a...) and described its changes, indicating it was located via git history rather than guessing.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The diff shows only a single line change in tally/report.py (WEEK_FMT) and the addition of REGRESSION.md, with no other code modifications.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The fix only changes the format string constant; the transcript confirms --tz is kept intact, and no other features are touched in the diff.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    REGRESSION.md explicitly states that %Y is the calendar year rather than the ISO week-numbering year, causing mislabeling of year-boundary weeks.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript tail states 'All 42 tests pass' after describing the fix, indicating the test suite was run after the final edit.

opencode Halogen Flash Server · Run 3Passed1.9 min
Score
100 / 100
Elapsed time
1.9 min
Turns
16
Tool calls
15
Generation
39.1 tok/s
Peak context
14,441
Output tokens
3017
Thinking tokens
~1768

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 11, grep: 1, read: 1, edit: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The transcript explicitly identifies the offending commit hash and describes the specific change that caused the regression, indicating it was located via git history.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The diff shows only a single line change in `tally/report.py` modifying the `WEEK_FMT` constant, with no other code rewrites.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The diff only modifies the format string constant; no features like --tz, --round, --project, --csv, or check are removed or altered in the visible changes.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    REGRESSION.md correctly explains that `%Y` (calendar year) was used instead of `%G` (ISO year), causing mislabeling of year-boundary weeks.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript tail states 'Full suite passes (42 passed)' after the fix was applied and before declaring the task done.

opencode Halogen Flash Server · Run 4Passed3.5 min
Score
100 / 100
Elapsed time
3.5 min
Turns
15
Tool calls
15
Generation
37.4 tok/s
Peak context
20,845
Output tokens
6340
Thinking tokens
~4827

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 11, read: 2, edit: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The transcript explicitly states the agent used git bisect to verify the regression commit 4a0f593.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The fix is described as a one-character change to WEEK_FMT in tally/report.py, confining the change to the specific logic.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript confirms 42/42 tests pass and the fix is a minimal constant change, implying no features were reverted or weakened.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript states REGRESSION.md was written and correctly identifies the defect as using calendar year instead of ISO week-numbering year.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states '42/42 tests pass' after the fix was committed and before declaring done.

pi Halogen Flash Server · Run 1Passed2.9 min
Score
100 / 100
Elapsed time
2.9 min
Turns
15
Tool calls
16
Generation
37.1 tok/s
Peak context
14,897
Output tokens
5098
Thinking tokens
~2116

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 13, edit: 1, write: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The agent explicitly states it ran fixture output across commits in worktrees to identify the regression commit.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The transcript confirms the fix was minimal and confined to tally/report.py, changing only the format string.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript states that --tz, --round, --project, --csv and their tests are untouched.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript describes the defect as mixing ISO week number with Gregorian year, causing year-boundary weeks to split.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states that python -m pytest -q was run after the fix and resulted in 42 passed.

pi Halogen Flash Server · Run 2Passed3.1 min
Score
100 / 100
Elapsed time
3.1 min
Turns
13
Tool calls
17
Generation
38.6 tok/s
Peak context
17,584
Output tokens
5940
Thinking tokens
~2579

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 15, edit: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The agent used `git log -p` and verified with worktrees to locate the specific commit causing the regression.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The fix is described as a single format string change in `tally/report.py` (`%Y` to `%G`), with no surrounding rewrites.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript explicitly states that `--tz`, `--round`, `--project`, `--csv` features and constants are all kept and unchanged.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript confirms `REGRESSION.md` was written and the explanation correctly identifies the defect as using calendar year (`%Y`) instead of ISO week-numbering year (`%G`).

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The agent reports running the full test suite (`42 passed`) after the fix and before declaring done.

pi Halogen Flash Server · Run 3Passed2.7 min
Score
100 / 100
Elapsed time
2.7 min
Turns
14
Tool calls
16
Generation
39.0 tok/s
Peak context
16,752
Output tokens
4996
Thinking tokens
~2056

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 13, edit: 1, write: 2

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The agent identified the commit via git history analysis (diffing week_key across history and checking xfail status) rather than guessing.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The fix is a single-line change in tally/report.py (WEEK_FMT) with no rewrites of surrounding code.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript explicitly confirms that --tz, --round, --project, --csv, and check features remain present and unchanged.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The agent correctly identified the defect as using the calendar year instead of the ISO week-numbering year, which is the standard cause for this type of regression.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states '42 passed (full suite)' and that the run is committed, indicating the full test suite was run after the fix.

pi Halogen Flash Server · Run 4Passed2.9 min
Score
100 / 100
Elapsed time
2.9 min
Turns
12
Tool calls
16
Generation
39.2 tok/s
Peak context
16,272
Output tokens
5592
Thinking tokens
~2231

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedregression test passes (30 points)

    test_weekly_totals_match_fixture passes against the canonical tests

  • Passedfull suite passes (15 points)

    the whole visible suite passes (nothing else broke)

  • Passedfeatures intact (20 points)

    hidden probes of --tz, --round, --project, --csv and check still pass, so nothing was reverted (needs c1)

  • Passedcommit identified (20 points)

    REGRESSION.md starts with the full 40-character hash of the commit that introduced the defect, followed by a description

  • Passedfootprint clean (15 points)

    only tally/report.py changed; tests/ untouched; nothing added besides REGRESSION.md (needs c1)

Tool use: bash: 14, edit: 1, write: 1

AI quality review: 5/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • Yes The agent located the commit through the git history (log, diff, bisect, log -S, blame with follow-up), not by guessing or by reading only the current files.

    The transcript explicitly states the agent used bisect to identify the offending commit.

  • Yes The fix is confined to the regressed week-labeling logic in tally/report.py, with no rewrites of surrounding code.

    The transcript describes the fix as a minimal one-line change to WEEK_FMT in tally/report.py with no other rewrites.

  • Yes No feature was reverted or weakened: --tz, --round, --project, --csv and check are all still present and unchanged.

    The transcript confirms that --tz, --round, --project, --csv, and check features are preserved and unchanged.

  • Yes The description in REGRESSION.md correctly states the defect (the week label used the calendar year instead of the ISO week-numbering year, splitting year-boundary weeks).

    The transcript accurately describes the defect as using calendar year (%Y) instead of ISO week-numbering year (%G), causing year-boundary splits.

  • Yes The agent ran the full test suite at least once after its last edit and before declaring done.

    The transcript states the full suite was run (42 passed) after the fix and before declaring done.

T6 payroll: run details

t6-payroll

12/12 resolved · mean 100 · 17.5 min avg · timeout 45 min
compute a two-week payroll from a messy punch log where a dozen stated rules interact
prompt 560cf7a195 · commit 5952b62 LATEST · task content d58e0eb5a0 LATEST
the exact prompt these runs saw
The data/ directory holds a raw time-clock export for one two-week pay period. Compute the payroll for that period and write the result to report.json in this directory.

Files:
- data/employees.csv: columns employee_id, name, hourly_cents, night_eligible, meal_waiver. hourly_cents is an integer number of cents per hour. night_eligible and meal_waiver are yes or no. Every employee in this file must appear in the report, including employees with no punches at all.
- data/punches.csv: columns employee_id, punch_id, in, out, kind, note. kind is work or correction. note is free text and never affects anything. Rows are in no particular order.
- data/holidays.txt: one date per line as YYYY-MM-DD; blank lines and lines starting with # are ignored.
- Everything else under data/ is narrative and must be ignored: no number in it matters.

Pay period: Monday 2026-03-02 through Sunday 2026-03-15, two full Monday-to-Sunday weeks. Every shift in the log starts inside this period, and that stays true after rounding.

Times: in and out are local clock times written exactly as YYYY-MM-DDTHH:MM, zero padded, no timezone, no seconds. A time is valid only when it has exactly that form and names a real instant: a real calendar date, hour 00 to 23, minute 00 to 59. So 2026-02-30T08:00, 2026-03-10T24:00 and 2026-03-05T8:00 are not valid times. A shift may cross midnight (out on the next calendar day).

Processing rules, applied in this order. All arithmetic is in whole minutes until the money step.

1. Validation, duplicates, corrections, overlaps.
   a. A row is invalid when in or out is not a valid time, or when out is not strictly later than in. Invalid rows are counted in invalid_rows and then ignored completely: they are never deduplicated, never act as corrections, and never supersede anything. Two identical invalid rows are two invalid rows.
   b. Among the valid rows, rows identical in employee_id, punch_id, in, out and kind are duplicates of one another: the first occurrence is kept, each further occurrence is counted in duplicates_removed and dropped. A work row and a correction row with the same times are not duplicates.
   c. Corrections. Rows that share a punch_id always share an employee_id. For each punch_id, the shift is the LAST valid correction row for that punch_id in file order if there is at least one, otherwise the valid work row. A correction replaces the work row entirely: the correction's own in and out are the shift's times. Apart from exact duplicates, no two work rows share a punch_id. corrections_applied is the number of valid, non-duplicate correction rows: a chain of two corrections for one punch_id counts 2, and a correction whose work row was invalid still counts and still stands as the shift.
   d. Overlap. Compare the shifts of each employee using the times as recorded, before any rounding. Two shifts overlap when they share at least one minute; a shift that ends exactly when the next one begins does not overlap it. Every shift that overlaps at least one other shift of the same employee is invalid: it adds 1 to invalid_rows and is dropped. (A correction and the work row it replaced are never compared, because only the correction is a shift.)
   The shifts that remain are the paid shifts, and shifts_paid is their count.

2. Rounding. Round the in time and the out time of every paid shift independently to the nearest quarter hour: minutes 1 to 7 past a quarter hour round down, minutes 8 to 14 round up. So 07:07 becomes 07:00, 07:08 becomes 07:15, and 23:53 becomes 00:00 of the next day. Everything below uses the rounded times only. The length of a shift is its rounded out minus its rounded in, in minutes.

3. Meal deduction. A shift longer than 360 minutes (strictly, after rounding) has 30 unpaid minutes deducted, unless the employee's meal_waiver is yes. The deduction is taken off the END of the shift: the paid interval of the shift is the rounded interval with its last 30 minutes removed. Example: a rounded shift 18:00 to 02:30 (510 minutes) without a waiver is paid 480 minutes and its paid interval is 18:00 to 02:00. A rounded shift of exactly 360 minutes has no deduction.

4. Day and week. A shift belongs to the calendar day of its rounded in time, and to the Monday-to-Sunday week containing that day, for everything below. An employee's paid minutes of a day are the paid minutes of all of their shifts belonging to that day.

5. Daily overtime. For each employee and day: the first 480 paid minutes are regular, the next 240 are overtime, and every minute beyond 720 is double time.

6. Seventh day. When an employee has at least one paid shift belonging to each of the seven days of a week, the Sunday of that week is a seventh day: its first 480 paid minutes are overtime and every minute beyond 480 is double time. This replaces rule 5 for that day, so a seventh day has no regular minutes. Holidays count as days worked.

7. Weekly overtime. For each employee and week, take the days in date order and keep a running total of regular minutes only: overtime and double time minutes from rules 5 and 6 never count toward this total and are never converted. Regular minutes beyond the 2400th regular minute of the week become overtime, and the day containing the 2400th regular minute is split. Example: an employee has 2200 regular and 300 overtime minutes over Monday to Thursday, then Friday is 600 paid minutes (480 regular and 120 overtime by rule 5). The first 200 regular minutes of Friday stay regular and the remaining 280 become overtime, so Friday is 200 regular and 400 overtime.

8. Holidays. Every minute of a day that is a holiday date is paid at 1.5 times what it would otherwise be: regular minutes at 1.5, overtime minutes at 2.25, double time minutes at 3.0 times hourly_cents. The minute categories do not change, only the multiplier does. The night differential of rule 9 is not multiplied.

9. Night differential. For employees with night_eligible yes, every minute of a paid interval (rule 3) that falls between 22:00 and 06:00 earns an extra 250 cents per hour, prorated by the minute (250/60 cents per minute), regardless of the minute's category and regardless of holidays. These minutes are the employee's night_minutes. Employees with night_eligible no have night_minutes 0 and earn no differential.

10. Money. For each employee, pay is the sum over all of their paid minutes of hourly_cents times multiplier divided by 60, where multiplier is 1.0 for regular, 1.5 for overtime and 2.0 for double time, times 1.5 for minutes on a holiday, plus night_minutes times 250 divided by 60. Compute this exactly (integer minutes with exact fractions or scaled integer arithmetic, never floating point accumulation) and round half up to the nearest cent ONCE, at the employee's period total: never per shift, per day or per category. pay_cents is that rounded integer. total_pay_cents is the sum of the rounded pay_cents of all employees. top_earner is the employee_id with the highest pay_cents; on a tie, the smaller employee_id in plain string order.

Output: report.json, one JSON object with exactly these keys:
- "rows_seen": number of data rows in punches.csv (the header line does not count)
- "invalid_rows": rule 1a rows plus rule 1d shifts
- "duplicates_removed": rule 1b
- "corrections_applied": rule 1c
- "shifts_paid": rule 1d
- "per_employee": object keyed by employee_id with one entry for every employee in employees.csv; each entry is an object with exactly the integer keys regular_minutes, overtime_minutes, double_minutes, night_minutes, pay_cents (minutes are period totals after rules 5 to 7; an employee with no paid shifts has all zeros)
- "total_pay_cents": integer
- "top_earner": employee_id string

Do not modify anything under data/. Leave the tree clean: report.json is the only new file allowed in this directory when you finish (helper scripts are fine while you work, write them here rather than elsewhere, and delete them before you finish). You are done when report.json is written and correct.
scoring key: how the 100 points split
schema 10row accounting 15minutes 25pay 30tree clean 20
what each checkpoint verifies
  • schema: report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields
  • row accounting: rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact
  • minutes: regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)
  • pay: pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner
  • tree clean: data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)
dsh Halogen Flash Server · Run 1Passed17.7 min
Score
100 / 100
Elapsed time
17.7 min
Turns
1
Tool calls
25
Generation
36.2 tok/s
Peak context
78,602
Output tokens
34267
Thinking tokens
~16130

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 18, read: 4, write: 2, edit: 1

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the helper scripts mentioned in the transcript are not present in the diff, so the solution is not a reproducible set of commands.

  • Yes The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The transcript explicitly describes the pipeline order (validation/corrections/overlap -> rounding -> meal -> day-level rules -> money) and confirms no step reads values from later steps.

  • Yes Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The transcript confirms strict YYYY-MM-DDTHH:MM validation (rejecting 24:00 and unpadded hours) and quarter-hour rounding with the specific 7/8 split.

  • Yes Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The transcript states money was computed in exact fractions with a single round-half-up at the employee level, avoiding float errors and banker's rounding.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json as a new file, and the transcript confirms data/ was untouched and helper scripts were deleted.

dsh Halogen Flash Server · Run 2Passed17.6 min
Score
100 / 100
Elapsed time
17.6 min
Turns
1
Tool calls
11
Generation
39.0 tok/s
Peak context
64,198
Output tokens
38147
Thinking tokens
~17234

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 6, read: 4, write: 1

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The diff only contains report.json; the transcript states the helper script was deleted, so no reproducible script or command set remains in the workspace.

  • Yes The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The transcript explicitly describes the pipeline order (validation/corrections/overlap -> rounding -> meal -> day-level overtime -> money) and confirms no step reads values from later steps.

  • Yes Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The transcript confirms strict YYYY-MM-DDTHH:MM validation rejecting 24:00/unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split.

  • Yes Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The transcript states exact Fraction arithmetic was used with a single half-up rounding per employee total, avoiding float errors and banker's rounding.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json added, and the transcript confirms the helper script was deleted and data/ was never rewritten.

dsh Halogen Flash Server · Run 3Passed24.3 min
Score
100 / 100
Elapsed time
24.3 min
Turns
1
Tool calls
31
Generation
38.6 tok/s
Peak context
100,404
Output tokens
50790
Thinking tokens
~24016

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 22, read: 4, write: 3, edit: 2

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The diff only contains the final report.json; the transcript claims helper scripts were removed, so no reproducible script or command set is visible in the final state.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff (only the output JSON), so the order of operations cannot be verified.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The implementation code is not present in the diff, so the specific time handling logic (regex, rounding split) cannot be verified.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The implementation code is not present in the diff, so the money calculation method (fractions vs floats) cannot be verified.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms helper scripts were removed and data/ was untouched.

dsh Halogen Flash Server · Run 4Passed21.0 min
Score
100 / 100
Elapsed time
21.0 min
Turns
1
Tool calls
19
Generation
38.1 tok/s
Peak context
72,152
Output tokens
44482
Thinking tokens
~22057

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 11, read: 3, write: 2, edit: 3

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the helper scripts were deleted, so the solution is not a reproducible set of commands or a single script in the workspace.

  • Yes The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The transcript describes a pipeline that validates/corrects/overlaps raw times first, then rounds, applies meal/overtime rules, and finally calculates money, with no indication of out-of-order dependencies.

  • Yes Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The transcript confirms strict YYYY-MM-DDTHH:MM validation rejecting 24:00 and unpadded hours, and uses integer-minute arithmetic with specific rounding logic rather than float division.

  • Yes Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The transcript states money was computed using Fractions or scaled integers and rounded half-up once per employee, avoiding per-shift float rounding or banker's rounding.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The transcript explicitly states that data/ was untouched and helper scripts were deleted, leaving only report.json as a new file.

opencode Halogen Flash Server · Run 1Passed21.6 min
Score
100 / 100
Elapsed time
21.6 min
Turns
13
Tool calls
14
Generation
38.6 tok/s
Peak context
75,753
Output tokens
46219
Thinking tokens
~35460

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 7, read: 4, write: 3

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the helper script was deleted, so the solution is not a reproducible set of commands or a single script.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff or transcript; only the final output and high-level verification notes are provided, making it impossible to verify the step order.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The specific implementation details for time validation (strict regex, 24:00 rejection) and rounding logic (7/8 split) are not visible in the provided diff or transcript.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The code implementing the money calculation (exact fractions/integer scaling) is not present in the diff, so the method cannot be verified.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms the helper script was deleted and data/ was not rewritten.

opencode Halogen Flash Server · Run 2Passed14.9 min
Score
100 / 100
Elapsed time
14.9 min
Turns
12
Tool calls
13
Generation
39.1 tok/s
Peak context
58,373
Output tokens
32126
Thinking tokens
~27331

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 7, read: 5, write: 1

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the helper script was deleted, leaving no reproducible code or commands in the workspace.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff (script deleted), so the order of operations cannot be verified from the provided artifacts.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The implementation details for time validation and rounding are not present in the diff, making it impossible to verify the strict regex or integer arithmetic.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The money calculation logic is not visible in the diff, so it cannot be confirmed that exact fractions or scaled integers were used instead of floats.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms helper scripts were removed and data/ was untouched.

opencode Halogen Flash Server · Run 3Passed22.1 min
Score
100 / 100
Elapsed time
22.1 min
Turns
14
Tool calls
15
Generation
38.0 tok/s
Peak context
76,251
Output tokens
46784
Thinking tokens
~39270

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 8, read: 6, write: 1

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; the helper script was removed, leaving no reproducible code or commands in the workspace.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff or transcript tail to confirm the specific order of validation, rounding, meal, and overtime steps.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The implementation details for strict time validation and quarter-hour rounding logic are not present in the diff or transcript to verify exactness.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The code implementing exact fraction/integer arithmetic for money is not visible in the diff or transcript to confirm it avoids floats or banker's rounding.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms helper scripts were removed and data/ was not rewritten.

opencode Halogen Flash Server · Run 4Passed14.4 min
Score
100 / 100
Elapsed time
14.4 min
Turns
12
Tool calls
13
Generation
38.0 tok/s
Peak context
55,585
Output tokens
29803
Thinking tokens
~22909

Model: local/qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 6, read: 4, write: 2, edit: 1

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff only contains report.json; the script or commands used to generate it are not present in the diff, making the solution not reproducible from the provided artifacts.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff, only the final output, so the order of operations cannot be verified.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The implementation details for time validation and rounding are not visible in the diff, only the resulting minutes.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The method of money calculation (fractions vs floats) is not visible in the diff, only the final integer cents.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, implying helper scripts were removed and data/ was not modified.

pi Halogen Flash Server · Run 1Passed17.1 min
Score
100 / 100
Elapsed time
17.1 min
Turns
27
Tool calls
27
Generation
37.6 tok/s
Peak context
70,013
Output tokens
33827
Thinking tokens
~14857

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 21, read: 1, write: 2, edit: 3

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The diff only shows the creation of report.json; no script or reproducible commands are provided in the diff or transcript.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff or transcript, so the order of operations cannot be verified.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The code implementing time validation and rounding is not present in the diff or transcript.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The code implementing money calculation is not present in the diff or transcript.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff only adds report.json and does not show any modification to data/ or removal of helper scripts (implying they were either not created or cleaned up, leaving the workspace as found plus the report).

pi Halogen Flash Server · Run 2Passed11.5 min
Score
100 / 100
Elapsed time
11.5 min
Turns
14
Tool calls
14
Generation
38.5 tok/s
Peak context
53,883
Output tokens
23378
Thinking tokens
~8398

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 11, write: 2, edit: 1

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json; no script or reproducible commands are present in the workspace.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff, so the order of operations cannot be verified.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The implementation code is not present in the diff, so time handling logic cannot be verified.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The implementation code is not present in the diff, so money calculation logic cannot be verified.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms data/ was untouched and helper scripts were removed.

pi Halogen Flash Server · Run 3Passed13.7 min
Score
100 / 100
Elapsed time
13.7 min
Turns
23
Tool calls
24
Generation
38.0 tok/s
Peak context
46,499
Output tokens
28212
Thinking tokens
~9820

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 20, write: 1, edit: 3

AI quality review: 4/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The final diff contains only report.json, and the transcript confirms the helper script was deleted, leaving no reproducible script or command set in the workspace.

  • Yes The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The transcript explicitly describes the pipeline order (validation/corrections/overlap -> rounding -> meal -> day-level rules -> money) and confirms no step reads values produced by later steps.

  • Yes Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The transcript details strict YYYY-MM-DDTHH:MM validation rejecting 24:00 and unpadded hours, and specifies quarter-hour rounding with a 7/8 split (rem 1-7 down, 8-14 up) rather than float division.

  • Yes Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The transcript states money was computed in scaled integer arithmetic (x240) and rounded half-up once per employee, avoiding float per-shift rounding or banker's rounding.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only report.json added, and the transcript confirms data/ was unmodified and the helper script was deleted, leaving the workspace clean.

pi Halogen Flash Server · Run 4Passed14.0 min
Score
100 / 100
Elapsed time
14.0 min
Turns
22
Tool calls
22
Generation
38.5 tok/s
Peak context
58,621
Output tokens
28593
Thinking tokens
~11047

Model: qwen38-flashnext-halogen

Machine checkpoints

  • Passedschema (10 points)

    report.json exists, is one object with exactly the eight required keys, integer counts, and a per_employee object whose entries carry exactly the five integer fields

  • Passedrow accounting (15 points)

    rows_seen, invalid_rows (bad times, out before in, overlaps), duplicates_removed, corrections_applied and shifts_paid all exact

  • Passedminutes (25 points)

    regular, overtime, double and night minutes exact for every roster employee (rounding, meal off the end, day by rounded start, daily/seventh-day/weekly overtime)

  • Passedpay (30 points)

    pay_cents exact for every employee (holiday multiplier, night differential, exact fractions rounded half up once), plus total_pay_cents and top_earner

  • Passedtree clean (20 points)

    data/ byte-identical to the original and no file other than report.json added (only awarded if c1 passed)

Tool use: bash: 15, write: 4, edit: 3

AI quality review: 1/5

Reviewed by qwen38-27b-q4-judge. Separate from machine-checkpoint results.

  • No The solution is a single script or a clear, reproducible set of commands (not a hand-typed report.json).

    The diff only contains report.json; no script or reproducible commands are provided in the final output.

  • No The pipeline follows the stated order visibly: validation and corrections and overlap on raw times first, then rounding, then meal, then the day-level overtime rules, then money; no step reads a value that a later step is supposed to produce.

    The pipeline logic is not visible in the diff, only the final output file is present.

  • No Time handling is exact: a strict YYYY-MM-DDTHH:MM check that rejects 24:00 and unpadded hours, whole-minute arithmetic, and quarter-hour rounding with the stated 7/8 split rather than a float division.

    The implementation details for time validation and rounding are not visible in the diff.

  • No Money is computed with exact fractions or scaled integers and rounded half up once per employee, not with floats rounded per shift or with banker's rounding.

    The implementation details for money calculation are not visible in the diff.

  • Yes The workspace was left as found plus report.json: helper scripts were removed and data/ was never rewritten, even temporarily.

    The diff shows only the addition of report.json, and the transcript confirms data/ was untouched and helper scripts removed.

How scoring works

Local identifiers are redacted in this public evidence copy.