holistechlabsOpenCode · SWE-bench Verified
DEEN

Measured · 12 October 2026 · 54 passes

Qwen3.8-Flash-Next as a coding agent in OpenCode

sushi 1.2.1 · MacBook Pro M1 Max and sushi 1.2.1 · Mac Studio M1 Ultra and halogen 0.18.0 · HP ZBook Ultra G1a

Authors

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

Machine and server

MacBook Pro M1 Max

SoC
Apple M1 Max, 10 CPU cores, 32 GPU cores
Memory
64 GiB unified memory
OS
macOS 27.0.1
Server
sushi 1.2.1, reasoning effort xhigh
Weights
beamster/Qwen3.8-Flash-Next-Sushi-2.6bpw

Machine and server

Mac Studio M1 Ultra

SoC
Apple M1 Ultra, 20 CPU cores, 64 GPU cores
Memory
64 GiB unified memory
OS
macOS 26.2
Server
sushi 1.2.1, reasoning effort xhigh
Weights
beamster/Qwen3.8-Flash-Next-Sushi-2.6bpw

Machine and server

HP ZBook Ultra G1a

SoC
Ryzen AI Max+ PRO 395, Radeon 8060S
Memory
128 GiB LPDDR5X-8000 as unified memory
OS
Ubuntu 24.04
Server
halogen-flash-server 0.18.0, reasoning effort xhigh (default)
Weights
v2.hgn, all 512 experts

Protocol

Six issues, three passes

Agent
OpenCode 2.0.26
Tasks
SWE-bench Verified: four from pytest and Sphinx, two from sympy and Django
Limits
262,144 tokens of context, 150 steps, 60 or 120 minutes
Netz
blocked except for the model server
Scored
with the task's tests, as in SWE-bench

17of 18

MacBook Pro M1 Max · sushipasses solved

309tokens/s

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

30.7tokens/s

Output median of all requests, thinking included

217kToken

Deepest context highest level of any session

17of 18

Mac Studio M1 Ultra · sushipasses solved

521tokens/s

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

43.7tokens/s

Output median of all requests, thinking included

163kToken

Deepest context highest level of any session

18of 18

HP ZBook Ultra G1a · halogenpasses solved

1,220tokens/s

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

58.3tokens/s

Output median of all requests, thinking included

112kToken

Deepest context highest level of any session

From the server logs, one request per agent step, 3,304 requests in all. Most steps add only a few hundred new tokens, the rest comes from the prompt cache; reading speed therefore counts only the larger ones. Chapter 03 shows speed per context level and how the time divides.

01 · Setup

Real 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, nor any hint at them. Dependencies are installed; it has no network access. Only the model server is reachable.

The six tasks come from SWE-bench Verified. Only tasks were taken that two published runs of other models both solved, that are pure Python and that the dataset rates at 15 minutes to an hour of human work. The tasks are therefore known to be solvable. What is measured is whether Flash-Next solves them on these servers, how long it takes and how reliably across three passes.

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 modelled on the SWE-bench harness, version 4.1.0.

All three arms use the same settings: context up to 262,144 tokens, temperature 1.0, top_p 0.95, reasoning effort xhigh, automatic compaction on, prompt cache on. Both servers use their multi-token prediction (MTP). Each machine works through the 18 passes one after another in the same order; nothing else runs.

The six tasks
Label Project SWE-bench FAIL_TO_PASS PASS_TO_PASS
M1pytestpytest-dev__pytest-7571114
M2pytestpytest-dev__pytest-8399159
M3Sphinxsphinx-doc__sphinx-1046616
M4Sphinxsphinx-doc__sphinx-1144528
G1sympysympy__sympy-21379191
G2Djangodjango__django-15814129

02 · Result

52 of 54 passes solved

On the HP ZBook the agent solves all 18 passes, on each Mac 17. Both failures are the same pass of the same task, the second pass of M3, on the MacBook and on the Mac Studio, with the same incomplete fix: the agent filters duplicate locations in Catalog.add by file, line and an identifier (uid). The duplicates from the issue carry different identifiers and therefore remain. The test for the bug fails, all others pass.

