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>
All four of section 4a and six of 4b are done. Adds section 3b with the
commits and the three judgement calls behind them: 4a-1 changes rendered
audio and its before/after pair is written but unheard; 4a-4's striding was
measured, found to move the carve's band selection, and rejected; 4a-2's
size ceiling has no test because reproducing it needs a 256 MB payload.
Rewrites 4b around what remains — the chorus/phaser LFO phase, which needs a
buffer-source rework and its own listen, and the per-element browser setup —
and records why the over-broad media.ts health ignore was left alone.
Refreshes the baselines (studio 3662, core 1669, engine 736) and adds
producer, which was never in the set: 534 passing plus 50 pre-existing
collect failures from files importing bun:test.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Eleven of fifteen findings fixed on wa-19-review-fixes; the four left open are
recorded with the analysis already done on each, including why the clip-before-
volume-lane one was started and deliberately stopped. Also carries the cut list,
the cleanup list, the carve-reconcile-wip undo regression, and the nine traps
that cost time — the published-CLI-is-not-a-symlink one above all.
Where the branch stands, what the feature does now, the architectural facts worth not
re-deriving, the traps that cost time (the studio reads core from dist; Number(null)
is 0; the fallow gate already failed before this work), the premises this session
falsified so nobody re-measures them, the stack force-push and what PR #3058 now is,
and the four remaining steps for shared lane rows.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Four clips on one row made a per-clip lane read as governing the whole track. Track-
level FX was considered and rejected — `data-track-index` picks a row and nothing
else, and both runtimes build audio per element, so there is no track to own a chain
— which leaves the fix in the timeline's presentation: lane rows keyed by the
property they drive, shared by every clip on the row that automates it.
Written down rather than started, with the parts that are not obvious until you look:
the grouping key cannot be the lane target, because node ids are minted per chain.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>