From b484b4ffd671c4f1cb26f735d23f06c0dcc8e797 Mon Sep 17 00:00:00 2001 From: Jianghan <58623049+SuperstructureJH@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:34:25 +0800 Subject: [PATCH 1/4] fix(packaging): include Windows hidden console helper --- package.json | 4 ++++ test/release.test.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/package.json b/package.json index 2c16a57f..3413614c 100644 --- a/package.json +++ b/package.json @@ -332,6 +332,10 @@ "from": "build/harness-node-entry.mjs", "to": "harness-node-entry.mjs" }, + { + "from": "build/windows-hidden-console.mjs", + "to": "windows-hidden-console.mjs" + }, { "from": "build/windows-child-process-hide.mjs", "to": "windows-child-process-hide.mjs" diff --git a/test/release.test.ts b/test/release.test.ts index 35482081..07bee45e 100644 --- a/test/release.test.ts +++ b/test/release.test.ts @@ -155,6 +155,10 @@ describe('GitHub release contract', () => { from: 'build/app-icon.png', to: 'icon.png' }) + expect(packageJson.build.extraResources).toContainEqual({ + from: 'build/windows-hidden-console.mjs', + to: 'windows-hidden-console.mjs' + }) expect(packageJson.build.extraResources).toContainEqual({ from: 'build/windows-child-process-hide.mjs', to: 'windows-child-process-hide.mjs' From 4525abd755cddae9477db6e76c0f837ecb3497f3 Mon Sep 17 00:00:00 2001 From: Jianghan <58623049+SuperstructureJH@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:41:13 +0800 Subject: [PATCH 2/4] test(packaging): bind Windows helper import to resource --- test/release.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/release.test.ts b/test/release.test.ts index 07bee45e..4df18124 100644 --- a/test/release.test.ts +++ b/test/release.test.ts @@ -149,6 +149,10 @@ describe('GitHub release contract', () => { portable?: unknown } } + const harnessNodeEntry = await readFile( + path.join(projectRoot, 'build', 'harness-node-entry.mjs'), + 'utf8' + ) expect(packageJson.build.artifactName).toBe('dsh-desktop-${os}-${arch}.${ext}') expect(packageJson.build.extraResources).toContainEqual({ @@ -159,6 +163,7 @@ describe('GitHub release contract', () => { from: 'build/windows-hidden-console.mjs', to: 'windows-hidden-console.mjs' }) + expect(harnessNodeEntry).toContain("await import('./windows-hidden-console.mjs')") expect(packageJson.build.extraResources).toContainEqual({ from: 'build/windows-child-process-hide.mjs', to: 'windows-child-process-hide.mjs' From 124626d1127fd2417fdee3c5d5ed0690dd7f7417 Mon Sep 17 00:00:00 2001 From: Jianghan <58623049+SuperstructureJH@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:44:55 +0800 Subject: [PATCH 3/4] docs(packaging): record Windows helper resource contract --- docs/harness-0.1.2-rc.1-upgrade.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/harness-0.1.2-rc.1-upgrade.md b/docs/harness-0.1.2-rc.1-upgrade.md index 9a7bd72e..a27d577b 100644 --- a/docs/harness-0.1.2-rc.1-upgrade.md +++ b/docs/harness-0.1.2-rc.1-upgrade.md @@ -38,6 +38,12 @@ Preview 或其他可选 Bundle 意外打入桌面应用。 `@deepseek-ai/dsh*` 补丁文件名由 `0.1.2-alpha.4` 改为 `0.1.2-rc.1`。上游本次未变更这些 补丁覆盖的源码文件,版本标识迁移后仍必须由 `patch-package` 的 clean install 结果验证。 +## Windows Harness 运行资源 + +`build/harness-node-entry.mjs` 在 Windows 启动路径中加载 `windows-hidden-console.mjs`。两者作为 +同一组 `extraResources` 进入安装包,`release.test.ts` 同时校验入口导入和资源清单,保证打包后的 +Harness 可以创建隐藏控制台并继续启动。 + ## 验证 - 上游标签:`pnpm install --frozen-lockfile`、`pnpm run build:official`、两类 `release/pack.ts` 成功。 From a12f9412c2013f4f15412886d7dfa30f45fb5c18 Mon Sep 17 00:00:00 2001 From: Jianghan <58623049+SuperstructureJH@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:48:27 +0800 Subject: [PATCH 4/4] test(packaging): verify Windows helper source --- test/release.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/release.test.ts b/test/release.test.ts index 4df18124..54876ed0 100644 --- a/test/release.test.ts +++ b/test/release.test.ts @@ -153,6 +153,10 @@ describe('GitHub release contract', () => { path.join(projectRoot, 'build', 'harness-node-entry.mjs'), 'utf8' ) + const windowsHiddenConsole = await readFile( + path.join(projectRoot, 'build', 'windows-hidden-console.mjs'), + 'utf8' + ) expect(packageJson.build.artifactName).toBe('dsh-desktop-${os}-${arch}.${ext}') expect(packageJson.build.extraResources).toContainEqual({ @@ -164,6 +168,7 @@ describe('GitHub release contract', () => { to: 'windows-hidden-console.mjs' }) expect(harnessNodeEntry).toContain("await import('./windows-hidden-console.mjs')") + expect(windowsHiddenConsole).toContain('export function createHiddenConsole') expect(packageJson.build.extraResources).toContainEqual({ from: 'build/windows-child-process-hide.mjs', to: 'windows-child-process-hide.mjs'