feedBack-desktop/tests
Jorge Fritis f785fb9ab1
fix(renderer): keep Rig Builder's tone out of the user's manual VST chain (#73)
* fix(renderer): keep Rig Builder's tone out of the user's manual VST chain

Rig Builder's chain preloader is always on, so it loads its whole tone (amp /
pedals / racks / master pre-post / RB Final Leveler) into the SHARED engine
chain. The Audio menu's 'Save Current Chain' and auto-persist captured the LIVE
engine via getChainState()/savePreset(), baking those stages into the user's
manual chain — so a user who built their own VST chain saw it sprout a full Rig
Builder rig they never added.

Add aeIsRigBuilderStage() (path under /rig_builder/, 'RB Final Leveler', rs_gear
__rb*, or slot master_pre/post) + aeStripRigBuilderFromNativePreset(), and apply
them at save (items + native blob), the app-init restore loop, the preset-load
path (with an empty-guard), and refreshChain (display filter) so the manual
chain only ever holds the user's own processors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(renderer): skip Rig Builder stages in the tone-switch preload paths too

Codex review: legacy polluted presets were only sanitized in
replaceChainWithPresetBlob(), but the tone-switch preloads load directly
from raw preset.items + nativePreset.chain (loadPresetItemsWithState in
IIFE 1 and the deliberately-inline copy in IIFE 2). Skip Rig Builder
stages by index in both loops — index-skips keep the items/nativeChain
alignment for the remaining pairs — and expose the detector as
window._aeIsRigBuilderStage for IIFE 2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(renderer): load fully-polluted presets as empty instead of falling back

Codex review round 2: the never-empty guard restored the ORIGINAL
polluted blob whenever stripping emptied the chain — but a preset that
empties completely was 100% Rig Builder's tone, exactly the case the
sanitizer exists for. Load the stripped (empty) chain and warn; empty-
chain presets are a supported shape.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Jafz2001 <ignacio.fritis@mundotelecomunicaciones.cl>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: byrongamatos <xasiklas@gmail.com>
2026-07-03 15:59:34 +02:00
..
audio_sanitize Clean release snapshot 2026-06-16 18:48:12 +02:00
chordscorer Clean release snapshot 2026-06-16 18:48:12 +02:00
mlnotedetector perf(audio): gate ML note-detection pipeline (default OFF, arm on demand) (#51) 2026-06-29 23:12:31 +02:00
sandbox audio: per-slot postGain for parallel-branch loudness leveling (#58) 2026-07-02 12:50:47 +02:00
spike Clean release snapshot 2026-06-16 18:48:12 +02:00
_load-ts.js feat(config): real config reset/repair + migration framework (drop manual-delete) (#38) 2026-06-26 22:13:24 +02:00
audio-chain-persistence.test.js fix(renderer): keep Rig Builder's tone out of the user's manual VST chain (#73) 2026-07-03 15:59:34 +02:00
audio-effects-executor.test.js Clean release snapshot 2026-06-16 18:48:12 +02:00
CMakeLists.txt Clean release snapshot 2026-06-16 18:48:12 +02:00
config-bootstrap.test.js feat(config): real config reset/repair + migration framework (drop manual-delete) (#38) 2026-06-26 22:13:24 +02:00
config-migrations.test.js feat(config): real config reset/repair + migration framework (drop manual-delete) (#38) 2026-06-26 22:13:24 +02:00
config-paths.test.js feat(config): real config reset/repair + migration framework (drop manual-delete) (#38) 2026-06-26 22:13:24 +02:00
config-reset.test.js feat(config): real config reset/repair + migration framework (drop manual-delete) (#38) 2026-06-26 22:13:24 +02:00
ml-note-detection.test.js Clean release snapshot 2026-06-16 18:48:12 +02:00
multi-source.test.js Clean release snapshot 2026-06-16 18:48:12 +02:00
renderer-capability-migration.test.js Clean release snapshot 2026-06-16 18:48:12 +02:00