holistechlabsOpenCode · SWE-bench Verified
DEEN

Measured · 13 and 14 October 2026 · 80 passes

Qwen3.8-Flash-Next as a coding agent on the Mac Studio M1 Ultra

sushi 1.2.1 · Mac Studio M1 Ultra · OpenCode 2.0.26

Authors

Dipl.-Ing. Sören GebbertInstitut für holistische Technologieforschung GmbH Claude Code Opus 5.5Anthropic

Machine and server

Mac Studio M1 Ultra

SoC
Apple M1 Ultra, 20 CPU cores, 64 GPU cores
Memory
64 GiB unified memory, up to 56 GiB for the GPU
OS
macOS 26.2, on mains power
Server
sushi 1.2.1, MTP on, KV cache 8 bit, reasoning effort xhigh
Weights
beamster/Qwen3.8-Flash-Next-Sushi-2.6bpw, all 512 experts

Protocol

40 issues, two passes

Agent
OpenCode 2.0.26
Tasks
SWE-bench Verified, level “<15 min fix”, drawn at random from Django, sympy, Sphinx and pytest
Limits
262,144 tokens of context, 60 or 120 minutes
Netz
blocked except for the model server
Scored
with the task's tests, as in SWE-bench

72of 80

Passes solved 90.0 %, 95 % range 80.0 to 97.5 %

10.4minutes

Duration of a pass median, shortest 2.1, longest 120 minutes

539tokens/s

Reading median of requests with at least 2,048 new tokens

44.2tokens/s

Output median of all requests, thinking included

01 · Setup

Randomly drawn issues, offline, scored with SWE-bench's tests

The agent gets a repository at the state before the fix and the issue verbatim, plus one sentence: resolve the issue, you may run commands and the existing tests, stop when you are done. It does not get the tests used for scoring. Dependencies are installed; only the model server is reachable.

The tasks come from SWE-bench Verified, from its easiest level: issues that the dataset rates at under 15 minutes for an experienced developer. Eligible are the 87 tasks of this level from Django, sympy, Sphinx and pytest that run under Python 3.9 to 3.11. 40 of them were drawn at random, stratified by repository, with a fixed seed. Nothing was selected by solvability. One Sphinx task could not be checked in the scoring environment and was replaced by the next one drawn.

Scoring follows SWE-bench: the patch the agent leaves in the working tree is applied to a fresh checkout together with the task's tests. A task is solved when the tests for the bug pass (FAIL_TO_PASS) and no previously passing test fails (PASS_TO_PASS). Scoring runs without Docker in a Python environment following the SWE-bench harness, version 4.1.0. Each of the 40 tasks passed there with the reference fix beforehand.

Settings: context up to 262,144 tokens, output up to 32,768 tokens per request, temperature 1.0, top_p 0.95, reasoning effort xhigh, automatic compaction on, prompt cache on the SSD (up to 20 GB, cleared at the start). First all 40 tasks run once, then all of them a second time, in the same order, with one server start for all passes. Nothing else runs.

Population and draw
Project in Verified Python 3.9–3.11 of which “<15 min fix” drawn Labels
Django231823215G01–G15
sympy75752511G16–G26
Sphinx44442210M01–M10
pytest191984M11–M14
total369220 8740

02 · Result

72 of 80 passes solved

The agent solves 72 of 80 passes, that is 90.0 %. The 95 % range runs from 80.0 to 97.5 %; it is drawn over tasks, not passes, because two passes of the same task are not independent. The rate holds for the 87 tasks the draw came from, not for SWE-bench Verified as a whole.

The agent solves 35 tasks in both passes, 2 in one and 3 in neither.

Solved per project
ProjectTasks Passes solved Tasks solved twice
Django1527 / 3013
sympy1121 / 2210
Sphinx1016 / 208
pytest48 / 84

03 · Failures

Three tasks the agent fails, and two with mixed outcomes

G01 (django__django-15127): the agent ends both passes after 4.6 and 8.6 minutes with a patch under which all existing tests pass, but not the test for the bug.

G03 (django__django-15277): solved in the first pass after 3.9 minutes. In the second, the agent ends after 6.9 minutes with a patch under which all existing tests pass, but not the two tests for the bug.

