cicy-desktop 2.1.158 → 2.1.160
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 +10 -9
- package/src/main.js +3 -0
- package/src/sidecar/cicy-code.js +3 -7
package/package.json
CHANGED
|
@@ -45,7 +45,7 @@ const PORT = Number(process.env.CICY_CODE_PORT || 8008);
|
|
|
45
45
|
// existing daemon/reconcile/ensureDockerTeam/appOpts machinery below just retargets to 8008
|
|
46
46
|
// — independent cloud team key, named-volume isolation, auto-start all come for free.
|
|
47
47
|
// win32 keeps the Docker-版 as an optional 2nd instance on :8009 alongside native :8008 (next).
|
|
48
|
-
const APP_PORT = Number(process.env.CICY_DOCKER_APP_PORT ||
|
|
48
|
+
const APP_PORT = Number(process.env.CICY_DOCKER_APP_PORT || 8008); // native 退役:原 :8009 Docker-版就是唯一的 :8008 cicy-code
|
|
49
49
|
// container / volume 名都带上 port —— 一台机可以跑多个 docker(不同端口),各自
|
|
50
50
|
// 独立容器 + 独立 volume(数据隔离)+ 独立云端 team。docker-teams.json 也按 volume
|
|
51
51
|
// (含 port)区分。
|
|
@@ -83,6 +83,7 @@ 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
|
+
const APP_TEAM_TITLE = "本地团队"; // 只有一个 cicy-code(:8008)= 本地团队
|
|
86
87
|
|
|
87
88
|
// 确保这个 docker(按 volume)有独立云端 team;返回 { teamId, title, apiKey } 或 null。
|
|
88
89
|
async function ensureDockerTeam() {
|
|
@@ -91,21 +92,21 @@ async function ensureDockerTeam() {
|
|
|
91
92
|
const store = readDockerTeams();
|
|
92
93
|
let rec = store[APP_VOLUME];
|
|
93
94
|
if (!rec || !rec.teamId) {
|
|
94
|
-
const created = await cc.createTeam({ title:
|
|
95
|
+
const created = await cc.createTeam({ title: APP_TEAM_TITLE, kind: "cloud" });
|
|
95
96
|
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:
|
|
97
|
+
// 强制把云端标题设成 APP_TEAM_TITLE:POST /api/teams 常忽略我们传的 title、
|
|
98
|
+
// 回退成 owner/device 名,卡片就显示错了。PATCH 一下盖掉。
|
|
99
|
+
try { await cc.renameTeam(created.teamId, APP_TEAM_TITLE); } catch {}
|
|
100
|
+
store[APP_VOLUME] = { teamId: created.teamId, title: APP_TEAM_TITLE, titleForced: true };
|
|
100
101
|
writeDockerTeams(store);
|
|
101
|
-
dockerTeamReg = { teamId: created.teamId, title:
|
|
102
|
+
dockerTeamReg = { teamId: created.teamId, title: APP_TEAM_TITLE, apiKey: created.apiKey };
|
|
102
103
|
return dockerTeamReg;
|
|
103
104
|
}
|
|
104
105
|
// 既有 team:若还没强制过标题(老数据/上面那个 bug 建的),补一次 PATCH 成 "Docker
|
|
105
106
|
// 团队",然后打上 titleForced 标记 —— 只补这一次,之后用户自己改名不会被覆盖。
|
|
106
107
|
if (!rec.titleForced) {
|
|
107
|
-
try { await cc.renameTeam(rec.teamId,
|
|
108
|
-
rec.title =
|
|
108
|
+
try { await cc.renameTeam(rec.teamId, APP_TEAM_TITLE); } catch {}
|
|
109
|
+
rec.title = APP_TEAM_TITLE; rec.titleForced = true;
|
|
109
110
|
store[APP_VOLUME] = rec; writeDockerTeams(store);
|
|
110
111
|
}
|
|
111
112
|
const apiKey = await cc.getTeamApiKey(rec.teamId);
|
package/src/main.js
CHANGED
|
@@ -817,6 +817,9 @@ X-GNOME-Autostart-enabled=true
|
|
|
817
817
|
let _sidecarWatchdogTimer = null;
|
|
818
818
|
function startSidecarWatchdog({ intervalMs = 30_000 } = {}) {
|
|
819
819
|
if (_sidecarWatchdogTimer) return;
|
|
820
|
+
// 主人: native 退役,全平台只有 docker。:8008 由 docker daemon(sidecar-ipc reconcile)
|
|
821
|
+
// + 容器 --restart 保活,没有 native 要 watchdog 去检查/重启。直接不跑。
|
|
822
|
+
return;
|
|
820
823
|
let consecutiveFailures = 0;
|
|
821
824
|
let restartInFlight = false;
|
|
822
825
|
|
package/src/sidecar/cicy-code.js
CHANGED
|
@@ -100,13 +100,9 @@ async function startFromRuntime({ logPath, port }) {
|
|
|
100
100
|
async function start({ logPath, port = DEFAULT_PORT, force = false, version = null } = {}) {
|
|
101
101
|
if (child && !force) return child;
|
|
102
102
|
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
|
|
106
|
-
// primary on :8008, brought up + kept alive by the docker daemon in src/backends/
|
|
107
|
-
// sidecar-ipc.js (APP_PORT=8008 on darwin). probeExisting()/watchdog still work — they
|
|
108
|
-
// just observe the container's :8008. Returning null here = "no native child".
|
|
109
|
-
if (process.platform === "darwin") return null;
|
|
103
|
+
// 主人: native 退役,全平台 docker-only。cicy-code 只在 docker 容器里跑(:8008,命名卷
|
|
104
|
+
// 隔离,sidecar-ipc 的 docker daemon 负责拉起 + 保活)。这里不再起任何 native。
|
|
105
|
+
return null;
|
|
110
106
|
|
|
111
107
|
if (!force && await probeExisting(port)) {
|
|
112
108
|
console.log(`[cicy-code-sidecar] existing instance on :${port}, reusing`);
|