The short version
Nightshift has many ways to run a job besides "race four attempts and pick one". This report measures every one of them on a DGX Spark. The controlled fleet was three non-thinking racers (Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B) and a dedicated Muse-Glimmer-30B judge lane. The owner's own fleet, with its Qwen3.8-27B and no judge lane, was measured beside it. Ten fixtures with deterministic scorers were held constant, and every cell ran three times.
With a dedicated judge lane, the race modes work.
- The verifier panel scored 99 % of the candidates it shortlisted, and picked the best-scoring candidate 22 times in 26. On the four fixtures no model solved, it found the best partial answer 11 times in 11, against 1 in 10 for majority vote.
- Majority vote is three times faster, and right when most candidates are right.
- Bulk extracted 220 of 220 units correctly.
- Gate repair turned every seeded app with a missing click handler into a working app.
As shipped in 1.3.2, five modes did not do what they say on this box:
- Deliberate never gave a correct answer: it answered with its own progress notes, after up to nine chunks.
- The consistency judge never checked anything: every check timed out and was recorded as "consistent".
- A 45-second deadline ran up to five minutes.
- "Continue the night" was impossible on any fleet whose lanes hold 32k tokens.
- On the owner's own fleet the verifier panel judged nothing: 0 of 59 candidates scored, because it kept choosing a 3B "thinking" racer that never returns a verdict. This is the mechanism behind the published "8 % judge coverage".
All five are fixed, and re-measured on the installed fixes:
- deliberate answers the fact prompt correctly in 5 s;
- planted contradictions are flagged 3 of 3;
- the 45 s deadline finishes in 47–59 s;
- continue runs;
- the owner fleet's panel scored 17 of 20.
Each fix carries a regression test that fails on the build before it. In all, 35 defects were fixed: 15 that the Mac campaign had found and that also existed in this tree, and 20 new. 17 of them were confirmed live.
What is still weak:
- "Verified" means the generated app loads, not that it works: 12 of 12 apps verified, 6 of 12 working.
- Auto plans 256 attempts for a one-paragraph answer.
- The owner's thinking models spend most of a short job reasoning.
- This box's steady background chat traffic keeps it out of its night posture, and starved its watchers until 1.3.5.
Every number names its machine, build and source. Failures, refusals and wiped jobs stay in the denominators or are reported apart.
At a glance
| Mode | Headline (count or median, with n) | Build | Machine | Source |
|---|---|---|---|---|
| Verifier panel, dedicated judge lane | 306/310 shortlisted candidates scored (99 %); best-scoring candidate picked 22/26; best partial answer 11/11 where none was fully correct | 1.3.2 | DGX Spark | runs/grid-1.3.2 |
| Verifier panel, owner fleet (no judge lane) | 0/59 scored on 1.3.2; 17/20 (85 %) on 1.3.4 | 1.3.2 → 1.3.4 | DGX Spark | runs/owner-1.3.2, runs/owner-1.3.4 |
| Majority vote | winner fully correct 12/27 (panel 11/26); best candidate picked 16/27; median 33 s (panel 100 s) | 1.3.2 | DGX Spark | runs/grid-1.3.2 |
| Unit-test selector | no winner 5/5 (no candidate passed every case); without exec checks: refused at submit (1.3.3), not after the race (1.3.2) | 1.3.2, 1.3.3 | DGX Spark | runs/grid-1.3.2, runs/refusals-* |
| Tournament selection | not in this edition: silently ignored on 1.3.2, refused with the reason on 1.3.3 | 1.3.2, 1.3.3 | DGX Spark | runs/grid- tour8- |
| Quality judge | refuses honestly (below_bar 3/3 when nothing meets the bar); a rubric missing a field passed 0/8 correct answers; stop_when_met halves attempts | 1.3.2, 1.3.3 | DGX Spark | runs/grid-* |
| Consistency judge | recall 0.2 → 0.5 → 0.83, precision 1.0 throughout | 1.3.2 → 1.3.3 → 1.3.4 | DGX Spark | runs/grid-1.3.{2,3,4} |
| Creative judge | no single winner 12/12; spread wide 12/12 | 1.3.2, 1.3.3 | DGX Spark | runs/grid-* |
| Diversity | mean candidate score 0.55 → 0.45 → 0.38 (low → medium → high); persona briefs worst of the axes on both builds | 1.3.2, 1.3.3 | DGX Spark | runs/grid-* |
| Deliberate | correct 0/15 → 8/15 (fact 3/3 in 5 s, invoice 3/3) | 1.3.2 → 1.3.3 | DGX Spark | runs/grid-* |
| Batch | a bad request fails alone 6/6; partial hidden on 1.3.2, stated on 1.3.3 | 1.3.2, 1.3.3 | DGX Spark | runs/grid-* |
| Bulk | 220/220 units correct, 0 duplicates, about 1 000 units/h, lossless pause | 1.3.3 | DGX Spark | runs/bulk-1.3.3 |
| Deadline 45 s | finished up to 255 s late → 47–59 s, labelled | 1.3.2 → 1.3.3 | DGX Spark | runs/grid-* |
| App generation | 12/12 "verified" (runtime tier: runs), 6/12 working | 1.3.3 | DGX Spark | runs/extras-1.3.3 |
| Gate repair, seeded defects | missing handler 6/6 repaired, syntax error 4/6, truncation 3/3 | 1.3.3 | DGX Spark | runs/extras-1.3.3 |
| Auto | n = 256 for every task; 29–40 min for answers a best-of-4 gets in under 2 min | 1.3.3 | DGX Spark | runs/extras-1.3.3 |
| Watcher | 0 observations in 46 min under steady sync traffic; bounded in 1.3.5 | 1.3.3 | DGX Spark | runs/watch-1.3.3 |
| Defects | 35 fixed with regression tests (15 present from the Mac's list, 20 new); 17 confirmed live; 2 open design items | 1.3.3–1.3.5 | DGX Spark | DEFECTS.md |
1. The modes
A Nightshift job is durable work: it is queued, checkpointed, survives a restart, and ends with a record, signed receipts and an outcome. The first campaign measured one shape of job, best_of_n with its defaults. This report covers everything else the code offers. We re-derived the list below from the DGX source (js/engine/jobs.js and the engine modules, the 1.3.2 tree), not from product copy. It corrects the prompt's starting map in four places:
best_of_nis itself a kind with many knobs.compositionis minted by an import or the compose verb and cannot be submitted (the submit route says so).- The selection-policy field is called
selection, notselection_policy. - The DGX edition has no tournament policy. The elimination
tournamentis a Mac-edition module (tournament.js); this build always spreads attempts across every lane. On 1.3.2 it acceptedselection: "tournament"and silently ran full coverage (D-10, now refused with the reason).
| Family | What it is | How you ask for it | What it answers |
|---|---|---|---|
| Kinds | |||
best_of_n | Race n attempts across the fleet, cluster them, pick a winner | kind:"best_of_n", n | "Give me the best of many tries" |
deliberate | One long chain of chunks. It is Markovian: each chunk carries a compressed summary forward and checkpoints | kind:"deliberate" | "Think about one thing for a long time" |
batch | Many independent requests in one job, one answer each, no selection | kind:"batch", requests[] | "Do these 500 things tonight" |
bulk | The same instruction over every file of a folder or corpus, with a coverage ledger | kind:"bulk", corpus, unit, units_in_flight 1–8 | "Go through all of these and tell me what you covered" |
app_stream | An outside app's conversation through the local endpoint, kept as one open job per app | opened by the proxy; cannot be submitted | "Record what my other apps asked" |
composition | Pinned sources from an import or the compose verb; never races | minted, not submitted | "Build on earlier work" |
| Selection inside a race | |||
| Selectors | verifier_panel (a judge panel scores a shortlist; the default), majority_vote (the largest agreeing group wins; no judge), unit_test (JavaScript tests you supply run against each attempt; all-or-nothing; needs jobQualityExecChecks) | selector | "How is the winner chosen?" |
| Judge modes | accuracy (the default); quality (a frozen written rubric with deterministic checks and an eligibility gate); consistency (the winner is checked against an indexed canon; fails closed without one); creative (no single winner: a shortlist, a spread label and contrasts) | judge_mode, judge_options | "What does good mean here?" |
| Diversity | off/low/medium/high, with axes briefs, temperature, postures, synthesis; max is refused ("learned bias and breeding need run history") | diversity:{level, axes:{…}} | "How different should the attempts be?" |
| Attempt budget | low/mid/high/max = 15/40/70/100 % of each lane's output ceiling, or an explicit pct | attempt_budget:{level} | "How long may each attempt be?" |
| When and how long | |||
| Window | quiet (the default: wait for the night window and quiet traffic) or now | window | "Run now, or tonight?" |
| Gates | start_gate:"idle" (only on an otherwise idle box), scheduled_start (ISO time or local HH:MM) | body fields | "Only when nothing else runs / at this time" |
| Stops | deadline (a hard stop with a labelled partial), stop.no_new_cluster_after:K, judge_options.stop_when_met (quality only) | body fields | "Stop when it is good enough, or when time is up" |
| After the race | |||
| Makes | One verb, POST /v1/jobs/{id}/materialize, with 44 transforms, all available on this DGX (the Mac lacked PDF export): apps with a verify → repair loop, refine an artifact, documents, media, conversions | transform id | "Turn an answer into a thing" |
| Synthesis and reports | Cluster report, synopsis and synthesis (a curator model, or a deterministic "cut"), night report, insight seal | makes, POST …/report | "What did the night find?" |
| Repair queue | Scan, preview and submit bounded repairs of saved attempts | …/repair routes | "Fix what almost worked" |
| Across nights | |||
| Rerun, fork, continue | Rerun a job's body; fork a deliberate chain from a chunk; continue a night with last night's consensus folded in | …/rerun, …/fork, …/continue | "Try again / keep going" |
| Methods and skills | A Method is a versioned set of body defaults mined from a successful night; a Skill is attached text | method_id, skill_ids, /v1/methods/mine | "Reuse what worked" |
| Schedules and watchers | A stored job body on a cadence (≥ 5 min); a watcher is a schedule with a condition on a folder, URL or HTTP endpoint, with debounce, dedupe and cooldown | /v1/schedules, /v1/watchers | "Run this every night / when that changes" |
| Planning | |||
| Auto | The composer's planner: detects the task class, picks kind, n, judge, diversity, budget, window and fleet, and writes its rationale onto the record | auto_plan (resolved client-side) | "Plan the night for me" |
| Media autopilot | Chooses and queues media makes from a race's winner or eligible attempts | media_autopilot | "Make the pictures too" |
The sync router modes (meterless/* chat through :8088) are not jobs and are out of scope.
What the DGX had already measured. Nothing, for most of this table. Across the 608 jobs in the store before this campaign (inventory-dgx-jobstore.md): no deliberate and no batch job had ever run; no job had used majority_vote or unit_test; there were 8 bulk jobs, 16 quality-mode jobs, 5 consistency-mode jobs, 43 creative-mode jobs, 14 deadline jobs and 14 Auto plans. None of them were scored against ground truth. The only prior measurement of these modes is the Mac campaign of 26–27 September (reports/MODES-BENCH-2026-10-01/mac-reference/), which this report cites beside the DGX numbers.
2. How we measured
The machine. One DGX Spark: NVIDIA GB10, 121 GB unified memory (the daemon admits lanes against 106 177 MB), Ubuntu 24.04.4 on aarch64. The installed build at the start was Nightshift 1.3.2 (all three debs). The fixes this campaign made were measured afterwards on 1.3.3, on the cells they touch (§2.4). Nothing on this box rotates: every fleet below stays fully resident, so memory waits were zero throughout (median 0 s, maximum 0 s, over 171 grid jobs). On the Mac, the memory plan decided more of a job's time than the mode did. Here, the time a job takes is the mode's time and the models' time.
Three fleets.
| Arm | Fleet | Racers | Judge | Used for |
|---|---|---|---|---|
| Controlled | modes-dgx (built for this campaign) | Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B (Q4_K_M, 32 768 ctx, 1 slot each) | Muse-Glimmer-30B, a dedicated judge lane that never races | every grid cell |
| Owner's racers + judge | bench-judge | Qwen3.8-27B, Qwen2.5-14B, VibeThinker-3B, MiniCPM5-1B | Muse-Glimmer-30B | the smoke runs, and the business bench this report compares with |
| Owner's fleet | motion-q4, the fleet this box normally runs | the same four racers, plus a 37 GB Wan2.2 video lane | none: a racer judges | the realism arm (§4.x) |
Why the controlled fleet is not the owner's. On the smoke run, a best-of-4 on one hard prompt took 716 s on the owner's racers. Qwen3.8-27B reasoned for 599 s, ran out of budget, then answered correctly in 48 s on its thinking-off retry. The 3B "VibeThinker" lane wrote 17 000 characters of reasoning twice and never answered. The product learns to turn thinking off for a lane, but only within one job, so every new job pays that burn again (T-1). Putting --reasoning-budget 0 on the lane does not stop it on this llama-server build (T-2). Mode comparisons on those racers would have measured reasoning budgets, not modes. So the controlled fleet uses three non-thinking racers from two model lines, and the owner's own fleet is measured separately, as it is.
The fixtures are the Mac campaign's eight, verbatim (code, fact and extract are themselves the best-of-n campaign's), plus two harder ones, because a 14B coder solves most of the Mac set:
semver: Pythoncompare_semver, the full SemVer 2.0.0 precedence rules, 19 cases (4 must raise). A naive integer-tuple compare scores 7/19.ledger: a bank statement to JSON with a computed closing balance, a debit count and a credit total; 6 exact fields. One arithmetic slip fails it.
Every scorer is deterministic: Python cases executed, JavaScript cases run in a VM, exact JSON fields, fixed fact keys, contradiction keys for the canon. Self-tests (harness/fixtures/selftest*.mjs) show a reference answer passing and a wrong one failing for each. Two scorer caveats:
- Python's
fnmatchalso passeswildcard15/15. - The v2 fact rule needs one of a fixed set of verbs ("combine", "integrate", "share", "a single pool"). Two winners this campaign scored 4/5 only because they said "access memory directly, without copying". By reading, they are correct, and §4 reports both counts.
Common settings. Every job used window: "now" (the default, quiet, waits for the night), auto_synthesize: "off" (end-of-night reports would bleed into the next job's timing; synthesis is measured on its own) and privacy: "local-only". For the grid only, jobQualityExecChecks was switched on, because the unit_test selector and [js] rubric checks need it. What the product does when it is off is a result of its own (§4.x). Repetitions were interleaved, three per cell: rep 1 of every cell, then rep 2, then rep 3.
The harness is reports/MODES-BENCH-2026-10-01/harness/, ported from the Mac campaign: mode-bench.mjs (the grid), extras.mjs, bulk.mjs, watch.mjs, resume.mjs, refusals.mjs and a shared lib.mjs. It submits through the public API (:8088), reads each job's record, events, attempts and makes back from /var/lib/meterless/jobs/<id>/, and writes one JSON record per job. Every 5 s it also samples the daemon's memory ledger, the host's MemAvailable and load, and GB10 power and utilisation. The protocols (PROTOCOLS.md) were written before any grid result was analysed.
Confounders we know about (all in RUNLOG.md, with times):
- An orphaned headless Chrome from an earlier session was rendering a generated WebGL app in software at about 4 CPU cores for the whole campaign. Stopping it was refused by this session's permissions, and the operator was told.
- The Nightshift cockpit stayed open (about one core).
- Two source-fix agents ran targeted test files, two full JS suites and four release builds overlapped parts of the grid.
- Posture: the jobs before 07:00 local ran in the Swarm posture (47 jobs); the rest ran in Depth (115), with fewer lanes at once.
Correctness columns are unaffected by any of these. Time columns carry medians with ranges, and we do not rank modes by speed within a few tens of seconds.
Infrastructure failures are kept apart, not hidden. On 1.3.2, nine grid jobs lost all their attempts in under a second, because the engine's model probe timed out under load and wiped its list of served models (D-11). They are excluded from the mode tables, re-run once each (runs/grid-1.3.2-rerun/), and reported as a defect with their job ids.
3. What was already known
Three sources existed before this campaign. None of them had measured these modes on the DGX against ground truth.
| Source | What it holds | Machine, date, build | Still valid? |
|---|---|---|---|
This box's job store (608 jobs, inventory-dgx-jobstore.md) | 188 compositions, 95 media-autopilot jobs, 49 attempt_budget: max, 43 creative-judge jobs, 34 diversity: high, 20 reruns, 16 app streams, 16 quality-judge jobs, 14 deadline jobs, 14 Auto plans, 8 bulk jobs, 8 continued nights, 5 stop-condition jobs, 5 consistency-judge jobs. Zero deliberate, zero batch, zero majority_vote or unit_test jobs, ever. | DGX Spark, Aug 16 – Sep 28 2026, builds 0.6x – 1.3.0 | As usage, yes. As measurement, no: nothing in the store was scored against a known answer. Two counts are stale: 294 failed narration makes (Sep 12–16, before the OuteTTS adapter shipped) and 33 paused jobs from August |
The public benchmark page (nightshift-landing/benchmarks.html) | 8 % judge coverage (14 of 169 shortlisted candidates scored); 44 % silent lanes; 299 of 300 corpus units in 5 h 35 m on one 3B lane; the app trust funnel (3 034 → 2 020 → 167 of 261 runtime-checked) | DGX Spark, August–September builds | Superseded in part. On the controlled fleet here, with a dedicated judge lane, the panel scored every candidate it shortlisted (§4.1) |
The Mac modes campaign (mac-reference/) | Every mode on a 16 GB Apple M5, 49 cells × 3; 18 defects found, 17 fixed in the Mac mirror | Apple M5, Sep 26–27 2026, Mac builds b56dfc81 → 9925498 | As Mac evidence, yes. As DGX evidence, no: none of its fixes were in this tree. 14 of its defects were present here (§5), and its tournament results describe a policy this edition does not have |
The Mac campaign's headline findings are a useful prior, and this report checks each one on the DGX:
- A dedicated judge lane makes the verifier panel work (Mac: 93 % of shortlisted candidates scored, a correct winner 13 of 13 times one existed). Checked in §4.1.
- Majority vote is fast and fails when most candidates share a mistake (Mac: 9 of 12). Checked in §4.1.
- More diversity hurts single-answer tasks (Mac: medium and high scored 0 of 6 winners). Checked in §4.5.
- The consistency judge over-flags (Mac: precision 0.75). On the DGX the opposite happened: it never flagged anything, because every check timed out (D-14; §4.4).
- Deliberate, batch and bulk dispatched to parked models. That was Mac-specific (rotation); on the DGX the same runners failed for different reasons (§4.6, §4.7).
4. Results
Every table here was computed from the raw records (reports/MODES-BENCH-2026-10-01/runs/, analysed by harness/analyze_grid.py, analyze_dgx.py and analyze_extras.py). The machine is the DGX Spark. The controlled fleet is the one in §2 unless a table says otherwise. Where a mode was measured on both 1.3.2 (as shipped) and a fixed build, both columns are shown.
4.1 Selectors: who picks the winner
Best-of-4 on the ten fixtures, three reps per cell, on 1.3.2. "Correct" means fully correct by the deterministic scorer. "Best available" means at least one candidate in the job was fully correct.
| Selector | Jobs | Winner fully correct | A fully correct candidate existed | Picked the best-scoring candidate | Median wall |
|---|---|---|---|---|---|
verifier_panel (default; dedicated Muse-Glimmer-30B judge) | 26 | 11 | 13 | 22 / 26 | 100 s |
majority_vote (no judge) | 27 | 12 | 15 | 16 / 27 | 33 s |
unit_test (JS fixtures; your own tests) | 5 | 0 | 0 | — (no winner 5 / 5) | 30 s |
What the table says:
- The panel picks the best candidate far more often (22 of 26 against 16 of 27), and it is what separates the two when no candidate is perfect. On
duration,jsduration,semverandledgerno candidate was fully correct. The panel picked the highest-scoring partial answer in 11 of 11 of those jobs; majority vote picked it in 1 of 10. - On "is the winner fully correct" the two are level (11 and 12). Two of the panel's misses are a scorer artefact. Both
factwinners it was "wrong" on fail only the v2 rule's verb keyword: they say the CPU and GPU "access memory directly, without copying" instead of "share a single pool". Read by a person, they are correct. - Majority vote is 3× faster (33 s against 100 s median), because there is no judge seat. When most candidates share a mistake, the majority wins with it. On
semverone job had a fully correct candidate and majority vote picked a 0.34 answer. unit_testnever crowned a failing answer. It returned no winner 5 of 5 times, because no candidate passed every case. That is the honest answer. WithjobQualityExecChecksoff, 1.3.2 accepted the body, raced the whole night and only then refused (D-9, 147 s and 446 tokens for nothing). 1.3.3 refuses it at submit.- Judge coverage, the published weak point, is not a property of the panel; it is a property of the fleet. With a dedicated judge lane, the panel scored 306 of 310 shortlisted candidates (99 %) across 89 panels on 1.3.2, with 15 abstentions and a median of 79 s per panel. On the owner's own fleet, which has no judge lane, it scored 0 of 59 (§4.11, D-17).
The 1.3.3 drift check (one rep of each fixture on the fixed build) matched 1.3.2 on 9 of 10 fixtures. On semver, the one job picked a 0.21 candidate over a 0.63 one.
4.2 Selection policy: no tournament in this edition
The Mac edition has an elimination tournament policy. This edition has none: js/engine/tournament.js does not exist, and attempts are always spread across every lane. On 1.3.2, selection: "tournament" was accepted and silently run as full coverage (rep 1 of each tour8- cell: same attempt spread, same result shape as full8-). On 1.3.3 it is refused with the reason (D-10).
Full coverage at n = 8 against the n = 4 baseline (1.3.2):
| Fixture | n = 4 winner correct | n = 8 winner correct | n = 8 candidates correct | n = 8 median wall |
|---|---|---|---|---|
| wildcard | 2 / 2 | 3 / 3 | — | 139 s |
| semver | 0 / 3 | 1 / 3 | a correct one in 2 / 3 jobs | 358 s |
| ledger | 0 / 3 | 0 / 3 | none | 122 s |
Doubling n bought one correct semver winner out of three, for 1.3× the wall time.
4.3 Quality judge mode: the rubric is the bar, for better and for worse
A frozen written rubric, deterministic checks, and an eligibility gate (Must band).
| Cell | Verdicts (1.3.2) | Eligible attempts | Hidden ground truth |
|---|---|---|---|
| invoice (rubric checks 4 of the 7 fields) | meets_bar 3 / 3 | 4/4, 4/4, 4/4 | winner fully correct 3 / 3 |
| jsroman (Must = 8 of the 16 hidden cases) | below_bar 3 / 3 | 0/4 each | no attempt passed the hidden 16 either: an honest "no" |
| fact | meets_bar 3 / 3 | 11 / 12 | 11 of 12 attempts correct by the v2 rule |
| ledger (rubric deliberately omits the computed fields) | meets_bar 1, partially_meets 1 (2 valid jobs) | 3/4, 4/4 | 0 of 8 attempts correct: the rubric never asked for the closing balance, so a wrong one met the bar |
stop_when_met: 2 on invoice, n = 8 | meets_bar 3 / 3 | — | stopped at 4 of 8 attempts every time; winner correct 3 / 3 |
The two lessons are the Mac's, reproduced on another machine and another fleet:
- The quality mode refuses honestly when nothing meets the bar. It is as good as the rubric, and no better: a rubric that forgets a field lets every wrong answer through.
stop_when_metsaves half the attempts on an easy bar.
On 1.3.2 the quality default level stitched creative persona briefs into factual prompts (M-10). 1.3.3 keeps briefs for creative mode only. The quality cells above were unaffected in score (factual prompts were answered either way), but 1.3.3 no longer sends the briefs.
4.4 Consistency judge mode: from "never checks" to "catches what it is shown"
A five-passage canon about a fictional company. Memos are consistent, carry two planted contradictions, or carry one subtle changed term ("net 60 days" against the canon's "net 28 days"). Ground truth uses fixed contradiction keys on the winner.
| Build | Consistent memo | Planted (founder, year, product) | Subtle (payment terms) | Precision / recall |
|---|---|---|---|---|
| 1.3.2 | "consistent" 3 / 3 | "consistent" 3 / 3 | flagged 1 / 3 | 1.0 / 0.2 |
| 1.3.3 (D-14, D-15 fixed) | consistent 3 / 3 | flagged 3 / 3, citing the right passage | missed 3 / 3 | 1.0 / 0.5 |
| 1.3.4 (D-16 fixed) | consistent 3 / 3 | flagged 3 / 3 | flagged 2 / 3, citing the payment-terms passage | 1.0 / 0.83 |
On 1.3.2 the check never ran: every one of 9 consistency checks timed out and abstained. The check called the Muse judge on a flat 60 s clock with its reasoning on, while the verifier panel gives the same judge reasoning-off and 290 s. The abstention was recorded as verdict: "consistent" (D-14, D-15). The one subtle "flag" on 1.3.2 was not a real flag either. On 1.3.3 the judge runs and catches planted contradictions, but it was only ever shown the top 3 of 5 passages. A profile that restates all five facts pushed the payment-terms passage out of view (D-16).
Fail-closed behaviour is correct on every build. A missing canon_ref is refused at submit. On 1.3.2 an unindexed one ran the whole night and errored at the end, throwing away the selected winner (D-4); on 1.3.3 it is refused at submit with canon_ref_unretrievable.
4.5 Creative judge mode
Two open prompts (a four-line poem, a café name and pitch), n = 8, three reps on each build.
| Build | Spread label | No single winner | Shortlist | Clusters | Median wall |
|---|---|---|---|---|---|
| 1.3.2 | wide 6 / 6 | 6 / 6 | 5–7 of 8 | 4–7 | 125 s |
| 1.3.3 | wide 6 / 6 | 6 / 6 | 6–7 of 8 | 5–8 | 130 s |
Creative mode does what it says: it keeps the variety, and it never collapses to one answer.
4.6 Diversity and attempt budget
On semver (the fixture this fleet finds hardest), n = 4. 1.3.2: three reps; 1.3.3: two.
| Cell | Mean candidate score 1.3.2 | 1.3.3 | Winner correct 1.3.2 / 1.3.3 | Tokens per job 1.3.2 |
|---|---|---|---|---|
| level low (the default) | 0.55 | 0.70 | 0/3 · 0/2 | 2 534 |
| level medium | 0.45 | 0.63 | 0/3 · 0/2 | 2 429 |
| level high | 0.38 | 0.59 | 0/3 · 2/2 | 2 220 |
| medium + briefs axis only | 0.30 | 0.50 | 0/3 · 0/2 | 2 389 |
| medium + temperature only | 0.61 | 0.59 | 0/3 · 1/2 | 2 064 |
| medium + postures only | 0.61 | 0.51 | 0/3 · 0/2 | 1 685 |
| medium + synthesis only | 0.49 | 0.59 | 0/3 · 0/2 | 1 862 |
| budget low / mid / high / max | 0.46 / 0.61 / 0.51 / 0.62 | 0.59 / 0.42 / 0.63 / 0.59 | 1/3, 1/3, 0/3, 0/3 · 0/2, 0/2, 0/2, 2/2 | 1 515 – 1 830 |
diversity: off with n > 1 | refused at submit ("generates n near-identical samples") |
- On 1.3.2, more diversity lowered the mean candidate score at every step (0.55 → 0.45 → 0.38), as on the Mac. The persona-briefs axis was the worst single axis on both builds.
- 1.3.3 removes persona briefs from non-creative nights (M-10), and the level effect weakened (0.70 → 0.63 → 0.59).
- The 2 / 2 correct winners for
highandbudget-maxon 1.3.3 rest on 2 correct candidates out of 8 each, and do not repeat on 1.3.2. That is noise at this sample size, not a finding. - The attempt budget showed no trend: no attempt hit the length limit at any level.
Leave diversity at its default for single-answer work.
4.7 Deliberate: from "answers with a progress note" to "the fastest correct answer here"
One Markovian chain per job, on five prompts, three reps per build.
| Fixture | 1.3.2 answer correct | 1.3.2 chunks / wall | 1.3.3 answer correct | 1.3.3 chunks / wall | best-of-4 (1.3.2) |
|---|---|---|---|---|---|
| fact | 0 / 3 | 2–9 / 92–620 s | 3 / 3 | 1 / 5 s median | 1/3 by the v2 rule, 54 s |
| invoice | 0 / 3 | 4–9 / 277–460 s | 3 / 3 | 1 / 21 s | 2/2, 56 s |
| wildcard | 0 / 3 | 3–12 / 220–1 299 s | 2 / 3 | 2–4 / 46–747 s | 2/2, 124 s |
| semver | 0 / 3 | 1–8 / 22–495 s | 0 / 3 | 2–9 / 50–1 714 s | 0/3, 278 s |
| ledger | 0 / 3 | 1–2 / 8–25 s | 0 / 3 | 1 / 8 s | 0/3, 103 s |
On 1.3.2 deliberate never gave a correct answer, and for a reason unrelated to the models. After answering in chunk 1, a mid-size model does not write [TASK_COMPLETE]. It writes bare status blocks in the carryover format ("COMPLETED: … REMAINING: … DECISIONS: …") without the checkpoint marker, the chain keeps going, and the last chunk, a progress note, became the answer (D-13). A one-paragraph fact took 620 s and nine chunks to say nothing. On 1.3.3 a status-only chunk counts as no new work, a state that says nothing remains finishes the chain, and a status note is never the answer. The same prompts now finish in one chunk, correctly, in 5 s (fact) and 21 s (invoice): faster than any best-of-n here.
What stays a design limit, reported rather than changed:
- Deliberate has no selector. On
semver(1.3.3 rep 1) the chain refined its code over nine chunks, scoring 8, 10, 13, 0, 15, 0, 17, 0 and 14 of 19 cases, and answered with chunk 9 (14/19) when chunk 7 had 17/19. - The "long build task in bounded chunks" framing splits a short code answer across chunks.
Resume after a crash (M-2) and the stall stop (M-8) are fixed with engine tests. The live kill test could not run here: this session's permissions do not allow killing the engine host.
4.8 Batch
The ten fixtures as ten requests in one job, three reps. "Bad" inserts an over-long request at position 5.
| Build | Landed | Correct (good requests) | Requests / min | The bad request |
|---|---|---|---|---|
| 1.3.2 | 10/10, 10/10, 10/10 | 4, 5, 4 of 10 | 6.0–7.8 | failed alone 3 / 3, but the job said partial: false |
| 1.3.3 | 10/10 ×3; with the bad one 10/11 ×3 | 6, 5, 5 of 10 (good) · 4, 5, 5 (bad runs) | 5.6–6.7 | failed alone 3 / 3, partial: true with landed, failed and fail_reasons |
Batch isolates a bad request correctly on both builds. On 1.3.2 the record hid the failure (M-4). On 1.3.3 a failing request is also retried once on another lane, and a lane that fails twice stops claiming (M-5, engine tests). Correctness per request is the fleet's, the same as a single attempt: about half the fixtures are beyond these 8–14B models.
4.9 Bulk
A corpus of 20 generated receipts with an answer key; one unit per receipt, judge off. 1.3.3.
| Cell | Units done | Units correct | Duplicates | Units / hour |
|---|---|---|---|---|
units_in_flight 1 (×3) | 20, 20, 20 | 20, 20, 20 | 0 | 990–1 418 |
units_in_flight 2 (×3) | 20, 20, 20 | 20, 20, 20 | 0 | 959–1 310 |
units_in_flight 4 (×3) | 20, 20, 20 | 20, 20, 20 | 0 | 819–1 509 |
| pause after 5, resume after 20 s | 20 | 20 | 0 | 973 (during the pause: 5 done, 2 finishing, 13 queued) |
| convert to Markdown (no model) | 20 | — | 0 | 8 292 |
| convert to PDF (no model) | 20 | — | 0 | 6 721 |
Bulk is the most dependable mode on the DGX: 220 of 220 extraction units correct, a coverage ledger that adds up, a lossless pause. units_in_flight did not change throughput on units this small (each unit is about 3 s of model time). Model-free conversion needs no lane at all.
4.10 Windows, gates and stops
| Case | 1.3.2 | Fixed build |
|---|---|---|
deadline 45 s, n = 16 | finished 132–300 s after submit, up to 255 s past the deadline; no stopped label | 47–59 s; judge skipped past the deadline; partial, stopped: deadline; winner correct 2 / 3 |
deadline 120 s, n = 16 | 197–241 s | 131–141 s, 13–14 of 16 attempts, stopped: deadline; winner correct 3 / 3 |
stop.no_new_cluster_after: 2, n = 8 | stopped at 5 of 8, 3 / 3; winner correct 3 / 3 | stopped at 4–5 of 8; winner correct 3 / 3 |
start_gate: "idle" | — | held with queue_reason: idle_gate, estimated_start: null (1.3.2 claimed "now", M-9) |
window: "quiet" | — | held with queue_reason: recent_sync_traffic, estimate 22:00 local |
scheduled_start +90 s | — | started 21 s late: the scheduler ticks every 30 s (open, minor) |
On 1.3.2 the deadline stopped generation but not the judge (M-11); the panel alone could take 209 s.
One property of this box shapes every window. An outside app (meterless-city-npc) chats through the local endpoint every few seconds: 3 937 turns during the campaign. The scheduler therefore saw "recent sync traffic" almost constantly. Quiet-window jobs waited, and most of the 1.3.3 runs ran in the Depth posture. That is how a real owner's box looks.
4.11 The owner's own fleet: better models, no judge
motion-q4 as the owner runs it: Qwen3.8-27B, Qwen2.5-14B, VibeThinker-3B and MiniCPM5-1B racers, a 37 GB video lane, no judge lane. Best-of-4 on six fixtures, three reps, on 1.3.2.
| Fixture | Controlled fleet: winner correct | Owner fleet: winner correct | Owner: candidates correct | Controlled wall | Owner wall |
|---|---|---|---|---|---|
| wildcard | 2 / 2 | 2 / 3 | 8 / 12 | 124 s | 200 s |
| invoice | 2 / 2 | 2 / 3 | 9 / 12 | 56 s | 121 s |
| semver | 0 / 3 | 1 / 3 | 2 / 10 | 278 s | 685 s |
| ledger | 0 / 3 | 3 / 3 | 5 / 12 | 103 s | 177 s |
| jsroman | 1 / 3 | 0 / 3 | 3 / 11 | 100 s | 498 s |
| fact | 1 / 3 (v2 rule) | 3 / 3 | 11 / 12 | 54 s | 121 s |
The owner's 27B solves what the controlled fleet cannot (ledger 3/3, a semver), at 2–5× the time, most of it reasoning. But the panel never judged on this fleet: 0 of 59 shortlisted candidates scored in 18 jobs. With no judge lane, the picker chose VibeThinker-3B, a thinking racer that sits in the lane named verifier and ignores the reasoning-off switch. All 18 panels came back unparseable, so every winner on the owner's fleet was the fallback pick (the largest cluster). This is the mechanism behind the public page's "8 % judge coverage" (D-17). 1.3.4 replaces an unusable judge inside the panel and strikes it for later panels. On 1.3.4 the same six fixtures, one rep each: the panel scored 17 of 20 shortlisted candidates (85 %). VibeThinker came back unparseable on the first panel and was struck; Qwen3.8-27B judged the other five (recorded as a racer-judge, median 21 s). Winners were correct on 5 of 6 fixtures, including semver and jsroman, which this fleet's 1.3.2 runs got wrong.
4.12 Makes: apps, gate repair, refine
App generation. An offline to-do app prompt, n = 4 × 3, 12 attempts (1.3.3):
| Stage | Count |
|---|---|
| static-valid (our check) | 12 / 12 |
| runs in headless Chrome without errors | 11 / 12 |
| functional (adds an item, toggles it, keeps it across a reload) | 6 / 12 |
| the product's own runtime tier (sandbox verdict) | runs 12 / 12 |
the product's make says verified | 12 / 12 |
| functional after the make | 7 / 12 |
The DGX has the runtime tier the Mac lacks: every attempt was loaded in the verification sandbox (sandbox_verify, tier runtime). But the tier checks that the page runs, not that it works: it clicks nothing. "Verified" here means "loads without an error", and half of the verified apps did not do the job.
Gate repair of seeded broken apps (the correct app with a defect planted, repair_rounds: 2):
| Defect | Seeds kept by the model | Repaired to a working app | Product "verified" |
|---|---|---|---|
| syntax error | 6 / 6 | 4 | 6 |
| missing click handler | 6 / 6 | 6 | 6 |
| truncated mid-script | 3 / 6 | 3 | 3 |
On the Mac a missing handler passed the static gate and was never repaired (0 of 7). Here the repair loop fixed all 6. The two unrepaired syntax seeds were still marked verified.
Refine (artifact.refine.code on a seeded off-by-one bug): 6 of 6 fixed (5/7 → 7/7 cases), no regressions.
4.13 Synthesis and reports
On a creative night with 7 clusters (job_muq91i830d), every cluster report in the deterministic "cut" mode completed in under a second, citing the cluster's members. The night report completed in "cut" mode in 0.5 s, and in curator mode in 294 s on the judge seat. A curator synthesis could not be bound by hand on this fleet. Every local lane holds 32k per slot, the floor for a local curator is 100k, and the product refused with curator_window_too_small. That is correct, and named.
4.14 Rerun, continue and Methods
- Rerun: 9 reruns of three grid jobs. The winner's correctness was the same 9 / 9 times. The wording was never identical (median word overlap 0.91).
- Continue: on 1.3.3, continuing a night was impossible on this fleet. The plan picked the judge seat as curator (the documented fallback when no lane clears the floor), and the verb then refused that same lane
curator_window_too_small(D-18). On 1.3.4: on 1.3.4 the verb was accepted (202) and bound the judge seat. The interlude ran the parent's 7 cluster synopses and its insight pack on that seat (34 minutes: the Muse judge is slow, and one at a time). The child night then raced 8 attempts in 4 minutes with the sealed insight pack folded in (tiers from 4 043 down to 159 tokens) and, creative like its parent, returned a wide spread and a shortlist of 6 (job_murw0n0i0h). - Methods: a 24-attempt creative night was mined into a Method. A mined Method starts as a
candidateand is never applied automatically; reuse is refused until it is promoted (409, by design). After promotion on 1.3.4: the Method was promoted toprovisional(200), and reuse was then refused, 409method_incompatible: "requires 3 racing lanes with distinct families; fleet modes-dgx provides 2". The Method was mined from nights that raced three model families, and this fleet has two (Qwen, Llama). That is a sound check, and it means reuse could not be measured on this fleet.
4.15 Auto
Auto, resolved exactly as the composer resolves it, then run as planned:
| Task | Auto's plan | Wall | Result |
|---|---|---|---|
| fact (≤ 80 words) | n = 256, diversity high, budget max | 29 min | winner correct; 179 / 256 candidates correct |
| invoice extraction | n = 256, high, max | 40 min | winner correct; 227 / 256 |
| wildcard code | n = 256, high, max | cancelled at the harness's 60 min limit, 230 / 256 landed | 150 / 229 correct |
The best-of-4 baseline got the same three right in 49–114 s. Auto sizes the night by the clock, not the task: it plans "until morning" for a one-paragraph answer. That repeats the Mac's finding on a box 7× larger. The results are right, at 35–45× the time and 55–95× the tokens of a best-of-4.
4.16 Media autopilot
On the controlled fleet (no image model seated), a winner-mode image deliverable made two image makes. Both failed honestly ("no image model is available for a one-shot still — seat an image lane"). On 1.3.2 the families-only body was accepted and made nothing silently (M-13). On 1.3.3 it records outputs: ['image'], derived from media_autopilot.families. Image quality itself was not re-measured here (the job store holds 138 completed image makes from earlier DGX runs).
4.17 Watchers and schedules
A folder watcher (5-minute cadence, debounce 2) on an uploaded corpus, with controlled edits over 46 minutes, beside a 5-minute interval schedule:
| Result (1.3.3) | |
|---|---|
| Interval schedule | fired 9 times in 46 min, on time |
| Watcher | 0 fires, 1 observation (the manual check); its next run stayed at 08:37 for 46 minutes; 3 real content changes missed |
The watcher defers observation while the scheduler sees recent sync traffic, and on this box that never stopped (§4.10). The deferral had no bound (D-19). The fix bounds it at one cadence interval, and ships in 1.3.5. On the Mac, without that traffic, the same test fired 3 of 3.
5. Across modes
The same tasks, different modes (controlled fleet; 1.3.2 unless marked):
| Mode | invoice winner correct | fact winner correct | wildcard winner correct | Median wall (wildcard) | Tokens per job (median, all fixtures) |
|---|---|---|---|---|---|
| best-of-4 + panel (baseline) | 2/2 | 1/3 (3/3 by reading) | 2/2 | 124 s | 543 |
| best-of-4 + majority vote | 3/3 | 3/3 | 2/3 | 42 s | 529 |
| full coverage, n = 8 | — | — | 3/3 | 139 s | 1 247 |
| deliberate, 1.3.2 | 0/3 | 0/3 | 0/3 | 966 s | 828 |
| deliberate, 1.3.3 | 3/3 | 3/3 | 2/3 | 314 s | — |
| quality (rubric) | 3/3 | 3/3 | — | — | 404 |
| Auto as planned (n = 256), 1.3.3 | 1/1 | 1/1 | cut off at 60 min | > 3 600 s | 30 000–51 000 |
| owner fleet best-of-4 (27B), no judge | 2/3 | 3/3 | 2/3 | 200 s | — |
How each mode compares with best-of-n (the first campaign's subject, ../NIGHTSHIFT_BENCHMARKS.md):
- On a short, checkable task, one deliberate chunk (fixed) or a majority vote are the cheapest correct answers here: 5–21 s and 9–18 s against 50–60 s.
- On a task where most candidates are wrong, only the panel finds the best partial answer (11 of 11 against 1 of 10), and only better models (the owner's 27B) produce a correct one.
- More attempts (n = 8), more diversity and Auto's n = 256 all cost more without moving the hard fixtures. The exception is one
semverwin in three at n = 8.
Where a comparison is not fair:
- The owner-fleet row uses different racers and has no judge.
- Auto's rows ran with heavy outside chat traffic.
- The deliberate rows on the two builds are different code.
The table names each.
6. Strengths
- A dedicated judge lane makes the verifier panel work on the DGX too. It scored 99 % of shortlisted candidates (306 of 310) and picked the best-scoring candidate 22 of 26 times. On the four fixtures nobody solved, it picked the best partial answer 11 of 11 times, against 1 of 10 for majority vote. This is the single most useful configuration choice on this box.
- Refusals are honest and early. On 1.3.3, 11 of 11 malformed or unavailable requests are refused at submit with a reason:
- a missing rubric or
canon_ref; - an unindexed canon;
unit_testwithout exec checks;- an unknown judge mode;
- diversity
max; selection: "tournament";units_in_flight: 9;- submitting
app_streamorcomposition; - a bad
start_gate. - Bulk is dependable: 220 of 220 units correct, 0 duplicates, a lossless pause, and model-free conversion at 6 700–8 300 files an hour.
- Repair works:
- Gate repair turned all 6 seeded missing-handler apps and 4 of 6 syntax-broken ones into working apps.
- Refine fixed 6 of 6 seeded code bugs without a regression.
- Stops save compute.
stop_when_met: 2andno_new_cluster_after: 2both ended n = 8 jobs at 4–5 attempts, with correct winners. - Batch isolates a bad request. The other requests landed in every run.
- Fixes land cleanly. 35 defects were fixed (15 of the Mac campaign's that were present in this tree, and 20 new), each with a regression test that fails on the unfixed build. The full JS suite went from 4 331 to 4 448 tests, all passing at each cut. 17 of the fixes were re-measured live (§7).
7. Weaknesses and open problems
Defects found in this campaign. "Fixed" means a regression test that fails on the previous build and passes on the fix, a green full suite, and a built and installed deb. "Live" means the fix was re-measured on the installed build. Full evidence, with file and line references: reports/MODES-BENCH-2026-10-01/DEFECTS.md.
| # | What was wrong (evidence) | Status |
|---|---|---|
| D-14, D-15 | Every consistency check abstained (60 s clock, judge reasoning on) and the abstention read as "consistent"; planted contradictions passed 3/3 | Fixed in 1.3.3; live: planted flagged 3/3 |
| D-16 | The consistency judge was shown a fixed top 3 of 5 canon passages and missed the contradicted 4th (subtle case 0/3) | Fixed in 1.3.4; live: subtle case flagged 2 / 3, recall 0.83 |
| D-17 | On the owner's fleet the panel scored 0 of 59 candidates: an unparseable thinking racer was always picked as judge | Fixed in 1.3.4; live: the owner fleet's panel scored 17 of 20 (85 %) |
| D-13 | Deliberate answered short prompts with a progress note after up to 9 chunks (0/15 correct) | Fixed in 1.3.3; live: fact 3/3 in 5 s, invoice 3/3 |
| M-11 | A 45 s deadline finished up to 255 s late; the judge ignored it | Fixed in 1.3.3; live: 47–59 s |
| D-11, D-12 | Under load, a timed-out model probe wiped the model list: 9 of 171 jobs lost every attempt in < 1 s and said "completed" | Fixed in 1.3.3; live: 0 wiped jobs in the 1.3.3 and 1.3.4 runs |
| D-8, D-8b | A job started right after a fleet switch raced the old fleet's lanes, then (once fixed) failed on a stale model list | D-8 fixed and live in 1.3.3; D-8b fixed in 1.3.4, live: a job submitted 1 ms after the switch raced all three new lanes |
| D-18 | "Continue a night" refused on every all-32k fleet (the plan's judge-seat curator was refused at bind) | Fixed in 1.3.4; live: continue accepted (202), the judge seat bound, the child night created |
| D-19 | Watchers never observe while an outside app chats through the proxy (0 observations in 46 min) | Fixed in source; ships in 1.3.5 (not yet installed, not re-measured) |
| D-9, D-10 | unit_test without exec checks raced the night before refusing; tournament accepted and ignored | Fixed in 1.3.3; live: refused at submit |
| D-4, M-4, M-9, M-13 | Unindexed canon ran the night; batch hid failures; held jobs said "start now"; media families-only made nothing | Fixed in 1.3.3; live |
| M-2, M-3/D-1, M-5, M-6, M-7, M-8, M-10, M-14/15, M-17, M-18, W-1, D-2, D-3, D-5, D-6, D-7 | The Mac campaign's defects present in this tree, plus related ones found reading the same code | Fixed in 1.3.3 with engine tests; not all re-measured live (the engine-host kill test was not permitted here) |
Weaknesses that are not code defects:
- "Verified" means "runs", not "works". The DGX's sandbox tier loaded every generated app and marked all 12 verified; 6 of them did the job. It needs an interaction check.
- Thinking racers spend most of a short job reasoning (T-1). The owner's 27B reasoned 599 s on one prompt before its thinking-off retry answered in 48 s. The product learns to turn thinking off for a lane only within one job.
--reasoning-budget 0on the lane does not help on this llama-server build (T-2). - The owner's fleet is at its memory ceiling. After the 1.3.3 restart its 1B router lane was refused admission by about 300 MB; on 1.3.4 the 37 GB video lane was. Its lanes' measured footprints have grown as they ran.
- Auto sizes by the clock. It plans n = 256 for a one-paragraph fact.
- Deliberate has no selector. It answers with its last real chunk, even when an earlier one was better.
- A rubric that omits a field passes every wrong answer.
- Steady outside chat traffic keeps this box out of its night posture, which delays quiet-window jobs and starved watchers (D-19).
8. What the numbers say
On a DGX Spark, as it ships in 1.3.2, the job modes split three ways:
- Some work well: best-of-n with a dedicated judge lane, majority vote, bulk, batch isolation, quality mode with a careful rubric, creative mode, refine, and the stop conditions.
- Some did not do what they say, and now do:
- Deliberate answered with progress notes.
- Consistency never checked.
- Deadlines overran by minutes.
- Continue was impossible on 32k fleets.
- The owner's own panel judged nothing.
- Some are honest but costly: Auto's 256-attempt plans, and the owner's thinking racers.
What to use, on this box:
| Job shape | Use | Settings that worked here | Expect |
|---|---|---|---|
| One checkable answer | best_of_n + verifier_panel | n = 4, a dedicated non-racing judge lane | 1–2 min; the best available candidate 22 of 26 times |
| A short fact or extraction, cost matters | majority_vote, or deliberate (1.3.3+) | n = 4; one chain | 5–20 s; majority vote fails when most share a mistake |
| A folder of files | bulk | units_in_flight 1–2 is enough for small units | about 1 000 units an hour, all accounted for |
| Many independent asks | batch | — | 6–7 requests a minute on three 8–14B lanes; a bad request fails alone |
| A written bar | quality | a rubric that checks every field that matters; stop_when_met | stops at half the attempts when the bar is easy |
| Must not contradict known facts | consistency (1.3.4) | an indexed canon | catches planted contradictions; check the 1.3.4 row in §4.4 |
| Finish by a time | deadline (1.3.3+) | — | on time, labelled partial |
| Turn an answer into an app | attempt.app.html with repair | repair_rounds: 2 | half of "verified" apps work; check them |
| Plan the night for me | Auto | — | correct but n = 256: 30–60 min for a minute's work |
What would change the picture:
- an interaction step in the sandbox's runtime tier;
- learned thinking-off across jobs;
- a fleet-level judge seat as the default on the owner's fleet (or D-17's re-pick, now shipped);
- a re-measure of the watcher on 1.3.5.
The gallery
The benchmark folder that ships with this report (Benchmarks/) holds a single-file 3D gallery (index.html) and the best jobs generated so far, each an unmodified Nightshift export (GET /v1/jobs/{id}/export), unzipped and renamed in JOBS/. Opened from disk, the gallery draws the jobs as a night sky: every star is a job, coloured by task; the moons circling it are the models that raced for it, and the gold one won. Selecting a star shows the ask, the race, every candidate's answer side by side, the scores, the residency plan, what the job made, and a link to the job's full offline replay.
| Folder | Mode | Task | Fleet | Job time | Attempts | Correct | Why this job |
|---|---|---|---|---|---|---|---|
23-deliberate-fact-modes-dgx | deliberate | fact | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 5 s | 1 | ✓ | One chain answered the unified-memory question in one chunk, correctly, in 5 s. The same prompt on 1.3.2 ran up to 9 chunks and answered with a progress note (D-13). |
24-deliberate-fact-modes-dgx | deliberate | fact | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 10 m 20 s | 9 | ✗ (flagged) | Before D-13: 9 chunks and 620 s for an 80-word answer; chunk 1 held the answer, and the job returned chunk 9, a "COMPLETED / REMAINING" status note. |
25-majority-vote-extract-modes-dgx | majority vote | extract | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 17 s | 4 | ✓ | No judge: the largest agreeing group wins. Three of four extractions agreed and were right, in 17 s. |
26-verifier-panel-code-modes-dgx | verifier panel | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 1 m 54 s | 4 | ✓ | The default selector with a judge that never races: every shortlisted candidate scored, the correct wildcard matcher picked. |
27-unit-test-code-modes-dgx | unit test | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 38 s | 4 | — (flagged) | Your own JavaScript tests run against every attempt. None passed all 16, so there is no winner: the selector never crowns a failing answer. |
28-full-coverage-n-8-code-modes-dgx | full coverage n = 8 | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 5 m 13 s | 8 | ✓ | Eight attempts across three lanes found the one fully correct SemVer comparator, and the panel picked it. |
29-quality-judge-extract-modes-dgx | quality judge | extract | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 64 s | 4 | ✓ | A written bar with deterministic checks: all four attempts eligible, verdict meets_bar, the winner fully correct on all seven fields. |
30-consistency-judge-fact-modes-dgx | consistency judge | fact | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 2 m 27 s | 4 | — | A memo with planted contradictions (founded 2005 by someone else, sells power tools): flagged contradicts_canon, citing the founding passage. On 1.3.2 every such check abstained. |
31-consistency-judge-fact-modes-dgx | consistency judge | fact | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 1 m 32 s | 4 | — | The subtle case, net 60 days against the canon's net 28: flagged, citing the payment-terms passage the judge was never shown on 1.3.3. |
32-creative-judge-fact-modes-dgx | creative judge | fact | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 2 m 19 s | 8 | — | Café names for a night-only café: no single winner by design, a wide spread, a shortlist of 7. |
33-diversity-high-code-modes-dgx | diversity high | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 3 m 08 s | 4 | ✓ | High diversity, one of the two runs where a correct SemVer candidate appeared and won. Across both builds, more diversity lowered the mean candidate score. |
34-stop-when-no-new-cluster-code-modes-dgx | stop when no new cluster | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 88 s | 4 | ✓ | Stopped after 4 of 8 attempts when the answers stopped finding anything new; the winner is correct. |
35-deadline-code-modes-dgx | deadline | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 47 s | 6 | ✓ | Finished in 47 s, labelled partial with stopped: deadline; the judge was skipped past the deadline. On 1.3.2 the same cell ran up to 300 s. |
36-batch-extract-modes-dgx | batch | extract | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 1 m 43 s | 10 | — | Ten fixtures and one request too long for any lane: the bad one failed alone, the other ten landed, and the job says partial with landed 10 / failed 1. |
37-bulk-extract-modes-dgx | bulk | extract | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 48 s | 20 | — | Twenty receipts, one unit each: 20 of 20 extracted correctly, no duplicates, in 48 s. |
38-gate-repair-code-modes-dgx | gate repair | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 67 s | 2 | — | A to-do app with its click handler removed on purpose: the repair loop restored it, and the app adds, toggles and keeps items across a reload. |
39-refine-code-modes-dgx | refine | code | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 30 s | 2 | — | A merge_intervals with an off-by-one on touching intervals: refined from 5 of 7 to 7 of 7 cases, nothing else changed. |
40-auto-extract-modes-dgx | auto | extract | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 39 m 44 s | 256 | ✓ | Auto planned 256 attempts for one invoice extraction: right answer, 40 minutes. A best-of-4 got it right in under a minute. |
41-owner-fleet-code-motion-q4 | owner fleet | code | Owner's fleet: Qwen3.8-27B, Qwen2.5-14B, VibeThinker-3B, MiniCPM-1B, no judge lane | 11 m 15 s | 3 | ✓ | The owner's fleet: the 27B found the SemVer comparator, and on 1.3.4 the panel judged it (the 27B as judge, recorded as a racer; the unparseable 3B was struck after the first panel). On 1.3.2 this fleet's panel scored 0 of 59. |
42-continue-fact-modes-dgx | continue | fact | Modes bench (DGX): Qwen2.5-Coder-14B, Qwen2.5-14B, Llama-3.1-8B + Muse judge | 4 m 16 s | 8 | — | The café night continued: the judge seat curated the parent's 7 clusters into an insight pack, and the child night raced 8 more attempts with it folded in. On 1.3.3 the same verb was refused on this fleet. |
Methodology notes and sources
Raw data is all under reports/MODES-BENCH-2026-10-01/ in the DGX source tree, copied to the USB drive. There is one JSON record per job, a bench.log per run, and a memory, load and GPU sample every 5 s (samples.jsonl).
| Run | What it holds | Build |
|---|---|---|
runs/smoke-1, runs/smoke-2 | the owner's racers with a judge, and the first controlled fleet (thinking 27B), that motivated the controlled fleet | 1.3.2 |
runs/grid-1.3.2 (+ grid-1.3.2-rerun) | the controlled grid: 64 cells × 3 plus batch, 171 jobs; 9 wiped jobs (D-11) re-run once each | 1.3.2 |
runs/refusals-1.3.2, runs/owner-1.3.2 | the fail-closed checks (and D-9 live); the owner fleet, 18 jobs | 1.3.2 |
runs/grid-1.3.3, runs/refusals-1.3.3, runs/extras-1.3.3*, runs/bulk-1.3.3, runs/watch-1.3.3, runs/d8-live-1.3.3 | post-fix grid (judge modes, deliberate, stops, batch ×3; diversity ×2; best-of-n drift ×1); every extra; bulk; the watcher | 1.3.3 |
runs/owner-1.3.4, runs/grid-1.3.4, runs/d8-live-1.3.4, runs/extras-1.3.4, runs/methods-1.3.4 | the D-8b, D-16, D-17, D-18 re-measures and Method reuse | 1.3.4 |
Harness, fixtures and analysis (harness/):
mode-bench.mjs,extras.mjs,bulk.mjs,watch.mjs,resume.mjs,refusals.mjs,d8-live.mjs,methods-reuse.mjsandlib.mjs, ported from the Mac campaign (~/nightshift-build/bench/modes/on the Mac);fixtures/suite.mjs(prompts and scorers), with the DGX additionssemverandledger, plusfixtures/apps.mjsandfixtures/corpus20*;analyze_grid.py,analyze_dgx.py,analyze_extras.py,inventory.py;PROTOCOLS.md, written before any grid result was read;RUNLOG.md, every run, install, setpoint change and confounder, with times;DEFECTS.md, every defect with file and line evidence, its fix, its test and its live re-measure.
Builds:
| Build | What it carries | Status at the end |
|---|---|---|
| 1.3.2 | as shipped | measured, then replaced |
| 1.3.3 | 30 fixes: the 15 Mac-campaign defects present here (M-2 … M-18, W-1) and D-1 … D-15 | installed by the operator 2 October, measured |
| 1.3.4 | D-8b, D-16, D-17, D-18 | installed by the operator 3 October, measured |
| 1.3.5 | D-19 (watcher deferral bounded) | built and verified; not installed during the campaign |
Each release note is in src-tauri/target/releases/<v>/RELEASE.md (copies in reports/RELEASE_<v>.md). Each release:
- passed the full JS suite (4 331 → 4 448 tests; the only failures across all cuts were two timing tests under parallel load, each passing alone);
- passed check-jsx,
cargo testformeterless-coreandmeterlessd, and the media packaging test; - shipped engine files byte-identical to source, checked by
cmpof the core deb anddist/.
1.3.3 and 1.3.4 were rebuilt in place before installation when the benchmark found more defects; none of those builds was ever installed in between.
DGX vs Mac. The Mac campaign (mac-reference/) measured the same modes on a 16 GB Apple M5 with small models that rotate through memory. Its findings that hold here:
- a dedicated judge lane is what makes the panel work;
- majority vote is fast and brittle;
- more diversity hurts single-answer tasks;
- a rubric passes what it forgets to check;
- Auto sizes by the clock.
Its findings that do not hold here:
- tournament selection (not in this edition);
- deliberate, batch and bulk dispatching to parked models (nothing rotates here);
- the consistency judge's false alarms (here it first never ran, then never cried wolf: precision 1.0).
None of the Mac's fixes were in this tree: each was re-derived here where the bug existed.
Confounders we know about (times in RUNLOG.md):
- An orphaned headless Chrome from an earlier session rendered a WebGL page in software at about 4 cores for the whole campaign. This session's permissions did not allow stopping it.
- An outside app (
meterless-city-npc) sent 3 937 chat turns through the local endpoint during the campaign. Most arrived after 1 October 23:00 UTC, i.e. during the 1.3.3 and 1.3.4 runs. - Two fix agents, five full test-suite runs and seven release builds overlapped parts of the runs.
- The posture changed with the quiet window: 47 grid jobs ran in Swarm, the rest in Depth.
- Two lanes were added to the controlled fleet by the operator at 09:11 UTC on 2 October. The tail of the watcher test ran with them.
Correctness columns are unaffected by any of these. Time columns carry medians with ranges, and modes are not ranked by speed within tens of seconds.
Limitations:
- Three repetitions per cell (two for the 1.3.3 diversity cells) show failures and large effects. They cannot rank close settings.
- The controlled fleet is three 8–14B models. Several fixtures have no fully correct candidate at that size, so those comparisons rest on partial credit.
- The app runtime check (add, toggle, persist) is the harness's own headless Chrome, not the product's.
- Not measured live:
- the deliberate resume after an engine kill (killing the engine host was not permitted to this session; engine tests cover M-2);
- Method reuse (the mined Method needs three model families, and the controlled fleet has two);
- the watcher fix (1.3.5 not installed);
- electricity.
- The sync chat router is out of scope.