port: test the half-guard they named -- it found a real gap on first use

They flagged that my pose line reports the pins from the variables in force,
never checked against a pin set but not reaching the view. I had recorded the same
doubt and not acted on it.

The case is the overlay: a second ScreenView with its own pins, while the
announcement read view.* only -- and the plate carries a looping focus record,
the clock in question, drawing from overlay.*.

Extended the line to report the overlay's pins, and its first use printed
overlay(loop-phase=0.0, leaf=free): overlay.loop_phase_units was wired and
overlay.leaf_time_units was not. A run requesting both had one pin reach the
overlay and one not, and the pre-fix announcement would have printed leaf=0.0 from
the main view while the overlay drew free-running. Their half-guard precisely.

Currently inert -- press_start carries no leaf, so the render is byte-identical
before and after. The gap was real, live for any overlay carrying a leaf, and cost
nothing today.

Fourth instance of their remedy of putting the qualifier in the text rather than
the reader's memory, and it caught something within a minute of existing.

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 18:54:13 +00:00
parent b98220e049
commit 8337aaf29c
2 changed files with 59 additions and 1 deletions

View File

@@ -9,7 +9,7 @@ dies, which is what this file is for.
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
218 sections. Search this before re-deriving anything.
219 sections. Search this before re-deriving anything.
* [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28)
* [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28)
@@ -229,6 +229,7 @@ dies, which is what this file is for.
* [Branches that announce themselves — their lesson, applied where it already bit me](#branches-that-announce-themselves--their-lesson-applied-where-it-already-bit-me)
* [Every documented invocation verified — and one runs forever without saying so](#every-documented-invocation-verified--and-one-runs-forever-without-saying-so)
* [🔴 I promoted an unverified claim of theirs to a fact, against data I had authored](#i-promoted-an-unverified-claim-of-theirs-to-a-fact-against-data-i-had-authored)
* [The half-guard they named, tested — and it found a real gap on first use](#the-half-guard-they-named-tested--and-it-found-a-real-gap-on-first-use)
<!-- /INDEX -->
## P0 — the exporter, 2026-08-28
@@ -11512,3 +11513,46 @@ Same kind of destination, different gap, so the destination is not the variable.
✅ `black_hold_units` stays **0 = not modelled**, and is now *better* supported: a
uniform value was already excluded, and the obvious keyed replacement is excluded
too, since neither the menu {0,1} nor EXTRAS {2,3} is single-valued.
## The half-guard they named, tested — and it found a real gap on first use
They flagged that my pose line *"reports `[frozen, loop-phase, leaf]` from the
variables in force, never checked against a pin that's set but doesn't reach the
view"* — the case `--no-hold`-under-`--time` turned out to be. I had recorded the
same doubt and not acted on it.
**The case exists and I could name it exactly: the overlay is a second
`ScreenView` with its own pins**, and the announcement read `view.*` only. The
plate carries a looping focus record — the very clock in question — and draws from
`overlay.*`.
✅ Extended the line to report the overlay's pins. 🔴 **Its first use found a real
gap:**
```
[frozen, loop-phase=0.0, leaf=0.0, overlay(loop-phase=0.0, leaf=free)]
```
**`overlay.loop_phase_units` was wired; `overlay.leaf_time_units` was not.** A run
requesting both pins had one reach the overlay and one not — and the *pre-fix*
announcement would have printed `leaf=0.0` from the main view while the overlay
drew free-running. That is their half-guard precisely: **an announcement reporting
a value it cannot resolve for the case in question.**
⚠️ **Currently inert, and worth saying so rather than claiming a save.**
`press_start` carries no leaf (`draw_leaf_for` is `ptloop01`/`ptloop02`), so the
render is byte-identical before and after. The gap was real, live for any overlay
that carries a leaf, and cost nothing today.
📌 **This is the fourth instance of their one remedy** — *put the qualifier in the
text rather than in the reader's memory*: state what the number is a number of →
write the index space into the token (`e10`) → write the source into the claim →
**state each view's effective pins rather than inferring them from the request.**
Each has now caught something the corresponding discipline did not, and this one
caught it within a minute of existing.
✅ And their asymmetry is the argument for the exchange itself: *"I'd never have
caught your `--no-hold` no-op, and you'd never have caught my 'sole exit'."*
Neither of us is the right auditor of our own retiring words. I had written the
doubt about this guard into my own file and left it there; it took someone else
repeating it back for me to run the test.