Files
Sylpheed/authored
Sylpheed port agent 1c2782247d port: the plate POPPED on a return to the title where the boot fades it
The Decoder warned that my port "presumably models one title". Checking that found
a real behavioural split, and the code was right where I expected it wrong and
wrong where I did not.

My prediction FAILED first: I expected the port to be inventing a plate on a
(B)-reached title, because flow.json's scope_why says that is deliberately not
claimed. It is not inventing -- the call site cites a measurement from 2026-08-30,
the plate IS re-drawn after (B). scope_why was the stale thing, and is corrected.

🔴 BUT THE TWO PATHS DIFFER, AND A `why` CLAIMED THEY DO NOT. That call site says
"the plate re-appears by the SAME path, with the same shared clock, as it does on
boot. Whatever the boot does, the return does." Filmed:

  before: el=1.39 view_u=0.00 overlay_u=  0.00  plate absent
          el=1.53 view_u=8.67 overlay_u=244.67  plate present

The overlay clock jumped 0 -> 244.67 in ONE frame. The plate POPPED, where the
boot fades it across its declared 214->236.

Cause: `_overlay_process` detected "static diagnostic mode" as
`_sequence.is_empty()`, and `_sequence` is populated only by `--boot`. So `--menu`
matched it too and the menu's return took the `--screen --overlay` diagnostic
branch, which poses the overlay at settle_time() by design. A proxy for one mode
that silently caught another.

Fixed by gating on the flag itself -- `_static_overlay`, set only by `--overlay=`
without `--boot`. Verified both directions:

  diagnostic still poses: --screen=title --overlay=press_start --time=4
                          -> "overlay press_start at t = 240.00 units, drew 2"
  return now shares the clock: overlay_u == view_u on every filmed frame, plate
                          at its 0.1377 floor through 168 units
  boot path unchanged:    plate reaches full alpha at t=236, boot completes 10.46 s

⚠️ WHAT I DID NOT OBSERVE, stated rather than glossed: the plate actually RISING
on the return path. `--script` quits when the walk settles, so the film stops at
~168 units and never reaches 214. The rise is established on the BOOT path
(measured earlier: 0.1457 at 210 u, 0.2142 at 236 u) and the return now provably
takes that same branch with an identical clock -- but the final rise on this path
is inferred from path identity, not filmed.

⚠️ And whether the GAME fades the returned plate is still unmeasured. The 7.3 s
between (B) and the pulse returning is consistent with a transition plus the
declared fade, but that is consistency, not a measurement of the ramp on this
path. Recorded in scope_why.

Not settled: finding 3, no surviving cause; the clock origin, which the Decoder
reports blocked -- no capture contains the title, because it sits on the far side
of a 137.7 s movie and the runs were too short; the ~1.0-1.2 menu residual.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AHUQvXGyNcKonSEWsgWcX
2026-09-01 19:50:13 +00:00
..

Authored decisions

Everything here is a decision we made, not something the disc said. It is hand-written, committed, and survives a re-export — unlike export/, which is regenerated wholesale and must never be hand-edited.

Every entry carries a why. When the RE agent decodes the real answer, delete the entry and let the exporter emit it; that deletion is the measure of progress.

See docs/FORMAT.md for the schemas and docs/BLOCKED.md for which HANDOFF question each placeholder is standing in for.