Skip to content

WDB 12.9.25-26 - the model survives the rotation

Choose a tag to compare

@WebDevBarCoder WebDevBarCoder released this 30 Jul 17:22
· 260 commits to webdevbar since this release

The model survives the theme rotation, and the log finally says whether it was right

Install this before 1 August if you are collecting. Flourishing Wilds closes and
Tactical Grounds opens with the same modifiers, and this build is what stops the model
throwing away everything it has learned at that boundary.

Themes that share modifiers are one population

Until now every rotation reset the hero model to nothing. That is correct when a theme
changes the roster and the battlefield - carrying strengths across the last rotation
measured 47% directional, worse than a coin. It is pure loss when the modifiers are
identical, which is the case here.

Tactical Grounds now opens with this theme's matches and heroes already behind it,
instead of sitting gated until it has collected 40 of its own.

The pooling happens when the model is fitted, not in the database. Every match stays
filed under the theme it was actually played in, one row each, so this is a switch rather
than a fusion - if the modifiers turn out to differ after all, the grouping comes out and
nothing has been lost. Converging Paths is deliberately excluded.

The live log now says whether the call was right

[SC-75] reads called blue 67% (r+h) - blue won - HIT, with the side in its own colour
and the verdict in green or grey. Before this the log named the winner of every match and
never said what had been predicted, so it reported the outcome of everything and the
accuracy of nothing.

The odds panel colours the favoured side, and only that side. A gated line is never
coloured - a gate is the model saying it does not know, and dressing that up as a call is
the one thing the gate exists to prevent.

A dead-even prediction is recorded as "no call" rather than graded, because 50/50 is the
model declining to choose.

Auto-bet

BETTING BLUE / BETTING RED is logged in colour once the handle has actually been
dragged, so the line means the tokens are committed rather than about to be. There is no
separate won/lost line: the stake always goes on the side the model called, so the HIT on
[SC-75] already is the bet result.

The slider offset cap is raised from 200px to 400px. The old cap had no recorded reason
and was never a physical limit. Note that the bar spans x=151..948 around a handle at 540,
so a 400px drag toward BLUE runs about 11px past the end of the bar and the game's
behaviour there is untested - and the token-per-pixel rate scales with your balance, so
the cap is a fixed distance, not a fixed stake.

Fixed

The coloured log shipped broken in 23 and printed raw <span class="sc-red"> tags on
screen. Every log message is escaped before it reaches the renderer, which is correct -
log lines carry device output and exception text - so an allowlist now re-permits exactly
four class names and nothing else. Verified against ten injection attempts.

Where the model actually stands

Unchanged, and honestly reported: it is selective rather than accurate. Below 56%
confidence it is worse than a coin. Above 58% it is right about two thirds of the time,
which is where the auto-bet default sits. Five rounds of measurement have now closed
calibration, band-evidence damping, the rating challenger, identification quality and the
fitted-intercept question - nothing has beaten regularised Bradley-Terry on hero identity.
Full detail in docs/solstice-clash/model-findings-ledger.md.