G18 (sympy__sympy-15875): in the first pass the same picture as G01, after 33.5 minutes and 82 steps. The second pass reaches the 120-minute time limit after 131 steps; the patch written by then passes all tests.

M08 (sphinx-doc__sphinx-7462): of the two tests for the bug, one passes in the first pass and none in the second.

M04 (sphinx-doc__sphinx-8595): in both passes the agent creates a test file, tests/roots/test-ext-autodoc/target/empty_all.py, which the task's test patch also creates. The test patch therefore cannot be applied, and the pass counts as not solved.

04 · Time

How long a pass takes and where the time goes

Half of the passes finish within 10.4 minutes. Django and sympy take a median of 8.8, Sphinx and pytest 12.8 minutes. Some take much longer: the three longest needed 120.0, 91.9 and 59.5 minutes. All 80 passes ran in one go without intervention, in 20.6 hours including scoring.

Every agent step is one request to the server: it reads the new part of the history, usually the output of the last tool, and writes thinking and the next tool call. The passes themselves took 19.9 hours together. Of these, 159 minutes go to reading, 697 to output and 339 to tools, mainly the tests the agent runs itself, and to OpenCode. Output stays almost as fast as the context grows; reading at 64k to 128k is 8 % slower than below 32k.

Tokens per second by prompt length, median; reading only requests with at least 2,048 new tokens, n = number of requests
PromptReading Output
0k–32k548 n=30744.7 n=2,002
32k–64k518 n=8343.9 n=976
64k–128k504 n=2942.8 n=413
128k–256k463 n=343.7 n=59

05 · Session

Context, tools and network

A pass needs a median of 36 steps. The deepest session reached 146,869 tokens, just over half of the 262,144-token context window. Of 3,591 tool calls, 32 failed.

One pass ended at the time limit: the second pass of G18, after 120 minutes and 131 steps. The patch the agent had written by then passes all tests and therefore counts as solved, as in SWE-bench.

No pass established a connection other than to the model server. The operating system's sandbox blocks every other destination; a network monitor checks this for every pass.

06 · Every figure

All 80 passes

Per pass: scoring result, wall time, agent steps, highest context of the session and tokens generated including thinking. Every figure in this report is computed from this table, speed additionally from the server log.

