testing

Multi-layer regression coverage. Each layer scoped at a different boundary.
as ofcounts below reflect v1.1.0-dev · fbc0555 · deployed 2026-07-03 22:51 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 the RIOTGIRLS regression where the 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 spawns each module type, reads window.__moduleSpecs, and asserts every Handle’s data-handleid matches the def.
  • 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 .myrobots/plans/cv-range-standard.md.

Adding a new module: the unit test iterates the registry automatically — no edit needed. For the E2E test, add the new ModuleType string to the MODULE_TYPES array in io-spec-consistency.spec.ts and 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 (119)

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-mathsprofile.test.ts
analog-vcofm-sync-model.test.ts
analog-vcohard-sync.test.ts
analog-vcopw-pm-morph.test.ts
attenumixmix-saturation.test.ts
attenumixprofile.test.ts
audio-outdc-blocker-and-limiter.test.ts
blueboxprofile.test.ts
buggleswoggle-events.test.ts
cartesian-lfocartesian-lfo.test.ts
charlottes-echosprofile.test.ts
charlottes-echossingle-tap.test.ts
charlottes-echoswet-output.test.ts
chowkickcanonical-kicks.test.ts
chowkickprofile.test.ts
cloudsgranular-texture.test.ts
cloudseedimpulse-response.test.ts
cofefveprofile.test.ts
cubeslice-readout.test.ts
cv-range-uniformitycv-scale-coverage.test.ts
delayprofile.test.ts
depolarizerprofile.test.ts
destroyprofile.test.ts
drumseqzeucl-render.test.ts
dx7algorithm-spectra.test.ts
dx7envelope.test.ts
dx7polyphony.test.ts
dx7preset-spectra.test.ts
dx7spectral-audit.test.ts
dx7syx-spectra.test.ts
elementsmodal-character.test.ts
featurecvfeature-extract.test.ts
filterprofile.test.ts
flipperprofile.test.ts
fourplexerprofile.test.ts
gatemaidenprofile.test.ts
hypercubeslice-readout.test.ts
illogicattenuverter-and-logic.test.ts
illogicprofile.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-tracking.test.ts
mixerprofile.test.ts
mixmstrspassthrough.test.ts
mixmstrsprofile.test.ts
modtrisgate-pulses.test.ts
moog-cp3profile.test.ts
moog904aprofile.test.ts
moog904bprofile.test.ts
moog904cprofile.test.ts
moog905profile.test.ts
moog907aprofile.test.ts
moog911profile.test.ts
moog911aprofile.test.ts
moog914profile.test.ts
moog921-vcoprofile.test.ts
moog960profile.test.ts
moog962profile.test.ts
negativityprofile.test.ts
ninelivesprofile.test.ts
noiseprofile.test.ts
noisespectral-shape.test.ts
note-pitchnote-pitch.test.ts
peaksmultimode.test.ts
polarizerprofile.test.ts
poly-chordmaj-triad.test.ts
polyseqzchord-fft.test.ts
ponggate-pulses.test.ts
resofilterprofile.test.ts
reverbprofile.test.ts
ringbackprofile.test.ts
ringsresonator-character.test.ts
riotgirlspassthrough.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
sequencer-transportquicksave-handoff.test.ts
shimmershineoctave-up-tail.test.ts
sidecarprofile.test.ts
sidecarstatic-ratio-curve.test.ts
slew-switchprofile.test.ts
stagessegment-shapes.test.ts
stereovcaprofile.test.ts
stereovcaring-mod-spectrum.test.ts
swolevcospectral-and-routing.test.ts
symbiotedrums-and-acid.test.ts
synesthesiaband-filtering.test.ts
tempo-stabilitytempo-stability.test.ts
tides2poly-slope.test.ts
timelordebpm-120-internal.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
unityscalemathematikprofile.test.ts
vca-invertsign-flip.test.ts
vcaprofile.test.ts
veilsgain-curves.test.ts
veilsprofile.test.ts
videophase1-defs.test.ts
videowaveform-video-defs.test.ts
warpsalgorithm-spectra.test.ts
warrenspectrumping-rings.test.ts
warrenspectrumwarrenspectrum.test.ts
wavecelwavecel.test.ts
wavefolderwavefolder-spectrum.test.ts

