cicy-desktop 2.1.341 → 2.1.357
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/build/installer.nsh +16 -0
- package/package.json +1 -1
- package/scripts/build-homepage.cjs +16 -1
- package/src/app-updater.js +6 -0
- package/src/backends/homepage-preload.js +3 -1
- package/src/backends/homepage-react/assets/index-Buyk0RlW.js +655 -0
- package/src/backends/homepage-react/assets/index-CVk0uc2g.css +1 -0
- package/src/backends/homepage-react/index.html +5 -3
- package/src/backends/homepage-react/panel/facebook-matrix.html +305 -87
- package/src/backends/homepage-react/panel/ipcheck.html +112 -0
- package/src/backends/homepage-react/panel/matrix.html +595 -0
- package/src/backends/homepage-react/panel/telegram-matrix.html +96 -22
- package/src/backends/homepage-react/panel/tiktok-matrix.html +599 -0
- package/src/backends/hub-client.js +108 -2
- package/src/backends/sidecar-ipc.js +33 -6
- package/src/main.js +67 -11
- package/src/sidecar/host-mihomo.js +47 -2
- package/src/tabbrowser/facebook-identity.js +12 -1
- package/src/tabbrowser/facebook-matrix.html +305 -87
- package/src/tabbrowser/fb-login.js +115 -0
- package/src/tabbrowser/newtab-protocol.js +6 -1
- package/src/tabbrowser/panel-cells.js +9 -1
- package/src/tabbrowser/telegram-matrix.html +96 -22
- package/src/tabbrowser/telegram-web-preferences.js +5 -1
- package/src/tabbrowser/tiktok-matrix.html +305 -87
- package/src/tools/tab-browser-tools.js +21 -100
- package/src/tray.js +22 -0
- package/test/bootstrap-failure-reporting.test.js +1 -1
- package/test/facebook-identity.test.js +3 -1
- package/test/facebook-matrix.test.js +2 -1
- package/test/telegram-matrix.test.js +2 -2
- package/test/tiktok-matrix.test.js +2 -1
- package/tools/arm-fblogin.js +32 -0
- package/tools/wsd-ws +114 -0
- package/workers/render/index.html +3 -1
- package/workers/render/package.json +2 -3
- package/workers/render/public/panel/facebook-matrix.html +305 -87
- package/workers/render/public/panel/ipcheck.html +112 -0
- package/workers/render/public/panel/matrix.html +595 -0
- package/workers/render/public/panel/telegram-matrix.html +96 -22
- package/workers/render/public/panel/tiktok-matrix.html +599 -0
- package/workers/render/src/App.css +4 -0
- package/workers/render/src/App.jsx +917 -52
- package/workers/render/stamp-panel-version.mjs +16 -0
- package/workers/render/worker.js +1 -1
- package/src/backends/homepage-react/assets/index-C6Zrdgc0.css +0 -1
- package/src/backends/homepage-react/assets/index-OG6JB73F.js +0 -411
- package/src/tabbrowser/cicy-code-tab-restore.js +0 -10
- package/test/cicy-code-tab-restore.test.js +0 -21
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
; electron-builder 安装脚本钩子(会被自动 include)。
|
|
2
|
+
;
|
|
3
|
+
; 背景:静默安装(/S,舰队自更新和一键 bat 都走静默)下,electron-builder
|
|
4
|
+
; 默认的 runAfterFinish 不会触发 —— 于是"装完 App 没起来",而看门狗计划任务
|
|
5
|
+
; (CiCyDesktopWatchdog)是 App 运行时才注册的,App 没起来就没人拉它,机器一直
|
|
6
|
+
; 躺尸,只能人工 RustDesk 逐台救(见 2026-09-04 全舰队升级事故)。
|
|
7
|
+
;
|
|
8
|
+
; 修法:安装完成(含静默)后,由安装器显式把 App 拉起来。App 启动时的
|
|
9
|
+
; ensureWindowsWatchdog 会自行(重新)注册看门狗任务,自愈链路即恢复:
|
|
10
|
+
; 安装器启动 App → App 注册看门狗 → 之后 App 崩溃/退出,看门狗 1 分钟内拉回。
|
|
11
|
+
; 保持最小(单行 Exec),不在 NSIS 里内联复杂 PowerShell,避免弄坏安装器。
|
|
12
|
+
|
|
13
|
+
!macro customInstall
|
|
14
|
+
; --hidden:后台/托盘启动,不抢焦点、不弹主窗
|
|
15
|
+
Exec '"$INSTDIR\${APP_EXECUTABLE_FILENAME}" --hidden'
|
|
16
|
+
!macroend
|
package/package.json
CHANGED
|
@@ -39,6 +39,7 @@ const PANEL_PAGES = [
|
|
|
39
39
|
"telegram-matrix.html",
|
|
40
40
|
"redroid-matrix.html",
|
|
41
41
|
"facebook-matrix.html",
|
|
42
|
+
"tiktok-matrix.html",
|
|
42
43
|
"split-panel.html",
|
|
43
44
|
];
|
|
44
45
|
fs.rmSync(PANEL_OUT, { recursive: true, force: true });
|
|
@@ -46,7 +47,21 @@ fs.mkdirSync(PANEL_OUT, { recursive: true });
|
|
|
46
47
|
for (const page of PANEL_PAGES) {
|
|
47
48
|
fs.copyFileSync(path.join(PANEL_SRC, page), path.join(PANEL_OUT, page));
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
+
// 兼容已发布的 v2.1.355:那一版把三个矩阵 preset 全解析成 preset=matrix,
|
|
51
|
+
// 而面板 tab 的地址就是 `/panel/<preset>`,所以它只会去请求 /panel/matrix。
|
|
52
|
+
// 合并页已被 f5b6e3a 回退删掉,这个地址要是不存在,机器上「矩阵」菜单点开
|
|
53
|
+
// 拿到的是 SPA 首页 —— 全队面板直接点空(实测 2026-09-11)。
|
|
54
|
+
// 在下一个版本铺开之前,这里放一份 Telegram 矩阵页顶上,菜单行为和回退前一致。
|
|
55
|
+
// 等车队都升到含 f5b6e3a 的版本后,这段可以删。
|
|
56
|
+
fs.copyFileSync(path.join(PANEL_SRC, "telegram-matrix.html"), path.join(PANEL_OUT, "matrix.html"));
|
|
57
|
+
// ipcheck.html 只在 homepage-react/panel 下手工维护(src/tabbrowser 里没有),
|
|
58
|
+
// 但上面 rmSync 会把整个 PANEL_OUT 清空 —— 不显式保住它,每次构建都会被删,
|
|
59
|
+
// 格子头那个 🌐 按钮点开就是 SPA 首页(实测 2026-09-11)。
|
|
60
|
+
{
|
|
61
|
+
const extra = path.join(__dirname, "..", "src", "backends", "homepage-react", "panel", "ipcheck.html");
|
|
62
|
+
if (fs.existsSync(extra)) fs.copyFileSync(extra, path.join(PANEL_OUT, "ipcheck.html"));
|
|
63
|
+
}
|
|
64
|
+
console.log(`[build-homepage] panel pages synced: ${PANEL_PAGES.join(", ")} (+ matrix.html 兼容 v2.1.355)`);
|
|
50
65
|
|
|
51
66
|
// 1) build the SPA from source (install deps on a cold runner)
|
|
52
67
|
if (!fs.existsSync(path.join(RENDER, "node_modules"))) {
|
package/src/app-updater.js
CHANGED
|
@@ -404,6 +404,12 @@ function installWindows(installer) {
|
|
|
404
404
|
const dir = path.join(process.env.LOCALAPPDATA || os.homedir(), "cicy-desktop");
|
|
405
405
|
fs.mkdirSync(dir, { recursive: true });
|
|
406
406
|
const vbs = path.join(dir, "update-install.vbs");
|
|
407
|
+
// Stand the 1-min watchdog DOWN for the install window: it would otherwise see
|
|
408
|
+
// the app gone (installer closed it), relaunch it, lock the exe, fail the
|
|
409
|
+
// replace, and leave the version unchanged — the exact loop that made a node
|
|
410
|
+
// "总被关". The watchdog skips its relaunch while this flag is < 180s old;
|
|
411
|
+
// mtime-expiry is the fail-safe so a crashed install can't wedge it forever.
|
|
412
|
+
try { fs.writeFileSync(path.join(dir, "updating.flag"), String(Date.now())); } catch { /* best effort */ }
|
|
407
413
|
// VBS escapes a double quote by doubling it. cmd waits for the installer (no
|
|
408
414
|
// `start` on that leg), then the pause lets Windows release the replaced
|
|
409
415
|
// files before the new exe runs hidden.
|
|
@@ -331,7 +331,9 @@ contextBridge.exposeInMainWorld("cicy", {
|
|
|
331
331
|
loginCode: (code) => logInvoke("hub:login-code", code),
|
|
332
332
|
cancel: () => logInvoke("hub:cancel"),
|
|
333
333
|
instances: () => logInvoke("hub:instances"),
|
|
334
|
-
|
|
334
|
+
// `next` = a path (+ hash route) inside the node's UI, e.g. "/#/project/x".
|
|
335
|
+
open: (id, title, port, next) => logInvoke("hub:open", { id, title, port, next }),
|
|
336
|
+
projects: (id) => logInvoke("hub:projects", { id }),
|
|
335
337
|
logout: () => logInvoke("hub:logout"),
|
|
336
338
|
onComplete: (cb) => {
|
|
337
339
|
const handler = (_e, payload) => cb(payload);
|