OpenClaw / ClawHub
Merged upstreamCorrectnessMerged Sep 15, 2026

Preserve owner identity and nullable versions in the skill catalog

Carried `ownerHandle` through the catalog query, HTTP response, shared schemas, OpenAPI contract, and CLI display while making `latestVersion` explicitly nullable.

openclaw/clawhub · #3580

API contract fix

Skill catalogs retain owner-qualified identity across pages and consistently represent entries without a public latest version.

Problem

Owner-scoped skills with the same slug appeared identical to catalog consumers, and valid responses containing `latestVersion: null` could be rejected by strict shared schemas.

Approach

Projects owner identity through the full API and CLI path, displays `ownerHandle/slug`, and aligns nullable-version contracts. The CLI keeps a named compatibility decoder for older custom registries configured with `--registry`.

Impact and scope

  • Prevents metadata from two publishers with the same skill slug from collapsing into one public identity.
  • Aligns handler, OpenAPI, package schemas, and strict consumers on explicit null versions.
  • Preserves exact SemVer text, cursor continuation, trending output, and compatibility with legacy custom-registry responses.

Validation

  • Registered HTTP fixtures traverse ten tied-sort records across at least four cursor pages and verify complete identities, metadata, exact SemVer build text, null versions, and trending output.
  • The PR reports 550 focused tests, 6,918 coverage tests, package/artifact checks, static/type/build checks, HTTP integration, and built-CLI loopback tests. Exact-head browser CI passed the new assertion.
  • GitHub product, browser, security, and integration checks passed. Auto-response and Vercel checks failed, so merge evidence does not establish deployment. The verified merge commit credits Goutam Adwant.