Measured on apps it never saw.
Every number here comes from held-out test sets: simulated apps the model was not trained on, and real apps run in Chromium that were kept out of training. Each recall sits next to its false-intervention rate, so you can see what you are trading. The shipped runtime is 0.2.1 with model 0.2.0 (r17-v2dT) at the balanced profile, report threshold 0.90; numbers from the previous model, 0.1.0 (r17-v2b), are labelled as such.
duplicate submits detected on unseen real apps, with 30% of stale overwrites and 6% of broken state
model 0.2.0, balanced (shipped)guard and heal false interventions at the shipped profile, held-out simulated apps; the targets are 0.1% and 0.5%, met at cautious (0.005% · 0.26%)
model 0.2.0false interventions on held-out real apps, at every profile
model 0.2.0 · guard and healnon-passive actions on correct apps in 1,760 guard and heal runs; 0 bugs introduced in 3,510 runs
compatibility matrix · runtime 0.1.0-beta.4 (shipped as 0.2.1), model 0.2.0, balancedPrevious model 0.1.0, observe mode at report threshold 0.70: 96% detection precision on the same 16,600 held-out situations, with 0.62% false detections on clean traffic. Precision for the shipped model 0.2.0 at its 0.90 threshold has not been published yet.
The full picture.
| cautious | balanced | eager | |
|---|---|---|---|
| Guard, false interventions | 0.005% | 0.13% | 0.54% |
| Guard, recall on real apps | 1.4% | 7.5% | 21.0% |
| Heal, false interventions | 0.26% | 0.59% | 1.84% |
| Heal, recall on real apps | 3.8% | 10.4% | 24.2% |
| Report threshold | 0.95 | 0.90 | 0.70 |
| Class | Precision | Recall |
|---|---|---|
| slow | 0.94 | 0.91 |
| transient | 0.88 | 0.81 |
| failing | 0.95 | 0.78 |
| stale | 0.87 | 0.57 |
| conflict | 0.89 | 0.54 |
| inconsistent | 0.97 | 0.53 |
| duplicate | 0.80 | 0.49 |
One WASM thread, 500-token situation: about 180 ms for R17 (182 ms for the shipped 0.2.0 export), 569 ms for R32. WebGPU and multi-threaded WASM are faster, and normal traffic makes no model calls.
clean runs untouched by the v1 runtime, which held store writes. Not good enough: the React/Redux RealWorld app never rendered its home feed.
clean runs unchanged with the v2 runtime installed, which decides at the network boundary: 66 real apps × 6 seeds, always-passive model. With the real model, the compatibility matrix counts 0 non-passive actions on correct apps in 1,760 guard and heal runs.
| Setting | off | observe | guard | heal | actions guard / heal | FI guard / heal |
|---|---|---|---|---|---|---|
| balanced (default) | 72% | 70% | 72% | 73% | 2 / 3 | 0 / 0 |
| cautious | – | – | 72% | 77% | 0 / 0 | 0 / 0 |
| eager | – | 72% | 73% | 75% | 6 / 12 | 2 / 0 |
requests.ignore drops traffic you do not want observed and policy.thresholds.report trims the rest.Precise when it acts, and it rarely acts.
GenClass is tuned to almost never be wrong when it acts. At the default setting guard acts on 7.5% of the real cases where acting would help; the eager setting reaches 21%. Each training round so far has lifted recall at the same safety level, and the main value today is in what it reports.
| Target | Now (model 0.2.0, held-out test) |
|---|---|
| Guard false interventions ≤ 0.1% | missed at balanced, the default (0.13%); met at cautious (0.005%) |
| Heal false interventions ≤ 0.5% | missed at balanced, the default (0.59%); met at cautious (0.26%) |
| False interventions on held-out real apps: 0 | met, every profile (0.00%) |
| Calibration error ≤ 0.02 | 0.021–0.023, model 0.1.0 (not yet published for 0.2.0) |
| Diagnosis accuracy ≥ 95% | 84–86%, model 0.2.0 |
| Recall on clear cases ≥ 80% | 7.8%, guard at balanced, model 0.2.0 |
| Detection precision published for the shipped model | not yet (0.96 for model 0.1.0 at threshold 0.70) |
One production pilot so far (model 0.2.0, runtime 0.1.0-beta.4): a Next.js ordering site, nine fault scenarios, three repetitions in each of four modes. GenClass flagged each injected server failure, took 0 actions, intervened wrongly 0 times and added no measurable latency. The one real bug, a duplicate order after a lost-commit 502 and a re-tap, happened in every mode: detected as a transient failure, not prevented.
Raw tables: RESULTS.md, the compatibility matrix and the model card.