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` 成功。 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..54876ed0 100644 --- a/test/release.test.ts +++ b/test/release.test.ts @@ -149,12 +149,26 @@ describe('GitHub release contract', () => { portable?: unknown } } + const harnessNodeEntry = await readFile( + 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({ 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(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'