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
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.
| Label | Project | SWE-bench | FAIL_TO_PASS | PASS_TO_PASS |
|---|---|---|---|---|
| M1 | pytest | pytest-dev__pytest-7571 | 1 | 14 |
| M2 | pytest | pytest-dev__pytest-8399 | 1 | 59 |
| M3 | Sphinx | sphinx-doc__sphinx-10466 | 1 | 6 |
| M4 | Sphinx | sphinx-doc__sphinx-11445 | 2 | 8 |
| G1 | sympy | sympy__sympy-21379 | 1 | 91 |
| G2 | Django | django__django-15814 | 1 | 29 |
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.
| Task | MacBook Pro M1 Max | Mac Studio M1 Ultra | HP ZBook Ultra G1a |
|---|---|---|---|
| M1 | 3 / 3 | 3 / 3 | 3 / 3 |
| M2 | 3 / 3 | 3 / 3 | 3 / 3 |
| M3 | 2 / 3 | 2 / 3 | 3 / 3 |
| M4 | 3 / 3 | 3 / 3 | 3 / 3 |
| G1 | 3 / 3 | 3 / 3 | 3 / 3 |
| G2 | 3 / 3 | 3 / 3 | 3 / 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.
| Prompt | MacBook Pro M1 Max | Mac Studio M1 Ultra | HP ZBook Ultra G1a | |||
|---|---|---|---|---|---|---|
| Reading | Output | Reading | Output | Reading | Output | |
| 0k–32k | 316 n=95 | 31.0 n=429 | 532 n=83 | 43.9 n=452 | 1,228 n=68 | 58.6 n=421 |
| 32k–64k | 307 n=50 | 30.5 n=421 | 522 n=31 | 44.0 n=353 | 1,150 n=22 | 57.8 n=285 |
| 64k–128k | 297 n=31 | 30.9 n=431 | 466 n=29 | 43.2 n=277 | 1,380 n=8 | 57.1 n=65 |
| 128k–256k | 279 n=12 | 29.5 n=145 | 557 n=3 | 43.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.
| Machine | Steps | Tokens generated | Reading | Output | Tools and rest | Wall time |
|---|---|---|---|---|---|---|
| MacBook Pro M1 Max | 1,426 | 843,926 | 127 | 513 | 172 | 813 |
| Mac Studio M1 Ultra | 1,107 | 624,896 | 55 | 254 | 64 | 374 |
| HP ZBook Ultra G1a | 771 | 422,951 | 15 | 125 | 157 | 297 |
| Task | MacBook Pro M1 Max | Mac Studio M1 Ultra | HP ZBook Ultra G1a |
|---|---|---|---|
| M1 | 15.8 12.4–32.0 | 11.0 8.8–11.6 | 6.8 6.8–7.2 |
| M2 | 17.7 15.6–32.1 | 12.3 11.4–13.0 | 2.8 1.8–4.4 |
| M3 | 39.8 28.5–42.4 | 11.4 8.9–12.6 | 12.1 9.9–12.6 |
| M4 | 36.0 29.3–41.4 | 30.5 25.1–32.4 | 7.5 6.6–14.1 |
| G1 | 100.7 74.6–120.0 | 18.9 15.8–31.2 | 11.1 10.8–32.5 |
| G2 | 51.9 39.3–83.3 | 38.4 36.6–44.1 | 56.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.
| Machine | Passes |
|---|---|
| MacBook Pro M1 Max | 15 / 18 |
| Mac Studio M1 Ultra | 14 / 18 |
| HP ZBook Ultra G1a | 11 / 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.
| Machine | Root cause | reported case | symptom only | Patches |
|---|---|---|---|---|
| MacBook Pro M1 Max | 15 | 2 | 0 | 17 |
| Mac Studio M1 Ultra | 14 | 3 | 0 | 17 |
| HP ZBook Ultra G1a | 16 | 2 | 0 | 18 |
| Machine | none | minor | substantial | Patches |
|---|---|---|---|---|
| MacBook Pro M1 Max | 6 | 7 | 4 | 17 |
| Mac Studio M1 Ultra | 9 | 8 | 0 | 17 |
| HP ZBook Ultra G1a | 14 | 4 | 0 | 18 |
| Machine | equivalent | different, as good | different, weaker | better | Patches |
|---|---|---|---|---|---|
| MacBook Pro M1 Max | 4 | 8 | 2 | 3 | 17 |
| Mac Studio M1 Ultra | 7 | 5 | 2 | 3 | 17 |
| HP ZBook Ultra G1a | 8 | 5 | 2 | 3 | 18 |
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 Max | 1 | solved | 1/1 | 14/14 | 32.0 | 34 | 29,028 | 14,285 | minor |
| MacBook Pro M1 Max | 2 | solved | 1/1 | 14/14 | 12.4 | 37 | 26,756 | 12,728 | minor | |
| MacBook Pro M1 Max | 3 | solved | 1/1 | 14/14 | 15.8 | 31 | 39,441 | 21,817 | minor | |
| Mac Studio M1 Ultra | 1 | solved | 1/1 | 14/14 | 11.0 | 29 | 30,691 | 16,629 | none | |
| Mac Studio M1 Ultra | 2 | solved | 1/1 | 14/14 | 11.6 | 24 | 33,639 | 16,721 | minor | |
| Mac Studio M1 Ultra | 3 | solved | 1/1 | 14/14 | 8.8 | 33 | 25,629 | 9,971 | none | |
| HP ZBook Ultra G1a | 1 | solved | 1/1 | 14/14 | 7.2 | 32 | 22,787 | 9,530 | none | |
| HP ZBook Ultra G1a | 2 | solved | 1/1 | 14/14 | 6.8 | 26 | 24,395 | 9,395 | none | |
| HP ZBook Ultra G1a | 3 | solved | 1/1 | 14/14 | 6.8 | 25 | 21,978 | 9,268 | minor | |
| M2 | MacBook Pro M1 Max | 1 | solved | 1/1 | 59/59 | 32.1 | 48 | 42,814 | 16,655 | none |
| MacBook Pro M1 Max | 2 | solved | 1/1 | 59/59 | 17.7 | 52 | 50,490 | 19,224 | none | |
| MacBook Pro M1 Max | 3 | solved | 1/1 | 59/59 | 15.6 | 41 | 37,579 | 15,422 | none | |
| Mac Studio M1 Ultra | 1 | solved | 1/1 | 59/59 | 12.3 | 54 | 43,612 | 20,453 | none | |
| Mac Studio M1 Ultra | 2 | solved | 1/1 | 59/59 | 11.4 | 42 | 36,799 | 17,443 | minor | |
| Mac Studio M1 Ultra | 3 | solved | 1/1 | 59/59 | 13.0 | 56 | 44,500 | 21,568 | minor | |
| HP ZBook Ultra G1a | 1 | solved | 1/1 | 59/59 | 4.4 | 32 | 30,798 | 12,060 | none | |
| HP ZBook Ultra G1a | 2 | solved | 1/1 | 59/59 | 1.8 | 22 | 13,932 | 5,000 | none | |
| HP ZBook Ultra G1a | 3 | solved | 1/1 | 59/59 | 2.8 | 30 | 18,631 | 7,478 | none | |
| M3 | MacBook Pro M1 Max | 1 | solved | 1/1 | 6/6 | 42.4 | 62 | 103,014 | 53,822 | none |
| MacBook Pro M1 Max | 2 | not solved | 0/1 | 6/6 | 39.8 | 65 | 94,080 | 54,284 | – | |
| MacBook Pro M1 Max | 3 | solved | 1/1 | 6/6 | 28.5 | 68 | 64,517 | 36,150 | minor | |
| Mac Studio M1 Ultra | 1 | solved | 1/1 | 6/6 | 12.6 | 28 | 56,190 | 22,261 | minor | |
| Mac Studio M1 Ultra | 2 | not solved | 0/1 | 6/6 | 8.9 | 33 | 40,207 | 17,142 | – | |
| Mac Studio M1 Ultra | 3 | solved | 1/1 | 6/6 | 11.4 | 40 | 60,065 | 22,492 | none | |
| HP ZBook Ultra G1a | 1 | solved | 1/1 | 6/6 | 12.1 | 24 | 56,189 | 41,085 | none | |
| HP ZBook Ultra G1a | 2 | solved | 1/1 | 6/6 | 9.9 | 38 | 71,032 | 27,662 | none | |
| HP ZBook Ultra G1a | 3 | solved | 1/1 | 6/6 | 12.6 | 50 | 62,809 | 36,399 | none | |
| M4 | MacBook Pro M1 Max | 1 | solved | 2/2 | 8/8 | 29.3 | 57 | 61,278 | 36,314 | none |
| MacBook Pro M1 Max | 2 | solved | 2/2 | 8/8 | 36.0 | 77 | 80,235 | 45,183 | minor | |
| MacBook Pro M1 Max | 3 | solved | 2/2 | 8/8 | 41.4 | 115 | 95,561 | 52,317 | substantial | |
| Mac Studio M1 Ultra | 1 | solved | 2/2 | 8/8 | 25.1 | 86 | 85,921 | 45,331 | none | |
| Mac Studio M1 Ultra | 2 | solved | 2/2 | 8/8 | 32.4 | 114 | 101,661 | 59,920 | none | |
| Mac Studio M1 Ultra | 3 | solved | 2/2 | 8/8 | 30.5 | 104 | 91,552 | 55,611 | minor | |
| HP ZBook Ultra G1a | 1 | solved | 2/2 | 8/8 | 7.5 | 41 | 34,289 | 19,281 | none | |
| HP ZBook Ultra G1a | 2 | solved | 2/2 | 8/8 | 14.1 | 58 | 48,097 | 30,168 | none | |
| HP ZBook Ultra G1a | 3 | solved | 2/2 | 8/8 | 6.6 | 42 | 40,705 | 17,893 | none | |
| G1 | MacBook Pro M1 Max | 1 | solved | 1/1 | 91/91 | 100.7 | 152 | 145,740 | 85,048 | substantial |
| MacBook Pro M1 Max | 2 | solved | 1/1 | 91/91 | 74.6 | 160 | 162,956 | 98,466 | none | |
| MacBook Pro M1 Max | 3 | solved, time limit | 1/1 | 91/91 | 120.0 | 136 | 101,344 | 60,299 | substantial | |
| Mac Studio M1 Ultra | 1 | solved | 1/1 | 91/91 | 15.8 | 37 | 49,515 | 25,192 | none | |
| Mac Studio M1 Ultra | 2 | solved | 1/1 | 91/91 | 18.9 | 42 | 42,969 | 21,020 | none | |
| Mac Studio M1 Ultra | 3 | solved | 1/1 | 91/91 | 31.2 | 64 | 63,506 | 31,535 | none | |
| HP ZBook Ultra G1a | 1 | solved | 1/1 | 91/91 | 10.8 | 32 | 36,639 | 22,696 | none | |
| HP ZBook Ultra G1a | 2 | solved | 1/1 | 91/91 | 32.5 | 65 | 76,067 | 32,628 | none | |
| HP ZBook Ultra G1a | 3 | solved | 1/1 | 91/91 | 11.1 | 36 | 39,662 | 18,834 | none | |
| G2 | MacBook Pro M1 Max | 1 | solved | 1/1 | 29/29 | 83.3 | 156 | 217,152 | 110,984 | substantial |
| MacBook Pro M1 Max | 2 | solved | 1/1 | 29/29 | 51.9 | 70 | 168,348 | 62,831 | minor | |
| MacBook Pro M1 Max | 3 | solved | 1/1 | 29/29 | 39.3 | 65 | 127,250 | 48,097 | minor | |
| Mac Studio M1 Ultra | 1 | solved | 1/1 | 29/29 | 38.4 | 96 | 138,844 | 73,535 | minor | |
| Mac Studio M1 Ultra | 2 | solved | 1/1 | 29/29 | 44.1 | 133 | 163,340 | 80,896 | minor | |
| Mac Studio M1 Ultra | 3 | solved | 1/1 | 29/29 | 36.6 | 92 | 127,857 | 67,176 | minor | |
| HP ZBook Ultra G1a | 1 | solved | 1/1 | 29/29 | 20.5 | 76 | 105,896 | 41,620 | minor | |
| HP ZBook Ultra G1a | 2 | solved | 1/1 | 29/29 | 56.6 | 83 | 111,553 | 46,722 | minor | |
| HP ZBook Ultra G1a | 3 | solved | 1/1 | 29/29 | 72.8 | 59 | 96,680 | 35,232 | minor |
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.