From 3a997e8a62cc4f20f7a3978841f0dcd409edd683 Mon Sep 17 00:00:00 2001 From: 1jamie Date: Fri, 14 Aug 2026 22:57:50 -0500 Subject: [PATCH] fix(save-editor): clean up module registry and pristine Data state on editor unload so subsequent edits perform safely --- main.lua | 5 +++++ src/core/Data.lua | 3 +++ 2 files changed, 8 insertions(+) diff --git a/main.lua b/main.lua index eb47215f..8b70276f 100644 --- a/main.lua +++ b/main.lua @@ -166,6 +166,11 @@ function closeEditor() require("src.import.CacheFs").unmountVersion(version) require("src.core.Data"):unloadGenerated() end + for k in pairs(package.loaded) do + if type(k) == "string" and (k:find("save%-editor") or k == "App" or k == "Kit" or k == "State" or k == "Catalog" or k == "SaveIO" or k == "Ops" or k == "MonOps" or k == "ItemOps" or k == "PadInput" or k == "Gen" or k == "Theme") then + package.loaded[k] = nil + end + end editorVersion = nil restoreWindow() Importer = editorHost diff --git a/src/core/Data.lua b/src/core/Data.lua index 405fe107..13c997b2 100644 --- a/src/core/Data.lua +++ b/src/core/Data.lua @@ -280,11 +280,14 @@ function Data:unloadGenerated() if not pristine[key] then self[key] = nil end end end + self._pristineKeys = nil for _, name in ipairs(MODULES) do package.loaded["data.generated." .. name] = nil + self[name] = nil end for _, name in ipairs(OPTIONAL) do package.loaded["data.generated." .. name] = nil + self[name] = nil end end