testing

Multi-layer regression coverage. Each layer scoped at a different boundary.
as ofcounts below reflect v1.4.0-dev · 85a3dc8 · deployed 2026-08-31 21:38 UTC

Three layers in CI today, by ascending integration scope: unitARTE2E. The PR gate (flox activate -- task ci) runs typecheck + unit + ART + E2E. VRT (Visual Regression Tests) is planned for the video domain but not yet implemented — see below.

Unit

Vitest, fast, scoped per workspace. Lives next to the code (foo.tsfoo.test.ts). Run all unit tests:

flox activate -- task test

Coverage areas today: graph store mutations, capacity logic, auth handshake, layout merging, note-entry coercion, docs module-manifest generator.

Port-surface consistency gates

Three gates keep each module’s I/O surface consistent across def, published manifest, and rendered UI — drift between them was the root cause of a past regression where a def grew dozens of CV inputs but the card only rendered three handles per voice (cables had nothing visible to land on).

  1. The module def at packages/web/src/lib/{audio,video}/modules/<type>.ts (the runtime source of truth — what the engine wires up).
  2. The published manifest at /docs/modules/<type> (built from packages/web/src/lib/docs/module-manifest.ts).
  3. The card UI at packages/web/src/lib/ui/modules/<Type>Card.svelte (the Svelte Flow Handle elements the user can plug cables into).
  • Unit — manifest stays in sync with defs: packages/web/src/lib/docs/module-manifest.test.ts iterates over getAllModuleSpecs() and asserts the manifest’s input/output ids equal the def’s. Catches drift between the def and the docs builder.
  • E2E — UI matches def: e2e/tests/io-spec-consistency.spec.ts is the registry-wide card sweep: it spawns each module type once and asserts every Handle’s data-handleid set equals the def’s port ids (both directions, with a per-port failure message), plus handle count, card identity, card box, control bounds and no console/page errors — all off that one spawn.
  • E2E — CV range uniformity: e2e/tests/cv-range-uniformity.spec.ts walks every cv input port and asserts a cvScale hint is declared, then drives an LFO at ±1 to confirm the target slider sweeps edge-to-edge. Catches the regression where a new module is added with a raw passthrough CV input, leaving an LFO touching only ~10% of the natural range. See docs/adr/004-cv-range-convention.md.

Adding a new module: both tests iterate the registry automatically — no edit needed. The E2E sweep reads the synthesised registry manifest (e2e/.generated/registry-manifest.json), so just make sure the card’s <Handle> id= values match the def’s port ids exactly. If the UI is intentionally lagging the def (e.g. some CV ports kept off-card to avoid chrome overload), add an entry to SKIP_DEF_VS_UI with a TODO pointing at the follow-up branch.

Helper: packages/web/src/lib/dev/module-specs.ts exposes getAllModuleSpecs() as a thin projection of the registry. In dev / VITE_E2E_HOOKS=1 builds it’s also published as window.__moduleSpecs.

ART — Audio Regression Tests

Offline render of compiled DSP through node-web-audio-api → Float32 PCM. Tests assert on FFT peak frequency, harmonic ratios, silence floor, and where deterministic, byte-identical match against a .f32 baseline pinned in Git LFS. The harness lives at art/setup/render.ts.

flox activate -- task art           # run
flox activate -- task art:update    # regenerate .f32 + .sha baselines

Browse a rendered gallery of every .f32 baseline — a waveform + log-frequency spectrogram per baseline, grouped by scenario — published to GitHub Pages: ART gallery →. It’s generated by art/build_gallery.py and republished on every push to main (.github/workflows/art-gallery.yml), the audio sibling of the VRT gallery.

Scenarios (141)