Baselines (214)

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
chowkickaudio_out.f32
chowkickaudio_out.sha
cofefveout.f32
cofefveout.sha
cubeaxis-aligned.f32
cubeconnect-strength-circle.f32
cubeconnect-strength-hard.f32
cubeconnect-strength-vee.f32
cubeconnect-vee.f32
cubehard-material.f32
cubemorph-ceiling.f32
cuberotated.f32
cubespace-crush-and-crush.f32
cubespace-crush-max.f32
cubespace-crush-mid.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
hypercubealpha-max.f32
hypercubealpha-mid.f32
hypercubealpha-rotated.f32
hypercubealpha-zero.f32
illogicand.f32
illogicand.sha
illogicdiff.f32
illogicdiff.sha
illogicor.f32
illogicor.sha
illogicsum.f32
illogicsum.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
negativityout.f32
negativityout.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
slew-switchout2.f32
slew-switchout2.sha
slew-switchswitched.f32
slew-switchswitched.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
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
veilsmix.f32
veilsmix.sha
veilsout1.f32
veilsout1.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 (321)

  • 4plexer.spec.ts
  • 4plexvid.spec.ts
  • acidwarp-render-smoke.spec.ts
  • adsr-poly-midilane.spec.ts
  • adsr-vca-invert.spec.ts
  • ai-debug.spec.ts
  • ai-smoke.spec.ts
  • analog-logic-maths.spec.ts
  • analog-vco-fm-sync.spec.ts
  • analog-vco-hard-sync.spec.ts
  • archivist.spec.ts
  • atlantis-catalyst.spec.ts
  • attenumix.spec.ts
  • audio-controls.spec.ts
  • audio-gate.spec.ts
  • audio-in.spec.ts
  • audioctx-sample-rate.spec.ts
  • aut-patch-panel.spec.ts
  • auth-handshake.spec.ts
  • auth-routes.spec.ts
  • awareness.spec.ts
  • b3ntb0x.spec.ts
  • backdraft-full-output.spec.ts
  • backdraft-render-smoke.spec.ts
  • backdraft.spec.ts
  • bentbox.spec.ts
  • blood-audio-output.spec.ts
  • blood-ingame.spec.ts
  • blood-keyboard.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
  • capacity.spec.ts
  • carl-rackspace.spec.ts
  • cellshade.spec.ts
  • chowkick.spec.ts
  • clear-load-multiwindow.spec.ts
  • clear-patch-undo.spec.ts
  • clear.spec.ts
  • click-pickup-cable.spec.ts
  • clipplayer-controls.spec.ts
  • clipplayer-edit-launch.spec.ts
  • clipplayer-songmode.spec.ts
  • clipplayer.spec.ts
  • clouds.spec.ts
  • cloudseed.spec.ts
  • cofefve.spec.ts
  • collab.spec.ts
  • combinations.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-range-uniformity.spec.ts
  • destructor-render-smoke.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-handles.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-probe.spec.ts
  • doom-mp-real.spec.ts
  • doom-multiplayer.spec.ts
  • doom-per-type-death-gates.spec.ts
  • doom-wasm.spec.ts
  • drumseqz.spec.ts
  • duplicate-module.spec.ts
  • dx7-syx-load.spec.ts
  • dx7.spec.ts
  • edges.spec.ts
  • electra-control.spec.ts
  • fader-midi-assign.spec.ts
  • fader.spec.ts
  • featurecv-source-chain.spec.ts
  • feedback.spec.ts
  • flip-rack-rear-view.spec.ts
  • four-modules.spec.ts
  • foxy-freeze-locks-wavetable.spec.ts
  • foxy.spec.ts
  • freezeframe.spec.ts
  • frogger.spec.ts
  • gamepad.spec.ts
  • gibribbon.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.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
  • keyboard-nav.spec.ts
  • kickdrum.spec.ts
  • kria.spec.ts
  • landing-links.spec.ts
  • landing-routing.spec.ts
  • lasso-group.spec.ts
  • launchpad-clip-launch.spec.ts
  • launchpad-keys-record.spec.ts
  • launchpad-single-arm-row.spec.ts
  • lfo-modulation-visible.spec.ts
  • lines-render-smoke.spec.ts
  • livecode.spec.ts
  • load-example-dropdown.spec.ts
  • load-patch.spec.ts
  • loopback.spec.ts
  • macseq.spec.ts
  • mandelbulb-render-smoke.spec.ts
  • mandleblot-render-smoke.spec.ts
  • mapper.spec.ts
  • mappy-export-import.spec.ts
  • mappy-output.spec.ts
  • matrixmix.spec.ts
  • meowbox.spec.ts
  • midi-autobind-perfzip.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
  • modtris.spec.ts
  • modulation.spec.ts
  • module-annotate.spec.ts
  • modules.spec.ts
  • multi-output.spec.ts
  • multi-video-playback.spec.ts
  • nested-module-menu.spec.ts
  • nibbles-cv-scope.spec.ts
  • nibbles-render-smoke.spec.ts
  • nibbles.spec.ts
  • node-context-menu.spec.ts
  • noise.spec.ts
  • note-entry.spec.ts
  • numpad-plus.spec.ts
  • onetonine.spec.ts
  • organize-modules.spec.ts
  • outlines-render-smoke.spec.ts
  • outlines.spec.ts
  • painter.spec.ts
  • palette.spec.ts
  • param-edit-undo.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
  • peaks.spec.ts
  • peakstate-render-smoke.spec.ts
  • peertube.spec.ts
  • pentemelodica.spec.ts
  • per-module-per-port-behavioral.spec.ts
  • per-module-per-port.spec.ts
  • per-module.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
  • polyseqz.spec.ts
  • pong.spec.ts
  • present-second-display.spec.ts
  • preset-slots-and-sets.spec.ts
  • qbert-cv-joystick.spec.ts
  • qbert-rom-missing.spec.ts
  • quadralogical-assign.spec.ts
  • quadralogical.spec.ts
  • rackspace-isolation.spec.ts
  • rackspace-persistence.spec.ts
  • rear-view-patching.spec.ts
  • recorderbox.spec.ts
  • render-worker-acidwarp.spec.ts
  • render-worker-toybox.spec.ts
  • reshaper-shapedramps.spec.ts
  • resofilter.spec.ts
  • ringback.spec.ts
  • rings.spec.ts
  • riotgirls.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-record.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.spec.ts
  • scoreboard.spec.ts
  • sequencer-clock-without-play.spec.ts
  • sequencer-clock.spec.ts
  • sequencer-pages.spec.ts
  • sequencer-playhead-alignment.spec.ts
  • sequencer-transport.spec.ts
  • shapegen-clock.spec.ts
  • shapegen.spec.ts
  • shared-clock.spec.ts
  • shared-rack-sync.spec.ts
  • sidecar.spec.ts
  • skifree.spec.ts
  • skin-persists-app-wide.spec.ts
  • skins.spec.ts
  • slider-drag.spec.ts
  • snes9x-gameplay-gates.spec.ts
  • snes9x.spec.ts
  • snh-hold.spec.ts
  • soak.spec.ts
  • spawn-at-cursor.spec.ts
  • spirographs-render-smoke.spec.ts
  • stages.spec.ts
  • stereo-autowire.spec.ts
  • sticky-note.spec.ts
  • swolevco.spec.ts
  • synesthesia-video-mode.spec.ts
  • tempest-render-smoke.spec.ts
  • tempo-stability.spec.ts
  • textmarquee-render-smoke.spec.ts
  • textmarquee.spec.ts
  • theme-diner.spec.ts
  • theme-lcars.spec.ts
  • theme-matrixcowboy.spec.ts
  • tiler.spec.ts
  • timelorde-auto-spawn.spec.ts
  • timelorde-tap-tempo.spec.ts
  • timelorde-video.spec.ts
  • topbar-1024.spec.ts
  • topbar-buttons.spec.ts
  • toybox-combine-editor.spec.ts
  • toybox-cv-section.spec.ts
  • toybox-disk-loading.spec.ts
  • toybox-feedback.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-shadertoy.spec.ts
  • toybox-video-inputs.spec.ts
  • toybox-video-projection.spec.ts
  • tv-librarian-audio.spec.ts
  • tv-librarian.spec.ts
  • twotracks-perfzip.spec.ts
  • twotracks.spec.ts
  • ui-refresh.spec.ts
  • varispeed-multislot-persist.spec.ts
  • varispeed-panel-layout.spec.ts
  • vco-pitch-tracking.spec.ts
  • veils.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-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
  • videobox-output.spec.ts
  • videobox-performance-bundle.spec.ts
  • videobox-upload-perf.spec.ts
  • videovarispeed-output.spec.ts
  • videovarispeed-perfzip.spec.ts
  • videovarispeed-switch.spec.ts
  • voice-chain-art.spec.ts
  • voice-chain.spec.ts
  • warps.spec.ts
  • warrenspectrum.spec.ts
  • wavecel-video-outs.spec.ts
  • wavecel-viz.spec.ts
  • waveform-trace-shape.spec.ts
  • wavesculpt.spec.ts
  • writeseq.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