cicy-desktop 2.1.244 → 2.1.245
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 +1 -1
- package/src/backends/sidecar-ipc.js +22 -0
package/package.json
CHANGED
|
@@ -631,6 +631,28 @@ function register({ sidecarLogPath } = {}) {
|
|
|
631
631
|
try { return cc ? await cc.listTunnels() : { ok: false, tunnelLimit: 0 }; } catch (e) { return { ok: false, tunnelLimit: 0, error: e.message }; }
|
|
632
632
|
});
|
|
633
633
|
|
|
634
|
+
// 「容器内使用 Docker」(Docker-outside-of-Docker)开关: 读/写 dood flag。set 后重建容器
|
|
635
|
+
// 让 docker.sock + WSL 的 docker 客户端挂载生效(runContainer 内部读 dood flag)。
|
|
636
|
+
ipcMain.handle("sidecar:get-dood", () => {
|
|
637
|
+
try { return { ok: true, dood: sidecar.isDood() }; } catch (e) { return { ok: false, dood: false, error: e.message }; }
|
|
638
|
+
});
|
|
639
|
+
ipcMain.handle("sidecar:set-dood", async (e, on) => {
|
|
640
|
+
const emit = (ev) => { try { e.sender.send("sidecar:op-progress", { op: "restart", ...ev }); } catch {} };
|
|
641
|
+
try {
|
|
642
|
+
sidecar.setDood(!!on);
|
|
643
|
+
emit({ phase: "swap", status: "running", message: `容器 Docker 访问已${on ? "开启" : "关闭"},正在重建容器…` });
|
|
644
|
+
try { await appDocker.recreate({ ...(await appOpts()), onProgress: emit }); }
|
|
645
|
+
catch (err) { try { await appDocker.dockerRestart?.({ onProgress: emit }); } catch {} }
|
|
646
|
+
let up = false;
|
|
647
|
+
for (let i = 0; i < 240; i++) { if ((await appDocker.probeHealth?.(PORT)) || (await sidecar.probeExisting(PORT))) { up = true; break; } await new Promise((r) => setTimeout(r, 500)); }
|
|
648
|
+
emit({ phase: "done", status: up ? "done" : "error", message: up ? `容器 Docker 访问已${on ? "开启" : "关闭"}` : "重建后 :8008 未就绪——稍等或重试" });
|
|
649
|
+
return { ok: up, dood: !!on };
|
|
650
|
+
} catch (err) {
|
|
651
|
+
emit({ phase: "done", status: "error", message: `设置失败:${err.message}` });
|
|
652
|
+
return { ok: false, error: err.message };
|
|
653
|
+
}
|
|
654
|
+
});
|
|
655
|
+
|
|
634
656
|
// Update: stop + spawn cicy-code@latest (or reload the Docker image on
|
|
635
657
|
// win32). The npx re-resolve / image pull can take a while on a cold cache,
|
|
636
658
|
// so allow a longer window for :8008 to come back.
|