cicy-desktop 2.1.158 → 2.1.159
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 +11 -8
- package/src/main.js +5 -0
package/package.json
CHANGED
|
@@ -83,6 +83,9 @@ const DOCKER_TEAMS_FILE = path.join(os.homedir(), "cicy-ai", "db", "docker-teams
|
|
|
83
83
|
function readDockerTeams() { try { return JSON.parse(fs.readFileSync(DOCKER_TEAMS_FILE, "utf8")) || {}; } catch { return {}; } }
|
|
84
84
|
function writeDockerTeams(obj) { try { fs.mkdirSync(path.dirname(DOCKER_TEAMS_FILE), { recursive: true }); fs.writeFileSync(DOCKER_TEAMS_FILE, JSON.stringify(obj, null, 2)); } catch {} }
|
|
85
85
|
let dockerTeamReg = null; // { teamId, title, apiKey } — 缓存,appOpts 读它
|
|
86
|
+
// 主实例(APP_PORT===PORT,即 darwin docker-only 的 :8008)就是「本地团队」,不该叫
|
|
87
|
+
// 「Docker 团队」(那是第二实例 :8009 用的)。docker-only 下它是唯一/主团队。
|
|
88
|
+
const APP_TEAM_TITLE = (APP_PORT === PORT) ? "本地团队" : "Docker 团队";
|
|
86
89
|
|
|
87
90
|
// 确保这个 docker(按 volume)有独立云端 team;返回 { teamId, title, apiKey } 或 null。
|
|
88
91
|
async function ensureDockerTeam() {
|
|
@@ -91,21 +94,21 @@ async function ensureDockerTeam() {
|
|
|
91
94
|
const store = readDockerTeams();
|
|
92
95
|
let rec = store[APP_VOLUME];
|
|
93
96
|
if (!rec || !rec.teamId) {
|
|
94
|
-
const created = await cc.createTeam({ title:
|
|
97
|
+
const created = await cc.createTeam({ title: APP_TEAM_TITLE, kind: "cloud" });
|
|
95
98
|
if (!created || !created.ok) return null;
|
|
96
|
-
// 强制把云端标题设成
|
|
97
|
-
// 回退成 owner/device
|
|
98
|
-
try { await cc.renameTeam(created.teamId,
|
|
99
|
-
store[APP_VOLUME] = { teamId: created.teamId, title:
|
|
99
|
+
// 强制把云端标题设成 APP_TEAM_TITLE:POST /api/teams 常忽略我们传的 title、
|
|
100
|
+
// 回退成 owner/device 名,卡片就显示错了。PATCH 一下盖掉。
|
|
101
|
+
try { await cc.renameTeam(created.teamId, APP_TEAM_TITLE); } catch {}
|
|
102
|
+
store[APP_VOLUME] = { teamId: created.teamId, title: APP_TEAM_TITLE, titleForced: true };
|
|
100
103
|
writeDockerTeams(store);
|
|
101
|
-
dockerTeamReg = { teamId: created.teamId, title:
|
|
104
|
+
dockerTeamReg = { teamId: created.teamId, title: APP_TEAM_TITLE, apiKey: created.apiKey };
|
|
102
105
|
return dockerTeamReg;
|
|
103
106
|
}
|
|
104
107
|
// 既有 team:若还没强制过标题(老数据/上面那个 bug 建的),补一次 PATCH 成 "Docker
|
|
105
108
|
// 团队",然后打上 titleForced 标记 —— 只补这一次,之后用户自己改名不会被覆盖。
|
|
106
109
|
if (!rec.titleForced) {
|
|
107
|
-
try { await cc.renameTeam(rec.teamId,
|
|
108
|
-
rec.title =
|
|
110
|
+
try { await cc.renameTeam(rec.teamId, APP_TEAM_TITLE); } catch {}
|
|
111
|
+
rec.title = APP_TEAM_TITLE; rec.titleForced = true;
|
|
109
112
|
store[APP_VOLUME] = rec; writeDockerTeams(store);
|
|
110
113
|
}
|
|
111
114
|
const apiKey = await cc.getTeamApiKey(rec.teamId);
|
package/src/main.js
CHANGED
|
@@ -817,6 +817,11 @@ X-GNOME-Autostart-enabled=true
|
|
|
817
817
|
let _sidecarWatchdogTimer = null;
|
|
818
818
|
function startSidecarWatchdog({ intervalMs = 30_000 } = {}) {
|
|
819
819
|
if (_sidecarWatchdogTimer) return;
|
|
820
|
+
// macOS is docker-only: cicy-code lives in the Colima container on :8008, kept alive by
|
|
821
|
+
// the docker daemon's reconcile (sidecar-ipc) + the container's --restart unless-stopped.
|
|
822
|
+
// The native restart this watchdog does is a no-op on darwin (start() returns null), so it
|
|
823
|
+
// would just spam "sidecar unreachable → restart" every tick. Skip it entirely on darwin.
|
|
824
|
+
if (process.platform === "darwin") return;
|
|
820
825
|
let consecutiveFailures = 0;
|
|
821
826
|
let restartInFlight = false;
|
|
822
827
|
|