production |
| 版本号 | 1.0.0 |
-| 升级通道 | latest |
+| 升级通道 | stable |
| 平台 | win-x64 |
-| 下载地址预览 | https://download.example.com/dsh-desk/bin/win-x64/latest/deepseek-harness-1.0.0-win-x64.exedsh-v1.0.0 @ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawindows-publisher |
| 签名与公证 | EXE 签名校验通过 |
| Git tag | desktop-v1.0.0 |
@@ -33,8 +33,8 @@ COS 存储桶:production-1234567890
| 文件 | 大小 | SHA-256 |
| --- | --- | --- |
-| deepseek-harness-1.0.0-win-x64.exe | 15 字节 | e34210a6de4f653edf588301431c3d69a633638cbf587345cc50a7fed9f38f4c |
-| latest.yml | 15 字节 | 8850e6075dda0080c526269a4de29848c32c2a65e3d81f4a64ed8ce53d4b47c1 |
+| deepseek-harness-1.0.0-win-x64.exe | 15 字节 | e34210a6de4f653edf588301431c3d69a633638cbf587345cc50a7fed9f38f4c |
+| stable.yml | 15 字节 | 8850e6075dda0080c526269a4de29848c32c2a65e3d81f4a64ed8ce53d4b47c1 |
diff --git a/apps/desktop/tests/fixtures/local-updater.mjs b/apps/desktop/tests/fixtures/local-updater.mjs
index fb01c13f04..b8afce9ece 100644
--- a/apps/desktop/tests/fixtures/local-updater.mjs
+++ b/apps/desktop/tests/fixtures/local-updater.mjs
@@ -16,7 +16,7 @@ import { createUpdateServer } from './update-server.mjs'
import { DesktopMandatoryUpdatePolicy, resolveDesktopPolicyConfig } from '../../lib/types/mandatory-update-policy.js'
import { DesktopMandatoryUpdateWindow } from '../../lib/types/mandatory-update-window.js'
import { DesktopUpdatePreparationError } from '../../lib/types/update-error.js'
-import { DesktopUpdateHttpExecutor } from '../../lib/types/update-http-executor.js'
+import { DesktopUpdateHttpExecutor } from '../../lib/types/updates/electron-updater/http-executor.js'
import { DesktopUpdateOverlays } from '../../lib/types/update-overlay.js'
import { qualifyUpdateDialogs } from './update-dialogs.mjs'
diff --git a/apps/desktop/tests/fixtures/signed-updates.mjs b/apps/desktop/tests/fixtures/signed-updates.mjs
index 8b50cad678..30ef854a4a 100644
--- a/apps/desktop/tests/fixtures/signed-updates.mjs
+++ b/apps/desktop/tests/fixtures/signed-updates.mjs
@@ -5,7 +5,7 @@ import { join } from 'node:path'
import { app } from 'electron'
import updaterModule from 'electron-updater'
import { DesktopUpdateCoordinator } from '../../lib/types/update-coordinator.js'
-import { DesktopUpdateHttpExecutor } from '../../lib/types/update-http-executor.js'
+import { DesktopUpdateHttpExecutor } from '../../lib/types/updates/electron-updater/http-executor.js'
import { resolveWindowsUpdatePublisher } from '../../scripts/windows-sign.mjs'
import { artifactDigest, createArtifactUpdateServer } from './artifact-update-server.mjs'
diff --git a/apps/desktop/tests/fixtures/workspace-updates.mjs b/apps/desktop/tests/fixtures/workspace-updates.mjs
index 95cf7a5194..3ad9bae9b8 100644
--- a/apps/desktop/tests/fixtures/workspace-updates.mjs
+++ b/apps/desktop/tests/fixtures/workspace-updates.mjs
@@ -10,7 +10,7 @@ import { app, BrowserWindow, Menu, webContents } from 'electron'
import updaterModule from 'electron-updater'
import { createUpdateServer } from './update-server.mjs'
import { fixture } from './workspace-update-adapters.mjs'
-import { DesktopUpdateHttpExecutor } from '../../lib/types/update-http-executor.js'
+import { DesktopUpdateHttpExecutor } from '../../lib/types/updates/electron-updater/http-executor.js'
import { desktopUpdateReadyConfirmation, resolveDesktopLocale } from '../../lib/types/locale.js'
const root = process.env.DSH_WORKSPACE_UPDATE_ROOT
diff --git a/apps/desktop/tests/locale.spec.ts b/apps/desktop/tests/locale.spec.ts
index b53a02e8fb..d1de8206f7 100644
--- a/apps/desktop/tests/locale.spec.ts
+++ b/apps/desktop/tests/locale.spec.ts
@@ -3,6 +3,12 @@ import { describe, expect, it } from 'vitest'
import { en, formatDesktopMessage, resolveDesktopLocale, resolveDesktopStartupLocale, ja, zh, es, fr, de, ru, pt } from '../src/locale.ts'
describe('desktop locale dictionaries', () => {
+ it('uses the same concise Chinese configuration error in the toast and details', () => {
+ for (const message of [zh.updateConfigurationRead, zh.updateConfigurationFormat, zh.updateConfigurationChannel]) {
+ expect(message).toBe('配置文件异常,更新已暂停')
+ }
+ })
+
it('ships baseline and Japanese keys and falls back for unsupported languages', () => {
expect(Object.keys(zh)).toEqual(Object.keys(en))
expect(Object.keys(ja)).toEqual(Object.keys(en))
diff --git a/apps/desktop/tests/macos-app-update-config.spec.ts b/apps/desktop/tests/macos-app-update-config.spec.ts
index bba859fa7c..23e255e48a 100644
--- a/apps/desktop/tests/macos-app-update-config.spec.ts
+++ b/apps/desktop/tests/macos-app-update-config.spec.ts
@@ -66,10 +66,10 @@ describe('macOS packaged updater configuration', () => {
})
-it('seals latest into the macOS updater file and rejects a different expected channel', async () => {
+it('seals stable into the macOS updater file and rejects a different expected channel', async () => {
const paths = await fixture()
- const latest = resolveMacOSAppUpdateFeed([{ provider: 'generic', url: update.publicUrl, channel: 'latest' }])
- await writeMacOSAppUpdateConfig(paths.resourcesDir, latest, 'fixture-updater')
- await expect(verifyMacOSAppUpdateConfig(paths.appPath, latest)).resolves.toBeUndefined()
+ const stable = resolveMacOSAppUpdateFeed([{ provider: 'generic', url: update.publicUrl, channel: 'stable' }])
+ await writeMacOSAppUpdateConfig(paths.resourcesDir, stable, 'fixture-updater')
+ await expect(verifyMacOSAppUpdateConfig(paths.appPath, stable)).resolves.toBeUndefined()
await expect(verifyMacOSAppUpdateConfig(paths.appPath, update)).rejects.toThrow(/does not match/u)
})
diff --git a/apps/desktop/tests/main-startup.spec.ts b/apps/desktop/tests/main-startup.spec.ts
index 924808eb0d..cf3fd803c0 100644
--- a/apps/desktop/tests/main-startup.spec.ts
+++ b/apps/desktop/tests/main-startup.spec.ts
@@ -72,8 +72,8 @@ const harness = await vi.hoisted(async () => {
})
const loginShell = vi.fn((base: NodeJS.ProcessEnv, _config: unknown, _options: { signal?: AbortSignal }) => readLoginShell(base))
const updateCheck = vi.fn(async (_manual?: boolean): Promise