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
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.
| Project | in Verified | Python 3.9–3.11 | of which “<15 min fix” | drawn | Labels |
|---|---|---|---|---|---|
| Django | 231 | 82 | 32 | 15 | G01–G15 |
| sympy | 75 | 75 | 25 | 11 | G16–G26 |
| Sphinx | 44 | 44 | 22 | 10 | M01–M10 |
| pytest | 19 | 19 | 8 | 4 | M11–M14 |
| total | 369 | 220 | 87 | 40 |
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.
| Project | Tasks | Passes solved | Tasks solved twice |
|---|---|---|---|
| Django | 15 | 27 / 30 | 13 |
| sympy | 11 | 21 / 22 | 10 |
| Sphinx | 10 | 16 / 20 | 8 |
| pytest | 4 | 8 / 8 | 4 |
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.
| Prompt | Reading | Output |
|---|---|---|
| 0k–32k | 548 n=307 | 44.7 n=2,002 |
| 32k–64k | 518 n=83 | 43.9 n=976 |
| 64k–128k | 504 n=29 | 42.8 n=413 |
| 128k–256k | 463 n=3 | 43.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 |
|---|---|---|---|---|---|---|---|---|
G01django__django-15127 | 1 | not solved | 0/1 | 1/1 | 4.6 | 24 | 20,997 | 9,043 |
| 2 | not solved | 0/1 | 1/1 | 8.6 | 24 | 43,718 | 15,877 | |
G02django__django-16333 | 1 | solved | 1/1 | 87/87 | 7.0 | 33 | 23,352 | 13,407 |
| 2 | solved | 1/1 | 87/87 | 6.9 | 25 | 33,829 | 13,276 | |
G03django__django-15277 | 1 | solved | 2/2 | 158/158 | 3.9 | 17 | 17,512 | 7,205 |
| 2 | not solved | 0/2 | 158/158 | 6.9 | 34 | 28,385 | 13,015 | |
G04django__django-15930 | 1 | solved | 1/1 | 88/88 | 12.3 | 44 | 44,443 | 25,104 |
| 2 | solved | 1/1 | 88/88 | 22.3 | 81 | 90,408 | 41,640 | |
G05django__django-16595 | 1 | solved | 1/1 | 37/37 | 8.8 | 32 | 36,749 | 16,865 |
| 2 | solved | 1/1 | 37/37 | 10.5 | 39 | 40,719 | 20,224 | |
G06django__django-17029 | 1 | solved | 1/1 | 43/43 | 12.1 | 38 | 39,389 | 23,632 |
| 2 | solved | 1/1 | 43/43 | 13.0 | 38 | 46,678 | 24,814 | |
G07django__django-16569 | 1 | solved | 2/2 | 111/111 | 5.4 | 30 | 24,452 | 10,164 |
| 2 | solved | 2/2 | 111/111 | 3.3 | 26 | 17,311 | 6,074 | |
G08django__django-15572 | 1 | solved | 1/1 | 10/10 | 19.8 | 60 | 64,490 | 39,072 |
| 2 | solved | 1/1 | 10/10 | 5.9 | 16 | 30,302 | 11,959 | |
G09django__django-15987 | 1 | solved | 1/1 | 52/52 | 8.9 | 38 | 35,444 | 18,284 |
| 2 | solved | 1/1 | 52/52 | 4.3 | 22 | 22,910 | 8,886 | |
G10django__django-16429 | 1 | solved | 4/4 | 21/21 | 10.0 | 38 | 105,429 | 13,045 |
| 2 | solved | 4/4 | 21/21 | 3.4 | 20 | 35,739 | 5,053 | |
G11django__django-16139 | 1 | solved | 1/1 | 86/86 | 14.3 | 60 | 57,526 | 25,730 |
| 2 | solved | 1/1 | 86/86 | 12.0 | 53 | 41,640 | 22,117 | |
G12django__django-15380 | 1 | solved | 1/1 | 133/133 | 8.5 | 28 | 45,975 | 16,689 |
| 2 | solved | 1/1 | 133/133 | 7.6 | 19 | 30,909 | 15,695 | |
G13django__django-15467 | 1 | solved | 1/1 | 62/62 | 7.6 | 40 | 31,392 | 12,239 |
| 2 | solved | 1/1 | 62/62 | 5.6 | 31 | 29,376 | 10,025 | |
G14django__django-15851 | 1 | solved | 1/1 | 8/8 | 2.8 | 16 | 17,062 | 5,007 |
| 2 | solved | 1/1 | 8/8 | 3.4 | 25 | 18,330 | 6,005 | |
G15django__django-15569 | 1 | solved | 2/2 | 242/242 | 6.5 | 34 | 45,317 | 11,600 |
| 2 | solved | 2/2 | 242/242 | 4.8 | 21 | 21,684 | 9,375 | |
G16sympy__sympy-16886 | 1 | solved | 1/1 | 42/42 | 2.6 | 14 | 13,140 | 5,094 |
| 2 | solved | 1/1 | 42/42 | 2.1 | 20 | 12,478 | 3,546 | |
G17sympy__sympy-24562 | 1 | solved | 1/1 | 105/105 | 5.7 | 20 | 20,230 | 9,001 |
| 2 | solved | 1/1 | 105/105 | 16.1 | 53 | 53,964 | 30,926 | |
G18sympy__sympy-15875 | 1 | not solved | 0/1 | 80/80 | 33.5 | 82 | 87,480 | 53,254 |
| 2 | solved, time limit | 1/1 | 80/80 | 120.0 | 131 | 146,869 | 96,403 | |
G19sympy__sympy-24539 | 1 | solved | 1/1 | 62/62 | 9.3 | 36 | 32,425 | 13,769 |
| 2 | solved | 1/1 | 62/62 | 9.7 | 36 | 25,499 | 11,268 | |
G20sympy__sympy-16450 | 1 | solved | 1/1 | 38/38 | 14.5 | 39 | 37,639 | 15,923 |
| 2 | solved | 1/1 | 38/38 | 59.5 | 89 | 81,532 | 48,965 | |
G21sympy__sympy-12481 | 1 | solved | 1/1 | 7/7 | 18.5 | 67 | 80,834 | 37,978 |
| 2 | solved | 1/1 | 7/7 | 23.6 | 83 | 72,499 | 38,339 | |
G22sympy__sympy-23534 | 1 | solved | 1/1 | 11/11 | 10.4 | 29 | 27,197 | 9,124 |
| 2 | solved | 1/1 | 11/11 | 4.7 | 20 | 23,189 | 6,571 | |
G23sympy__sympy-21847 | 1 | solved | 1/1 | 9/9 | 10.3 | 35 | 49,433 | 19,856 |
| 2 | solved | 1/1 | 9/9 | 12.1 | 46 | 54,788 | 23,523 | |
G24sympy__sympy-13372 | 1 | solved | 1/1 | 44/44 | 14.2 | 31 | 33,449 | 16,082 |
| 2 | solved | 1/1 | 44/44 | 5.1 | 27 | 25,642 | 10,357 | |
G25sympy__sympy-12096 | 1 | solved | 1/1 | 43/43 | 91.9 | 97 | 58,753 | 33,282 |
| 2 | solved | 1/1 | 43/43 | 24.9 | 25 | 34,515 | 19,944 | |
G26sympy__sympy-14711 | 1 | solved | 1/1 | 2/2 | 5.2 | 26 | 22,488 | 7,364 |
| 2 | solved | 1/1 | 2/2 | 24.7 | 25 | 44,025 | 20,317 | |
M01sphinx-doc__sphinx-9698 | 1 | solved | 1/1 | 45/45 | 3.1 | 17 | 21,453 | 5,017 |
| 2 | solved | 1/1 | 45/45 | 5.5 | 34 | 39,779 | 9,464 | |
M02sphinx-doc__sphinx-8269 | 1 | solved | 1/1 | 5/5 | 10.9 | 46 | 46,049 | 22,512 |
| 2 | solved | 1/1 | 5/5 | 11.5 | 29 | 45,674 | 24,370 | |
M03sphinx-doc__sphinx-7910 | 1 | solved | 1/1 | 16/16 | 30.3 | 59 | 86,256 | 54,313 |
| 2 | solved | 1/1 | 16/16 | 30.7 | 78 | 86,568 | 58,212 | |
M04sphinx-doc__sphinx-8595 | 1 | not solved, test patch not applicable | – | – | 7.7 | 40 | 31,197 | 15,670 |
| 2 | not solved, test patch not applicable | – | – | 12.8 | 64 | 42,100 | 22,323 | |
M05sphinx-doc__sphinx-10435 | 1 | solved | 1/1 | 74/74 | 19.4 | 53 | 56,068 | 29,953 |
| 2 | solved | 1/1 | 74/74 | 20.7 | 42 | 61,324 | 39,979 | |
M06sphinx-doc__sphinx-8475 | 1 | solved | 1/1 | 17/17 | 5.1 | 27 | 26,286 | 9,827 |
| 2 | solved | 1/1 | 17/17 | 4.8 | 24 | 29,929 | 9,317 | |
M07sphinx-doc__sphinx-8459 | 1 | solved | 1/1 | 17/17 | 28.6 | 98 | 95,289 | 51,544 |
| 2 | solved | 1/1 | 17/17 | 17.2 | 56 | 65,468 | 27,652 | |
M08sphinx-doc__sphinx-7462 | 1 | not solved | 1/2 | 49/49 | 21.3 | 64 | 69,790 | 36,796 |
| 2 | not solved | 0/2 | 49/49 | 11.2 | 47 | 39,803 | 21,036 | |
M09sphinx-doc__sphinx-7440 | 1 | solved | 1/1 | 12/12 | 34.4 | 78 | 107,701 | 60,908 |
| 2 | solved | 1/1 | 12/12 | 37.0 | 81 | 109,312 | 63,300 | |
M10sphinx-doc__sphinx-9367 | 1 | solved | 1/1 | 25/25 | 7.2 | 29 | 23,953 | 8,903 |
| 2 | solved | 1/1 | 25/25 | 8.0 | 44 | 30,932 | 14,301 | |
M11pytest-dev__pytest-7205 | 1 | solved | 10/10 | 16/16 | 20.1 | 79 | 57,035 | 34,970 |
| 2 | solved | 10/10 | 16/16 | 7.4 | 32 | 27,902 | 14,560 | |
M12pytest-dev__pytest-7982 | 1 | solved | 1/1 | 78/78 | 11.7 | 30 | 34,706 | 18,123 |
| 2 | solved | 1/1 | 78/78 | 16.1 | 45 | 47,135 | 27,075 | |
M13pytest-dev__pytest-7432 | 1 | solved | 1/1 | 77/77 | 13.4 | 50 | 48,729 | 26,625 |
| 2 | solved | 1/1 | 77/77 | 12.9 | 42 | 39,018 | 21,463 | |
M14pytest-dev__pytest-6202 | 1 | solved | 1/1 | 72/72 | 3.6 | 20 | 17,637 | 6,645 |
| 2 | solved | 1/1 | 72/72 | 13.1 | 37 | 30,311 | 14,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.