Skip to content

v2.54.2

Choose a tag to compare

@samuelgursky samuelgursky released this 18 Jun 14:18

v2.54.2

Fixes a destructive-overwrite bug in the installer (#71): the MCP client setup
step could wipe a user's entire editor settings file instead of merging into it.

Fixed

  • install.py silently destroyed existing client config files whose contents
    weren't strict JSON. read_json swallowed JSONDecodeError and returned
    {}, so the subsequent "merge" wrote a file containing only the
    davinci-resolve server entry — wiping themes, terminal env vars, LSP
    settings, keybindings, and everything else. Zed was the reported victim
    because its settings.json ships with // comments (JSONC), but the same
    latent risk existed for every supported client — VS Code and Continue
    also accept JSONC. The fix is centralized in the single read/merge path so
    all clients are covered:
    • read_json now best-effort strips JSONC // and /* */ comments and
      trailing commas (string-aware, so comment markers inside string values are
      preserved), letting commented configs merge cleanly instead of being lost.
    • When a config file exists but still can't be parsed, the installer
      refuses to overwrite it and tells the user to add the entry manually —
      rather than silently replacing their settings.

Validation

  • Unit/static checks run: test_import, API parity audit, the three drift
    guards, full unit suite (1244 passed), npm pack --dry-run, git diff --check.
  • New regression tests cover JSONC merge, plain-JSON merge, refuse-to-overwrite
    on unparseable files, fresh-file creation, and string-aware comment stripping.
  • No Resolve behavior changed (installer only); live test not required.