From 68307556e92e01f1ee05fd9719961d12173b58c2 Mon Sep 17 00:00:00 2001 From: joren Date: Thu, 2 Apr 2026 19:27:59 +0200 Subject: [PATCH] feat: save and restore virtual nodes (null-sinks, loopbacks) in profiles - Add VirtualNodeDef type; track it in PatchbayState.virtual_nodes - createNullSink/createLoopback now register the node in the global virtual_nodes registry on success - Destroying a node via context menu removes it from the registry - saveProfile snapshots virtual_nodes into the profile - loadProfile recreates any missing virtual nodes before applying connections (waits 1.5s for graph to settle after creation) - Backward compat: virtual_nodes defaults to [] for old save files Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/components/GraphCanvas.svelte | 3 +- frontend/src/lib/stores.ts | 62 +++++++++++++++++++--- frontend/src/lib/types.ts | 14 +++-- 3 files changed, 67 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/GraphCanvas.svelte b/frontend/src/components/GraphCanvas.svelte index 114cf19..e450afa 100644 --- a/frontend/src/components/GraphCanvas.svelte +++ b/frontend/src/components/GraphCanvas.svelte @@ -12,7 +12,7 @@ setAutoPin, setAutoDisconnect, saveProfile, loadProfile, deleteProfile, setNodeVolume, setNodeMute, - setAlias, + setAlias, removeVirtualNode, createNullSink, createLoopback, loadModule, getQuantum, setQuantum, } from '../lib/stores'; @@ -704,6 +704,7 @@ nodeContextMenu = null; }}>Hide