mirror of
https://gh-proxy.org/https://github.com/klinsmaya/workdsh.git
synced 2026-11-10 10:27:55 +08:00
Merge pull request #719 from anywhere-labs/codex/release-diff-gate
chore(desktop): prepare 2.0.4 release candidate
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Bilingual-pair consistency record: the git blob hash of each side as of the last
|
||||
# confirmed-consistent state. Both languages carry equal authority; after editing
|
||||
# either side, bring the other along and record both new Git blob hashes below.
|
||||
README.md: a838788ae3ee39866dd2c46dc95364c750dd8a77
|
||||
README.zh.md: e55db8d418a3f21a07b2fa5061367cf38f5ec3ff
|
||||
README.md: e874c67be5323712a108d22fbf54a8745fe5cd23
|
||||
README.zh.md: 0b57849b186d27e947c52c8c7e4d39ff11240f6e
|
||||
|
||||
@@ -221,7 +221,7 @@ corepack.cmd yarn dist:win
|
||||
|
||||
Python and Visual Studio C++ Build Tools are not required. The Windows command uses `node-pty`'s bundled x64 Node-API binaries instead of asking Electron Builder to rebuild them from source, and the packaged-runtime gate rejects an installer staging tree that omits those binaries.
|
||||
|
||||
`dist:win` refuses non-Windows and non-x64 hosts, runs a Windows-safe gate containing the build, all TypeScript compiler faces, packaging and native-shell focused tests, and the runtime-closure verifier, then builds an assisted NSIS installer and verifies both generated PE files. The full cross-platform suite remains CI-owned because some POSIX execution tests are not Windows programs. The installer allows a per-user or elevated all-users installation, permits changing the installation directory, creates Start Menu and desktop shortcuts, and preserves DSH user data when the application is uninstalled. Version `2.0.3` is written to `dsh-plugin-desktop\dist\DSH-Desktop-2.0.3-x64-Setup.exe`; the unpacked application remains at `dsh-plugin-desktop\dist\win-unpacked\DSH Desktop.exe` for smoke testing.
|
||||
`dist:win` refuses non-Windows and non-x64 hosts, runs a Windows-safe gate containing the build, all TypeScript compiler faces, packaging and native-shell focused tests, and the runtime-closure verifier, then builds an assisted NSIS installer and verifies both generated PE files. The full cross-platform suite remains CI-owned because some POSIX execution tests are not Windows programs. The installer allows a per-user or elevated all-users installation, permits changing the installation directory, creates Start Menu and desktop shortcuts, and preserves DSH user data when the application is uninstalled. Version `2.0.4` is written to `dsh-plugin-desktop\dist\DSH-Desktop-2.0.4-x64-Setup.exe`; the unpacked application remains at `dsh-plugin-desktop\dist\win-unpacked\DSH Desktop.exe` for smoke testing.
|
||||
|
||||
This local command deliberately strips Windows certificate variables and sets `signExecutable=false`. Its output is installable for testing but has no Authenticode publisher, so Windows can display an Unknown publisher or SmartScreen warning. A signed Windows release, certificate verification, installer upgrade/uninstall testing, and native UI/sandbox smoke remain separate release gates.
|
||||
|
||||
@@ -233,7 +233,7 @@ Use `yarn dist:win-portable` on a native Windows x64 machine to create an unsign
|
||||
corepack.cmd yarn dist:win-portable
|
||||
```
|
||||
|
||||
The output is `dsh-plugin-desktop\\dist\\DSH-Desktop-2.0.3-x64-Portable.zip`. Extract it to any writable directory and launch `DSH Desktop.exe` without an installer, administrator access, Start Menu registration, or uninstall step. The application still keeps its profiles, logs, and caches in the normal Windows user-data directory, so this is portable distribution rather than a self-contained data sandbox. Portable archives are not handed to the NSIS updater and must be replaced manually when a new version is released. Local builds are unsigned and may trigger an Unknown publisher or SmartScreen warning; signed portable artifacts remain a release gate.
|
||||
The output is `dsh-plugin-desktop\\dist\\DSH-Desktop-2.0.4-x64-Portable.zip`. Extract it to any writable directory and launch `DSH Desktop.exe` without an installer, administrator access, Start Menu registration, or uninstall step. The application still keeps its profiles, logs, and caches in the normal Windows user-data directory, so this is portable distribution rather than a self-contained data sandbox. Portable archives are not handed to the NSIS updater and must be replaced manually when a new version is released. Local builds are unsigned and may trigger an Unknown publisher or SmartScreen warning; signed portable artifacts remain a release gate.
|
||||
|
||||
### macOS DMG smoke
|
||||
|
||||
|
||||
@@ -221,7 +221,7 @@ corepack.cmd yarn dist:win
|
||||
|
||||
该流程不要求 Python 或 Visual Studio C++ Build Tools。Windows 命令会直接使用 `node-pty` 内置的 x64 Node-API 二进制,而不会让 Electron Builder 从源码重新编译;如果安装包 staging tree 缺少这些二进制,packaged-runtime gate 会直接拒绝产物。
|
||||
|
||||
`dist:win` 会拒绝非 Windows 或非 x64 宿主,先执行一组 Windows 可运行的 gate,其中包括 build、全部 TypeScript compiler face、打包与原生 shell 聚焦测试,以及 runtime-closure verifier;随后再构建 NSIS 安装向导,并校验生成的两个 PE 文件。完整跨平台 suite 仍由 CI 持有,因为其中部分 POSIX 执行测试不是 Windows 程序。安装向导支持当前用户安装或提升权限后的所有用户安装,可更改安装目录,会创建开始菜单与桌面快捷方式,并且卸载应用时保留 DSH 用户数据。版本 `2.0.3` 会输出到 `dsh-plugin-desktop\dist\DSH-Desktop-2.0.3-x64-Setup.exe`;用于 smoke 测试的未封装程序仍位于 `dsh-plugin-desktop\dist\win-unpacked\DSH Desktop.exe`。
|
||||
`dist:win` 会拒绝非 Windows 或非 x64 宿主,先执行一组 Windows 可运行的 gate,其中包括 build、全部 TypeScript compiler face、打包与原生 shell 聚焦测试,以及 runtime-closure verifier;随后再构建 NSIS 安装向导,并校验生成的两个 PE 文件。完整跨平台 suite 仍由 CI 持有,因为其中部分 POSIX 执行测试不是 Windows 程序。安装向导支持当前用户安装或提升权限后的所有用户安装,可更改安装目录,会创建开始菜单与桌面快捷方式,并且卸载应用时保留 DSH 用户数据。版本 `2.0.4` 会输出到 `dsh-plugin-desktop\dist\DSH-Desktop-2.0.4-x64-Setup.exe`;用于 smoke 测试的未封装程序仍位于 `dsh-plugin-desktop\dist\win-unpacked\DSH Desktop.exe`。
|
||||
|
||||
该本地命令会主动移除 Windows 证书变量,并设置 `signExecutable=false`。产物可以安装测试,但没有 Authenticode publisher,因此 Windows 可能显示 Unknown publisher 或 SmartScreen 警告。签名后的 Windows release、证书校验、安装器升级与卸载测试,以及原生 UI 和 sandbox smoke 仍是独立的发布 gate。
|
||||
|
||||
@@ -233,7 +233,7 @@ corepack.cmd yarn dist:win
|
||||
corepack.cmd yarn dist:win-portable
|
||||
```
|
||||
|
||||
产物为 `dsh-plugin-desktop\\dist\\DSH-Desktop-2.0.3-x64-Portable.zip`。用户解压到任意可写目录后运行其中的 `DSH Desktop.exe`,不需要安装器、管理员权限、开始菜单注册或卸载步骤。它仍会把 profile、日志和缓存写入 Windows 默认用户数据目录,因此这是便携分发方式,不是把数据完全封装在 exe 旁边的自包含沙箱。绿色 ZIP 不会交给 NSIS 自动更新流程,新版本需要手动替换并重新解压。本地构建没有签名,Windows 可能显示 Unknown publisher 或 SmartScreen 警告;签名后的绿色版仍属于正式发布 gate。
|
||||
产物为 `dsh-plugin-desktop\\dist\\DSH-Desktop-2.0.4-x64-Portable.zip`。用户解压到任意可写目录后运行其中的 `DSH Desktop.exe`,不需要安装器、管理员权限、开始菜单注册或卸载步骤。它仍会把 profile、日志和缓存写入 Windows 默认用户数据目录,因此这是便携分发方式,不是把数据完全封装在 exe 旁边的自包含沙箱。绿色 ZIP 不会交给 NSIS 自动更新流程,新版本需要手动替换并重新解压。本地构建没有签名,Windows 可能显示 Unknown publisher 或 SmartScreen 警告;签名后的绿色版仍属于正式发布 gate。
|
||||
|
||||
### macOS DMG 冒烟构建
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dsh-plugin-desktop",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"description": "DSH Desktop: an Electron shell composed as a DeepSeek Harness Cordis plugin",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -44,7 +44,7 @@ if (Test-Path -LiteralPath $taskActiveRunMarker) {
|
||||
throw 'Refusing to overwrite an existing DSH Desktop active run marker.'
|
||||
}
|
||||
$taskResult = [ordered]@{
|
||||
scenario = 'temporary install and DSH_HOME: 2.0.2 to 2.0.3 upgrade and fixed-version overwrite'
|
||||
scenario = "temporary install and DSH_HOME: $taskBaseExpectedVersion to $taskCandidateExpectedVersion upgrade and fixed-version overwrite"
|
||||
testRoot = $taskRoot
|
||||
baseInstaller = $taskBaseInstaller
|
||||
baseInstallerSha256 = (Get-FileHash -LiteralPath $taskBaseInstaller -Algorithm SHA256).Hash
|
||||
|
||||
@@ -38,4 +38,3 @@ export function dshProductVersion(moduleUrl: string | URL = import.meta.url): st
|
||||
}
|
||||
return version
|
||||
}
|
||||
|
||||
|
||||
@@ -47,4 +47,3 @@ describe('installed DSH product version', () => {
|
||||
expect(() => dshProductVersion(invalidVersion.moduleUrl)).toThrow('not canonical')
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1573,7 +1573,7 @@ describe('Electron desktop runtime', () => {
|
||||
appExecutable: process.execPath,
|
||||
electronVersion: '43.4.0',
|
||||
profileName: 'desktop',
|
||||
productVersion: '2.0.3',
|
||||
productVersion: '2.0.4',
|
||||
profileDir: expect.stringMatching(/profiles[\\/]+desktop$/u),
|
||||
homeDir: expect.stringContaining('dsh-desktop-user-data'),
|
||||
spawn: expect.any(Function),
|
||||
@@ -1609,7 +1609,7 @@ describe('Electron desktop runtime', () => {
|
||||
expect(diagnostics.export).toHaveBeenCalledWith(
|
||||
expect.stringContaining('dsh-desktop-user-data'),
|
||||
expect.objectContaining({
|
||||
appVersion: '2.0.3',
|
||||
appVersion: '2.0.4',
|
||||
crashDumpsDir: expect.stringMatching(/[\\/]Crashpad$/u),
|
||||
}),
|
||||
)
|
||||
@@ -1879,7 +1879,7 @@ describe('Electron desktop runtime', () => {
|
||||
expect(runtime.updates).toMatchObject({
|
||||
isPackaged: false,
|
||||
canDownload: false,
|
||||
currentVersion: '2.0.3',
|
||||
currentVersion: '2.0.4',
|
||||
statePath: join('/tmp/dsh-desktop-user-data', 'updates', 'state.json'),
|
||||
})
|
||||
electron.app.isPackaged = true
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "deepseek-harness-desktop",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"private": true,
|
||||
"description": "DSH Desktop product workspace",
|
||||
"license": "MIT",
|
||||
|
||||
Reference in New Issue
Block a user