re: main is 171 commits behind and carries the STALE keyframe reader

Went to refute sylpheed-port's finding that their check-all allowance ("the pin
is not on main, so this compares two decoder eras") explained nothing, by
extending its reach past three screens. Found the premise is understated.

  git rev-list --left-right --count origin/main...HEAD  ->  0  171

main has nothing we lack; we are 171 commits ahead of it. Its tip is dated
2026-08-29, the pin tag is not an ancestor of it, and its ui_layout.rs still
reads "Keyframe time, or None for the group's last frame" -- the pre-fix
association that takes a pose's time from the NEXT record and leaves a group's
final pose untimed. That is the exact bug that left fade_quads.py stale and made
screen-transitions.md publish a 0.87-4.08 s fade-in for a 0.20-0.27 s ramp.

So "sync with main first" is currently backwards: main is the stale era, and
`git merge origin/main` is a no-op from any topic branch -- it says "Already up
to date" every iteration, which reads as "I am current" and means "main has
nothing". Do not pin to main.

The port's measurement stands: across their three screens the two eras render
identically, which is consistent with the association fix moving TIMES and not
pixels -- same signature as the .tbm and stale-sylpheed-cli findings.

Not settled: whether the eras render identically beyond three screens (the
disc-wide build-and-compare is not done), and why 171 commits are unmerged,
which is a human's call.

Also adds the METHOD entry the port offered: an allowance is a claim and it
decays; allow by NAME, never by COUNT, because a count cannot notice that a
different row started failing while the total held steady.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
sylph-decoder
2026-08-30 14:18:30 +00:00
parent 589d23e44a
commit 6afe0c4ab8
2 changed files with 80 additions and 0 deletions

View File

@@ -216,6 +216,22 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
artifact, not the exit code — the artifact reached its correct 8.0 s duration
while the process it came from never returned.
* **An allowance is a claim, and it decays like any other.** `sylpheed-port`'s
`check-all` printed *"2 DIFFERS, allowed: the pin is not on main, so this
compares two decoder eras"* — in green, for weeks, and both of us quoted it back
without testing it. Tested: `sylpheed-cli` built at `formats-pin-2026-08-30` and
at workspace HEAD render `title`, `title_jp` and `main_menu` **byte-identically**,
despite 508 lines of difference in `ui_layout.rs`. The eras explain nothing; the
allowance was making a real disagreement look accounted for, and the real reasons
were already written down elsewhere in their own notes. Two rules:
**an excuse in a passing check is an untested assertion that never gets read as
one**, because green output is not scrutinised; and **allow by NAME, never by
COUNT** — a count cannot notice that a *different* row started failing while the
total held steady, which is exactly the hole the allowance opens. ⚠️ Same
signature as the `.tbm` and stale-`sylpheed-cli` findings: *the times moved, the
pixels did not*. When two versions of a renderer are supposed to differ, check
whether they actually do before explaining a mismatch with the difference.
## Runtime / emulator
* **Look at the PNG** — and check its dimensions.