mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-14 19:27:01 -04:00
`--help`, the module doc and the README promise that a `--memory` session "writes nothing", and the desktop app broke that in two places: - `PrefsWriter` saved `ui.json` whenever the UI state changed (issue #164), so a throwaway session's `thumbSize`, window layout or language replaced the user's saved settings — the README showcase script does exactly that. - The GPU crash sentinel from #136 armed itself in every session except `LIGHTCRAFT_NO_PREFS` (issue #169); `with_init_marker` creates the settings folder to hold `gpu-init.marker`, removes the marker and leaves the folder, so a `--memory` run on a fresh home left an empty `Library/Application Support/LightCraft` behind. Now `PrefsWriter` carries its target path (`None` for `--memory`, `LIGHTCRAFT_NO_PREFS` or no home folder) and writes nothing without one; it also writes nothing while the session is the one offered when the library can't be opened (the question window and Continue Without Saving, which `docs/control-protocol.md` already describes as writing nothing) and resumes when `app.openLibrary` ends it. `gpu_crash_check(in_memory)` neither arms the sentinel nor removes a marker in a `--memory` session; it still reads one (new `read_init_marker`), so GPU rendering starts off there too and the next ordinary launch reports and clears it. A `--memory` session still reads `ui.json`, but a damaged one is reported and left in place rather than set aside. Normal launches are unchanged. Tests: `prefs_writer_writes_nothing_in_a_memory_or_temporary_session`, `memory_session_leaves_the_gpu_marker_and_folder_alone`, `memory_session_leaves_a_damaged_ui_json_alone` (apps/lightcraft), and `read_init_marker` coverage in the gpu crate's marker test. Co-Authored-By: Claude Fable 5.1 <[email protected]>