The gate written to catch the widget bug could not see three ways of causing it
0.42.0 deleted the viewport pins that had every Orbit widget reporting the pane's height back to Claude instead of its own, and shipped a check to stop them coming back. The check was weaker than it looked. Asked to break it, the reviewer did so three times in a row — a calc() wrapper, the newer dvh unit, and worst, the inline style written from JavaScript, which was the single site that had made the whole class of bug survivable in the first place. A stylesheet-only fix would have been cosmetic and the gate would have stayed green through it. All three now fail. A second correction in the same release is smaller and worse: a comment in the shipped code cited a test that was never written.
What shipped
•Fix — the viewport gate catches the bug it was named for. It matched the literal string `height: 100vh` and nothing else, so `height: calc(100vh - 38px)`, `height: 100dvh`, and `wrap.style.setProperty("height", "calc(100vh - " + n + "px)")` all passed it. That last one is not a hypothetical variant: it is the exact line, written from JavaScript at runtime, that re-pinned every widget over any stylesheet edit. It now matches any viewport-relative unit near a height, in CSS or in a JS string that writes one, and each of the three was verified to fail on its own.
•Fix — a comment in server/ui/shell.js claimed the height fix was "verified by the dual-viewport invariant in tests/suites/28-widgets.test.mjs". No such assertion exists; that suite finishes in under two seconds and never starts a browser. The comment now describes the static check that is really there, and says outright that the measurement behind the fix — an identical 1170px reported at both a 520px and a 760px pane — was taken by hand. A comment that cites a gate nobody wrote is worse than no comment, because the next person trusts it.
•Guard — server/index.js is frozen at 7,190 lines in `npm run check`. It had grown from 4,800 to 7,190 while the widget layer was being built, making a refactor that was already deferred fifty per cent larger. The ceiling sits on the current line count rather than above it, so the next line added to that file fails the build with a message naming the refactor it belongs to. A number in a planning document does not stop a file growing; a failing build does.