@silicaclaw/cli 2026.3.19-25 → 2026.3.19-27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/INSTALL.md +1 -1
- package/README.md +1 -1
- package/VERSION +1 -1
- package/docs/RELEASE_CHECKLIST.md +1 -4
- package/openclaw-skills/silicaclaw-broadcast/VERSION +1 -1
- package/openclaw-skills/silicaclaw-broadcast/manifest.json +1 -1
- package/package.json +1 -1
- package/scripts/silicaclaw-cli.mjs +2 -44
- package/scripts/silicaclaw-gateway.mjs +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
## v1.0 beta - 2026-03-19
|
|
4
4
|
|
|
5
|
+
### 2026.3.19-27
|
|
6
|
+
|
|
7
|
+
- release channel simplification:
|
|
8
|
+
- npm package update checks now follow only the `latest` dist-tag
|
|
9
|
+
- release verification and install docs no longer require a parallel `beta` npm channel for the CLI package
|
|
10
|
+
|
|
11
|
+
### 2026.3.19-26
|
|
12
|
+
|
|
13
|
+
- release build:
|
|
14
|
+
- prepared another fresh beta-channel package build without publishing
|
|
15
|
+
- regenerated the npm tarball through the verified release packing workflow
|
|
16
|
+
|
|
5
17
|
### 2026.3.19-25
|
|
6
18
|
|
|
7
19
|
- update fix:
|
package/INSTALL.md
CHANGED
|
@@ -255,7 +255,7 @@ npm run health
|
|
|
255
255
|
|
|
256
256
|
2. `silicaclaw update` or `silicaclaw --version` returns `ETARGET`
|
|
257
257
|
- This usually means the new npm release was published, but your local npm metadata cache is stale.
|
|
258
|
-
- Check the current
|
|
258
|
+
- Check the current latest tag with `npm view @silicaclaw/cli dist-tags --json`.
|
|
259
259
|
- Retry with a clean cache:
|
|
260
260
|
|
|
261
261
|
```bash
|
package/README.md
CHANGED
|
@@ -331,7 +331,7 @@ If you just published a new release and npm says:
|
|
|
331
331
|
|
|
332
332
|
the package may already be published, but your local npm metadata cache may still be stale.
|
|
333
333
|
|
|
334
|
-
Check the current
|
|
334
|
+
Check the current latest tag:
|
|
335
335
|
|
|
336
336
|
```bash
|
|
337
337
|
npm view @silicaclaw/cli dist-tags --json
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v2026.3.19-
|
|
1
|
+
v2026.3.19-27
|
|
@@ -11,19 +11,16 @@ npm dist-tag ls @silicaclaw/cli
|
|
|
11
11
|
必须确认:
|
|
12
12
|
|
|
13
13
|
- `latest` 指向这次正式要给用户用的版本
|
|
14
|
-
- `beta` 不要意外比 `latest` 更新却反挂
|
|
15
14
|
|
|
16
|
-
## 2.
|
|
15
|
+
## 2. 检查实际拿到的版本
|
|
17
16
|
|
|
18
17
|
```bash
|
|
19
18
|
npx -y @silicaclaw/cli@latest --version
|
|
20
|
-
npx -y @silicaclaw/cli@beta --version
|
|
21
19
|
```
|
|
22
20
|
|
|
23
21
|
目标是:
|
|
24
22
|
|
|
25
23
|
- `latest` 输出刚发布的版本
|
|
26
|
-
- `beta` 只有在刻意保留测试线时才不同
|
|
27
24
|
|
|
28
25
|
## 3. 检查持久命令安装后跑的是谁
|
|
29
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
2026.3.19-beta.
|
|
1
|
+
2026.3.19-beta.27
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "silicaclaw-broadcast",
|
|
3
|
-
"version": "2026.3.19-beta.
|
|
3
|
+
"version": "2026.3.19-beta.27",
|
|
4
4
|
"display_name": "SilicaClaw Broadcast",
|
|
5
5
|
"description": "OpenClaw skill for reading SilicaClaw public broadcasts, publishing public broadcasts, and forwarding relevant updates to the owner through OpenClaw's native social channel.",
|
|
6
6
|
"entrypoints": {
|
package/package.json
CHANGED
|
@@ -315,7 +315,7 @@ function canWriteGlobalPrefix() {
|
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
function showUpdateGuide(current, targetVersion
|
|
318
|
+
function showUpdateGuide(current, targetVersion) {
|
|
319
319
|
headline();
|
|
320
320
|
console.log("");
|
|
321
321
|
const upToDate = Boolean(targetVersion) && current === targetVersion;
|
|
@@ -327,46 +327,10 @@ function showUpdateGuide(current, targetVersion, channel = "latest") {
|
|
|
327
327
|
console.log("");
|
|
328
328
|
kv("Start", "silicaclaw start");
|
|
329
329
|
kv("Status", "silicaclaw status");
|
|
330
|
-
kv("Channel", channel);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
function compareVersionTokens(left, right) {
|
|
334
|
-
const tokenize = (value) =>
|
|
335
|
-
String(value || "")
|
|
336
|
-
.split(/[^0-9A-Za-z]+/)
|
|
337
|
-
.filter(Boolean)
|
|
338
|
-
.map((part) => (/^\d+$/.test(part) ? Number(part) : part.toLowerCase()));
|
|
339
|
-
|
|
340
|
-
const leftParts = tokenize(left);
|
|
341
|
-
const rightParts = tokenize(right);
|
|
342
|
-
const maxLength = Math.max(leftParts.length, rightParts.length);
|
|
343
|
-
|
|
344
|
-
for (let index = 0; index < maxLength; index += 1) {
|
|
345
|
-
const a = leftParts[index];
|
|
346
|
-
const b = rightParts[index];
|
|
347
|
-
if (a === undefined) return -1;
|
|
348
|
-
if (b === undefined) return 1;
|
|
349
|
-
if (typeof a === "number" && typeof b === "number") {
|
|
350
|
-
if (a !== b) return a > b ? 1 : -1;
|
|
351
|
-
continue;
|
|
352
|
-
}
|
|
353
|
-
if (typeof a === "number" && typeof b !== "number") return 1;
|
|
354
|
-
if (typeof a !== "number" && typeof b === "number") return -1;
|
|
355
|
-
if (a !== b) return String(a) > String(b) ? 1 : -1;
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
return 0;
|
|
359
330
|
}
|
|
360
331
|
|
|
361
332
|
function preferredTaggedRelease(tags, current) {
|
|
362
333
|
const latest = tags.latest ? String(tags.latest) : "";
|
|
363
|
-
const beta = tags.beta ? String(tags.beta) : "";
|
|
364
|
-
if (latest && beta) {
|
|
365
|
-
return compareVersionTokens(beta, latest) > 0
|
|
366
|
-
? { version: beta, channel: "beta" }
|
|
367
|
-
: { version: latest, channel: "latest" };
|
|
368
|
-
}
|
|
369
|
-
if (beta) return { version: beta, channel: "beta" };
|
|
370
334
|
if (latest) return { version: latest, channel: "latest" };
|
|
371
335
|
return { version: current, channel: "unknown" };
|
|
372
336
|
}
|
|
@@ -506,14 +470,8 @@ function update() {
|
|
|
506
470
|
process.exit(1);
|
|
507
471
|
}
|
|
508
472
|
const targetVersion = registry.version;
|
|
509
|
-
const targetChannel = registry.channel;
|
|
510
473
|
ensureUserShim(targetVersion || "latest");
|
|
511
|
-
showUpdateGuide(current, targetVersion
|
|
512
|
-
const latest = registry.tags.latest ? String(registry.tags.latest) : "";
|
|
513
|
-
const beta = registry.tags.beta ? String(registry.tags.beta) : "";
|
|
514
|
-
if (latest && beta && compareVersionTokens(beta, latest) > 0) {
|
|
515
|
-
kv("Registry", `latest tag is older than beta (${latest} < ${beta})`);
|
|
516
|
-
}
|
|
474
|
+
showUpdateGuide(current, targetVersion);
|
|
517
475
|
const hasNewTarget = Boolean(targetVersion) && targetVersion !== current;
|
|
518
476
|
const npxRuntime = isNpxRun();
|
|
519
477
|
|
|
@@ -179,9 +179,12 @@ function syncManagedRuntime() {
|
|
|
179
179
|
ensureManagedRuntimeDir();
|
|
180
180
|
const entries = [
|
|
181
181
|
"config",
|
|
182
|
-
"dist",
|
|
183
182
|
"scripts",
|
|
183
|
+
"apps/local-console/dist",
|
|
184
|
+
"apps/local-console/package.json",
|
|
184
185
|
"apps/local-console/public",
|
|
186
|
+
"apps/public-explorer/dist",
|
|
187
|
+
"apps/public-explorer/package.json",
|
|
185
188
|
"apps/public-explorer/public",
|
|
186
189
|
"package.json",
|
|
187
190
|
"package-lock.json",
|
|
@@ -205,8 +208,8 @@ function syncManagedRuntime() {
|
|
|
205
208
|
source_app_dir: APP_DIR,
|
|
206
209
|
synced_at: Date.now(),
|
|
207
210
|
version: readJson(resolve(APP_DIR, "package.json"))?.version || null,
|
|
208
|
-
dist_server_mtime: existsSync(resolve(APP_DIR, "dist", "apps", "local-console", "src", "server.js"))
|
|
209
|
-
? statSync(resolve(APP_DIR, "dist", "apps", "local-console", "src", "server.js")).mtimeMs
|
|
211
|
+
dist_server_mtime: existsSync(resolve(APP_DIR, "apps", "local-console", "dist", "apps", "local-console", "src", "server.js"))
|
|
212
|
+
? statSync(resolve(APP_DIR, "apps", "local-console", "dist", "apps", "local-console", "src", "server.js")).mtimeMs
|
|
210
213
|
: null,
|
|
211
214
|
};
|
|
212
215
|
writeFileSync(resolve(MANAGED_RUNTIME_DIR, ".silicaclaw-runtime.json"), JSON.stringify(manifest, null, 2));
|
|
@@ -318,7 +321,7 @@ function isLaunchctlNotLoadedResult(result) {
|
|
|
318
321
|
function localConsoleProgramArguments(appDir = APP_DIR) {
|
|
319
322
|
return [
|
|
320
323
|
process.execPath,
|
|
321
|
-
resolve(appDir, "dist", "apps", "local-console", "src", "server.js"),
|
|
324
|
+
resolve(appDir, "apps", "local-console", "dist", "apps", "local-console", "src", "server.js"),
|
|
322
325
|
];
|
|
323
326
|
}
|
|
324
327
|
|