diff --git a/app/legacy/store.js b/app/legacy/store.js index 234f95bb..f02cb2f6 100644 --- a/app/legacy/store.js +++ b/app/legacy/store.js @@ -969,6 +969,17 @@ } async function commit(opts = {}) { + // Every mutating path in this module funnels through here before it can + // reach a real network write -- scheduleSave()'s own setTimeout calls + // this closure-scoped function directly, so patching Store.commit (or + // any individual caller) from outside cannot stop it. The tour's own + // welcome copy promises "nothing here touches your real files," and + // enumerating every caller in tour.js's blocklist misses ones reachable + // outside a click (keyboard shortcuts bypass the tour's click-blocking + // backdrop entirely, since CSS pointer-events does nothing to keydown + // listeners) -- so the guard belongs here, once, covering every path by + // construction instead of by an ever-growing enumeration. + if (window.__FUNPACK_TOUR__) return; if (!state.project) return; if (_commitPromise) { _commitQueued = true; return _commitPromise; } const skipPreviewRefresh = !!opts.skipPreviewRefresh;