@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 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 dist-tags with `npm view @silicaclaw/cli dist-tags --json`.
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 dist-tags:
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-25
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.25
1
+ 2026.3.19-beta.27
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "silicaclaw-broadcast",
3
- "version": "2026.3.19-beta.25",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silicaclaw/cli",
3
- "version": "2026.3.19-25",
3
+ "version": "2026.3.19-27",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -315,7 +315,7 @@ function canWriteGlobalPrefix() {
315
315
  }
316
316
  }
317
317
 
318
- function showUpdateGuide(current, targetVersion, channel = "latest") {
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, targetChannel);
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