From e9cc0c7108fa28b9fc7dbb8b4207d474bd558d1a Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Sat, 5 Sep 2026 21:47:19 +0200 Subject: [PATCH] fix: stop the gating effect re-suspending a resource opened on a draft Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01ScVgqGpuyDMWdzVNPm7Q5f --- frontend/src/lib/components/ResourceEditor.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/lib/components/ResourceEditor.svelte b/frontend/src/lib/components/ResourceEditor.svelte index 5f3e1a2e5f..3c9eda9467 100644 --- a/frontend/src/lib/components/ResourceEditor.svelte +++ b/frontend/src/lib/components/ResourceEditor.svelte @@ -144,8 +144,13 @@ $effect(() => { const wss = Object.keys(states) const edited = { ...userEdited } + const onDraft = { ...openedOnDraft } untrack(() => { - for (const ws of wss) setGated(ws, !edited[ws]) + // A workspace opened on a saved draft is never suspended — there is no + // phantom to prevent, and a write made while suspended is dropped for + // good. Without `onDraft` here this effect re-suspends it the moment its + // handle appears, undoing the decision made when it was opened. + for (const ws of wss) setGated(ws, !edited[ws] && !onDraft[ws]) }) })