groupspec
_metaaudio-profile-gate.test.ts
_metabaseline-uniqueness.test.ts
adsr-invertenv-invert.test.ts
adsrprofile.test.ts
analog-logic-mathsalgebra.test.ts
analog-logic-mathsface-audit.test.ts
analog-logic-mathsprofile.test.ts
analog-vcofm-sync-model.test.ts
analog-vcohard-sync.test.ts
analog-vcomirror-fidelity.test.ts
analog-vcopw-pm-morph.test.ts
attenumixmix-saturation.test.ts
attenumixprofile.test.ts
audio-outdc-blocker-and-limiter.test.ts
audio-outmaster-limiter-sub-pump.test.ts
audio-outper-channel-taps.test.ts
blueboxprofile.test.ts
buggleswoggle-events.test.ts
cartesian-lfocartesian-lfo.test.ts
charlottes-echoscv-path.test.ts
charlottes-echosface-law.test.ts
charlottes-echosprofile.test.ts
charlottes-echossingle-tap.test.ts
charlottes-echoswet-output.test.ts
clapprofile.test.ts
cloudsgranular-texture.test.ts
cloudssize-travel.test.ts
cloudseedimpulse-response.test.ts
cofefveprofile.test.ts
cubeslice-readout.test.ts
cv-display-param-reachcv-display-param-reach.test.ts
cv-range-uniformitycv-scale-coverage.test.ts
cv-terminalcv-terminal.test.ts
cv-terminalsample.test.ts
delayprofile.test.ts
depolarizerprofile.test.ts
destroyface-audit.test.ts
destroyprofile.test.ts
drummergirlgate-voice.test.ts
dx7algorithm-spectra.test.ts
dx7envelope.test.ts
dx7polyphony.test.ts
dx7preset-spectra.test.ts
dx7spectral-audit.test.ts
dx7syx-spectra.test.ts
equal-power-panpan-law.test.ts
featurecvanalysis.test.ts
featurecvfeature-extract.test.ts
filterprofile.test.ts
flipperprofile.test.ts
fourplexerprofile.test.ts
gatemaidenprofile.test.ts
grand-integrationcombined-master.test.ts
illogicattenuverter-and-logic.test.ts
illogicface-audit.test.ts
illogicprofile.test.ts
karplusprofile.test.ts
kickdrumprofile.test.ts
lfo-shared-clockdeterministic-phase.test.ts
macrooscillatorspectral-character.test.ts
marblesgate-and-cv.test.ts
meowboxmeow-c4.test.ts
meowboxvoct-real-dsp.test.ts
meowboxvoct-tracking.test.ts
mixerprofile.test.ts
mixmstrscv-path.test.ts
mixmstrsface-premises.test.ts
mixmstrspassthrough.test.ts
mixmstrsprefader-sends.test.ts
mixmstrsprofile.test.ts
modtrisgate-pulses.test.ts
moog-cp3face-audit.test.ts
moog-cp3profile.test.ts
moog-filterbankresponse-model.test.ts
moog904aprofile.test.ts
moog904bprofile.test.ts
moog904cprofile.test.ts
moog905profile.test.ts
moog907aprofile.test.ts
moog911face-audit.test.ts
moog911profile.test.ts
moog911aface-audit.test.ts
moog911aprofile.test.ts
moog912face-audit.test.ts
moog914profile.test.ts
moog921-vcoprofile.test.ts
moog923face-audit.test.ts
moog960profile.test.ts
moog962profile.test.ts
ninelivesladder.test.ts
ninelivesprofile.test.ts
noiseprofile.test.ts
noisespectral-shape.test.ts
note-pitchnote-pitch.test.ts
polarizerprofile.test.ts
poly-chordmaj-triad.test.ts
ponggate-pulses.test.ts
qbrtsvf-modes.test.ts
resofilterprofile.test.ts
reverbprofile.test.ts
ringbackprofile.test.ts
ringsresonator-character.test.ts
sample-holdquantized-vco-steps.test.ts
samsloopvarispeed-spectrum.test.ts
scalerprofile.test.ts
scope-tunerinternal-references.test.ts
scope-tunerreal-world.test.ts
scopeprofile.test.ts
scorescore-pitch-and-envelope.test.ts
shimmershineoctave-up-tail.test.ts
sidecarprofile.test.ts
sidecarstatic-ratio-curve.test.ts
sixstrumprofile.test.ts
slew-switchprofile.test.ts
snaredrumprofile.test.ts
stereo-dual-monodual-mono-signal.test.ts
stereovcaprofile.test.ts
stereovcaring-mod-spectrum.test.ts
swolevcomode-gating-and-face-readouts.test.ts
swolevcospectral-and-routing.test.ts
synesthesiaband-filtering.test.ts
tempo-stabilitytempo-stability.test.ts
tidy-vcoprofile.test.ts
timelordebpm-120-internal.test.ts
tomtomprofile.test.ts
treeohvoxvoice-character.test.ts
twotrackstwotracks-lofi-error.test.ts
twotrackstwotracks-lofi-high.test.ts
twotrackstwotracks-lofi-low.test.ts
twotrackstwotracks-lofi-off.test.ts
unityscalemathematikcv-path.test.ts
unityscalemathematikprofile.test.ts
vca-invertsign-flip.test.ts
vcaprofile.test.ts
videophase1-defs.test.ts
videowaveform-video-defs.test.ts
warrensspectrumcv-path.test.ts
warrensspectrumprofile.test.ts
wavecelwavecel.test.ts
wavefolderwavefolder-spectrum.test.ts
wavetable-vcocv-path.test.ts

Baselines (240)

Pinned in Git LFS at art/baselines/. .f32 = raw 32-bit PCM, .sha = sidecar hash.

