fix: normalize xurl installer kind to node (#21585) (thanks @santiagomed)

This commit is contained in:
Peter Steinberger
2026-02-21 11:57:56 +01:00
parent 59164d8b2d
commit e0e55306c9
3 changed files with 23 additions and 1 deletions

View File

@@ -118,6 +118,7 @@ Docs: https://docs.openclaw.ai
- Docker: pin base images to SHA256 digests in Docker builds to prevent mutable tag drift. (#7734) Thanks @coygeek.
- Docker: run build steps as the `node` user and use `COPY --chown` to avoid recursive ownership changes, trimming image size and layer churn. Thanks @huntharo.
- Config/Memory: restore schema help/label metadata for hybrid `mmr` and `temporalDecay` settings so configuration surfaces show correct names and guidance. (#18786) Thanks @rodrigouroz.
- Skills/xurl: fix installer metadata to use `kind: "node"` for npm distribution so `openclaw skills` exposes the npm install path correctly. (#21585) Thanks @santiagomed.
- Skills/SonosCLI: add troubleshooting guidance for `sonos discover` failures on macOS direct mode (`sendto: no route to host`) and sandbox network restrictions (`bind: operation not permitted`). (#21316) Thanks @huntharo.
- macOS/Build: default release packaging to `BUNDLE_ID=ai.openclaw.mac` in `scripts/package-mac-dist.sh`, so Sparkle feed URL is retained and auto-update no longer fails with an empty appcast feed. (#19750) thanks @loganprit.
- Signal/Outbound: preserve case for Base64 group IDs during outbound target normalization so cross-context routing and policy checks no longer break when group IDs include uppercase characters. (#5578) Thanks @heyhudson.

View File

@@ -18,7 +18,7 @@ metadata:
},
{
"id": "npm",
"kind": "npm",
"kind": "node",
"package": "@xdevplatform/xurl",
"bins": ["xurl"],
"label": "Install xurl (npm)",

View File

@@ -0,0 +1,21 @@
import fs from "node:fs";
import path from "node:path";
import { describe, expect, it } from "vitest";
import { parseFrontmatter, resolveOpenClawMetadata } from "./skills/frontmatter.js";
describe("skills/xurl frontmatter", () => {
it("exposes a node installer for npm distribution", () => {
const skillPath = path.join(process.cwd(), "skills", "xurl", "SKILL.md");
const raw = fs.readFileSync(skillPath, "utf-8");
const frontmatter = parseFrontmatter(raw);
const metadata = resolveOpenClawMetadata(frontmatter);
const install = metadata?.install ?? [];
expect(
install.some(
(spec) =>
spec.kind === "node" && spec.package === "@xdevplatform/xurl" && spec.id === "npm",
),
).toBe(true);
});
});