@cats-inc/cats-platform 0.1.1 → 0.1.5
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/.env.example +2 -2
- package/README.md +6 -0
- package/build/desktop/bootstrapPage.d.ts.map +1 -1
- package/build/desktop/bootstrapPage.js +81 -4
- package/build/desktop/bootstrapPage.js.map +1 -1
- package/build/desktop/config.d.ts +11 -1
- package/build/desktop/config.d.ts.map +1 -1
- package/build/desktop/config.js +5 -2
- package/build/desktop/config.js.map +1 -1
- package/build/desktop/contracts.d.ts +66 -11
- package/build/desktop/contracts.d.ts.map +1 -1
- package/build/desktop/contracts.js +50 -1
- package/build/desktop/contracts.js.map +1 -1
- package/build/desktop/hostState.d.ts +4 -3
- package/build/desktop/hostState.d.ts.map +1 -1
- package/build/desktop/hostState.js +22 -30
- package/build/desktop/hostState.js.map +1 -1
- package/build/desktop/hostVersion.d.ts +1 -0
- package/build/desktop/hostVersion.d.ts.map +1 -1
- package/build/desktop/hostVersion.js +29 -5
- package/build/desktop/hostVersion.js.map +1 -1
- package/build/desktop/main.js +234 -37
- package/build/desktop/main.js.map +1 -1
- package/build/desktop/packaging.d.ts.map +1 -1
- package/build/desktop/packaging.js +10 -4
- package/build/desktop/packaging.js.map +1 -1
- package/build/desktop/preload.cjs +29 -0
- package/build/desktop/preload.cjs.map +1 -1
- package/build/desktop/processSupervisor.d.ts +2 -0
- package/build/desktop/processSupervisor.d.ts.map +1 -1
- package/build/desktop/processSupervisor.js +28 -13
- package/build/desktop/processSupervisor.js.map +1 -1
- package/build/desktop/readiness.d.ts +2 -2
- package/build/desktop/readiness.d.ts.map +1 -1
- package/build/desktop/readiness.js +2 -2
- package/build/desktop/readiness.js.map +1 -1
- package/build/desktop/releaseDescriptor.d.ts +85 -0
- package/build/desktop/releaseDescriptor.d.ts.map +1 -0
- package/build/desktop/releaseDescriptor.js +246 -0
- package/build/desktop/releaseDescriptor.js.map +1 -0
- package/build/desktop/tray.d.ts +1 -0
- package/build/desktop/tray.d.ts.map +1 -1
- package/build/desktop/tray.js +26 -0
- package/build/desktop/tray.js.map +1 -1
- package/build/desktop/trayMenu.d.ts +22 -1
- package/build/desktop/trayMenu.d.ts.map +1 -1
- package/build/desktop/trayMenu.js +61 -0
- package/build/desktop/trayMenu.js.map +1 -1
- package/build/desktop/updateInstallHandoff.d.ts +30 -0
- package/build/desktop/updateInstallHandoff.d.ts.map +1 -0
- package/build/desktop/updateInstallHandoff.js +39 -0
- package/build/desktop/updateInstallHandoff.js.map +1 -0
- package/build/desktop/updateIpc.d.ts +42 -0
- package/build/desktop/updateIpc.d.ts.map +1 -0
- package/build/desktop/updateIpc.js +71 -0
- package/build/desktop/updateIpc.js.map +1 -0
- package/build/desktop/updateManager.d.ts +76 -0
- package/build/desktop/updateManager.d.ts.map +1 -0
- package/build/desktop/updateManager.js +342 -0
- package/build/desktop/updateManager.js.map +1 -0
- package/build/desktop/updateNotifications.d.ts +64 -0
- package/build/desktop/updateNotifications.d.ts.map +1 -0
- package/build/desktop/updateNotifications.js +143 -0
- package/build/desktop/updateNotifications.js.map +1 -0
- package/build/desktop/updaterAdapter.d.ts +72 -0
- package/build/desktop/updaterAdapter.d.ts.map +1 -0
- package/build/desktop/updaterAdapter.js +198 -0
- package/build/desktop/updaterAdapter.js.map +1 -0
- package/build/renderer/assets/{ActiveSessionPermissionChip-BYr8cDpb.js → ActiveSessionPermissionChip-BoDkKkmi.js} +1 -1
- package/build/renderer/assets/{App-BbuTWT6Y.js → App-Bs1eRarv.js} +1 -1
- package/build/renderer/assets/{App-B13AzNko.js → App-C4S1Wa9f.js} +1 -1
- package/build/renderer/assets/{App-n-RtGh42.js → App-CNJj5gi9.js} +1 -1
- package/build/renderer/assets/{WorkspaceAppRoutes-BktWrQK-.js → WorkspaceAppRoutes-CFAuhWGF.js} +1 -1
- package/build/renderer/assets/app-uJJx-k1S.js +43 -0
- package/build/renderer/assets/{conversationSidebarRecentEntries-BNPz3X1V.js → conversationSidebarRecentEntries-CPGopayy.js} +1 -1
- package/build/renderer/assets/{useDraftSessionChips-3z_Je4ju.js → useDraftSessionChips-BsOdYfWw.js} +1 -1
- package/build/renderer/index.html +1 -1
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.d.ts +5 -0
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.d.ts.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.js +16 -0
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.js.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.d.ts +11 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.d.ts.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.js +30 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.js.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts +31 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js +101 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js.map +1 -0
- package/build/server/app/server/index.js +1 -1
- package/build/server/app/server/index.js.map +1 -1
- package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
- package/build/server/app/server/platformSetupRoutes.js +42 -5
- package/build/server/app/server/platformSetupRoutes.js.map +1 -1
- package/build/server/app/server/requestRouter.d.ts.map +1 -1
- package/build/server/app/server/requestRouter.js +2 -0
- package/build/server/app/server/requestRouter.js.map +1 -1
- package/build/server/design/components/runtimeChips.d.ts +1 -1
- package/build/server/design/components/runtimeChips.d.ts.map +1 -1
- package/build/server/design/components/runtimeChips.js +4 -1
- package/build/server/design/components/runtimeChips.js.map +1 -1
- package/build/server/index.js +12 -1
- package/build/server/index.js.map +1 -1
- package/build/server/platform/auth/sessionSecretProvisioning.d.ts +23 -0
- package/build/server/platform/auth/sessionSecretProvisioning.d.ts.map +1 -0
- package/build/server/platform/auth/sessionSecretProvisioning.js +291 -0
- package/build/server/platform/auth/sessionSecretProvisioning.js.map +1 -0
- package/build/server/products/code/livePreview/realProcessAdapter.d.ts.map +1 -1
- package/build/server/products/code/livePreview/realProcessAdapter.js +7 -1
- package/build/server/products/code/livePreview/realProcessAdapter.js.map +1 -1
- package/build/server/products/code/state/appExport.d.ts.map +1 -1
- package/build/server/products/code/state/appExport.js +2 -0
- package/build/server/products/code/state/appExport.js.map +1 -1
- package/build/server/shared/desktopRecoveryBridge.d.ts +46 -0
- package/build/server/shared/desktopRecoveryBridge.d.ts.map +1 -1
- package/build/server/shared/desktopRecoveryBridge.js +20 -0
- package/build/server/shared/desktopRecoveryBridge.js.map +1 -1
- package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/en.js +37 -0
- package/build/server/shared/i18n/catalogs/en.js.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.js +35 -0
- package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
- package/build/server/shared/i18n/index.d.ts +35 -0
- package/build/server/shared/i18n/index.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.d.ts +35 -0
- package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.js +35 -0
- package/build/server/shared/i18n/messageKeys.js.map +1 -1
- package/build/server/shared/loadProjectEnvFile.d.ts.map +1 -1
- package/build/server/shared/loadProjectEnvFile.js +18 -19
- package/build/server/shared/loadProjectEnvFile.js.map +1 -1
- package/build/server/shared/platformChildProcessEnv.d.ts +2 -0
- package/build/server/shared/platformChildProcessEnv.d.ts.map +1 -0
- package/build/server/shared/platformChildProcessEnv.js +22 -0
- package/build/server/shared/platformChildProcessEnv.js.map +1 -0
- package/package.json +19 -27
- package/scripts/build-desktop-installer.mjs +438 -37
- package/scripts/build-test-ui.mjs +13 -2
- package/scripts/generate-desktop-release-descriptor.mjs +258 -0
- package/scripts/validate-release-assets.mjs +422 -0
- package/scripts/validate-release-version.mjs +217 -0
- package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +55 -1
- package/build/desktop/update.d.ts +0 -24
- package/build/desktop/update.d.ts.map +0 -1
- package/build/desktop/update.js +0 -173
- package/build/desktop/update.js.map +0 -1
- package/build/renderer/assets/app-DnVQMpW_.js +0 -43
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.d.ts +0 -5
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.d.ts.map +0 -1
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.js +0 -11
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { DesktopBackgroundState, DesktopBootstrapSnapshot, DesktopHostDiagnosticsState, DesktopHostPersistedState, DesktopPackagingPlan, DesktopSetupState,
|
|
1
|
+
import type { DesktopBackgroundState, DesktopBootstrapSnapshot, DesktopHostDiagnosticsState, DesktopHostPersistedState, DesktopPackagingPlan, DesktopSetupState, DesktopUpdateSnapshot } from './contracts.js';
|
|
2
2
|
import type { DesktopHostConfig } from './config.js';
|
|
3
3
|
interface DesktopHostStateStoreDependencies {
|
|
4
4
|
now?: () => Date;
|
|
5
5
|
}
|
|
6
6
|
export declare function createDesktopBackgroundState(config: DesktopHostConfig, overrides?: Partial<DesktopBackgroundState>): DesktopBackgroundState;
|
|
7
|
+
export declare function readPersistedUpdateLastCheckedAt(value: unknown): string | null;
|
|
7
8
|
export declare class DesktopHostStateStore {
|
|
8
9
|
private readonly statePath;
|
|
9
10
|
private writeQueue;
|
|
@@ -11,14 +12,14 @@ export declare class DesktopHostStateStore {
|
|
|
11
12
|
constructor(statePath: string, dependencies?: DesktopHostStateStoreDependencies);
|
|
12
13
|
load(config: DesktopHostConfig, defaults: {
|
|
13
14
|
background: DesktopBackgroundState;
|
|
14
|
-
updates:
|
|
15
|
+
updates: DesktopUpdateSnapshot;
|
|
15
16
|
packaging: DesktopPackagingPlan;
|
|
16
17
|
setup: DesktopSetupState;
|
|
17
18
|
}): Promise<DesktopHostPersistedState | null>;
|
|
18
19
|
save(input: {
|
|
19
20
|
snapshot: DesktopBootstrapSnapshot;
|
|
20
21
|
background: DesktopBackgroundState;
|
|
21
|
-
updates:
|
|
22
|
+
updates: DesktopUpdateSnapshot;
|
|
22
23
|
packaging: DesktopPackagingPlan;
|
|
23
24
|
setup: DesktopSetupState;
|
|
24
25
|
diagnostics: DesktopHostDiagnosticsState | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostState.d.ts","sourceRoot":"","sources":["../../desktop/host/hostState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EAMtB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EAIzB,oBAAoB,EAGpB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"hostState.d.ts","sourceRoot":"","sources":["../../desktop/host/hostState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EAMtB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EAIzB,oBAAoB,EAGpB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,UAAU,iCAAiC;IACzC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,iBAAiB,EACzB,SAAS,GAAE,OAAO,CAAC,sBAAsB,CAAM,GAC9C,sBAAsB,CAUxB;AA+ED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE9E;AA4VD,qBAAa,qBAAqB;IAM9B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAGd,SAAS,EAAE,MAAM,EAClC,YAAY,GAAE,iCAAsC;IAKhD,IAAI,CACR,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE;QACR,UAAU,EAAE,sBAAsB,CAAC;QACnC,OAAO,EAAE,qBAAqB,CAAC;QAC/B,SAAS,EAAE,oBAAoB,CAAC;QAChC,KAAK,EAAE,iBAAiB,CAAC;KAC1B,GACA,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAwCtC,IAAI,CAAC,KAAK,EAAE;QAChB,QAAQ,EAAE,wBAAwB,CAAC;QACnC,UAAU,EAAE,sBAAsB,CAAC;QACnC,OAAO,EAAE,qBAAqB,CAAC;QAC/B,SAAS,EAAE,oBAAoB,CAAC;QAChC,KAAK,EAAE,iBAAiB,CAAC;QACzB,WAAW,EAAE,2BAA2B,GAAG,IAAI,CAAC;KACjD,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBlB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { dirname } from 'node:path';
|
|
3
|
-
import { DESKTOP_BOOTSTRAP_PHASES, DESKTOP_HOST_NAME,
|
|
3
|
+
import { DESKTOP_BOOTSTRAP_PHASES, DESKTOP_HOST_NAME, } from './contracts.js';
|
|
4
4
|
import { DESKTOP_HOST_VERSION } from './hostVersion.js';
|
|
5
5
|
import { createEmptyDesktopDiagnosticsState } from './bootstrapDiagnostics.js';
|
|
6
6
|
export function createDesktopBackgroundState(config, overrides = {}) {
|
|
@@ -39,22 +39,6 @@ function normalizeHealthStatus(value) {
|
|
|
39
39
|
? value
|
|
40
40
|
: 'degraded';
|
|
41
41
|
}
|
|
42
|
-
function normalizeUpdateChannel(value, fallback) {
|
|
43
|
-
return typeof value === 'string'
|
|
44
|
-
&& DESKTOP_UPDATE_CHANNELS.includes(value)
|
|
45
|
-
? value
|
|
46
|
-
: fallback;
|
|
47
|
-
}
|
|
48
|
-
function normalizeUpdateStatus(value, fallback) {
|
|
49
|
-
return typeof value === 'string'
|
|
50
|
-
&& DESKTOP_UPDATE_STATUSES.includes(value)
|
|
51
|
-
? value
|
|
52
|
-
: fallback;
|
|
53
|
-
}
|
|
54
|
-
function normalizeSha256(value) {
|
|
55
|
-
const digest = readString(value);
|
|
56
|
-
return digest && /^[a-f0-9]{64}$/iu.test(digest) ? digest.toLowerCase() : null;
|
|
57
|
-
}
|
|
58
42
|
function normalizeBackgroundState(value, fallback) {
|
|
59
43
|
if (!isObjectRecord(value)) {
|
|
60
44
|
return fallback;
|
|
@@ -69,23 +53,31 @@ function normalizeBackgroundState(value, fallback) {
|
|
|
69
53
|
lastHiddenAt: readString(value.lastHiddenAt),
|
|
70
54
|
};
|
|
71
55
|
}
|
|
72
|
-
|
|
56
|
+
/**
|
|
57
|
+
* The last check time is the only update fact that survives a restart.
|
|
58
|
+
*
|
|
59
|
+
* Capability is recomputed from the running package on every launch, and every
|
|
60
|
+
* status is provider-dependent: a restored `update_available` cannot be acted
|
|
61
|
+
* on without checking again, and a restored `downloading` or `installing`
|
|
62
|
+
* describes work no operation in the new process is driving. Restoring any of
|
|
63
|
+
* them would put the host snapshot and the update manager into different
|
|
64
|
+
* states, which is exactly the divergence this avoids.
|
|
65
|
+
*
|
|
66
|
+
* The restored timestamp is fed to the manager at construction, so the manager
|
|
67
|
+
* stays the single owner of update state.
|
|
68
|
+
*/
|
|
69
|
+
function normalizeUpdateSnapshot(value, fallback) {
|
|
73
70
|
if (!isObjectRecord(value)) {
|
|
74
71
|
return fallback;
|
|
75
72
|
}
|
|
76
73
|
return {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
currentVersion: readString(value.currentVersion) ?? fallback.currentVersion,
|
|
80
|
-
latestVersion: readString(value.latestVersion),
|
|
81
|
-
summary: readString(value.summary) ?? fallback.summary,
|
|
82
|
-
lastCheckedAt: readTimestamp(value.lastCheckedAt),
|
|
83
|
-
manifestUrl: readString(value.manifestUrl),
|
|
84
|
-
downloadUrl: readString(value.downloadUrl),
|
|
85
|
-
sha256: normalizeSha256(value.sha256),
|
|
86
|
-
error: readString(value.error),
|
|
74
|
+
...fallback,
|
|
75
|
+
lastCheckedAt: readTimestamp(value.lastCheckedAt) ?? fallback.lastCheckedAt,
|
|
87
76
|
};
|
|
88
77
|
}
|
|
78
|
+
export function readPersistedUpdateLastCheckedAt(value) {
|
|
79
|
+
return isObjectRecord(value) ? readTimestamp(value.lastCheckedAt) : null;
|
|
80
|
+
}
|
|
89
81
|
function readStringArray(value) {
|
|
90
82
|
if (!Array.isArray(value)) {
|
|
91
83
|
return [];
|
|
@@ -402,7 +394,7 @@ export class DesktopHostStateStore {
|
|
|
402
394
|
snapshot: {
|
|
403
395
|
...snapshot,
|
|
404
396
|
background: normalizeBackgroundState(snapshot.background, defaults.background),
|
|
405
|
-
updates:
|
|
397
|
+
updates: normalizeUpdateSnapshot(snapshot.updates, defaults.updates),
|
|
406
398
|
packaging: isObjectRecord(snapshot.packaging)
|
|
407
399
|
? snapshot.packaging
|
|
408
400
|
: defaults.packaging,
|
|
@@ -411,7 +403,7 @@ export class DesktopHostStateStore {
|
|
|
411
403
|
hostStatePath: this.statePath,
|
|
412
404
|
},
|
|
413
405
|
background: normalizeBackgroundState(parsed.background, defaults.background),
|
|
414
|
-
updates:
|
|
406
|
+
updates: normalizeUpdateSnapshot(parsed.updates, defaults.updates),
|
|
415
407
|
packaging: isObjectRecord(parsed.packaging)
|
|
416
408
|
? parsed.packaging
|
|
417
409
|
: defaults.packaging,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostState.js","sourceRoot":"","sources":["../../desktop/host/hostState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hostState.js","sourceRoot":"","sources":["../../desktop/host/hostState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostVersion.d.ts","sourceRoot":"","sources":["../../desktop/host/hostVersion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hostVersion.d.ts","sourceRoot":"","sources":["../../desktop/host/hostVersion.ts"],"names":[],"mappings":"AAiDA,eAAO,MAAM,oBAAoB,QAAuB,CAAC;AACzD,eAAO,MAAM,yBAAyB,eAAuB,CAAC"}
|
|
@@ -1,13 +1,37 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
-
function
|
|
4
|
+
function readAppPackageJson() {
|
|
5
5
|
const packageJsonPath = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'package.json');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
return {
|
|
7
|
+
path: packageJsonPath,
|
|
8
|
+
contents: JSON.parse(readFileSync(packageJsonPath, 'utf8')),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function readPackageVersion() {
|
|
12
|
+
const { path, contents } = readAppPackageJson();
|
|
13
|
+
if (!contents.version) {
|
|
14
|
+
throw new Error(`Could not resolve version from ${path}`);
|
|
15
|
+
}
|
|
16
|
+
return contents.version;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The electron-builder `appId`, or null when it cannot be read.
|
|
20
|
+
*
|
|
21
|
+
* Windows only shows a native notification when the running process claims the
|
|
22
|
+
* same Application User Model ID as the Start Menu shortcut the installer
|
|
23
|
+
* wrote, and that shortcut carries `appId`. Reading it here keeps the value
|
|
24
|
+
* from becoming a second source of truth; a missing field disables the claim
|
|
25
|
+
* rather than guessing an ID that would silently swallow every notification.
|
|
26
|
+
*/
|
|
27
|
+
function readAppUserModelId() {
|
|
28
|
+
try {
|
|
29
|
+
return readAppPackageJson().contents.build?.appId?.trim() || null;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
9
33
|
}
|
|
10
|
-
return packageJson.version;
|
|
11
34
|
}
|
|
12
35
|
export const DESKTOP_HOST_VERSION = readPackageVersion();
|
|
36
|
+
export const DESKTOP_APP_USER_MODEL_ID = readAppUserModelId();
|
|
13
37
|
//# sourceMappingURL=hostVersion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostVersion.js","sourceRoot":"","sources":["../../desktop/host/hostVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"hostVersion.js","sourceRoot":"","sources":["../../desktop/host/hostVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AASzC,SAAS,kBAAkB;IACzB,MAAM,eAAe,GAAG,IAAI,CAC1B,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,IAAI,EACJ,IAAI,EACJ,cAAc,CACf,CAAC;IACF,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAmB;KAC9E,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,OAAO,kBAAkB,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,EAAE,CAAC"}
|
package/build/desktop/main.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { dirname, join } from 'node:path';
|
|
2
|
-
import { app, BrowserWindow, ipcMain, session, shell, systemPreferences } from 'electron';
|
|
2
|
+
import { app, BrowserWindow, ipcMain, Notification, session, shell, systemPreferences, } from 'electron';
|
|
3
3
|
import { buildDesktopBootstrapPage } from './bootstrapPage.js';
|
|
4
4
|
import { resolveDesktopBootstrapNavigation, shouldRevealDesktopBootstrapRecovery, shouldNavigateDesktopBootstrap, resolveDesktopWindowRevealNavigation, shouldAllowDesktopBootstrapWindowNavigation, } from './bootstrapNavigation.js';
|
|
5
5
|
import { resolveCatsHomeDir, resolveDesktopHostConfig, resolveDesktopUserDataDir, } from './config.js';
|
|
6
6
|
import { appendHostEvent, appendRuntimeEvent, buildDesktopAggregationBundle, createBootstrapAttemptId, createDesktopBootstrapEvent, createEmptyDesktopDiagnosticsState, toDesktopBootstrapError, toDesktopBootstrapStatus, updateServiceLogs, } from './bootstrapDiagnostics.js';
|
|
7
|
-
import { createDesktopBackgroundState, DesktopHostStateStore } from './hostState.js';
|
|
7
|
+
import { createDesktopBackgroundState, DesktopHostStateStore, readPersistedUpdateLastCheckedAt, } from './hostState.js';
|
|
8
8
|
import { createDesktopPackagingPlan } from './packaging.js';
|
|
9
9
|
import { ManagedServiceSupervisor } from './processSupervisor.js';
|
|
10
10
|
import { buildDesktopBootstrapSnapshot, fetchJson, } from './readiness.js';
|
|
@@ -18,7 +18,13 @@ import { createDesktopTrayController, } from './tray.js';
|
|
|
18
18
|
import { buildDesktopTrayMenuState as buildElectronTrayMenuState, buildDesktopTrayQuittingMenuState, } from './trayMenu.js';
|
|
19
19
|
import { applyDesktopHostPlatformShellUpdate, normalizePlatformShellSetupState, parseDesktopHostPlatformShellUpdate, } from './platformShellUpdate.js';
|
|
20
20
|
import { enableDesktopMobilePairingEnv } from './mobilePairingEnv.js';
|
|
21
|
-
import {
|
|
21
|
+
import { DESKTOP_APP_USER_MODEL_ID, DESKTOP_HOST_VERSION } from './hostVersion.js';
|
|
22
|
+
import { loadDesktopReleaseDescriptor, resolveDesktopDistributionIdentity, } from './releaseDescriptor.js';
|
|
23
|
+
import { createDesktopUpdateCapability, createDesktopUpdateManager, createUnavailableDesktopUpdateSnapshot, } from './updateManager.js';
|
|
24
|
+
import { configureElectronUpdater, createElectronUpdaterAdapter, resolveAutoUpdaterExport, } from './updaterAdapter.js';
|
|
25
|
+
import { createDesktopUpdateIpcHandlers, createDesktopUpdateSnapshotBroadcast, } from './updateIpc.js';
|
|
26
|
+
import { withDesktopInstallHandoff } from './updateInstallHandoff.js';
|
|
27
|
+
import { DESKTOP_UPDATE_SETTINGS_PATH, resolveDesktopUpdateAnnouncement, } from './updateNotifications.js';
|
|
22
28
|
import { applyDesktopWindowChrome, resolveDesktopWindowChromeOptions, } from './windowChrome.js';
|
|
23
29
|
import { resolveDesktopWindowIconPath } from './windowIcon.js';
|
|
24
30
|
import { readDesktopStartupPreferences, resolveDesktopStartupLaunchContext, syncDesktopStartupPreferences, updateDesktopStartupPreferences, DESKTOP_LAUNCH_AT_LOGIN_ARG, } from './desktopStartup.js';
|
|
@@ -64,6 +70,8 @@ let trayController = null;
|
|
|
64
70
|
let stateStore = null;
|
|
65
71
|
let backgroundState = null;
|
|
66
72
|
let updateState = null;
|
|
73
|
+
let updateManager = null;
|
|
74
|
+
let detachUpdateBroadcast = null;
|
|
67
75
|
let packagingState = null;
|
|
68
76
|
let setupState = null;
|
|
69
77
|
let diagnosticsState = null;
|
|
@@ -582,6 +590,7 @@ function resolveDesktopTrayMenuState(snapshot) {
|
|
|
582
590
|
actions: snapshot.actions,
|
|
583
591
|
products: latestAppShellPayload?.products,
|
|
584
592
|
locale: app.getLocale(),
|
|
593
|
+
updates: updateState,
|
|
585
594
|
});
|
|
586
595
|
}
|
|
587
596
|
function isSystemTrayEnabled() {
|
|
@@ -707,6 +716,14 @@ function buildTrayControllerOptions() {
|
|
|
707
716
|
void shutdownHost();
|
|
708
717
|
},
|
|
709
718
|
canInteract: () => !shuttingDown,
|
|
719
|
+
onCheckForUpdates: async () => {
|
|
720
|
+
if (shuttingDown) {
|
|
721
|
+
return;
|
|
722
|
+
}
|
|
723
|
+
// The menu closes on click, so this result has to reach the user through
|
|
724
|
+
// a notification or by opening Settings.
|
|
725
|
+
await refreshUpdateState('tray');
|
|
726
|
+
},
|
|
710
727
|
};
|
|
711
728
|
}
|
|
712
729
|
async function syncTrayController() {
|
|
@@ -1197,24 +1214,151 @@ async function maybeRecoverFromLateReadyStateChange() {
|
|
|
1197
1214
|
})();
|
|
1198
1215
|
await lateReadyRecoveryPromise;
|
|
1199
1216
|
}
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1217
|
+
/**
|
|
1218
|
+
* Builds the update manager for this launch.
|
|
1219
|
+
*
|
|
1220
|
+
* Capability is derived from the embedded release descriptor plus the running
|
|
1221
|
+
* package, never from the environment. When the build is not an official
|
|
1222
|
+
* release the adapter is omitted entirely, so no provider is ever configured.
|
|
1223
|
+
*/
|
|
1224
|
+
async function createUpdateManagerForLaunch(config, initialLastCheckedAt = null) {
|
|
1225
|
+
const descriptor = await loadDesktopReleaseDescriptor();
|
|
1226
|
+
const identity = resolveDesktopDistributionIdentity({
|
|
1227
|
+
isPackaged: config.packaged,
|
|
1228
|
+
currentVersion: DESKTOP_HOST_VERSION,
|
|
1229
|
+
nodePlatform: process.platform,
|
|
1230
|
+
descriptor,
|
|
1231
|
+
});
|
|
1232
|
+
const capability = createDesktopUpdateCapability({
|
|
1233
|
+
identity,
|
|
1234
|
+
nodePlatform: process.platform,
|
|
1235
|
+
});
|
|
1236
|
+
let adapter = null;
|
|
1237
|
+
if (capability.canCheck && identity.repository !== null) {
|
|
1238
|
+
// Self-update is a feature, not a startup requirement. If the provider
|
|
1239
|
+
// cannot be constructed the app must still open with update capability
|
|
1240
|
+
// switched off, rather than failing to launch at all.
|
|
1241
|
+
try {
|
|
1242
|
+
const autoUpdater = resolveAutoUpdaterExport(await import('electron-updater'));
|
|
1243
|
+
configureElectronUpdater(autoUpdater, {
|
|
1244
|
+
repository: identity.repository,
|
|
1245
|
+
channel: capability.channel,
|
|
1246
|
+
distribution: capability.distribution,
|
|
1247
|
+
});
|
|
1248
|
+
adapter = withDesktopInstallHandoff(createElectronUpdaterAdapter(autoUpdater), {
|
|
1249
|
+
drainManagedServices: async () => {
|
|
1250
|
+
// The tray says "Quitting" for the same reason shutdown does: from
|
|
1251
|
+
// here the app is on its way out, and a menu offering to open Cats
|
|
1252
|
+
// would be a lie while the sidecars are stopping. This also locks the
|
|
1253
|
+
// menu against repeated interaction without touching `shuttingDown`,
|
|
1254
|
+
// which gates far more behaviour and is never designed to be reset.
|
|
1255
|
+
trayController?.updateMenu(buildDesktopTrayQuittingMenuState(app.getLocale()));
|
|
1256
|
+
await drainManagedServices();
|
|
1257
|
+
// electron-updater quits the app itself. Without this the before-quit
|
|
1258
|
+
// handler would cancel that quit and run a second drain, delaying the
|
|
1259
|
+
// exit the installer is waiting on. The drain above already satisfied
|
|
1260
|
+
// the contract that flag stands for.
|
|
1261
|
+
exitingAfterShutdown = true;
|
|
1262
|
+
},
|
|
1263
|
+
restartManagedServices: async () => {
|
|
1264
|
+
// The handoff failed but the process survived, so the exit is no
|
|
1265
|
+
// longer prepared, the sidecars have to come back, and the tray has to
|
|
1266
|
+
// stop claiming we are quitting. startAll() intentionally reuses the
|
|
1267
|
+
// supervisor-lifetime environment snapshot populated during the first
|
|
1268
|
+
// bootstrap, including the Desktop-provisioned platform auth secret.
|
|
1269
|
+
exitingAfterShutdown = false;
|
|
1270
|
+
await supervisor?.startAll();
|
|
1271
|
+
await syncTrayController();
|
|
1272
|
+
},
|
|
1273
|
+
logger: (message) => {
|
|
1274
|
+
process.stdout.write(`${message}\n`);
|
|
1275
|
+
},
|
|
1276
|
+
});
|
|
1277
|
+
}
|
|
1278
|
+
catch (error) {
|
|
1279
|
+
process.stderr.write('[desktop-update] updater unavailable, continuing without self-update: '
|
|
1280
|
+
+ `${error instanceof Error ? error.message : String(error)}\n`);
|
|
1281
|
+
adapter = null;
|
|
1282
|
+
}
|
|
1203
1283
|
}
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1284
|
+
return createDesktopUpdateManager({
|
|
1285
|
+
capability,
|
|
1286
|
+
adapter,
|
|
1287
|
+
initialLastCheckedAt,
|
|
1288
|
+
logger: (message) => {
|
|
1289
|
+
process.stdout.write(`${message}\n`);
|
|
1290
|
+
},
|
|
1291
|
+
});
|
|
1292
|
+
}
|
|
1293
|
+
async function openDesktopUpdateSettings() {
|
|
1294
|
+
if (shuttingDown || !hostConfig) {
|
|
1295
|
+
return;
|
|
1213
1296
|
}
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1297
|
+
await showMainWindow(`${hostConfig.appBaseUrl}${DESKTOP_UPDATE_SETTINGS_PATH}`);
|
|
1298
|
+
}
|
|
1299
|
+
/**
|
|
1300
|
+
* Shows a native notification, reporting whether the user will actually see it.
|
|
1301
|
+
*
|
|
1302
|
+
* A false return sends the caller to the navigation fallback. Notifying is not
|
|
1303
|
+
* worth failing a check over, so a throwing platform is treated the same as one
|
|
1304
|
+
* without notification support.
|
|
1305
|
+
*/
|
|
1306
|
+
function showDesktopUpdateNotification(notification) {
|
|
1307
|
+
try {
|
|
1308
|
+
const native = new Notification({
|
|
1309
|
+
title: notification.title,
|
|
1310
|
+
body: notification.body,
|
|
1311
|
+
});
|
|
1312
|
+
native.on('click', () => {
|
|
1313
|
+
void openDesktopUpdateSettings();
|
|
1314
|
+
});
|
|
1315
|
+
native.show();
|
|
1316
|
+
return true;
|
|
1217
1317
|
}
|
|
1318
|
+
catch (error) {
|
|
1319
|
+
process.stderr.write('[desktop-update] native notification unavailable: '
|
|
1320
|
+
+ `${error instanceof Error ? error.message : String(error)}\n`);
|
|
1321
|
+
return false;
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
function areNativeNotificationsSupported() {
|
|
1325
|
+
try {
|
|
1326
|
+
return Notification.isSupported();
|
|
1327
|
+
}
|
|
1328
|
+
catch {
|
|
1329
|
+
return false;
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1332
|
+
async function announceDesktopUpdateResult(origin, snapshot) {
|
|
1333
|
+
if (!snapshot || shuttingDown) {
|
|
1334
|
+
return;
|
|
1335
|
+
}
|
|
1336
|
+
const announcement = resolveDesktopUpdateAnnouncement({
|
|
1337
|
+
origin,
|
|
1338
|
+
snapshot,
|
|
1339
|
+
locale: app.getLocale(),
|
|
1340
|
+
notificationsSupported: areNativeNotificationsSupported(),
|
|
1341
|
+
});
|
|
1342
|
+
if (announcement.notification && showDesktopUpdateNotification(announcement.notification)) {
|
|
1343
|
+
return;
|
|
1344
|
+
}
|
|
1345
|
+
if (announcement.fallbackNavigatePath) {
|
|
1346
|
+
await openDesktopUpdateSettings();
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
/**
|
|
1350
|
+
* Runs a check and reports its result to whoever asked for it.
|
|
1351
|
+
*
|
|
1352
|
+
* The origin is required rather than defaulted: it decides whether the result
|
|
1353
|
+
* is announced at all, and a new caller silently inheriting another surface's
|
|
1354
|
+
* policy is the failure this signature exists to prevent.
|
|
1355
|
+
*/
|
|
1356
|
+
async function refreshUpdateState(origin) {
|
|
1357
|
+
if (!updateManager) {
|
|
1358
|
+
return null;
|
|
1359
|
+
}
|
|
1360
|
+
updateState = await updateManager.checkForUpdates();
|
|
1361
|
+
await announceDesktopUpdateResult(origin, updateState);
|
|
1218
1362
|
return updateState;
|
|
1219
1363
|
}
|
|
1220
1364
|
async function bootstrapDesktopHost(restartServices = false) {
|
|
@@ -1488,6 +1632,33 @@ function waitForShutdownDeadline(ms) {
|
|
|
1488
1632
|
timer.unref?.();
|
|
1489
1633
|
});
|
|
1490
1634
|
}
|
|
1635
|
+
/**
|
|
1636
|
+
* Stops managed services, forcing them down if the graceful path overruns.
|
|
1637
|
+
*
|
|
1638
|
+
* Shared by host shutdown and the update installer handoff, because both need
|
|
1639
|
+
* the sidecars actually gone — the installer for the same reason the exit path
|
|
1640
|
+
* does, plus the Windows upgrade running the old uninstaller over files a
|
|
1641
|
+
* surviving sidecar may still hold.
|
|
1642
|
+
*/
|
|
1643
|
+
async function drainManagedServices() {
|
|
1644
|
+
const drain = supervisor?.stopAll() ?? Promise.resolve();
|
|
1645
|
+
const shutdownWatchdogMs = hostConfig
|
|
1646
|
+
? resolveShutdownWatchdogMs(hostConfig, supervisor?.getManagedServiceCount() ?? 0)
|
|
1647
|
+
: SHUTDOWN_WATCHDOG_BUFFER_MS;
|
|
1648
|
+
const result = await Promise.race([
|
|
1649
|
+
drain.then(() => 'drained'),
|
|
1650
|
+
waitForShutdownDeadline(shutdownWatchdogMs),
|
|
1651
|
+
]);
|
|
1652
|
+
if (result !== 'timed_out') {
|
|
1653
|
+
return { timedOut: false };
|
|
1654
|
+
}
|
|
1655
|
+
process.stderr.write(`Desktop host shutdown watchdog tripped after ${shutdownWatchdogMs}ms; forcing managed services down.\n`);
|
|
1656
|
+
await supervisor?.forceStopAll();
|
|
1657
|
+
void drain.catch((error) => {
|
|
1658
|
+
process.stderr.write(`Desktop host graceful shutdown failed after watchdog: ${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
|
|
1659
|
+
});
|
|
1660
|
+
return { timedOut: true };
|
|
1661
|
+
}
|
|
1491
1662
|
async function shutdownHost() {
|
|
1492
1663
|
if (shutdownPromise) {
|
|
1493
1664
|
return shutdownPromise;
|
|
@@ -1502,22 +1673,10 @@ async function shutdownHost() {
|
|
|
1502
1673
|
voiceCaptureController?.dispose();
|
|
1503
1674
|
voiceCaptureController = null;
|
|
1504
1675
|
activeTrayController?.updateMenu(buildDesktopTrayQuittingMenuState(app.getLocale()));
|
|
1505
|
-
const
|
|
1506
|
-
|
|
1507
|
-
? resolveShutdownWatchdogMs(hostConfig, supervisor?.getManagedServiceCount() ?? 0)
|
|
1508
|
-
: SHUTDOWN_WATCHDOG_BUFFER_MS;
|
|
1509
|
-
const result = await Promise.race([
|
|
1510
|
-
drain.then(() => 'drained'),
|
|
1511
|
-
waitForShutdownDeadline(shutdownWatchdogMs),
|
|
1512
|
-
]);
|
|
1513
|
-
if (result === 'timed_out') {
|
|
1676
|
+
const { timedOut } = await drainManagedServices();
|
|
1677
|
+
if (timedOut) {
|
|
1514
1678
|
shutdownExitCode = 1;
|
|
1515
|
-
process.stderr.write(`Desktop host shutdown watchdog tripped after ${shutdownWatchdogMs}ms; forcing managed services down.\n`);
|
|
1516
1679
|
forcedStopAttempted = true;
|
|
1517
|
-
await supervisor?.forceStopAll();
|
|
1518
|
-
void drain.catch((error) => {
|
|
1519
|
-
process.stderr.write(`Desktop host graceful shutdown failed after watchdog: ${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
|
|
1520
|
-
});
|
|
1521
1680
|
}
|
|
1522
1681
|
}
|
|
1523
1682
|
catch (error) {
|
|
@@ -1551,6 +1710,14 @@ async function main() {
|
|
|
1551
1710
|
return;
|
|
1552
1711
|
}
|
|
1553
1712
|
app.setPath('userData', resolveDesktopUserDataDir(app.getPath('appData')));
|
|
1713
|
+
// Windows routes a notification through the Start Menu shortcut whose
|
|
1714
|
+
// Application User Model ID matches the running process. The installer writes
|
|
1715
|
+
// that shortcut with the electron-builder appId, so claiming it here is what
|
|
1716
|
+
// makes update notifications visible at all. Unpackaged runs have no such
|
|
1717
|
+
// shortcut, so the claim would buy nothing.
|
|
1718
|
+
if (process.platform === 'win32' && app.isPackaged && DESKTOP_APP_USER_MODEL_ID) {
|
|
1719
|
+
app.setAppUserModelId(DESKTOP_APP_USER_MODEL_ID);
|
|
1720
|
+
}
|
|
1554
1721
|
await app.whenReady();
|
|
1555
1722
|
const nodeProcess = process;
|
|
1556
1723
|
hostConfig = resolveDesktopHostConfig({
|
|
@@ -1580,12 +1747,14 @@ async function main() {
|
|
|
1580
1747
|
stateStore = new DesktopHostStateStore(hostConfig.paths.hostStatePath);
|
|
1581
1748
|
{
|
|
1582
1749
|
const defaultBackground = applyEffectiveBackgroundPreferences(createDesktopBackgroundState(hostConfig));
|
|
1583
|
-
|
|
1750
|
+
// Built once with no restored history so the state file can be read; the
|
|
1751
|
+
// manager is rebuilt below with the restored last-check time.
|
|
1752
|
+
const provisionalUpdates = createUnavailableDesktopUpdateSnapshot(DESKTOP_HOST_VERSION);
|
|
1584
1753
|
const defaultPackaging = buildHostPackagingPlan(hostConfig);
|
|
1585
1754
|
const defaultSetup = createEmptyDesktopSetupState();
|
|
1586
1755
|
const restoredState = await stateStore.load(hostConfig, {
|
|
1587
1756
|
background: defaultBackground,
|
|
1588
|
-
updates:
|
|
1757
|
+
updates: provisionalUpdates,
|
|
1589
1758
|
packaging: defaultPackaging,
|
|
1590
1759
|
setup: defaultSetup,
|
|
1591
1760
|
});
|
|
@@ -1598,7 +1767,21 @@ async function main() {
|
|
|
1598
1767
|
lastHiddenAt: new Date().toISOString(),
|
|
1599
1768
|
};
|
|
1600
1769
|
}
|
|
1601
|
-
|
|
1770
|
+
// One owner: the manager holds update state and the host snapshot mirrors
|
|
1771
|
+
// it. Only the last-check time crosses a restart, because every status is
|
|
1772
|
+
// provider-dependent and cannot be acted on without checking again.
|
|
1773
|
+
updateManager = await createUpdateManagerForLaunch(hostConfig, readPersistedUpdateLastCheckedAt(restoredState?.updates));
|
|
1774
|
+
updateState = updateManager.getSnapshot();
|
|
1775
|
+
detachUpdateBroadcast = createDesktopUpdateSnapshotBroadcast({
|
|
1776
|
+
manager: updateManager,
|
|
1777
|
+
resolveMainWindowWebContents: () => mainWindow?.webContents ?? null,
|
|
1778
|
+
});
|
|
1779
|
+
updateManager.subscribe((snapshot) => {
|
|
1780
|
+
updateState = snapshot;
|
|
1781
|
+
if (latestSnapshot) {
|
|
1782
|
+
publishSnapshot(latestSnapshot);
|
|
1783
|
+
}
|
|
1784
|
+
});
|
|
1602
1785
|
packagingState = defaultPackaging;
|
|
1603
1786
|
setupState = normalizePlatformShellSetupState(restoredState?.setup ?? defaultSetup, Boolean(latestPersistedSetupState.setupCompleteAt
|
|
1604
1787
|
|| latestPersistedSetupState.productSetupCompleted));
|
|
@@ -1626,6 +1809,18 @@ async function main() {
|
|
|
1626
1809
|
ipcMain.handle('cats-host:get-snapshot', async () => {
|
|
1627
1810
|
return latestSnapshot ?? buildSnapshot(null);
|
|
1628
1811
|
});
|
|
1812
|
+
if (updateManager) {
|
|
1813
|
+
const updateHandlers = createDesktopUpdateIpcHandlers({
|
|
1814
|
+
manager: updateManager,
|
|
1815
|
+
resolveMainWindowWebContents: () => mainWindow?.webContents ?? null,
|
|
1816
|
+
logger: (message) => {
|
|
1817
|
+
process.stdout.write(`${message}\n`);
|
|
1818
|
+
},
|
|
1819
|
+
});
|
|
1820
|
+
for (const [channel, handler] of Object.entries(updateHandlers)) {
|
|
1821
|
+
ipcMain.handle(channel, async (event) => handler(event));
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1629
1824
|
ipcMain.handle('cats-host:get-setup-snapshot', async () => {
|
|
1630
1825
|
return await getSetupSnapshot();
|
|
1631
1826
|
});
|
|
@@ -1808,8 +2003,10 @@ async function main() {
|
|
|
1808
2003
|
void showMainWindow();
|
|
1809
2004
|
});
|
|
1810
2005
|
await bootstrapDesktopHost(false);
|
|
1811
|
-
|
|
1812
|
-
|
|
2006
|
+
// SPEC-111 section 6: at most one silent check per launch, and only when the
|
|
2007
|
+
// build actually has update capability.
|
|
2008
|
+
if (hostConfig.update.checkOnStartup && updateManager?.getSnapshot().capability.canCheck) {
|
|
2009
|
+
void refreshUpdateState('startup');
|
|
1813
2010
|
}
|
|
1814
2011
|
}
|
|
1815
2012
|
void main().catch((error) => {
|