diff --git a/crates/sylpheed-export/src/audio.rs b/crates/sylpheed-export/src/audio.rs index 5cc69e87..cbaf121e 100644 --- a/crates/sylpheed-export/src/audio.rs +++ b/crates/sylpheed-export/src/audio.rs @@ -1007,10 +1007,17 @@ pub fn export_voice( String::new() } else { format!( - " Also dropped, and this one IS understood: the leading chunk, which this \ - port measured to be the TAIL of the kept stream (sliding envelope \ - correlation r=0.998 ADV / 0.932 S00A, lag flush against that stream's \ - end, controls 1.000 self and 0.289 for a different movie): {}.", + " Also dropped: {}. A chunk marked SILENT carries no signal and \ + contributes nothing; one of a different duration is not a \ + concurrent stream of this take. \u{1f534} THIS SENTENCE USED TO SAY \ + the leading chunk was `the TAIL of the kept stream`, on a sliding \ + envelope correlation of r=0.998. The CORRELATION was sound and the \ + INTERPRETATION was refuted: `resolve_movie_voice_region` was \ + starting 238 packets inside the first stream, so what matched \ + end-flush was a START-TRUNCATED SIMULTANEOUS stream, not a \ + duplicate tail -- which is why it aligned at the end. Fixed in \ + formats-pin-2026-08-30; that chunk is now kept at full length and \ + nothing is dropped for that reason any more.", dropped.join(", ") ) }, diff --git a/docs/port/DECISIONS.md b/docs/port/DECISIONS.md index b8127875..b129fbdd 100644 --- a/docs/port/DECISIONS.md +++ b/docs/port/DECISIONS.md @@ -9,7 +9,7 @@ dies, which is what this file is for. -139 sections. Search this before re-deriving anything. +140 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) @@ -150,6 +150,7 @@ dies, which is what this file is for. * [The loop is a runtime field, the two readings conflict, and the port keeps what it shipped](#the-loop-is-a-runtime-field-the-two-readings-conflict-and-the-port-keeps-what-it-shipped) * [The duration is confirmed and the window is wrong — and the start is now a visible field](#the-duration-is-confirmed-and-the-window-is-wrong--and-the-start-is-now-a-visible-field) * [The loop window is measured — `-ss 9.44 -t 61.87` — and the near-silence count tracked the error](#the-loop-window-is-measured---ss-944--t-6187--and-the-near-silence-count-tracked-the-error) +* [Applying "grep the corpus for the claim" to my own corpus](#applying-grep-the-corpus-for-the-claim-to-my-own-corpus) ## P0 — the exporter, 2026-08-28 @@ -5314,6 +5315,19 @@ this actually governs, `publisher_logo` and `developer_logos`, have no measured dwell at all. The port's boot is **known too fast on both, by an unmeasured amount**. Nothing here is a number for them. +> 🔴 **WITHDRAWN, and this paragraph stood for days after the withdrawal was +> written.** "Known too fast on both" is false: the splash dwells are **declared +> on the disc** — publisher t=0…255, developer t=0…210 — corroborated over three +> cold boots to 1.1 %, and the port was already emitting each declared value plus +> the 9-unit black hold, *exactly*. See +> [Withdrawn — "the boot is known too fast"](#-withdrawn--the-boot-is-known-too-fast-the-splash-dwells-are-declared-and-the-port-was-already-playing-them). +> +> Found 2026-08-30 by the Decoder's rule: **grep the corpus for the claim, not +> for the file you were working in.** I wrote the withdrawal as a new section and +> left the original assertion untouched, so a reader arriving here first got the +> dead answer with nothing to warn them — the same failure as a correction that +> never reaches the manifest, one layer up. + ## 🔴 Withdrawn — "the boot is known too fast". The splash dwells are declared, and the port was already playing them Last iteration I took the Decoder's build-4 measurement — declared ~120 presented @@ -8026,3 +8040,56 @@ that `loop_end_s` alone was **asserting** a start of zero in a form no reader could weigh or find — and that proving `10.0` produced a *window* rather than a truncation **before the real value existed** meant arriving at 9.44 was a one-value edit with a clean baseline behind it. + +## Applying "grep the corpus for the claim" to my own corpus + +The Decoder found that a claim they refuted in a *new page* was still standing in +`bgm-two-stems.md` and in `HANDOFF.md` — the page a reader is told to consult +instead of the rest. Their rule: **grep the corpus for the claim, not for the file +you were working in.** Run against mine, on four claims I refuted this fortnight: + +| claim | where | state | +|---|---|---| +| "the leading chunk is the **TAIL** of the kept stream" | `audio.rs` → **`manifest.json`** | 🔴 **still shipping** | +| "six expected DIFFERS" | `BLOCKED`, `DECISIONS` | marked | +| "the boot is **known too fast** on both" | `DECISIONS` | 🔴 **standing, unmarked** | +| "the **only thing** making the plate reappear" | `BLOCKED` | marked | + +### The one that shipped + +The dropped-chunk explanation in the exported `why` still told readers the leading +chunk *"IS understood: the TAIL of the kept stream"*. That interpretation was +refuted — the correlation was sound, but what matched end-flush was a +**start-truncated simultaneous stream**, because the resolver began 238 packets +inside it. + +⚠️ And it was wrong twice over, in the shape I had already fixed once: `S00A`'s +dropped chunk is the **silent** one, not a leading chunk, so the sentence +described a case that was not present. **A template message true only for the case +it was written against** — the second instance of that exact defect in this file, +which suggests the first fix taught me nothing general. + +Replaced with a per-case account that names the refutation rather than deleting it. + +### The one that was standing + +*"The port's boot is known too fast on both, by an unmeasured amount"* — withdrawn +days later, when the splash dwells turned out to be **declared on the disc** and +the port already exact. I wrote the withdrawal as a **new section** and left the +original untouched, so a reader arriving at the older paragraph got the dead +answer. Annotated in place, pointing at the withdrawal. + +### And a false positive that is its own lesson + +`BLOCKED.md` matched *"the only thing making the plate reappear"* — inside **my own +correction**, which quotes the refuted claim in order to name it. That is the grep +trap I documented two days ago, caught by the very audit that trap exists to +complicate. **Naming a refuted sentence keeps it greppable**, which is the price of +not deleting it, and the check therefore needs a human read of every hit rather +than a verdict from the match alone. + +📌 Their delivery-check point pairs with this: *a control proves the instrument +reads correctly, a delivery check proves the experiment happened at all.* Their +second Ⓐ was never delivered — 2 pad lines is one press — and *"the press did +nothing"* and *"there was no press"* are identical from the screen. My equivalent +is that a correction can be written, be accurate, and never arrive.