Long-lived sessions flush stale in-memory config, resurrecting uninstalled plugins / reverted settings
Repro:
- Start session A.
- In session B (or the
claudeCLI directly), uninstall a plugin / set
enabledPlugins.X = false / edit disabledMcpServers — anything that
persists to ~/.claude/settings.json or ~/.claude.json.
- In session A (already running, config loaded at its own startup), perform
any action that triggers a settings write (a plugin toggle, an /mcp
toggle, etc.).
- Session A writes its own in-memory, startup-time snapshot back to disk —
silently reverting the change made in step 2.
Observed: a plugin uninstalled via claude plugin uninstall <name>@<marketplace>
reappeared as enabled after an older, still-running session performed an
unrelated settings write.
Expected: a settings write should read-merge-write against current disk
state per key (or at minimum diff against on-disk state before writing),
not flush a full snapshot captured at session start.
Environment: native install, macOS, several concurrent long-lived
sessions open across projects — the scenario several concurrent sessions
makes easy to hit by accident.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