Skip to content

feat: save and restore personal convars - #3

Open
oldreceipt wants to merge 2 commits into
mainfrom
feat/personal-convars
Open

feat: save and restore personal convars#3
oldreceipt wants to merge 2 commits into
mainfrom
feat/personal-convars

Conversation

@oldreceipt

@oldreceipt oldreceipt commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Personal gameinfo.gi values currently require hand editing and manual recovery after a game update. This adds saved convar name/value rows with enable/remove controls, Save only, and Save & apply. Personal values work without an FPS preset and remain separate from preset overrides when presets are changed or removed.

Optional recovery runs when Grimoire starts and before a modded launch. It patches the current valid game file only while Deadlock is stopped and Steam is not updating. Preferences are saved atomically outside gameinfo.gi; failed application remains visible after a successful save.

Validation:

  • GitHub CI passes on Ubuntu, including the full test suite and build.
  • Typecheck, lint, production build, locale check, and generated-manifest check pass in this isolated branch.
  • 23 focused service/editor tests pass, covering reversible precedence, preset interactions, recovery guards, failed saves, and save/apply UI ordering.
  • Full Windows suite: 1,298 passed, 12 failed, 15 skipped; also a steamRoots suite setup failure. Failures are the existing six CRLF fixture round trips and Windows-incompatible Wine/pgrep/symlink fixtures. The CRLF failures were reproduced against the unchanged base.
  • Rendered the actual editor with isolated sample data in a browser preview. Native desktop automation remained unavailable; no real game files were changed for testing.

This PR targets this fork's main and is independent of the local-VPK replacement PR. Regenerate the locale manifest when combining both changes.

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