groupfile
adsrenv.f32
adsrenv.sha
analog-logic-mathsdiff.f32
analog-logic-mathsdiff.sha
analog-logic-mathsmax.f32
analog-logic-mathsmax.sha
analog-logic-mathsmin.f32
analog-logic-mathsmin.sha
analog-logic-mathsproduct.f32
analog-logic-mathsproduct.sha
analog-logic-mathssum.f32
analog-logic-mathssum.sha
analog-vcofm-morph-sine.f32
analog-vcofm-morph-sine.sha
analog-vcofm-sync-c1-bsaw.f32
analog-vcofm-sync-c1-bsaw.sha
analog-vcofm-sync-c1-bsine.f32
analog-vcofm-sync-c1-bsine.sha
analog-vcofm-sync-c1-bsquare.f32
analog-vcofm-sync-c1-bsquare.sha
analog-vcofm-sync-c1-vibrato.f32
analog-vcofm-sync-c1-vibrato.sha
analog-vcofm-sync-c2-bmaster.f32
analog-vcofm-sync-c2-bmaster.sha
analog-vcofm-sync-c3-feedback-a.f32
analog-vcofm-sync-c3-feedback-a.sha
analog-vcofm-sync-c3-feedback-b.f32
analog-vcofm-sync-c3-feedback-b.sha
analog-vcofm-sync-c4-mutual-a.f32
analog-vcofm-sync-c4-mutual-a.sha
analog-vcofm-sync-c4-mutual-b.f32
analog-vcofm-sync-c4-mutual-b.sha
analog-vcohard-sync.f32
analog-vcohard-sync.sha
analog-vcopm-morph-saw.f32
analog-vcopm-morph-saw.sha
analog-vcopm-morph-sine.f32
analog-vcopm-morph-sine.sha
analog-vcopm-morph-square.f32
analog-vcopm-morph-square.sha
analog-vcopw-sweep-50.f32
analog-vcopw-sweep-50.sha
analog-vcopw-sweep-narrow.f32
analog-vcopw-sweep-narrow.sha
analog-vcopw-sweep-wide.f32
analog-vcopw-sweep-wide.sha
attenumixmix.f32
attenumixmix.sha
attenumixout2.f32
attenumixout2.sha
blueboxout.f32
blueboxout.sha
charlottes-echosL.f32
charlottes-echosL.sha
clapaudio_out.f32
clapaudio_out.sha
cofefveout.f32
cofefveout.sha
cubeaxis-aligned.f32
cubeconnect-strength-circle.f32
cubeconnect-strength-hard.f32
cubeconnect-strength-vee.f32
cubeconnect-vee.f32
cubecrushed.f32
cubehard-material.f32
cubemorph-ceiling.f32
cuberotated.f32
cubespace-crush-and-crush.f32
cubespace-crush-max.f32
cubespace-crush-mid.f32
cubespace-diffuse-max.f32
cubespace-diffuse-mid.f32
cubespace-diffuse-rotated.f32
cubespace-diffuse-wrap.f32
cubespread-right.f32
cubewrap-outside.f32
delayaudio.f32
delayaudio.sha
depolarizerout.f32
depolarizerout.sha
destroyaudio.f32
destroyaudio.sha
featurecvnoise-bright.f32
featurecvramp-loud.f32
featurecvsine-punch.f32
featurecvtransient-onset.f32
filteraudio.f32
filteraudio.sha
flipperflip.f32
flipperflip.sha
flipperflop.f32
flipperflop.sha
fourplexerout1.f32
fourplexerout1.sha
gatemaidengate.f32
gatemaidengate.sha
gatemaidentrig.f32
gatemaidentrig.sha
grand-integrationcombined-master.f32
grand-integrationcombined-master.sha
illogicand.f32
illogicand.sha
illogicdiff.f32
illogicdiff.sha
illogicor.f32
illogicor.sha
illogicsum.f32
illogicsum.sha
karplusmelody.f32
karplusmelody.sha
karplusout.f32
karplusout.sha
kickdrumaudio_l.f32
kickdrumaudio_l.sha
mixeraudio.f32
mixeraudio.sha
mixmstrsmasterL.f32
mixmstrsmasterL.sha
mixmstrssend1L.f32
mixmstrssend1L.sha
mixmstrssend2L.f32
mixmstrssend2L.sha
moog-cp3out_positive.f32
moog-cp3out_positive.sha
moog904aaudio.f32
moog904aaudio.sha
moog904baudio.f32
moog904baudio.sha
moog904caudio.f32
moog904caudio.sha
moog905audio.f32
moog905audio.sha
moog907aaudio.f32
moog907aaudio.sha
moog911env.f32
moog911env.sha
moog911aout1.f32
moog911aout1.sha
moog911aout2.f32
moog911aout2.sha
moog914audio.f32
moog914audio.sha
moog921-vcorectangular.f32
moog921-vcorectangular.sha
moog921-vcosawtooth.f32
moog921-vcosawtooth.sha
moog921-vcosine.f32
moog921-vcosine.sha
moog921-vcotriangle.f32
moog921-vcotriangle.sha
moog960row1.f32
moog960row1.sha
moog960row2.f32
moog960row2.sha
moog960row3.f32
moog960row3.sha
moog962out.f32
moog962out.sha
ninelivesout1.f32
ninelivesout1.sha
ninelivesout2.f32
ninelivesout2.sha
ninelivesout3.f32
ninelivesout3.sha
noisebrown.f32
noisebrown.sha
noisepink.f32
noisepink.sha
noisewhite.f32
noisewhite.sha
polarizerout.f32
polarizerout.sha
resofilterout.f32
resofilterout.sha
reverbaudio.f32
reverbaudio.sha
ringbackout.f32
ringbackout.sha
sample-holdcontinuous-quant-curve.f32
sample-holdgated-quant-steps.f32
scalerout.f32
scalerout.sha
scopech1_out.f32
scopech1_out.sha
scopech2_out.f32
scopech2_out.sha
sidecaraudio_l_out.f32
sidecaraudio_l_out.sha
sidecarenv_out.f32
sidecarenv_out.sha
sixstrumout.f32
sixstrumout.sha
sixstrumpoly.f32
sixstrumpoly.sha
slew-switchout2.f32
slew-switchout2.sha
slew-switchswitched.f32
slew-switchswitched.sha
snaredrumhit_l.f32
snaredrumhit_l.sha
snaredrumroll_l.f32
snaredrumroll_l.sha
snaredrumroll_r.f32
snaredrumroll_r.sha
stereovcaout_l.f32
stereovcaout_l.sha
stereovcaout_r.f32
stereovcaout_r.sha
synesthesiaband1-65hz.f32
synesthesiaband2-400hz.f32
synesthesiaband3-2000hz.f32
synesthesiaband4-8000hz.f32
tidy-vcoout_l.f32
tidy-vcoout_l.sha
tidy-vcoout_r.f32
tidy-vcoout_r.sha
tomtomaudio_out.f32
tomtomaudio_out.sha
tomtomtune_spread.f32
tomtomtune_spread.sha
treeohvoxc-d-eb-f-eb-d-c.f32
treeohvoxc-d-eb-f-eb-d-c.sha
unityscalemathematika_out.f32
unityscalemathematika_out.sha
unityscalemathematikb_out.f32
unityscalemathematikb_out.sha
unityscalemathematiku_out.f32
unityscalemathematiku_out.sha
vcaaudio.f32
vcaaudio.sha
warrensspectrumfreeze-hold.f32
warrensspectrumfreeze-hold.sha
warrensspectrummasspass-24.f32
warrensspectrummasspass-24.sha
warrensspectrummasspass-99.f32
warrensspectrummasspass-99.sha
warrensspectrumresidual-off.f32
warrensspectrumresidual-off.sha
warrensspectrumresynth.f32
warrensspectrumresynth.sha

