cicy-desktop 2.1.119 → 2.1.121

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.
@@ -95,6 +95,27 @@ jobs:
95
95
  path: dist/*.exe
96
96
  if-no-files-found: error
97
97
 
98
+ # 把最新的安装 exe 推到 OSS 的**单一固定 key**(主人:latest 只发一个)。
99
+ # 每次发版覆盖同一个文件,永远只有一个 latest,URL 不变:
100
+ # https://cicy-1372193042-cn.oss-cn-shanghai.aliyuncs.com/releases/cicy-desktop-latest.exe
101
+ - name: Upload latest EXE to OSS (single 'latest' file, overwritten)
102
+ shell: pwsh
103
+ env:
104
+ OSS_AK: ${{ secrets.OSS_ACCESS_KEY_ID }}
105
+ OSS_SK: ${{ secrets.OSS_ACCESS_KEY_SECRET }}
106
+ run: |
107
+ Invoke-WebRequest -Uri "https://gosspublic.alicdn.com/ossutil/1.7.18/ossutil-v1.7.18-windows-amd64.zip" -OutFile ossutil.zip
108
+ Expand-Archive -LiteralPath ossutil.zip -DestinationPath ossutil-dir -Force
109
+ $oss = "ossutil-dir\ossutil-v1.7.18-windows-amd64\ossutil.exe"
110
+ & $oss config -e oss-cn-shanghai.aliyuncs.com -i "$env:OSS_AK" -k "$env:OSS_SK"
111
+ $exe = Get-ChildItem dist\*.exe | Where-Object { $_.Name -match 'Setup' } | Select-Object -First 1
112
+ if (-not $exe) { $exe = Get-ChildItem dist\*.exe | Select-Object -First 1 }
113
+ if (-not $exe) { Write-Error "no exe found in dist"; exit 1 }
114
+ Write-Host "Uploading $($exe.Name) -> oss://cicy-1372193042-cn/releases/cicy-desktop-latest.exe"
115
+ & $oss cp "$($exe.FullName)" "oss://cicy-1372193042-cn/releases/cicy-desktop-latest.exe" -f --acl public-read
116
+ if ($LASTEXITCODE -ne 0) { Write-Error "ossutil upload failed"; exit 1 }
117
+ Write-Host "Latest EXE: https://cicy-1372193042-cn.oss-cn-shanghai.aliyuncs.com/releases/cicy-desktop-latest.exe"
118
+
98
119
  - name: Publish release (drop draft, mark latest)
99
120
  # Only promote AFTER all assets uploaded successfully. autoUpdater on
100
121
  # existing clients will pick up the new version on its next poll.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cicy-desktop",
3
- "version": "2.1.119",
3
+ "version": "2.1.121",
4
4
  "description": "CiCy - AI-powered operating system browser",
5
5
  "main": "src/main.js",
6
6
  "bin": {
@@ -98,7 +98,9 @@
98
98
  "allowToChangeInstallationDirectory": false,
99
99
  "oneClick": true,
100
100
  "perMachine": false,
101
- "allowElevation": true
101
+ "allowElevation": true,
102
+ "createDesktopShortcut": "always",
103
+ "createStartMenuShortcut": true
102
104
  },
103
105
  "electronVersion": "41.0.3"
104
106
  },
@@ -193,13 +193,22 @@ async function startEngine() {
193
193
  "if ! pgrep dockerd >/dev/null 2>&1; then rm -f /var/run/docker.pid /run/docker.pid /var/run/docker.sock /run/docker.sock; fi; " +
194
194
  "pgrep dockerd >/dev/null 2>&1 || (nohup dockerd >/var/log/cicy-dockerd.log 2>&1 &); " +
195
195
  // First boot of a freshly-imported distro: cold WSL2 VM + large pre-baked
196
- // /var/lib/docker give it longer than 20s.
197
- "for i in $(seq 1 40); do [ -S /var/run/docker.sock ] && docker version >/dev/null 2>&1 && break; sleep 1; done",
198
- { timeout: 60000 });
196
+ // /var/lib/docker (restoring containers + overlay) can take well over 40s.
197
+ // Wait up to 120s the 40s window was too short on cold boot, which made
198
+ // the next attempt pkill the STILL-INITIALIZING daemon and relaunch it
199
+ // cold again (a restart loop → 「引擎没起来」even though dockerd was fine).
200
+ "for i in $(seq 1 120); do [ -S /var/run/docker.sock ] && docker version >/dev/null 2>&1 && break; sleep 1; done",
201
+ { timeout: 150000 });
199
202
  } catch {}
200
203
  if (await dockerEngineUp()) return true;
201
- // Failed: kill the half-dead daemon + clear runtime files for a clean retry.
202
- try { await wslRun("pkill -9 dockerd 2>/dev/null; rm -f /var/run/docker.pid /run/docker.pid /var/run/docker.sock /run/docker.sock; sleep 1", { timeout: 15000 }); } catch {}
204
+ // Not up after the wait. Only hard-reset when dockerd actually DIED (crash)
205
+ // if it's still alive it's just slow/mid-init, so leave it and let the next
206
+ // attempt's wait loop keep polling instead of killing a healthy daemon.
207
+ try {
208
+ await wslRun(
209
+ "if ! pgrep dockerd >/dev/null 2>&1; then rm -f /var/run/docker.pid /run/docker.pid /var/run/docker.sock /run/docker.sock; fi; sleep 1",
210
+ { timeout: 15000 });
211
+ } catch {}
203
212
  }
204
213
  return false;
205
214
  }