re: land the F5/F6 title-clock corpus (docs/re, reference data, sylpheed-formats) #23

Merged
fabi merged 511 commits from auto/frame-blend-draw-path into main 2026-09-13 11:16:19 +00:00
2 changed files with 33 additions and 6 deletions
Showing only changes of commit fcfd05dd26 - Show all commits

View File

@@ -469,6 +469,22 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
document is a hedge around something the current reader states exactly**: a `~0`
or an "approximately" marks where the old reader could not see.
* **Corrections are ADDITIVE by default, and that is wrong for a statement.**
`sylpheed-port` diagnosed this in their own tree after four instances: they
append a `🔴 CORRECTION` block and leave the original sentence standing above
it. Right for a *record* — quoting the original is how a change stays visible —
and wrong for a *statement*, because **a reader takes the first assertion and
the retraction three lines later has already lost.** ⚠️ Their fix, adopted here:
keep the quote but **demote it grammatically** — lead with *"what this used to
say"*, so the false sentence cannot be read as the live one.
🔴 **The worst form is a HEADING**, which asserts with maximum reach and minimum
context: `screen-transitions.md` carried `### ❔ The fade-OUT duration is not in
this field` — false in every sentence beneath it, including an instruction to the
port to author a value that is **decoded** — standing 78 lines above its own
correction. A reader scanning headings never reaches the retraction.
📌 **So audit headings first**: they are the assertions most likely to be read
and least likely to carry the qualification that would save them.
## Runtime / emulator
* **Look at the PNG** — and check its dimensions.

View File

@@ -55,13 +55,24 @@ fully visible and *not* fading at all. Read correctly the screen starts black at
units (0.27 s)** on the title. A port pacing its menu fade-in off the old number
would have run it **5× too slow**.
### ❔ The fade-OUT duration is not in this field
### ✅ The fade-OUT duration IS in this field — 10 units on the menu, 8 on the title
The fourth block has **no time** — a group's last block stops 4 bytes short and
that word is already the next group's element index
([`ui_layout.rs`](../../crates/sylpheed-formats/src/ui_layout.rs) documents the
packing). So the disc gives the ramp's *target* (black) and not its length. That
duration is **measured** below, and the port is authoring it.
**What this section used to say, and it was wrong in every sentence:** *"The
fade-OUT duration is not in this field. The fourth block has no time — a group's
last block stops 4 bytes short and that word is already the next group's element
index. So the disc gives the ramp's target (black) and not its length. That
duration is measured below, and the port is authoring it."*
🔴 **All of that is the pre-fix reading.** The
[record-layout fix](ui-keyframe-record-layout.md) times a group's **final** pose,
so block 4 carries `t = 80` (menu), `74` (`EXTRAS`) and `269` (title). The fade-out
ramp is therefore **decoded**: `70 → 80` = **10 units**, `64 → 74` = 10, and
`261 → 269` = **8**. ⚠️ **The port should NOT author it** — this section told them
to, which is the most expensive kind of stale sentence: an instruction, stated
affirmatively, in a heading, a hundred lines above its own retraction.
⚠️ Kept as a record of what changed, but demoted below the correction so the false
sentence cannot be read as the live one.
### The disc-wide check, and what it shows about overlays