From 16eef5fb2b576cab6621f1aa3d7976d5012321eb Mon Sep 17 00:00:00 2001 From: Sylpheed port agent Date: Sat, 29 Aug 2026 14:10:37 +0000 Subject: [PATCH] port: file the keyframe-layout change and the loading-screen answer in BLOCKED Neither is taken. The keyframe record layout (every pose timed, exit_ramp_units decodable) reaches me only when that branch lands on main -- sylpheed-formats is a path dependency and merging another agent's topic branch is not mine to do. The loading-screen names are answered but carry two of the RE agent's own amber flags plus the index-space problem I found, so no name is written yet. Recorded with what limits the risk: static composites are byte-identical across the keyframe change, so this iteration's verify-screen baseline is the control to re-run the day the pin lands. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01WM5XL4HfrHuxz8RiMWdCMC --- docs/port/BLOCKED.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/port/BLOCKED.md b/docs/port/BLOCKED.md index ab57b9e5..6129533b 100644 --- a/docs/port/BLOCKED.md +++ b/docs/port/BLOCKED.md @@ -110,6 +110,9 @@ git log -1 --format=%h -- docs/port/HANDOFF.md # newer than 9ca1eb5? re-reconc | ~~P6 โ€” runtime headroom~~ | ~~the Master bus clips~~ | โ€” | ๐ŸŸข **withdrawn by the port, 2026-08-29 โ€” it was my own overstatement.** Filed ๐Ÿ”ด twice on a peak reading of 0.0 dBFS. Measured properly: **43 samples at full scale in 5.9 s and 24 in 98.5 s, longest clamped run 0.25 ms** โ€” the disc's own `confirm` cue touching the ceiling on a transient, possibly only in the recording's 16-bit conversion since Godot mixes in float. Not a defect, and nothing is changed: attenuating to buy headroom would be an unmeasured level decision of exactly the kind this port refused for the BGM loop point. **A peak reading is not a clipping measurement** โ€” one sample at 0 dBFS and two seconds of square wave give the same number. | | Modding โ€” rule 4 | ~~base-and-overrides is unimplemented~~ | โ€” | โœ… **implemented 2026-08-29, and it was not blocked on anybody.** `MODDING.md` calls it a constraint on the exporter *today*; nothing read `data/mods/` for eight milestones. `ExportTree.resolve` now shadows by path for every asset kind, each replacement is logged as it is read, and `.gitignore` excludes the directory's contents โ€” a mod is usually an edited game asset, and that directory was the one place git would have taken one. โš ๏ธ The `export/` vs `data/base/` naming split between `PORT-MISSION.md` ยง3 and `MODDING.md` is **raised, not resolved**: only the human changes a mission. | +| P1โ€“P7 โ€” the keyframe record layout | **every pose is timed, and `exit_ramp_units` becomes decodable** | โ€” | ๐Ÿ”ด **large blast radius, NOT taken, and it cannot be taken yet.** The RE agent reports (branch `auto/no-disc-and-menu-captures`, sha `b28dfed`, tag `formats-pin-2026-08-29c`, `docs/re/ui-keyframe-record-layout.md`) that a pose's time is the word **before** it and pose 0's time is the group's lead-in, so **every** pose is timed including the last โ€” and that *both* readings the corpus was arguing between were wrong. It touches `pose_at`, `settle_units`, `spin_period_units`, `exit_ramp_units` and the plate. `sylpheed-formats` is a **path** dependency, so this reaches the port only when that branch lands on `main`; merging another agent's topic branch is not mine to do. โœ… Two things that limit the risk, both from the same message: **`ramp: "linear"` stays** โ€” do not add easing โ€” and **static composites are byte-identical across the change on all 12 `GP_TITLE` builds**, which `docs/port/DECISIONS.md`'s new `verify-screen` baseline is exactly the control for. Re-run `tools/port/verify-screen` the day the pin lands: if a still frame moves, it is the port's bug and not the decoder's change. | +| ~~P7 / naming โ€” the four unnamed builds~~ | ~~which locale and variant is each of entries 0, 1, 12, 15?~~ | โ€” | โœ… **answered 2026-08-29** (`docs/re/ui-title-build-map.md`): all four are the loading screen, two variants โ€” plain (7 elements) and dressed (10) โ€” decoded from their own `pgloading_*` element names. โš ๏ธ **Not adopted as names yet, for two reasons the RE agent gave and one the port found.** Theirs: the executable names exactly two, and *which* bundle takes which name is ๐ŸŸก undecided, so `LOADING`/`LOADING2` must not go in an asset path; and locale is ๐ŸŸก โ€” the English member of a pair is the one in the first half of `GP_TITLE.p00`, 8/8 structurally but only 3/3 where a capture can check, and the three pairs that matter are the three no capture can check. Mine: **the message gives the bundles as "0/1 and 10/11", which is the `is_build` ordinal, and `authored/screen_names.json` is keyed by PAK ENTRY** โ€” in entry space 10 and 11 are `palogo_sqex` and `palogo_gamearts`, the splashes. See the refutation section in `DECISIONS.md`. | + ## Answered since this file was last written โ€” no longer blocking Q1 (keyframe time unit โ€” linear ramp, 2 units per rendered frame, 1 unit = 1/60 s