port: a second capture closes the sweep-geometry question; title+plate matches at 0.00093%

live-title-press-a.png was unused in the corpus. Posed at t=237 -- inside the
plate's 8-unit window -- the port matches it at 0.00093%, against 0.0124% for
the no-plate capture at leaf phase ~400. Two captures, two different phases,
both under 0.013%: a systematic sweep-geometry error would leave a floor in
both, so last iteration's caveat is closed.

Sweeping the whole screen's instant against capture 1 gives at best 0.148% at
t=230 -- 10x worse than the leaf-only fit. So that capture is the screen SETTLED
with the sweeps still looping, which is the first independent evidence for the
authored loop_leaf decision.

Fixes the cause of a flat 1% floor: --screen=X --overlay=Y pushed the raw
elapsed clock into the overlay (9 units at capture), so press_start drew nothing
-- the flag whose purpose is 'put the plate on the title'. A static overlay now
poses at its own arrival; the --boot shared clock is untouched.

Adds title_plate to verify-capture at 0.00%, the most sensitive row in it. Its
instant is FITTED and labelled as such.

Also records that I nearly committed a wrong cause for the overlay bug: I wrote
that nothing drives the overlay's clock outside a sequence. It is driven, every
frame, from view.time_units.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
Sylpheed port agent
2026-08-30 01:16:57 +00:00
parent 96fe0eac51
commit 69e9043b96
3 changed files with 116 additions and 1 deletions

View File

@@ -1002,7 +1002,28 @@ func _overlay_process(delta: float) -> void:
# apart by a frame here and there, and the whole content of the finding
# is that the 120 units between build 4's last ramp and the plate's
# `a=255` is a fixed interval on a shared timeline.
overlay.time_units = view.time_units
# 🔴 A STATIC overlay poses at ITS OWN ARRIVAL, not at the shared clock.
#
# `--screen=X --overlay=Y` has no sequence driving it, so `view` sits at
# its settle instant while this line pushed the *raw elapsed* clock into
# the overlay -- 9 units at the moment `--capture` fires. For
# `press_start` that is alpha 0 (transparent until t=214, opaque only at
# t=236-238), so the one flag whose purpose is "put the plate on the
# title" drew NOTHING and reported `drew 0`. It read as a title with no
# plate, which is what anyone would conclude.
#
# It cost a measurement: against `live-title-press-a.png` every sweep
# phase gave a flat ~1.0 % floor, and the residual was a row of
# glyph-sized blobs on the plate's own position. Posed properly the same
# comparison is 0.00093 %.
#
# In a `--boot` sequence the shared clock is the whole point -- the 120
# units between build 4's last ramp and the plate's a=255 is a fixed
# interval on ONE timeline -- so that path is untouched.
if _sequence.is_empty():
overlay.time_units = overlay.settle_time()
else:
overlay.time_units = view.time_units
overlay.queue_redraw()
if _overlay_quit_at >= 0.0 and _elapsed >= _overlay_quit_at:
print("boot ends on %s + %s at %.2f s"