cicy-desktop 2.1.254 → 2.1.255
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/package.json +5 -5
- package/src/backends/sidecar-ipc.js +18 -7
- package/src/main.js +26 -17
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cicy-desktop",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.255",
|
|
4
4
|
"description": "CiCy - AI-powered operating system browser",
|
|
5
5
|
"main": "src/main.js",
|
|
6
6
|
"bin": {
|
|
@@ -139,10 +139,10 @@
|
|
|
139
139
|
"//optionalDependencies": "(2026-06 回调): mac/linux 改回 native cicy-code(:8008,colima 在 16G mac 上压垮内存)→ 重新内置 cicy-code-<plat> / cicy-mihomo-<plat>,localbin.fromBundle 零网络 seed(npm 仅作更新通道,带 npmmirror→npmjs 回退)。这些由 scripts/sync-runtime-deps.cjs 在 tag-push 时同步到最新版。npm 的 os/cpu 字段保证每个平台只装自己那份。Windows 仍走 docker(WSL :8009),它那份 cicy-code-windows 用不到但 bundle 着无害。",
|
|
140
140
|
"optionalDependencies": {
|
|
141
141
|
"electron": "41.0.3",
|
|
142
|
-
"cicy-code-darwin-x64": "2.3.
|
|
143
|
-
"cicy-code-darwin-arm64": "2.3.
|
|
144
|
-
"cicy-code-linux-x64": "2.3.
|
|
145
|
-
"cicy-code-linux-arm64": "2.3.
|
|
142
|
+
"cicy-code-darwin-x64": "2.3.313",
|
|
143
|
+
"cicy-code-darwin-arm64": "2.3.313",
|
|
144
|
+
"cicy-code-linux-x64": "2.3.313",
|
|
145
|
+
"cicy-code-linux-arm64": "2.3.313",
|
|
146
146
|
"cicy-code-windows-x64": "2.3.193",
|
|
147
147
|
"cicy-mihomo-darwin-x64": "1.10.4",
|
|
148
148
|
"cicy-mihomo-darwin-arm64": "1.10.4",
|
|
@@ -150,13 +150,24 @@ function register({ sidecarLogPath } = {}) {
|
|
|
150
150
|
_dockerDaemonBusy = true;
|
|
151
151
|
try {
|
|
152
152
|
const s = await refreshDockerStatus();
|
|
153
|
-
//
|
|
154
|
-
// →
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
153
|
+
// 打开 cicy-desktop 就保证 Windows/WSL 的 :8008 可用:
|
|
154
|
+
// - 已安装但停止 → 启动 WSL、dockerd 和容器;
|
|
155
|
+
// - 从未安装 → bootstrap 自动启用 WSL2、导入专用 distro、安装 Docker
|
|
156
|
+
// Engine、拉取镜像并启动 cicy-code。
|
|
157
|
+
// bootstrap 幂等且可续跑;首次启用 WSL 若要求重启 Windows,下次登录 Desktop
|
|
158
|
+
// 会再次进入这里并从已完成的步骤继续。unknown 表示 WSL 正卡住/未响应,
|
|
159
|
+
// 此时不并发安装,留给下一轮检测或显式「修复 WSL」。
|
|
160
|
+
if (!s.running && !s.unknown) {
|
|
161
|
+
log.info(`[docker-daemon] :8008 down (${s.installed ? "installed" : "not installed"}) → auto-bootstrapping WSL cicy-code`);
|
|
162
|
+
try {
|
|
163
|
+
await ensureDockerTeam().catch(() => {});
|
|
164
|
+
const result = await appDocker.bootstrap(await appOpts());
|
|
165
|
+
if (result && result.ok) {
|
|
166
|
+
try { await registerAppTeam(); } catch {}
|
|
167
|
+
} else if (result && result.reason) {
|
|
168
|
+
log.warn(`[docker-daemon] auto-bootstrap paused: ${result.reason}`);
|
|
169
|
+
}
|
|
170
|
+
} catch (e) { log.warn(`[docker-daemon] auto-bootstrap failed: ${e.message}`); }
|
|
160
171
|
await refreshDockerStatus();
|
|
161
172
|
} else if (s.running) {
|
|
162
173
|
// 自愈:容器在跑,但很可能是「首次启动时还没登录 / key 还没就位就建好了」的没 key 容器
|
package/src/main.js
CHANGED
|
@@ -939,30 +939,39 @@ electronApp.whenReady().then(async () => {
|
|
|
939
939
|
const lt = require("./backends/local-teams");
|
|
940
940
|
|
|
941
941
|
// 占位卡("先有一个 :8008 占位"): 开机**立刻无条件**注册本地团队,homepage 永远有
|
|
942
|
-
// 这张卡 —— :8008
|
|
943
|
-
//
|
|
942
|
+
// 这张卡 —— :8008 启动期间显示「未运行」;起来后下面的自动启动流程 upsert 一次,
|
|
943
|
+
// 状态翻 running + 触发 gateway key/teamId 注入。addTeam 幂等。
|
|
944
944
|
lt.addTeam({ base_url: `http://127.0.0.1:${sidecarPort}`, name: i18n.t("localTeams.defaultName") })
|
|
945
945
|
.then((r) => { if (r && r.id) log.info(`[Sidecar] local team placeholder registered (${r.id})`); })
|
|
946
946
|
.catch((e) => log.warn(`[Sidecar] placeholder register failed: ${e.message}`));
|
|
947
947
|
|
|
948
|
-
//
|
|
949
|
-
//
|
|
950
|
-
//
|
|
951
|
-
// 跑(上次保活留下的)就 adopt 刷新状态 + 拿 key/teamId。真正的启动/安装由 sidecar:start
|
|
952
|
-
// (点「启动并打开」)驱动,带 drawer。
|
|
948
|
+
// 打开 cicy-desktop 就保证本地 :8008 自动启动。start() 自带 child 去重:
|
|
949
|
+
// 自动启动仍在准备依赖时,用户点击「启动并打开」只会复用同一个 child,不会重复
|
|
950
|
+
// spawn 或抢安装锁。若上次退出后 daemon 仍在,则直接 adopt,不启动第二份。
|
|
953
951
|
(async () => {
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
952
|
+
try {
|
|
953
|
+
let running = await cicyCodeSidecar.probeExisting(sidecarPort);
|
|
954
|
+
if (!running) {
|
|
955
|
+
log.info(`[Sidecar] :${sidecarPort} 未运行 — 随 cicy-desktop 自动启动`);
|
|
956
|
+
await cicyCodeSidecar.start({
|
|
957
|
+
logPath: path.join(os.homedir(), "logs", "cicy-code-sidecar.log"),
|
|
958
|
+
});
|
|
959
|
+
// 首次启动可能要准备运行环境和恢复 agent 面板;等待端口真正监听。
|
|
960
|
+
for (let i = 0; i < 360 && !running; i++) {
|
|
961
|
+
await new Promise((res) => setTimeout(res, 500));
|
|
962
|
+
running = await cicyCodeSidecar.probeExisting(sidecarPort);
|
|
961
963
|
}
|
|
962
|
-
}
|
|
963
|
-
|
|
964
|
+
}
|
|
965
|
+
if (!running) {
|
|
966
|
+
log.warn(`[Sidecar] 自动启动后 :${sidecarPort} 在 180s 内仍未就绪`);
|
|
967
|
+
return;
|
|
968
|
+
}
|
|
969
|
+
const r = await lt.addTeam({ base_url: `http://127.0.0.1:${sidecarPort}`, name: i18n.t("localTeams.defaultName") });
|
|
970
|
+
if (r && r.id) log.info(`[Sidecar] running cicy-code adopted → local team ready (${r.id})`);
|
|
971
|
+
startSidecarWatchdog();
|
|
972
|
+
} catch (e) {
|
|
973
|
+
log.warn(`[Sidecar] 自动启动失败: ${e.message}`);
|
|
964
974
|
}
|
|
965
|
-
log.info(`[Sidecar] :${sidecarPort} 未在跑 — 占位卡显示「未运行」,等用户点「启动并打开」(带安装 drawer)`);
|
|
966
975
|
})();
|
|
967
976
|
}
|
|
968
977
|
|