Whether sushi is weaker on M3 or whether one failure in three passes is chance cannot be read from this measurement.

One pass ended at the time limit: the third pass of G1 on the MacBook, after 120 minutes. The patch the agent had written by then passes all tests and therefore counts as solved, as in SWE-bench. The 150-step limit never applied.

Solved passes per task
Task MacBook Pro M1 Max Mac Studio M1 Ultra HP ZBook Ultra G1a
M13 / 33 / 33 / 3
M23 / 33 / 33 / 3
M32 / 32 / 33 / 3
M43 / 33 / 33 / 3
G13 / 33 / 33 / 3
G23 / 33 / 33 / 3

03 · Speed

How fast the machines read and write

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 MacBook reads at a median of 309 tokens per second and outputs 30.7, the Mac Studio 521 and 43.7, the ZBook 1,220 and 58.3. As the context grows, speed changes little on all three machines.

Both Macs run the same server and the same weights. The Mac Studio with 64 GPU cores reads 1.7 times as fast as the MacBook with 32 and writes 1.4 times as fast. Between the ZBook and the Macs, platform, server and weights all differ; the figures say how fast it goes on each machine.

Tokens per second by prompt length, median; reading only requests with at least 2,048 new tokens, n = number of requests
Prompt MacBook Pro M1 Max Mac Studio M1 Ultra HP ZBook Ultra G1a
ReadingOutputReadingOutputReadingOutput
0k–32k316 n=9531.0 n=429532 n=8343.9 n=4521,228 n=6858.6 n=421
32k–64k307 n=5030.5 n=421522 n=3144.0 n=3531,150 n=2257.8 n=285
64k–128k297 n=3130.9 n=431466 n=2943.2 n=2771,380 n=857.1 n=65
128k–256k279 n=1229.5 n=145557 n=343.1 n=25––

Where the time goes follows from the logs: reading and output are recorded per request, the rest of the wall time belongs to the tools, mainly the tests the agent runs itself, and to OpenCode. On the Macs most of it is output, on the ZBook the rest. That includes an hour in which the agent waited for itself in G2 (chapter 04).

Per step the agent writes about the same on all three machines, between 549 and 592 tokens. On the MacBook it needed more steps, 1,426 against 1,107 on the Mac Studio and 771 on the ZBook. Wall time contains both, the speed per step and the number of steps, which varies from pass to pass.

All 18 passes per machine together, times in minutes
Machine Steps Tokens generated Reading Output Tools and rest Wall time
MacBook Pro M1 Max1,426843,926127513172813
Mac Studio M1 Ultra1,107624,8965525464374
HP ZBook Ultra G1a771422,95115125157297
Wall time per task in minutes: median, then shortest to longest pass
Task MacBook Pro M1 Max Mac Studio M1 Ultra HP ZBook Ultra G1a
M115.8 12.4–32.011.0 8.8–11.66.8 6.8–7.2
M217.7 15.6–32.112.3 11.4–13.02.8 1.8–4.4
M339.8 28.5–42.411.4 8.9–12.612.1 9.9–12.6
M436.0 29.3–41.430.5 25.1–32.47.5 6.6–14.1
G1100.7 74.6–120.018.9 15.8–31.211.1 10.8–32.5
G251.9 39.3–83.338.4 36.6–44.156.6 20.5–72.8

04 · Session

Context, steps and tools

How deep the context goes is up to the agent. The deepest session reached 217,152 tokens on the MacBook, at most 163,340 on the Mac Studio and 111,553 on the ZBook. No session reached the threshold at which OpenCode summarises the history; there was no compaction.

Of 3,571 tool calls, 18 failed (MacBook 6, Mac Studio 6, ZBook 6).

One pass shows how an agent can hold itself up: in G2 on the ZBook it waited for its test run with while pgrep -f "runtests.py --parallel 1". The search pattern is part of the waiting loop's own command line, so it always finds itself. It ended only at the one-hour timeout the agent had given the command. Afterwards it solved the task, after 72.8 minutes.

