Skip to content

[Bug]: openclaw plugins update never upgrades ClawHub-sourced plugins — spec field always pins resolved version #63010

@kangsen1234

Description

@kangsen1234

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

openclaw plugins update never upgrades ClawHub-sourced plugins to a newer version because the install flow always writes the resolved version into the spec field (e.g. clawhub:@pkg@0.0.2), causing update to re-resolve the same pinned version instead of fetching the latest from ClawHub.

Steps to reproduce

  1. Publish 0.0.2 versions of a plugin to ClawHub
  2. Install the older version:
    openclaw plugins install plugin
  3. Confirm spec is pinned in ~/.openclaw/openclaw.json:
    "spec": "plugin@0.0.2"
    3.1. Publish 0.0.3 versions of a plugin to ClawHub
  4. Run: openclaw plugins update plugin
  5. Observe it resolves to 0.0.2 and reports "already at 0.0.2".

Expected behavior

When no version is specified during install, the spec should be saved without a version , consistent with how npm installs work . This way, plugins update can resolve to the latest ClawHub version. The official docs state: "previously stored dist-tags such as @beta and exact pinned versions continue to be used" — implying that unpinned installs should resolve to latest on update.

Actual behavior

The clawhub install handler always writes the resolved version into the spec field, regardless of whether the user specified a version. As a result, plugins update always re-resolves the same pinned version and never upgrades.

OpenClaw version

2026.3.31

Operating system

macOS 15.1.1

Install method

npm global

Model

N/A — this is a CLI plugin management bug, not model-related.

Provider / routing chain

N/A

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:behaviorIncorrect behavior without a crash

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions