Article · research august 2026 · published 2026-08-03 · v1 · 3 min read
Two classifiers, two truths
When two surfaces decide the same fact independently, a system holds both answers and notices neither
A keyboard that was open and closed at once inside one running application, and why the repair is a single owner per fact rather than two components instructed to agree more carefully. The canonical treatment of one authority per fact.
A person taps a text field on a phone and the keyboard rises, and the field they were about to type in is no longer on the screen. Everything a test would check has survived. The input element is still in the document, it is still the focused element, and its text cursor is still blinking somewhere below the visible edge of the application. This is the failure a review packet we read this year was commissioned to explain, and the explanation is not a bug in the ordinary sense. Nothing miscomputed.
Two different parts of the application decide, independently, whether a keyboard is open. One of them accepts a rich set of evidence, the height the screen had before anything moved, the physical screen height, and the fact that a focused editor may own the contraction, and during the failure it decided that the keyboard was open. The other accepts a narrower set, the current heights and whether it had recently believed a keyboard was open, and on the platform’s newer behavior, where both heights shrink together, that narrower evidence cannot distinguish a keyboard from any other reason a window got smaller. It decided the keyboard was closed and published a usable height that was roughly double the space the outer container had actually taken. The container beneath it did exactly what it was built to do and pinned the text input to the bottom of that larger region, which put it below the visible clip, by construction, while focus stayed exactly where it was.
The mechanism is not disagreement but the missing room in which to disagree, because two independent decisions about one fact yield two answers that are never compared anywhere in the system, so nothing ever holds a contradiction, only two truths, each locally correct on its own evidence and each consumed by a different half of the layout.
The most expensive version of this on record left the planet. In 1999 the Mars Climate Orbiter was lost on arrival because ground software supplied thruster impulse in pound-force seconds while the spacecraft’s navigation expected newton-seconds. Neither program was wrong internally. Both were consistent, both were tested, and the two truths met for the first time in the atmosphere of another planet. Every subsequent recommendation in that investigation was a version of the same structural point, that the fix is not more careful agreement between two owners of one quantity but ending the situation in which there are two.
Which is why the repair here is not to give the narrower classifier better inputs. That is a behavioral fix, a promise that two components will keep saying the same thing, and it holds only until someone extends one of them under deadline. The structural fix is one authority per fact, which here means naming the single component that decides whether a keyboard is open, having it publish a usable height, and having every surface that lays out against it read the published value rather than deriving its own. Then a wrong answer is still possible and a divergent one is not, which is a strictly smaller class of failure, and the second classifier’s disappearance is the whole of the change.
Our own reading of that packet turned up a fitting coda. One of the numbers in its classifier comparison had been reconstructed from how the code says data flows rather than read off a live instrument, so the exact divergence at that instant is not fully established. It changes nothing structural. The duplication is visible in the source whether or not the two answers differed on that Tuesday, and a system with two authorities for one fact is already broken in the way that matters, quietly, until the day it takes something away from the person holding the phone. Build one place where the truth lives, and disagreement becomes a thing you can find.
Evidence and lineage
Research trail
Follow the sources, inspect how the claims are graded, or propose a correction at the exact record it concerns.
Sources 3
-
Held privately (client engagement, deidentified) (2026). A defensive review packet commissioning an independent review of a mobile keyboard regression, dated 2026-08-03
The primary artifact. Its competing-classifiers section sets out the two evidence sets side by side and asks, in its own boundary questions, why two surfaces are permitted to classify the same keyboard state independently. The brick answers that question structurally.
Comment on this source -
NASA Mars Climate Orbiter Mishap Investigation Board (1999). Phase I Report on the loss of the Mars Climate Orbiter
The paradigm case of two internally consistent authorities for one quantity with no reconciliation point between them. Used for the structural argument, not as a units-conversion anecdote.
Comment on this source -
MNSTRY (this corpus) (2026). 'Structural, not behavioral' (the parent essay)
The frame. A promise that two components will agree is behavioral safety; removing the second authority is structural.
Comment on this source
Claims and confidence 5
- verified
In the reviewed application, two components classify the same keyboard state independently, on different inputs: one accepts a pre-keyboard baseline height, the screen height, and evidence that a focused editor may own the contraction, and the other accepts only current viewport heights and a prior open flag.
The packet's competing-classifiers section, which lists what each classifier accepts and what the narrower one does not, cross-read against the source files it names.
Respond to this claim - verified
On the platform behavior where the window height and the visual viewport height shrink together, the narrower input set cannot distinguish a keyboard from another cause of contraction.
Follows from the inputs each classifier accepts; the packet states the equal-height case explicitly and the evidence-rich classifier's baseline and focus inputs are what resolve it.
Respond to this claim - directional
The two classifications are never compared anywhere in the system, so a divergence produces two locally consistent layouts rather than a raised error.
Absence established by source review across the components the packet names; an absence claim over a scoped read rather than a whole-repository proof.
Respond to this claim - verified
One number in the packet's classifier comparison was reconstructed from static dataflow rather than read from a live instrument, so the exact divergence at that moment is not fully established.
A follow-up source read on 2026-08-03 against the same worktree; the reconstruction is consistent with the code path but was not instrumented live. This does not bear on the structural duplication, which is visible in the source.
Respond to this claim - verified
The Mars Climate Orbiter was lost in 1999 after ground software supplied impulse data in pound-force seconds while the spacecraft's navigation software expected newton-seconds.
NASA's mishap investigation board Phase I report and the subsequent public record.
Respond to this claim
Read next
You have walked The boundary is not the view end to end: the hidden panel that ships its own contents, the finished artifact that sends itself, the read path built as an absence, the acceptance contract that measured everything except where the thing was, and the fact with two owners. Each of them is a boundary drawn in the wrong place, and in every case the repair was to move the line rather than to guard it harder.
Practice Pick one thing you keep private by hiding it rather than by placing it. A document in a shared drive with restricted view settings, a file in a repository marked internal, a panel that renders for some people and not others. Ask a plain question about it. If the person you are hiding it from had a copy of the container, would they have the contents? Where the answer is yes, you do not have a boundary, you have a preference, and moving the material is usually a five-minute job you have been deferring for months.
You have walked What a machine may decide end to end: the split inside a rule, the misreading underneath it, the line at ratification, the honesty of an unknown, and the cost of two authorities for one fact. None of these turned on how capable the machine was. Every one turned on whether somebody had decided, in advance and in writing, which questions it was allowed to close.
Practice Take one automated check you rely on, a linter rule, a metric alert, a form validator, and write its rule out in full. Draw a line through it separating the half a machine can settle from the artifact alone and the half that is judgment being faked. Then demote the faked half to a note addressed to a person, with the reason it cannot be automated written into the check itself, so the next reader inherits the finding rather than the noise.