05 · Network

The agent looks for the fix online

In 40 of 54 passes the agent tried to reach the network. It used curl to fetch files from raw.githubusercontent.com and api.github.com, in some cases the very pull request for the issue, ran pip download for newer releases of the package, queried the upstream repository with git ls-remote and called fetch() in OpenCode's JavaScript tool. No attempt received data: on all three machines the operating system's sandbox blocked every one of these connections. Every output was checked in the session exports.

With an open network Flash-Next would therefore regularly fetch the published fix for SWE-bench tasks. Such a measurement then shows how well the agent searches, not how well it repairs.

Passes with a network attempt
MachinePasses
MacBook Pro M1 Max15 / 18
Mac Studio M1 Ultra14 / 18
HP ZBook Ultra G1a11 / 18

06 · Patches

What the solved patches contain

Passing tests do not show whether a patch addresses the root cause or only the tested case. All 52 solved patches were therefore judged, task by task, by a reviewer who did not know which machine they came from: a language model (Claude Haiku 5.5) given the issue, the maintainers' reference fix and the patches in random order, with paths blacked out. It answered three questions per patch with fixed values.

No patch merely works around the symptom; all address the root cause fully or for the reported case. The clearest difference is in the clutter: helper scripts, log files and output the agent left in the repository were found by the reviewer in 4 of 17 patches from the MacBook and in none from the other two machines.

When comparing with the reference fix the reviewer separates little: in 3 of the six tasks (M1, M2, M3) it gave every patch the same value. This question therefore says little about differences between machines.

Does the patch address the root cause?
MachineRoot causereported casesymptom onlyPatches
MacBook Pro M1 Max152017
Mac Studio M1 Ultra143017
HP ZBook Ultra G1a162018
Does the patch change more than needed?
MachinenoneminorsubstantialPatches
MacBook Pro M1 Max67417
Mac Studio M1 Ultra98017
HP ZBook Ultra G1a144018
Compared with the reference fix
Machineequivalentdifferent, as gooddifferent, weakerbetterPatches
MacBook Pro M1 Max482317
Mac Studio M1 Ultra752317
HP ZBook Ultra G1a852318

07 · Every figure

All 54 passes

Per pass: scoring result, wall time, agent steps, highest context of the session, tokens generated including thinking and the clutter according to the blind review. Every figure in this report is computed from this table.