VRT — Visual Regression Tests

E2E — Playwright

Headless Chromium, real Web Audio (worklets and all), against the actual SvelteKit app. Boots a Vite dev server (or vite preview when E2E_USE_PREVIEW=1). Lives under e2e/tests/; specs tagged @smoke double as the post-deploy live check on autotest.

flox activate -- task e2e          # full suite
flox activate -- task e2e:headed   # with the browser visible
flox activate -- task ci:smoke:live  # smoke vs autotest.patchtogether.live

Specs (484)

  • 4plexer.spec.ts
  • 4plexvid.spec.ts
  • acidwarp-face-screen.spec.ts
  • acidwarp-render-smoke.spec.ts
  • adsr-face.spec.ts
  • adsr-poly-midilane.spec.ts
  • adsr-vca-invert.spec.ts
  • ai-debug.spec.ts
  • ai-smoke.spec.ts
  • analog-vco-fm-sync.spec.ts
  • analog-vco-hard-sync.spec.ts
  • archivist.spec.ts
  • audio-controls.spec.ts
  • audio-health-readout.spec.ts
  • audio-in.spec.ts
  • audio-input-survives-card-collapse.spec.ts
  • audioctx-sample-rate.spec.ts
  • audioout-face.spec.ts
  • aut-patch-panel.spec.ts
  • auth-handshake.spec.ts
  • auth-routes.spec.ts
  • automation-video-nostuck.spec.ts
  • awareness.spec.ts
  • b3ntb0x-hue-claim.spec.ts
  • b3ntb0x.spec.ts
  • backdraft-clocked-delay.spec.ts
  • backdraft-full-output.spec.ts
  • backdraft-panic.spec.ts
  • backdraft-preview-toggle.spec.ts
  • backdraft-pure-tv.spec.ts
  • backdraft-render-smoke.spec.ts
  • backdraft.spec.ts
  • behavioral-observation-window.spec.ts
  • bentbox.spec.ts
  • blood-audio-output.spec.ts
  • blood-ingame.spec.ts
  • blood-mount.spec.ts
  • bluebox.spec.ts
  • bridge-late-materialization.spec.ts
  • buggles.spec.ts
  • cable-drag-drilldown.spec.ts
  • cable-drag-panel-lock.spec.ts
  • cable-drag-section-expand.spec.ts
  • cable-z-order.spec.ts
  • cadillac-collab.spec.ts
  • cadillac.spec.ts
  • camera-input.spec.ts
  • camerainput-shell-source.spec.ts
  • capacity.spec.ts
  • card-control-overflow.spec.ts
  • card-drop-patch.spec.ts
  • card-producer-lifetime.spec.ts
  • carl-rackspace.spec.ts
  • cartesian-face.spec.ts
  • cellshade-functional.spec.ts
  • cellshade.spec.ts
  • chromaconsole.spec.ts
  • clap.spec.ts
  • clear-load-multiwindow.spec.ts
  • clear-patch-undo.spec.ts
  • clear.spec.ts
  • click-pickup-cable.spec.ts
  • clip-automation.spec.ts
  • clip-prob-default.spec.ts
  • clipplayer-card-erase.spec.ts
  • clipplayer-card-parity.spec.ts
  • clipplayer-clip-delete.spec.ts
  • clipplayer-clip-view-grid.spec.ts
  • clipplayer-controls.spec.ts
  • clipplayer-custom-scale.spec.ts
  • clipplayer-edit-launch.spec.ts
  • clipplayer-grid-stability.spec.ts
  • clipplayer-pitch-probability.spec.ts
  • clipplayer-play-every.spec.ts
  • clipplayer-queue-boundary.spec.ts
  • clipplayer-rate-reset.spec.ts
  • clipplayer-right-click-menu.spec.ts
  • clipplayer-songmode.spec.ts
  • clipplayer-transport-no-controller.spec.ts
  • clipplayer.spec.ts
  • clouds-face.spec.ts
  • clouds.spec.ts
  • cloudseed-face.spec.ts
  • cloudseed.spec.ts
  • cofefve.spec.ts
  • collab.spec.ts
  • collapse-keeps-playing.spec.ts
  • color-field.spec.ts
  • colourofmagic.spec.ts
  • connection-validate-edge.spec.ts
  • control-color.spec.ts
  • control-surface.spec.ts
  • coverage-group-1-sinks.spec.ts
  • coverage-group-2-sources.spec.ts
  • coverage-groups-3-4-5.spec.ts
  • coverage-groups-6-7-8-9.spec.ts
  • cube.spec.ts
  • cv-buddy-face.spec.ts
  • cv-range-uniformity.spec.ts
  • delay-face.spec.ts
  • destructor-render-smoke.spec.ts
  • dock-pane-close-chrome.spec.ts
  • dock-tray-shrink-to-content.spec.ts
  • docs-virtual-module.spec.ts
  • docs.spec.ts
  • doom-aspect.spec.ts
  • doom-audio-output.spec.ts
  • doom-cheat-gates.spec.ts
  • doom-controls.spec.ts
  • doom-identity-crossview.spec.ts
  • doom-keyboard-routing.spec.ts
  • doom-late-join.spec.ts
  • doom-launch.spec.ts
  • doom-mp-latejoin-freeze.spec.ts
  • doom-mp-lockstep-sharedstate.spec.ts
  • doom-mp-real.spec.ts
  • doom-multiplayer.spec.ts
  • doom-per-type-death-gates.spec.ts
  • doom-session-survives-card-collapse.spec.ts
  • doom-wasm.spec.ts
  • duplicate-module.spec.ts
  • dx7-algorithm-picker.spec.ts
  • dx7-operator-panel.spec.ts
  • dx7-syx-load.spec.ts
  • dx7.spec.ts
  • edges.spec.ts
  • editor-edit-survives-collapse.spec.ts
  • electra-control.spec.ts
  • electra-reconnect.spec.ts
  • es9-card-shows-state.spec.ts
  • es9-face.spec.ts
  • es9-hardware.spec.ts
  • es9-per-leg-patching.spec.ts
  • es9-shell-lifetime.spec.ts
  • export-state-only.spec.ts
  • extras-producer-lifetime.spec.ts
  • face-screen-render-2.spec.ts
  • face-screen-render-3.spec.ts
  • face-screen-render-4.spec.ts
  • face-screen-render.spec.ts
  • faceplate-platform.spec.ts
  • faces-parity-2.spec.ts
  • faces-parity-3.spec.ts
  • faces-parity-4.spec.ts
  • faces-parity.spec.ts
  • fader-midi-assign.spec.ts
  • fader.spec.ts
  • featurecv-source-chain.spec.ts
  • feedback.spec.ts
  • filter-cv-depth.spec.ts
  • flip-rack-rear-view.spec.ts
  • four-modules.spec.ts
  • foxy-face-surface.spec.ts
  • foxy-freeze-locks-wavetable.spec.ts
  • foxy.spec.ts
  • frametable.spec.ts
  • freezeframe-screen-toggle.spec.ts
  • freezeframe.spec.ts
  • frogger.spec.ts
  • gamepad-face.spec.ts
  • gamepad.spec.ts
  • gibribbon.spec.ts
  • gl-feedback-loop.spec.ts
  • grains-of-vision.spec.ts
  • graphic-eq-render-smoke.spec.ts
  • group-exposed-controls.spec.ts
  • grouping-phase1.spec.ts
  • grouping-phase2.spec.ts
  • grouping-phase3.spec.ts
  • house-style.spec.ts
  • illogic-face.spec.ts
  • illogic.spec.ts
  • in-card-title.spec.ts
  • insert-on-cable.spec.ts
  • instrument-exposed-port-patching.spec.ts
  • instruments.spec.ts
  • integration.spec.ts
  • inwards-render-smoke.spec.ts
  • io-spec-consistency.spec.ts
  • joystick.spec.ts
  • karplus-face.spec.ts
  • karplus.spec.ts
  • keyboard-nav.spec.ts
  • keyer-functional.spec.ts
  • kickdrum-face.spec.ts
  • kickdrum.spec.ts
  • kria.spec.ts
  • landing-links.spec.ts
  • landing-new-rack-is-fresh.spec.ts
  • landing-routing.spec.ts
  • lasso-group.spec.ts
  • lasso-viewport-reanchor.spec.ts
  • launchpad-arp.spec.ts
  • launchpad-clip-launch.spec.ts
  • launchpad-face.spec.ts
  • launchpad-keys-record.spec.ts
  • launchpad-monitor-survives-card-collapse.spec.ts
  • launchpad-perf-controls.spec.ts
  • launchpad-scene-repeats.spec.ts
  • layers-survive-card-collapse.spec.ts
  • lfo-face.spec.ts
  • lfo-modulation-visible.spec.ts
  • lines-render-smoke.spec.ts
  • live-glyphs.spec.ts
  • livecode.spec.ts
  • load-patch.spec.ts
  • login-smoke.spec.ts
  • loopback-shell-source.spec.ts
  • loopback.spec.ts
  • lushgarden.spec.ts
  • main-thread-cost.spec.ts
  • mandelbulb-render-smoke.spec.ts
  • mandleblot-render-smoke.spec.ts
  • mapper.spec.ts
  • mappy-export-import.spec.ts
  • mappy-output.spec.ts
  • marbles-face.spec.ts
  • matrixmix.spec.ts
  • media-loader.spec.ts
  • menu-viewport-clamp.spec.ts
  • meowbox.spec.ts
  • midi-autobind-perfzip.spec.ts
  • midi-binding-node-lifetime.spec.ts
  • midi-cv-buddy.spec.ts
  • midi-lane.spec.ts
  • midi-learn-note.spec.ts
  • midi-learn.spec.ts
  • midi-out-buddy.spec.ts
  • midi.spec.ts
  • midiclock.spec.ts
  • mike-rackspace.spec.ts
  • milkdrop-render-smoke.spec.ts
  • mixmstrs-face-console.spec.ts
  • mixmstrs-stereo-expand.spec.ts
  • modtris.spec.ts
  • modulation.spec.ts
  • module-annotate.spec.ts
  • module-rename.spec.ts
  • multi-output.spec.ts
  • multi-video-playback.spec.ts
  • nested-module-menu.spec.ts
  • new-rack-return-to-last.spec.ts
  • nibbles-cv-scope.spec.ts
  • nibbles-render-smoke.spec.ts
  • nibbles.spec.ts
  • node-context-menu.spec.ts
  • node-source-hls.spec.ts
  • node-source-videobox.spec.ts
  • node-source-videovarispeed.spec.ts
  • noise-face.spec.ts
  • noise.spec.ts
  • note-entry.spec.ts
  • numpad-plus-face.spec.ts
  • numpad-plus.spec.ts
  • onetonine.spec.ts
  • organize-modules.spec.ts
  • out-to-launch-face.spec.ts
  • outlines-render-smoke.spec.ts
  • outlines.spec.ts
  • p1-batch2-faces.spec.ts
  • page-error-filter.spec.ts
  • painter.spec.ts
  • palette.spec.ts
  • param-edit-undo.spec.ts
  • param-grid.spec.ts
  • patch-convenience.spec.ts
  • patch-load-leak.spec.ts
  • patch-menu-redesign.spec.ts
  • patch-menu-ux.spec.ts
  • patch-panel-jack-indicator.spec.ts
  • patch-panel-nested.spec.ts
  • patch-panel.spec.ts
  • patch-to-cascade.spec.ts
  • peakstate-render-smoke.spec.ts
  • peertube.spec.ts
  • pentemelodica.spec.ts
  • per-module-per-port-behavioral.spec.ts
  • per-module-per-port-inputs.spec.ts
  • per-module-per-port-outputs.spec.ts
  • per-module.spec.ts
  • perf-midi-cc-coalesce.spec.ts
  • perf-tempo-under-modulation.spec.ts
  • picturebox-asset-select.spec.ts
  • picturebox-gif.spec.ts
  • picturebox-limits.spec.ts
  • picturebox-sync.spec.ts
  • poly-chord.spec.ts
  • pong.spec.ts
  • posterbox-functional.spec.ts
  • present-second-display.spec.ts
  • present-survives-card-collapse.spec.ts
  • preset-slots-and-sets.spec.ts
  • ptzcam.spec.ts
  • push2-clip-launch.spec.ts
  • push2-face.spec.ts
  • quadralogical-assign.spec.ts
  • quadralogical-face-screen.spec.ts
  • quadralogical.spec.ts
  • rack-audio-gate.spec.ts
  • rackspace-isolation.spec.ts
  • rackspace-persistence.spec.ts
  • rear-card-hit-target.spec.ts
  • rear-view-patching.spec.ts
  • recorderbox-recover-reachable.spec.ts
  • recorderbox.spec.ts
  • recording-survives-card-collapse.spec.ts
  • rename-aware-peer-labels.spec.ts
  • render-worker-acidwarp.spec.ts
  • render-worker-locus.spec.ts
  • render-worker-toybox.spec.ts
  • reshaper-shapedramps.spec.ts
  • resofilter-face.spec.ts
  • resofilter.spec.ts
  • ringback-face.spec.ts
  • ringback.spec.ts
  • rings-face.spec.ts
  • rings.spec.ts
  • sample-hold.spec.ts
  • samsloop-boundaries-roundtrip.spec.ts
  • samsloop-download.spec.ts
  • samsloop-memory-bench.spec.ts
  • samsloop-persistence.spec.ts
  • samsloop-poly-source-chain.spec.ts
  • samsloop-record.spec.ts
  • samsloop-take-survives-card-collapse.spec.ts
  • samsloop-window.spec.ts
  • samsloop.spec.ts
  • save-group-and-naming.spec.ts
  • save-load.spec.ts
  • saved-groups-wiring.spec.ts
  • scaler-cv-passthrough.spec.ts
  • scope-tuner.spec.ts
  • scope-video-out.spec.ts
  • scope-xy-intensity.spec.ts
  • score-face.spec.ts
  • score.spec.ts
  • scoreboard-face-screen.spec.ts
  • scoreboard.spec.ts
  • scratch-persist-video-live.spec.ts
  • scratch-persist.spec.ts
  • seed-none-fixture.spec.ts
  • shapegen-clock.spec.ts
  • shapegen.spec.ts
  • shared-clock.spec.ts
  • shared-rack-sync.spec.ts
  • sidecar.spec.ts
  • sixstrum-poly.spec.ts
  • skifree-node-lifetime.spec.ts
  • skifree.spec.ts
  • skin-persists-app-wide.spec.ts
  • skins.spec.ts
  • slider-drag.spec.ts
  • snaredrum-face.spec.ts
  • snaredrum-roll.spec.ts
  • snh-hold.spec.ts
  • soak.spec.ts
  • sourcery.spec.ts
  • spawn-at-cursor.spec.ts
  • spawn-mount-budget.spec.ts
  • spirographs-render-smoke.spec.ts
  • stereo-autowire.spec.ts
  • stereo-drop-choice.spec.ts
  • stereo-mono-normal.spec.ts
  • stereo-only-channel.spec.ts
  • sticky-note.spec.ts
  • swolevco.spec.ts
  • synesthesia-video-mode.spec.ts
  • tempest-render-smoke.spec.ts
  • tempo-stability.spec.ts
  • tempolock.spec.ts
  • textmarquee-render-smoke.spec.ts
  • textmarquee.spec.ts
  • tidy-vco.spec.ts
  • tiler.spec.ts
  • timelorde-auto-spawn.spec.ts
  • timelorde-pinned-source.spec.ts
  • timelorde-tap-tempo.spec.ts
  • timelorde-transport-state.spec.ts
  • timelorde-video.spec.ts
  • tomtom.spec.ts
  • topbar-1024.spec.ts
  • topbar-buttons.spec.ts
  • toybox-combine-editor.spec.ts
  • toybox-control-surface.spec.ts
  • toybox-cv-section.spec.ts
  • toybox-disk-loading.spec.ts
  • toybox-feedback.spec.ts
  • toybox-fixture-behavior.spec.ts
  • toybox-fixtures.spec.ts
  • toybox-layer-input.spec.ts
  • toybox-layer-selector.spec.ts
  • toybox-new-content.spec.ts
  • toybox-node-batch.spec.ts
  • toybox-node-controls.spec.ts
  • toybox-node-menu.spec.ts
  • toybox-presets-io.spec.ts
  • toybox-presets.spec.ts
  • toybox-randomize.spec.ts
  • toybox-shader-validate.spec.ts
  • toybox-shadertoy.spec.ts
  • toybox-video-inputs.spec.ts
  • toybox-video-projection.spec.ts
  • treeohvox-strike.spec.ts
  • tv-librarian-audio.spec.ts
  • tv-librarian-face.spec.ts
  • tv-librarian.spec.ts
  • twotracks-perfzip.spec.ts
  • twotracks-stereo.spec.ts
  • twotracks.spec.ts
  • ui-refresh.spec.ts
  • unpatch-patch-point.spec.ts
  • varispeed-multislot-persist.spec.ts
  • varispeed-panel-layout.spec.ts
  • vca-face.spec.ts
  • vco-pitch-tracking.spec.ts
  • version-heading.spec.ts
  • vfpga-floorplan.spec.ts
  • vfpga-p2-cells.spec.ts
  • vfpga-p3-composite.spec.ts
  • vfpga-p4-early-hd.spec.ts
  • vfpga-patchpanel-presets.spec.ts
  • vfpga-runner-face-screen.spec.ts
  • vfpga-runner-render-smoke.spec.ts
  • vfpga-runner.spec.ts
  • video-aspect-switch.spec.ts
  • video-audio-cvgate-coverage.spec.ts
  • video-audio-output.spec.ts
  • video-chain.spec.ts
  • video-controls.spec.ts
  • video-full-frame.spec.ts
  • video-fullscreen-multimonitor.spec.ts
  • video-fullscreen.spec.ts
  • video-hide-controls.spec.ts
  • video-orientation.spec.ts
  • video-preview-downscale.spec.ts
  • video-preview-gate.spec.ts
  • video-pull-eval.spec.ts
  • videobox-output.spec.ts
  • videobox-performance-bundle.spec.ts
  • videobox-upload-perf.spec.ts
  • videocube-assign.spec.ts
  • videocube.spec.ts
  • videoout-detach-display.spec.ts
  • videoout-drop-patch.spec.ts
  • videovarispeed-crop.spec.ts
  • videovarispeed-output.spec.ts
  • videovarispeed-perfzip.spec.ts
  • videovarispeed-switch.spec.ts
  • voice-chain-art.spec.ts
  • voice-chain.spec.ts
  • voice-pitch-accuracy.spec.ts
  • vst-bridge.spec.ts
  • vst-lane-autowire.spec.ts
  • warrensspectrum-stereo.spec.ts
  • warrensvisions.spec.ts
  • wavecel-video-outs.spec.ts
  • wavecel-viz.spec.ts
  • waveform-trace-shape.spec.ts
  • wavesculpt.spec.ts
  • workflow-audio-io-face.spec.ts
  • workflow-camera.spec.ts
  • workflow-channel-columns.spec.ts
  • workflow-dock-collab.spec.ts
  • workflow-dock-occupancy.spec.ts
  • workflow-dock-ux.spec.ts
  • workflow-dock.spec.ts
  • workflow-drawer-face.spec.ts
  • workflow-lane-add-safety.spec.ts
  • workflow-lane-membership-is-positional.spec.ts
  • workflow-lane-uniform-binding.spec.ts
  • workflow-master-transport.spec.ts
  • workflow-media.spec.ts
  • workflow-mode.spec.ts
  • workflow-rear-card.spec.ts
  • workflow-shell-dual-glyph.spec.ts
  • workflow-shell-faces.spec.ts
  • workflow-shell-live-glyphs.spec.ts
  • workflow-shell-video.spec.ts
  • workflow-shell.spec.ts
  • workflow-spawn-reveal.spec.ts
  • workflow-surfaces.spec.ts
  • workflow-video-zone-defaults.spec.ts
  • workflow-viewport-nav.spec.ts
  • xy-pad-cell.spec.ts

Chaos

Single-user randomized intent fuzzer. Drives the canvas through 200+ random patches / mutations; checks invariants between each. Multi-user invariants land post-Stage B.

flox activate -- task chaos:run

CI shape

The full gate runs in .github/workflows/ci.yml inside Flox so the toolchain (Node 22, Faust 2.85.5, esbuild) matches local. Postgres 17 is a service container; the DB schema is applied before task ci runs.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo