Skip to content

Preserve empty objects in MCP JSON config files#793

Open
mwikala wants to merge 1 commit intolaravel:mainfrom
mwikala:preserve-empty-mcp-objects
Open

Preserve empty objects in MCP JSON config files#793
mwikala wants to merge 1 commit intolaravel:mainfrom
mwikala:preserve-empty-mcp-objects

Conversation

@mwikala
Copy link
Copy Markdown

@mwikala mwikala commented May 1, 2026

Summary

This fixes plain JSON MCP config updates so existing empty objects are preserved when Boost adds a server entry.

Previously, updating an existing opencode.json that contained an empty object such as "oauth": {} would rewrite it as "oauth": []. OpenCode validates its config schema on startup, so this prevented OpenCode from loading the config after Boost installed its MCP server entry.

The change keeps decoded plain JSON objects as objects while still supporting the existing array-based path used for new config creation.

Benefit to End Users

Users with an existing OpenCode MCP config can install Boost without making their OpenCode configuration invalid. Empty object fields such as oauth remain valid objects, allowing OpenCode to continue loading normally.

Backwards Compatibility

This should not break existing behavior because json_encode supports both arrays and decoded objects. New file creation still uses the existing array-based config path, and existing plain JSON files now retain their original object/array shapes more accurately.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

Thanks for submitting a PR!

Note that draft PRs are not reviewed. If you would like a review, please mark your pull request as ready for review in the GitHub user interface.

Pull requests that are abandoned in draft may be closed due to inactivity.

@mwikala mwikala marked this pull request as ready for review May 1, 2026 20:55
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