Skip to content

Preserve player-authored TOML for runtime setting saves - #280

Draft
Guffawaffle wants to merge 12 commits into
STFC-Mod:devfrom
Guffawaffle:feature/preserving-toml-editor
Draft

Guffawaffle wants to merge 12 commits into
STFC-Mod:devfrom
Guffawaffle:feature/preserving-toml-editor

Conversation

@Guffawaffle

@Guffawaffle Guffawaffle commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Runtime setting saves preserve the player's TOML comments, formatting and unrelated values. Instant warp is the first consumer. One worker coalesces changes per setting and reports conflicts when the selected disk value or symlink target changed externally; normal quit drains accepted saves and forced exit uses a bounded best effort.

Following #313, the patch registry installs persistence independently of hotkeys or native settings, controlled by default-enabled [patches].runtimeconfighooks. Turning this compatibility switch off leaves live changes in the current session. Unsupported Unity quit bindings likewise retain session-only changes. Depends on #279, including its private staging and symlink fixes.

Validation: Windows release build and existing startup-save, TOML editing, worker, adapter, disk/reload and force-close fixtures; all 11 example TOMLs. Current Windows client 270 method extents fit the selected SPUD overwrite windows. Native macOS execution, exact candidate game smoke and Windows partial-replacement fault injection remain outstanding. Earlier combined Mac ARM testing is separate evidence from this head; Intel runtime testing remains unconfirmed.

@Guffawaffle
Guffawaffle force-pushed the feature/preserving-toml-editor branch from 90f0fa3 to 6373d77 Compare September 28, 2026 00:00
@Guffawaffle

Guffawaffle commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Hook/feature alignment follow-up for #313

Follow-up to #313: keep hook installation independent of feature enablement, with default-enabled compatibility switches under [patches] and feature checks inside the installed hooks.

No direct feature-gated installer mismatch was identified here. The runtime writer does install quit/update hooks through runtime_config::Install(): consider an independently reachable persistence compatibility switch when reconciling the settings hook groups. This is an architecture suggestion, not a confirmed feature-coupling defect. Keep [ui].auto_confirm_instant_warp as the persisted feature setting. Refresh #279 first, then this branch, then the dependent settings branches.

Settings cascade (verified from current branch ancestry): #279 → #280; #277 + #280 → #281 → #282; sibling branches from #282 are #285, #293 and #297. #285 additionally depends on #269; #297 additionally depends on #296. Correct the owning parent first, then carry the fix through every dependent branch while preserving each sibling's scope.

Implemented in 2395ba5f6599fd06942beffe0ad0212b0151754f. Persistence now has one registry owner and default-enabled [patches].runtimeconfighooks, independent of hotkeys/native settings. Corrected #279 is included, and runtime saves reject symlink-target drift before replacement. Windows build and existing complete persistence fixtures passed; CI is queued. Native game/Mac qualification and partial replacement fault injection remain outstanding. Next: propagate through #281/#282 and each settings sibling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant