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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cicy-desktop",
3
- "version": "2.1.158",
3
+ "version": "2.1.159",
4
4
  "description": "CiCy - AI-powered operating system browser",
5
5
  "main": "src/main.js",
6
6
  "bin": {
@@ -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: "Docker 团队", kind: "cloud" });
97
+ const created = await cc.createTeam({ title: APP_TEAM_TITLE, kind: "cloud" });
95
98
  if (!created || !created.ok) return null;
96
- // 强制把云端标题设成 "Docker 团队":POST /api/teams 常忽略我们传的 title、
97
- // 回退成 owner/device 名(= 8008 的标题),卡片就显示成 8008 的了。PATCH 一下盖掉。
98
- try { await cc.renameTeam(created.teamId, "Docker 团队"); } catch {}
99
- store[APP_VOLUME] = { teamId: created.teamId, title: "Docker 团队", titleForced: true };
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: "Docker 团队", apiKey: created.apiKey };
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, "Docker 团队"); } catch {}
108
- rec.title = "Docker 团队"; rec.titleForced = true;
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