docs(plans): correct the producer baseline and keep the A/B generator

Producer's suite is split across two runners, not half broken: 49 files import
`bun:test` and vitest reports them as collect failures. Both halves are now
recorded with the commands to run them, including the `./` prefix `bun test`
needs to treat arguments as paths rather than name filters — without it the run
exits 0 having run nothing.

That half was the real blind spot for b1faacb3a: `plan.test.ts` and the
`plan-parity-*` suite cover `applyDistributedAudioWarningPolicy`, the consumer
whose input that commit changed. Run and green — 203 passing.

Also copies the A/B generator next to the wavs it produced, so the pair can be
rebuilt with a different chain or the user's own audio instead of dying with
the session's scratchpad.

All four suites re-run at this HEAD, so the baseline block is true at the
commit it names: studio 3662, core 1669, engine 736, producer 534 + 203.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vance Ingalls
2026-08-08 12:43:36 -07:00
co-authored by Claude Opus 5
parent 0518a10033
commit c67f254cd3
+30 -4
View File
@@ -32,12 +32,32 @@ plain fast-forward.
packages/studio 3662 passing, 18 todo, 1 file skipped
packages/core 1669 passing
packages/engine 736 passing, 3 skipped (src/services)
packages/producer 534 passing — plus 50 PRE-EXISTING collect failures
packages/producer 534 passing under vitest, 203 under bun test (see below)
```
The producer collect failures are files importing `bun:test`, which `vitest run`
cannot load. Same 50 before and after this work; only the passing count moved
(533 → 534). Producer was never in the original baseline set, which is why.
**Producer's suite is split across two runners.** 49 files import `bun:test`
and `vitest run` cannot load them — it reports them as collect failures, which
is a harness split, not breakage. Run BOTH:
```bash
cd packages/producer
./node_modules/.bin/vitest run # 534 passing, 50 files fail to collect
bun test ./src/services/distributed/plan.test.ts ./src/plan-parity-*.test.ts \
./src/services/render/stages/*.test.ts # 203 passing
```
Note the leading `./` — without it `bun test` reads the arguments as name
filters and runs nothing while exiting 0. A bare `bun test` is worse than
useless here: it also picks up the vitest files, which it cannot run, so it
reports ~37 phantom failures.
The bun half matters for the `b1faacb3a` audioStage change specifically:
`plan.test.ts` and the `plan-parity-*` suite cover
`applyDistributedAudioWarningPolicy`, the consumer whose input that commit
changed. Verified green.
Producer was never in the original baseline set, which is why neither half was
tracked before.
`tsc`, `oxlint`, `oxfmt` clean across studio, core, engine, producer, lint.
@@ -125,6 +145,12 @@ Three judgement calls worth knowing:
yet.** The numbers: the chain peaks at 1.346, the old order sheared 19,166
samples (1.7% of the file) flat against ±1, and level-matched the two differ
by an error signal 26.3 dB down with a worst single-sample delta of 0.242.
The generator sits beside them — `bun ~/audio-fx-clip-ab/ab-clip.mts <outdir>
<source.wav>` — so the pair can be rebuilt with a different chain, a
different duck, or the user's own audio. It drives the real
`applyAudioFxChain`, once with the envelope and once without followed by the
mixer's old second pass, so "before" is the actual previous behaviour rather
than a simulation of it.
- **§4a-4 striding was tried and rejected.** Capping Welch at N windows is 27x
faster on a 5-minute voiceover (427 ms → 15 ms) but *changes the carve*: at
strength 0.9 the selected band set moved (630 Hz → 160 Hz) and it did not