Task Pass Result FAIL_TO_PASS PASS_TO_PASS Wall time (min) Steps Max. context Tokens generated
G01
django__django-15127
1not solved0/11/14.62420,9979,043
2not solved0/11/18.62443,71815,877
G02
django__django-16333
1solved1/187/877.03323,35213,407
2solved1/187/876.92533,82913,276
G03
django__django-15277
1solved2/2158/1583.91717,5127,205
2not solved0/2158/1586.93428,38513,015
G04
django__django-15930
1solved1/188/8812.34444,44325,104
2solved1/188/8822.38190,40841,640
G05
django__django-16595
1solved1/137/378.83236,74916,865
2solved1/137/3710.53940,71920,224
G06
django__django-17029
1solved1/143/4312.13839,38923,632
2solved1/143/4313.03846,67824,814
G07
django__django-16569
1solved2/2111/1115.43024,45210,164
2solved2/2111/1113.32617,3116,074
G08
django__django-15572
1solved1/110/1019.86064,49039,072
2solved1/110/105.91630,30211,959
G09
django__django-15987
1solved1/152/528.93835,44418,284
2solved1/152/524.32222,9108,886
G10
django__django-16429
1solved4/421/2110.038105,42913,045
2solved4/421/213.42035,7395,053
G11
django__django-16139
1solved1/186/8614.36057,52625,730
2solved1/186/8612.05341,64022,117
G12
django__django-15380
1solved1/1133/1338.52845,97516,689
2solved1/1133/1337.61930,90915,695
G13
django__django-15467
1solved1/162/627.64031,39212,239
2solved1/162/625.63129,37610,025
G14
django__django-15851
1solved1/18/82.81617,0625,007
2solved1/18/83.42518,3306,005
G15
django__django-15569
1solved2/2242/2426.53445,31711,600
2solved2/2242/2424.82121,6849,375
G16
sympy__sympy-16886
1solved1/142/422.61413,1405,094
2solved1/142/422.12012,4783,546
G17
sympy__sympy-24562
1solved1/1105/1055.72020,2309,001
2solved1/1105/10516.15353,96430,926
G18
sympy__sympy-15875
1not solved0/180/8033.58287,48053,254
2solved, time limit1/180/80120.0131146,86996,403
G19
sympy__sympy-24539
1solved1/162/629.33632,42513,769
2solved1/162/629.73625,49911,268
G20
sympy__sympy-16450
1solved1/138/3814.53937,63915,923
2solved1/138/3859.58981,53248,965
G21
sympy__sympy-12481
1solved1/17/718.56780,83437,978
2solved1/17/723.68372,49938,339
G22
sympy__sympy-23534
1solved1/111/1110.42927,1979,124
2solved1/111/114.72023,1896,571
G23
sympy__sympy-21847
1solved1/19/910.33549,43319,856
2solved1/19/912.14654,78823,523
G24
sympy__sympy-13372
1solved1/144/4414.23133,44916,082
2solved1/144/445.12725,64210,357
G25
sympy__sympy-12096
1solved1/143/4391.99758,75333,282
2solved1/143/4324.92534,51519,944
G26
sympy__sympy-14711
1solved1/12/25.22622,4887,364
2solved1/12/224.72544,02520,317
M01
sphinx-doc__sphinx-9698
1solved1/145/453.11721,4535,017
2solved1/145/455.53439,7799,464
M02
sphinx-doc__sphinx-8269
1solved1/15/510.94646,04922,512
2solved1/15/511.52945,67424,370
M03
sphinx-doc__sphinx-7910
1solved1/116/1630.35986,25654,313
2solved1/116/1630.77886,56858,212
M04
sphinx-doc__sphinx-8595
1not solved, test patch not applicable––7.74031,19715,670
2not solved, test patch not applicable––12.86442,10022,323
M05
sphinx-doc__sphinx-10435
1solved1/174/7419.45356,06829,953
2solved1/174/7420.74261,32439,979
M06
sphinx-doc__sphinx-8475
1solved1/117/175.12726,2869,827
2solved1/117/174.82429,9299,317
M07
sphinx-doc__sphinx-8459
1solved1/117/1728.69895,28951,544
2solved1/117/1717.25665,46827,652
M08
sphinx-doc__sphinx-7462
1not solved1/249/4921.36469,79036,796
2not solved0/249/4911.24739,80321,036
M09
sphinx-doc__sphinx-7440
1solved1/112/1234.478107,70160,908
2solved1/112/1237.081109,31263,300
M10
sphinx-doc__sphinx-9367
1solved1/125/257.22923,9538,903
2solved1/125/258.04430,93214,301
M11
pytest-dev__pytest-7205
1solved10/1016/1620.17957,03534,970
2solved10/1016/167.43227,90214,560
M12
pytest-dev__pytest-7982
1solved1/178/7811.73034,70618,123
2solved1/178/7816.14547,13527,075
M13
pytest-dev__pytest-7432
1solved1/177/7713.45048,72926,625
2solved1/177/7712.94239,01821,463
M14
pytest-dev__pytest-6202
1solved1/172/723.62017,6376,645
2solved1/172/7213.13730,31114,212

07 · Limits

What this measurement does not show

Easy tasks only. The rate holds for the 87 tasks of the “<15 min fix” level from four projects, not for SWE-bench Verified as a whole and not for harder issues. It cannot be set beside published Verified scores.

Known tasks. The issues and fixes of SWE-bench Verified are public. Whether Qwen3.8-Flash-Next knows them from training cannot be checked here.

Replicated scoring. Scoring ran without SWE-bench's Docker images, in an environment built to the harness 4.1.0 specifications.

Passing tests only. Scoring does not say whether a solved patch addresses the root cause or only the tested case. This report contains no review of the patches.

Two passes. At temperature 1.0 a third pass may end differently. The range of the rate reflects variation across tasks, not within a task.

Agent limits. Context (262,144 tokens) and time are limited: 120 minutes for Django and sympy, 60 for Sphinx and pytest. The number of steps limits nothing: 79 passes ran with a 150-step limit that none reached and that OpenCode does not apply before. The one pass that reached it ran again without a limit and with its own server start; chapter 06 shows that pass.