Skip to content

Emitted installers have no same-version replace path; local dev loop needs manual uninstall + rm #400

Description

@ScriptedAlchemy

Observed (agent-bundle 105c65d, cargo-hauler 0.3.0)

Rebuilding a plugin without bumping package.json version, then re-running the emitted installers:

  • Cursor artifact/plugin/install.mjs: Error: Refusing content collision at ~/.cursor/plugins/local/cargo-hauler. — no flag to replace. Had to rm -rf the install dir first.
  • Claude: claude plugin marketplace update + claude plugin update cargo-hauler@…✔ cargo-hauler is already at the latest version (0.3.0) even though the marketplace snapshot content changed. Had to claude plugin uninstall then install.
  • Codex: codex plugin add re-copied fine.

The collision guard is correct for a foreign install, but for the artifact you just built it turns every iteration into a three-host manual dance, and Claude's version-equality shortcut silently leaves stale hooks/MCP in place (I only caught it with diff -rq artifact/plugin ~/.claude/plugins/cache/...).

Request

  1. install.mjs --replace (or --force) that replaces the install when the plugin name matches, still refusing when the target isn't an agent-bundle-emitted layout of the same plugin.
  2. Have install.mjs print a content-hash comparison on collision (same version, different content) so the operator knows a stale copy is running.
  3. Document, in the emitted INSTALL.md, the reinstall recipe per host for same-version rebuilds — including that Claude's plugin update is version-gated and needs uninstall + install for content-only changes.
  4. Nice to have: agent-bundle install --hosts cursor,claude,codex --replace that runs the right sequence per host and diffs the installed copy against the artifact afterwards.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions