Skip to content

Apparatus

AOSP stopped reviewing in public, and it takes the language-matched arm with it

# research(2026-09). The gate compares an OpenStack adapter against a Qt one. The two organizations barely share a file type, so an adapter that learned nothing but the language would beat the other's on its own held-out data and pass. The window reports now carry the histogram the variables table promised: OpenStack's training window is 2,054 Python and 1,184 reStructuredText of 4,327; Qt's is 4,211 C++, 1,427 qdoc and 807 headers of 8,442. In the dev window Qt holds eight Python examples against OpenStack's 243, so the matched arm cannot be evaluated on this pair at all.

The two items the reviews left open, closed

The three adversarial reviews on 2026-09-18 and 2026-09-19 each ended with a list recorded rather than fixed. Re-reading those lists against the code, most had been overtaken: the permutation now has behavioural tests rather than text searches, the enumeration counts distinct groupings, the overwrite guard claims exclusively at job start, and the contamination battery's partial output is claimed under its own name. Two were still standing, and both are closed here.

The registered subspace tests pass, and the cut is what makes the source readable

datasets/results/subspace-split-cpp-rebuilt-c128.json. Two tests were registered for the ten-project rebuild before it existed: the detector on the shared half at rank 4, and the classifier on the residual at rank 1. Both are now run on 48 C++ clients over thirteen projects, with the attribution basis fitted without the scored client's whole project and the null the same 1,716 groupings the detector uses.

The Qt result was the null's size, not Qt

*-cpp-rebuilt-c128.json. The ten-project AOSP rebuild gives seven C++ projects that can fill a client at 128 examples, against Qt's six, so the project-level permutation enumerates C(13, 7) = 1,716 distinct groupings where every earlier run had 84. Same training length, same initialization, a larger and better-balanced project set.

A second review, of the fixes

A fresh context reviewed the previous day's corrections without being told why they were written. Nothing blocking; every committed result it regenerated reproduces from HEAD, and it confirmed the factor geometry computes A minus the broadcast initial A and records that file's hash. Its serious finding was about the tests rather than the code: 24 of 59 mutants survived the suite, among them the probe fix's own regression test, which could not fail on a mutant that restored the very behaviour it was written for, because its fixture scored 1.0 and only a label on the result told the versions apart.

Composition, not coherence, was the confound worth testing, and length survives it

Two explanations for Qt's permutation moving from p = 0.238 at 64 examples a client to the 1/84 floor at 128 were tested and failed: pairwise coherence (Qt stays at -0.0005 at 128) and, post hoc, centred centroid coherence (Qt is positive at both lengths and lower at 128, +0.109 to +0.047). Rather than generate a third, this tests the confound the training-length entry already named: the two sets differ in composition as well as length, because packing at 128 leaves fewer clients per project (AOSP's system-core falls from three clients to one, frameworks-av from four to two).

Gap-K% has numbers, and it is the smallest gap of the three

datasets/results/contamination-openstack-6mo-with_context-gapk.json. Closes the open item that Gap-K% had an implementation and no measurement, the saved results having kept scores rather than per-token statistics. OpenStack, six months each side, hunks with three context lines, 1,971 eligible post-cutoff examples against 2,502 pre-cutoff.