Task Machine Pass Result FAIL_TO_PASS PASS_TO_PASS Wall time (min) Steps Max. context Tokens generated Clutter
M1 MacBook Pro M1 Max1solved1/114/1432.03429,02814,285minor
MacBook Pro M1 Max2solved1/114/1412.43726,75612,728minor
MacBook Pro M1 Max3solved1/114/1415.83139,44121,817minor
Mac Studio M1 Ultra1solved1/114/1411.02930,69116,629none
Mac Studio M1 Ultra2solved1/114/1411.62433,63916,721minor
Mac Studio M1 Ultra3solved1/114/148.83325,6299,971none
HP ZBook Ultra G1a1solved1/114/147.23222,7879,530none
HP ZBook Ultra G1a2solved1/114/146.82624,3959,395none
HP ZBook Ultra G1a3solved1/114/146.82521,9789,268minor
M2 MacBook Pro M1 Max1solved1/159/5932.14842,81416,655none
MacBook Pro M1 Max2solved1/159/5917.75250,49019,224none
MacBook Pro M1 Max3solved1/159/5915.64137,57915,422none
Mac Studio M1 Ultra1solved1/159/5912.35443,61220,453none
Mac Studio M1 Ultra2solved1/159/5911.44236,79917,443minor
Mac Studio M1 Ultra3solved1/159/5913.05644,50021,568minor
HP ZBook Ultra G1a1solved1/159/594.43230,79812,060none
HP ZBook Ultra G1a2solved1/159/591.82213,9325,000none
HP ZBook Ultra G1a3solved1/159/592.83018,6317,478none
M3 MacBook Pro M1 Max1solved1/16/642.462103,01453,822none
MacBook Pro M1 Max2not solved0/16/639.86594,08054,284–
MacBook Pro M1 Max3solved1/16/628.56864,51736,150minor
Mac Studio M1 Ultra1solved1/16/612.62856,19022,261minor
Mac Studio M1 Ultra2not solved0/16/68.93340,20717,142–
Mac Studio M1 Ultra3solved1/16/611.44060,06522,492none
HP ZBook Ultra G1a1solved1/16/612.12456,18941,085none
HP ZBook Ultra G1a2solved1/16/69.93871,03227,662none
HP ZBook Ultra G1a3solved1/16/612.65062,80936,399none
M4 MacBook Pro M1 Max1solved2/28/829.35761,27836,314none
MacBook Pro M1 Max2solved2/28/836.07780,23545,183minor
MacBook Pro M1 Max3solved2/28/841.411595,56152,317substantial
Mac Studio M1 Ultra1solved2/28/825.18685,92145,331none
Mac Studio M1 Ultra2solved2/28/832.4114101,66159,920none
Mac Studio M1 Ultra3solved2/28/830.510491,55255,611minor
HP ZBook Ultra G1a1solved2/28/87.54134,28919,281none
HP ZBook Ultra G1a2solved2/28/814.15848,09730,168none
HP ZBook Ultra G1a3solved2/28/86.64240,70517,893none
G1 MacBook Pro M1 Max1solved1/191/91100.7152145,74085,048substantial
MacBook Pro M1 Max2solved1/191/9174.6160162,95698,466none
MacBook Pro M1 Max3solved, time limit1/191/91120.0136101,34460,299substantial
Mac Studio M1 Ultra1solved1/191/9115.83749,51525,192none
Mac Studio M1 Ultra2solved1/191/9118.94242,96921,020none
Mac Studio M1 Ultra3solved1/191/9131.26463,50631,535none
HP ZBook Ultra G1a1solved1/191/9110.83236,63922,696none
HP ZBook Ultra G1a2solved1/191/9132.56576,06732,628none
HP ZBook Ultra G1a3solved1/191/9111.13639,66218,834none
G2 MacBook Pro M1 Max1solved1/129/2983.3156217,152110,984substantial
MacBook Pro M1 Max2solved1/129/2951.970168,34862,831minor
MacBook Pro M1 Max3solved1/129/2939.365127,25048,097minor
Mac Studio M1 Ultra1solved1/129/2938.496138,84473,535minor
Mac Studio M1 Ultra2solved1/129/2944.1133163,34080,896minor
Mac Studio M1 Ultra3solved1/129/2936.692127,85767,176minor
HP ZBook Ultra G1a1solved1/129/2920.576105,89641,620minor
HP ZBook Ultra G1a2solved1/129/2956.683111,55346,722minor
HP ZBook Ultra G1a3solved1/129/2972.85996,68035,232minor

08 · Limits

What this measurement does not show

No comparison of servers. halogen computes with the v2.hgn weights on Strix Halo, sushi with beamster/Qwen3.8-Flash-Next-Sushi-2.6bpw (2.6 bpw) on Apple M1. Platform, server and weights all differ at once. The measurement shows what Flash-Next achieves as an agent on a 64 GB Mac compared with a 128 GB machine, not which server computes better.

No resolve rate. Only tasks that other models solved were selected. The number of solved passes therefore cannot be set beside published SWE-bench 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. Every task passed with the reference fix on all three machines beforehand.

Six tasks, three passes. Enough to show that the agent works on all three machines, too few to attribute a single failure to a machine.

One reviewer per task. The patch review comes from one language model per task, without a second reviewer and without comparison against a human.

Prompt cache in different places. halogen keeps the cache in RAM, sushi only on the SSD (up to 20 GB, cleared at the start of each series). Both servers ran through all 18 passes without a restart. How much a step has to read anew therefore also depends on the cache.

Background processes recorded only on the Mac Studio. Processes the agent starts in the background and leaves running were searched for and ended after every pass on the Mac Studio; there were none. On the ZBook and the MacBook it was not recorded whether such processes ran on into later passes.