Two sessions editing plugin marketplaces at once no longer clobber each other's entries.
What's wrong with this entry?
Changes to the list of installed plugin marketplaces (refresh times, installs, auto-update toggles) now take a lock file first and re-read the current file inside it, so two Claude Code sessions running at once no longer overwrite each other's entries.
- The helper acquires a
.lockalongsideknown_marketplaces.jsonwith retries, applies the mutation to freshly read state, and skips the write entirely when nothing changed. - If the lock cannot be taken or is compromised, it logs
known_marketplaces.json lock compromised:, writes anyway, and reportstengu_known_marketplaces_fallback_write. - Marketplaces whose install location sits inside a bundled plugin directory return no write at all, so those entries are never rewritten.
tengu_known_marketplaces_fallback_write, known_marketplaces.json lock compromised:
Strings lifted out of the shipped bundle, so the claim above can be checked against them.