@silicaclaw/cli 2026.3.20-1 → 2026.3.20-2
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,12 @@
|
|
|
2
2
|
|
|
3
3
|
## v1.0 beta - 2026-03-20
|
|
4
4
|
|
|
5
|
+
### 2026.3.20-2
|
|
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
|
+
|
|
5
11
|
### 2026.3.20-1
|
|
6
12
|
|
|
7
13
|
- release build:
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v2026.3.20-
|
|
1
|
+
v2026.3.20-2
|
|
@@ -83,37 +83,15 @@ export function createOverviewController({
|
|
|
83
83
|
const bridge = bridgeRes.status === "fulfilled" ? bridgeRes.value.data || {} : {};
|
|
84
84
|
const networkCfg = networkCfgRes.status === "fulfilled" ? networkCfgRes.value.data || {} : {};
|
|
85
85
|
const networkStats = networkStatsRes.status === "fulfilled" ? networkStatsRes.value.data || {} : {};
|
|
86
|
-
const
|
|
87
|
-
const mergedById = new Map();
|
|
88
|
-
|
|
89
|
-
for (const agent of allProfiles) mergedById.set(agent.agent_id, agent);
|
|
90
|
-
|
|
91
|
-
for (const peer of peerItems) {
|
|
92
|
-
const existing = mergedById.get(peer.peer_id);
|
|
93
|
-
if (existing) {
|
|
94
|
-
if (peer.status && !existing.online) existing.online = peer.status === "online";
|
|
95
|
-
if (peer.last_seen_at && (!existing.updated_at || peer.last_seen_at > existing.updated_at)) {
|
|
96
|
-
existing.updated_at = peer.last_seen_at;
|
|
97
|
-
}
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
mergedById.set(peer.peer_id, {
|
|
101
|
-
agent_id: peer.peer_id,
|
|
102
|
-
display_name: shortId(peer.peer_id),
|
|
103
|
-
online: peer.status === "online",
|
|
104
|
-
updated_at: peer.last_seen_at || peer.first_seen_at || 0,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const all = Array.from(mergedById.values());
|
|
86
|
+
const all = Array.isArray(allProfiles) ? allProfiles.slice() : [];
|
|
109
87
|
const filtered = getOnlyShowOnline() ? all.filter((agent) => agent.online) : all;
|
|
110
88
|
setVisibleRemotePublicCount(all.filter((agent) => !agent.is_self && agent.online).length);
|
|
111
89
|
const totalAgentPages = Math.max(1, Math.ceil(filtered.length / 10));
|
|
112
90
|
let agentsPage = Math.min(Math.max(1, getAgentsPage()), totalAgentPages);
|
|
113
91
|
onPageChange(agentsPage);
|
|
114
92
|
const pagedAgents = filtered.slice((agentsPage - 1) * 10, agentsPage * 10);
|
|
115
|
-
const discoveredCount = Math.max(Number(o.discovered_count || 0),
|
|
116
|
-
const onlineCount = Math.max(Number(o.online_count || 0),
|
|
93
|
+
const discoveredCount = Math.max(Number(o.discovered_count || 0), all.length);
|
|
94
|
+
const onlineCount = Math.max(Number(o.online_count || 0), all.filter((agent) => agent.online).length);
|
|
117
95
|
const offlineCount = Math.max(0, discoveredCount - onlineCount);
|
|
118
96
|
|
|
119
97
|
const overviewCardsHtml = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
2026.3.20-beta.
|
|
1
|
+
2026.3.20-beta.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "silicaclaw-broadcast",
|
|
3
|
-
"version": "2026.3.20-beta.
|
|
3
|
+
"version": "2026.3.20-beta.2",
|
|
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
|
@@ -10,6 +10,7 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
10
10
|
const __dirname = dirname(__filename);
|
|
11
11
|
const ROOT_DIR = resolve(__dirname, "..");
|
|
12
12
|
const INVOCATION_CWD = process.cwd();
|
|
13
|
+
const LOCAL_CONSOLE_BASE_URL = "http://localhost:4310";
|
|
13
14
|
|
|
14
15
|
const COLOR = {
|
|
15
16
|
reset: "\x1b[0m",
|
|
@@ -109,6 +110,10 @@ function compactOutput(text, limit = 18) {
|
|
|
109
110
|
return lines.slice(-limit).join("\n");
|
|
110
111
|
}
|
|
111
112
|
|
|
113
|
+
function sleep(ms) {
|
|
114
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
115
|
+
}
|
|
116
|
+
|
|
112
117
|
function readVersion() {
|
|
113
118
|
return readPackageVersion();
|
|
114
119
|
}
|
|
@@ -416,7 +421,7 @@ function restartGatewayIfRunning(options = {}) {
|
|
|
416
421
|
const localRunning = Boolean(status?.local_console?.running);
|
|
417
422
|
const signalingRunning = Boolean(status?.signaling?.running);
|
|
418
423
|
if (!localRunning && !signalingRunning) {
|
|
419
|
-
return;
|
|
424
|
+
return { restarted: false };
|
|
420
425
|
}
|
|
421
426
|
|
|
422
427
|
const mode = String(status?.mode || "local");
|
|
@@ -438,12 +443,51 @@ function restartGatewayIfRunning(options = {}) {
|
|
|
438
443
|
|
|
439
444
|
if (canUseUpdatedShim) {
|
|
440
445
|
runInherit(shimPath, gatewayArgs, { cwd: process.cwd() });
|
|
441
|
-
return;
|
|
446
|
+
return { restarted: true, usedUpdatedShim: true };
|
|
442
447
|
}
|
|
443
448
|
|
|
444
449
|
runInherit("node", [resolve(ROOT_DIR, "scripts", "silicaclaw-gateway.mjs"), ...gatewayArgs.slice(1)], {
|
|
445
450
|
cwd: process.cwd(),
|
|
446
451
|
});
|
|
452
|
+
return { restarted: true, usedUpdatedShim: false };
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
function readLocalConsoleAppVersion() {
|
|
456
|
+
try {
|
|
457
|
+
const result = runCapture("curl", ["-sS", `${LOCAL_CONSOLE_BASE_URL}/api/overview`], {
|
|
458
|
+
cwd: process.cwd(),
|
|
459
|
+
});
|
|
460
|
+
if ((result.status ?? 1) !== 0) return "";
|
|
461
|
+
const text = String(result.stdout || "").trim();
|
|
462
|
+
if (!text) return "";
|
|
463
|
+
const payload = JSON.parse(text);
|
|
464
|
+
return String(payload?.data?.app_version || "").trim();
|
|
465
|
+
} catch {
|
|
466
|
+
return "";
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
async function waitForLocalConsoleVersion(targetVersion, timeoutMs = 15000) {
|
|
471
|
+
const startedAt = Date.now();
|
|
472
|
+
while (Date.now() - startedAt < timeoutMs) {
|
|
473
|
+
const version = readLocalConsoleAppVersion();
|
|
474
|
+
if (version === targetVersion) return version;
|
|
475
|
+
await sleep(400);
|
|
476
|
+
}
|
|
477
|
+
return readLocalConsoleAppVersion();
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
async function ensureRefreshedConsoleVersion(targetVersion) {
|
|
481
|
+
if (!targetVersion) return "";
|
|
482
|
+
let observed = await waitForLocalConsoleVersion(targetVersion, 12000);
|
|
483
|
+
if (observed === targetVersion) return observed;
|
|
484
|
+
|
|
485
|
+
const shimPath = userShimPath();
|
|
486
|
+
if (!existsSync(shimPath)) return observed;
|
|
487
|
+
|
|
488
|
+
runInherit(shimPath, ["gateway", "restart"], { cwd: process.cwd() });
|
|
489
|
+
observed = await waitForLocalConsoleVersion(targetVersion, 12000);
|
|
490
|
+
return observed;
|
|
447
491
|
}
|
|
448
492
|
|
|
449
493
|
function tryGlobalUpgrade(version) {
|
|
@@ -471,7 +515,7 @@ function tryGlobalUpgrade(version) {
|
|
|
471
515
|
return false;
|
|
472
516
|
}
|
|
473
517
|
|
|
474
|
-
function update() {
|
|
518
|
+
async function update() {
|
|
475
519
|
const current = readPackageVersion();
|
|
476
520
|
try {
|
|
477
521
|
const registry = preferredRegistryRelease(current);
|
|
@@ -502,7 +546,13 @@ function update() {
|
|
|
502
546
|
}
|
|
503
547
|
}
|
|
504
548
|
|
|
505
|
-
restartGatewayIfRunning({ preferredSpecifier: hasNewTarget ? targetVersion : "" });
|
|
549
|
+
const restartResult = restartGatewayIfRunning({ preferredSpecifier: hasNewTarget ? targetVersion : "" });
|
|
550
|
+
if (hasNewTarget && restartResult?.restarted) {
|
|
551
|
+
const observedVersion = await ensureRefreshedConsoleVersion(targetVersion);
|
|
552
|
+
if (observedVersion && observedVersion !== targetVersion) {
|
|
553
|
+
kv("Verify", `local console still reports ${observedVersion}`);
|
|
554
|
+
}
|
|
555
|
+
}
|
|
506
556
|
process.exit(0);
|
|
507
557
|
} catch (error) {
|
|
508
558
|
headline();
|
|
@@ -586,7 +636,7 @@ switch (cmd) {
|
|
|
586
636
|
});
|
|
587
637
|
break;
|
|
588
638
|
case "update":
|
|
589
|
-
update();
|
|
639
|
+
await update();
|
|
590
640
|
break;
|
|
591
641
|
case "install":
|
|
592
642
|
{
|