re(ui): withdraw the render evidence -- rest()'s dwell fallback is unsound

Last iteration I reported a 13.1% render change in GP_TITLE build 7 as
evidence AGAINST the keyframe-time shift, arguing that language twins
should match in brightness. Withdrawn. Localising the diff to an element
shows it is not about the time association at all.

The element is ptlogo_eff3.t32, a transient bloom:

   46: (98,42)  100%,100% a=0
   61: (108,72)   0%,0%   a=0
  103: (108,72) 200%,200% a=255 r=80
    -: (108,72)   0%,0%   a=0   r=150

No two adjacent poses are equal, so there is no plateau, and rest() falls
through to its longest-dwell fallback. The longest gap is 61->103, during
which the sprite grows from nothing to 200% at full alpha and then
collapses. The rule returns whichever end of that movement the indexing
lands on: the invisible frame as decoded, the 200% peak shifted. An
896x389 sprite at 200% is larger than the screen, which accounts for the
entire 13.1% and the entire 4.9-unit luminance gap. I was comparing a
heuristic against itself.

The defect generalises, and structurally. A dwell gap is time spent
interpolating FROM pose k TO pose k+1; neither pose is held during it
unless the two are equal -- which is a plateau, and the plateau path has
already returned by then. So the fallback is guaranteed to be guessing
every time it is reached, under any reading of the times. Every element
with no two adjacent identical poses has a guessed rest pose, in our
renderer and in anything built from it.

Consequences: the case FOR the shift (26x on the hold:fade-out ratio) is
no longer opposed by render evidence -- 10 of 11 builds byte-identical,
the 11th differing only through this heuristic. It is still not adopted,
now because it flips this element to the visibly wrong answer, so the
shift and a decision about plateau-less elements must land together, and
neither half has a capture to verify against.

Default-mode suite green (122 passed, 0 failed across 3 suites so far).
This commit is contained in:
Sylpheed RE agent
2026-08-28 23:10:41 +00:00
parent 6f23f4d113
commit b947fa8e8e
4 changed files with 117 additions and 6 deletions

View File

@@ -391,3 +391,14 @@ neighbourhood, not just the line.
predicted **2.0** as decoded and **80.0** shifted. The shift is nonetheless
**not adopted** — it moves `GP_TITLE` build 7 by 13 % of pixels, away from its
verified English twin's brightness. [`ui-keyframe-time-unit.md`](ui-keyframe-time-unit.md)
* "the `GP_TITLE` build 7 render difference is evidence against the keyframe-time
shift" → **mine, and withdrawn.** It is one element, `ptlogo_eff3.t32`, a
transient bloom with no resting pose; `rest()`'s dwell fallback returns a
different endpoint of the same movement under each reading. The brightness
comparison measured our heuristic, not the decode.
[`structures/ui-resting-pose.md`](structures/ui-resting-pose.md)
* "`rest()`'s longest-dwell fallback picks the pose the element rests at" →
**refuted structurally.** A dwell gap is time spent interpolating *between*
poses; an endpoint is only held when the two poses are equal, which is a
plateau, which the earlier path already returned for. Every element that
reaches the fallback has a guessed rest pose.