The halting head has not moved in three training runs, and we could not say why. It is clamped between 0.01 and 0.99, and 71% of its values sit above the ceiling, where a clamp has exactly zero gradient. The line was added deliberately, with a comment explaining that it was there so the collapse could not happen.

The halting head has not moved in three training runs. E[N], the expected number of latent steps the model commits to, of four compiled, reads 1.0152 in run 2 and 1.0152 in run 3, with roughly 6,200 cumulative steps of training between them. The sharper dataset we said would go in has gone in. It changed nothing.

That was a null result with no mechanism behind it, which is the least useful kind. It now has one, and the mechanism is a single line written on purpose to prevent exactly the thing it turns out to guarantee.

The line

Before the halting probability is used, it is clamped to a narrow band that stops one hundredth short of 0 and of 1. The comment beside that line explains why the band is as wide as it is. Paraphrasing only slightly: bf16's spacing near 1.0 is about 0.0078, so keeping the value clear of that spacing means the collapse to 1.0 cannot happen. The reasoning is correct. A halting probability that reaches exactly 1.0 makes the model stop at the first slot every time, and a floor and ceiling are the obvious way to keep it off the rail.

The gradient of a clamp is exactly zero outside its bounds. A value that reaches the ceiling stops receiving gradient, and nothing then moves it back. The guard does not prevent the collapse. It makes the collapse permanent once reached.

How much of the distribution is behind the wall

active lambda values                          6,216
lambda above 0.99 (zero gradient)            71.22%
  slot 0                                     97.6%
  slot 1                                     77.4%
  slot 2                                     56.8%
  slot 3                                     51.5%
distinct lambda values across all 6,216         10   (one is exactly 1.0)
halting head gradient norm
                  mean 8.076e-05   median 3.094e-06   final 6.969e-08
                  exactly zero on 23 of 200 logged steps

Slot 0 is the one that decides whether the model thinks at all, and 97.6% of its halting values sit where no gradient reaches them. The head trains on its own optimiser at a learning rate well above the backbone's, and at the rate this run used its gradient norm is a millionth of what that rate implies, zero outright on more than one logged step in ten. Eleven distinct values across six thousand samples is not a distribution. It is a handful of bf16 rungs, the bf16 grid near 1.0 has a spacing of 2 to the minus 9, and the head is quantised onto it.

One number confirms the clamp is on the path that trained these runs rather than somewhere downstream: the logged mean of the halting value is 0.99168, which is above the 0.99 ceiling. Telemetry is recording what goes into the clamp. The clamp is what the training gradient then flows back through.

The consequence, stated so it cannot be waved away

A collapsed halting head could be explained by a schedule that has not run long enough. The obvious control kills that reading. Take the same head at its random initialisation, freeze it, and ask both versions eight different questions:

                                    live head   frozen init
mean distinct lambda, 8 questions       2.065        2.765
steps emitting 2 or fewer values        78.5%        38.0%
distinct-count histogram        1:36 2:121 3:38   1:11 2:65 3:88
                                4:4  5:1          4:32 5:4

The trained head is less responsive to the question than the untrained one. Paired across steps it sits below its own initialisation on 119 of 128 non-tied comparisons, a two-sided sign test at p = 1.2e-25. On 36 of 200 steps it emits a single value for all eight questions, the same amount of thinking for every question it was asked.

Training did not fail to teach this head to vary its depth. Training taught it to stop varying. That is a stronger and more specific claim than "it has not learned yet", and it is the one the measurement supports.

What this does and does not settle

It does not show that latent reasoning does not work. It shows that in this implementation the halting head has been held at a rail by a guard, and that the thing we have been reporting as an unexplained flat line has an identified cause sitting in one line of code. A null with a mechanism is a different object from a null without one, because the first can be acted on.

It also does not tell us what happens when the clamp is widened or replaced. Nothing has been re-run. The prediction registered here, before that run happens, is that E[N] moves off 1.0 and the distinct-value count rises above ten. If it does not, the clamp was not the binding constraint and this entry is wrong in a way that will be published.

One thing must be said in advance so that a later result is not misread as settling this. The clamp is not on the next run's change list. That run alters the gate scaling and the latent learning rate, among other things, and leaves the clamp exactly as it is. So if E[N] moves on the next run, that is not this prediction coming true. It would be attributable to those other changes, and the clamp would remain untested. The prediction above is settled only by a run that changes the clamp itself.

Confounded, 4 September 2026. The prediction registered above cannot be scored cleanly, and the reason is published in a later entry. Most of this model's weights, the halting head's among them, were receiving updates too small to be written back at the precision these runs used, and so did not move at all. If the head could not be written, widening the clamp could not have moved the step count either, and the two explanations were never separable by this test. Both mechanisms are real and both were measured. Which was binding is not something this experiment can settle.

Boundaries. Every figure above is a recorded telemetry field, recomputed independently by two sessions from run 3's logs. The two recomputations disagree slightly on the active-step mask, 6,216 samples and 71.22% against 6,279 and 71.03%, and the figures used throughout are the ones recorded in the project's own ledger rather than the second recomputation, which is not held in the repository. The finding is unaffected at either. Line numbers are deliberately not cited: the file has grown since these figures were taken and the clamp has moved within it, so the statement is given as the line of code rather than as a position in a file. Deliberately excluded: the reading that this head was healthier earlier and degraded. That framing is not supported, because two attempts to reconstruct the earlier figure failed calibration and the quantities come from different forward passes, so it is not recoverable from anything we hold. The mechanism and the frozen-initialisation comparison were found and verified separately by two sessions working from source.

← All research entries