@silicaclaw/cli 2026.3.19-25 → 2026.3.19-28

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,24 @@
2
2
 
3
3
  ## v1.0 beta - 2026-03-19
4
4
 
5
+ ### 2026.3.19-28
6
+
7
+ - release build:
8
+ - prepared another fresh latest-channel package build without publishing
9
+ - regenerated the npm tarball through the verified release packing workflow
10
+
11
+ ### 2026.3.19-27
12
+
13
+ - release channel simplification:
14
+ - npm package update checks now follow only the `latest` dist-tag
15
+ - release verification and install docs no longer require a parallel `beta` npm channel for the CLI package
16
+
17
+ ### 2026.3.19-26
18
+
19
+ - release build:
20
+ - prepared another fresh beta-channel package build without publishing
21
+ - regenerated the npm tarball through the verified release packing workflow
22
+
5
23
  ### 2026.3.19-25
6
24
 
7
25
  - update fix:
package/DEMO_GUIDE.md CHANGED
@@ -1,4 +1,4 @@
1
- # SilicaClaw Demo Guide (v1.0 beta)
1
+ # SilicaClaw Demo Guide (v1.0)
2
2
 
3
3
  This guide provides 3 shortest demo paths.
4
4
 
package/INSTALL.md CHANGED
@@ -1,4 +1,4 @@
1
- # SilicaClaw Quick Start Install (v1.0 beta)
1
+ # SilicaClaw Quick Start Install (v1.0)
2
2
 
3
3
  This page follows an OpenClaw-like quick-start flow: install, run, verify.
4
4
 
@@ -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-28
@@ -144,6 +144,12 @@ function resolveWorkspaceRoot(cwd = process.cwd()) {
144
144
  return cwd;
145
145
  }
146
146
  function resolveProjectRoot(appRoot, cwd = process.cwd()) {
147
+ const envAppRoot = String(process.env.SILICACLAW_APP_DIR || "").trim();
148
+ if (envAppRoot &&
149
+ (0, fs_1.existsSync)((0, path_1.resolve)(envAppRoot, "apps", "local-console", "package.json")) &&
150
+ (0, fs_1.existsSync)((0, path_1.resolve)(envAppRoot, "package.json"))) {
151
+ return (0, path_1.resolve)(envAppRoot);
152
+ }
147
153
  const envRoot = String(process.env.SILICACLAW_WORKSPACE_DIR || "").trim();
148
154
  if (envRoot) {
149
155
  return (0, path_1.resolve)(envRoot);
@@ -946,7 +952,7 @@ class LocalNodeService {
946
952
  demo_mode: this.adapterMode === "real-preview"
947
953
  ? "lan-preview"
948
954
  : this.adapterMode === "webrtc-preview" || this.adapterMode === "relay-preview"
949
- ? "internet-preview"
955
+ ? "global-preview"
950
956
  : "local-process",
951
957
  mode_explainer: this.getModeExplainer(),
952
958
  };
@@ -198,6 +198,14 @@ function resolveWorkspaceRoot(cwd = process.cwd()): string {
198
198
  }
199
199
 
200
200
  function resolveProjectRoot(appRoot: string, cwd = process.cwd()): string {
201
+ const envAppRoot = String(process.env.SILICACLAW_APP_DIR || "").trim();
202
+ if (
203
+ envAppRoot &&
204
+ existsSync(resolve(envAppRoot, "apps", "local-console", "package.json")) &&
205
+ existsSync(resolve(envAppRoot, "package.json"))
206
+ ) {
207
+ return resolve(envAppRoot);
208
+ }
201
209
  const envRoot = String(process.env.SILICACLAW_WORKSPACE_DIR || "").trim();
202
210
  if (envRoot) {
203
211
  return resolve(envRoot);
@@ -1182,7 +1190,7 @@ export class LocalNodeService {
1182
1190
  this.adapterMode === "real-preview"
1183
1191
  ? "lan-preview"
1184
1192
  : this.adapterMode === "webrtc-preview" || this.adapterMode === "relay-preview"
1185
- ? "internet-preview"
1193
+ ? "global-preview"
1186
1194
  : "local-process",
1187
1195
  mode_explainer: this.getModeExplainer(),
1188
1196
  };
@@ -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.28
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "silicaclaw-broadcast",
3
- "version": "2026.3.19-beta.25",
3
+ "version": "2026.3.19-beta.28",
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-28",
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,10 +179,15 @@ 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",
189
+ "social.md",
190
+ ".openclaw",
186
191
  "package.json",
187
192
  "package-lock.json",
188
193
  "VERSION",
@@ -205,8 +210,8 @@ function syncManagedRuntime() {
205
210
  source_app_dir: APP_DIR,
206
211
  synced_at: Date.now(),
207
212
  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
213
+ dist_server_mtime: existsSync(resolve(APP_DIR, "apps", "local-console", "dist", "apps", "local-console", "src", "server.js"))
214
+ ? statSync(resolve(APP_DIR, "apps", "local-console", "dist", "apps", "local-console", "src", "server.js")).mtimeMs
210
215
  : null,
211
216
  };
212
217
  writeFileSync(resolve(MANAGED_RUNTIME_DIR, ".silicaclaw-runtime.json"), JSON.stringify(manifest, null, 2));
@@ -318,7 +323,7 @@ function isLaunchctlNotLoadedResult(result) {
318
323
  function localConsoleProgramArguments(appDir = APP_DIR) {
319
324
  return [
320
325
  process.execPath,
321
- resolve(appDir, "dist", "apps", "local-console", "src", "server.js"),
326
+ resolve(appDir, "apps", "local-console", "dist", "apps", "local-console", "src", "server.js"),
322
327
  ];
323
328
  }
324
329
 
@@ -864,6 +869,7 @@ async function startAll() {
864
869
  NETWORK_MODE: mode,
865
870
  WEBRTC_SIGNALING_URL: signalingUrl,
866
871
  WEBRTC_ROOM: room,
872
+ SILICACLAW_APP_DIR: APP_DIR,
867
873
  SILICACLAW_WORKSPACE_DIR: WORKSPACE_DIR,
868
874
  };
869
875
  localPid = spawnBackground(