Skip to content

v0.28.2

Choose a tag to compare

@richardbowman richardbowman released this 30 Aug 00:12
· 156 commits to main since this release
431e4c8

What's New in v0.28.2

Bug Fixes

  • MCP servers with an unregistered secret failed authentication silently. A server whose ${VAR_NAME} placeholder couldn't be resolved was previously started anyway with the placeholder expanded to an empty string — for example, shipping an empty x-api-key header on every single session. The server is now excluded instead, with a session-start notice and a per-row warning in Settings → MCP so the problem is visible instead of silent. (#452)

Improvements

  • MCP server list now lives in the plugin's own data.json, not ~/.claude/settings.json. That file was never a valid storage location — Claude Code owns it, its schema has no mcpServers property, and neither the CLI nor the SDK ever read what the plugin wrote there. Storing servers there also meant plugin edits could show up as surprise diffs in a dotfiles repo if that file was symlinked. (#452)
  • Invalid MCP server entries are now shown as a removable row in Settings → MCP rather than silently dropped. (#452)
  • Removed a stale README paragraph describing sdk-type MCP entries as read-only and instructing manual edits to ~/.claude/settings.json — that concept no longer exists in the code. (#453)

Notes

  • No automatic migration. If you had MCP servers configured under the old ~/.claude/settings.json-based storage, that block is now inert and safe to delete — re-add those servers via Settings → MCP. This was a deliberate choice: adding a migration importer would mean keeping a read path to the exact file this release stops reading.
  • Both harnesses (Claude and Codex) are unaffected in terms of behavior — servers still reach sessions through the same injection path as before; only the storage location and the failure behavior for unresolved secrets changed.