Skip to content

GhostIDE v2.37.0 - autosave untangle

Choose a tag to compare

@littlestjames82-sys littlestjames82-sys released this 22 Oct 18:02

GhostIDE v2.37.0 (versionCode 142) - autosave untangle

APK: ghostide-v2.37.0.apk, 20,324,971 B
MD5: 89cacba5b35278a37369d1d452bbc295
SHA-256: 437904a809cf1162502087eab5a19f7520e02d90131660719f3c087795324afb
compileSdk/targetSdk 36, minSdk 24, same signing key as v2.36.0.
(APK asset not attached: the automation credential is scoped to api.github.com and uploads.github.com returns 401, same as prior releases. The APK itself is delivered to the owner directly.)

This release fixes the pre-existing defect flagged in the v2.36.0 sweep notes. Two autosave features had shared one settings key and one Settings element id since their separate feature rounds: the editor select (autosave as a mode, "off" | "delay", saving 2 s after typing stops) and a later checkbox feature with its own poller. Both elements carried id="setAutosave", so scripts only ever reached the select: the checkbox feature's binding overwrote the select's change handler with one storing a checkbox value (undefined on a select, silently erasing the setting), the checkbox itself was unreachable dead UI, and the defaults object declared the key twice (boolean winning). In practice the Settings autosave control could not be set at all.

The untangle keeps the mode select as the one autosave: duplicate default removed (the build's duplicate-key warning is gone), zombie checkbox element removed, the second binding and poller removed. A pure autosaveMode() normalizes the value at load and at every save, so a boolean left in stored settings by the old wiring migrates to the mode it meant (true -> "delay", false -> "off").

Gates on this tree (foreground): 65/65 harness files with the autosave harness rewritten for the untangled state (6/6), DOM-stub clean, JVM 18+14+6+14+25, probes hardening 19 / restore 41 / pair 36 / GH e2e 19. Staged app.js byte-matches the built bundle; the staged Settings page carries exactly one setAutosave element.