fix: avoid quoting desktop updater install directory (#1587)

This commit is contained in:
mumu
2026-06-04 13:42:13 +08:00
committed by GitHub
parent b612fb23e4
commit c6221ba50e
4 changed files with 6 additions and 15 deletions

View File

@@ -1088,17 +1088,6 @@ function isWindowsNsisInstalledApp() {
return fs.existsSync(path.join(appDir, 'Uninstall Daily Stock Analysis.exe'));
}
function quoteNsisDirectoryArgument(directoryPath) {
const normalizedPath = String(directoryPath || '').trim();
if (!normalizedPath) {
return '';
}
if (normalizedPath.includes('"')) {
return normalizedPath;
}
return /\s/.test(normalizedPath) ? `"${normalizedPath}"` : normalizedPath;
}
function getElectronAutoUpdater() {
if (electronAutoUpdater !== undefined) {
return electronAutoUpdater;
@@ -1326,7 +1315,7 @@ function configureElectronAutoUpdater() {
if (isWindows && app.isPackaged) {
const installDirectory = path.dirname(app.getPath('exe'));
if (installDirectory) {
updater.installDirectory = quoteNsisDirectoryArgument(installDirectory);
updater.installDirectory = installDirectory;
logLine(`[update] auto updater install directory set to ${updater.installDirectory}`);
}
}

View File

@@ -342,7 +342,7 @@ test('auto download prompt falls back to error when install path fails', async (
assert.match(state.message, /更新安装失败/);
assert.equal(state.updateMode, mainModule.UPDATE_MODE.AUTO);
assert.deepEqual(quitAndInstallArgs, [true, true]);
assert.equal(fakeUpdater.installDirectory, `"${exeDir}"`);
assert.equal(fakeUpdater.installDirectory, exeDir);
assert.equal(fs.existsSync(backupRoot), false);
assert.equal(fs.existsSync(path.join(backupRoot, 'runtime-state.json')), false);

View File

@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
## [Unreleased]
- [修复] Web/桌面端左侧导航选中态改用 border 实现,避免蓝色竖条指示器溢出侧栏边界;侧栏展开宽度 116px → 136px新增 rail 紧凑模式。
- [修复] Windows 桌面端自动更新安装目录不再预先加引号,避免带空格路径在自动安装时触发“缺少快捷方式 / 找不到 Daily Stock Analysis.exe”的系统弹窗。
- [修复] Agent 分析路径生成 AnalysisContextPack overview 前复用已落库日线分析上下文,避免日线已抓取成功仍显示 `daily_bars_missing`
- [新功能] Web 大盘复盘报告新增专用展示视图,历史入口和首页即时结果统一使用 Markdown/GFM 渲染并隐藏个股专属模块。
- [新功能] 大盘复盘新增结构化 `market_review_payload`Web、历史详情和推送统一基于结构化数据渲染并保留 Markdown 兼容展示。

View File

@@ -40,6 +40,7 @@ def test_old_uninstaller_retry_quotes_install_location_parameter() -> None:
def test_windows_auto_updater_reuses_current_install_directory() -> None:
main_js = (DESKTOP_DIR / "main.js").read_text(encoding="utf-8")
assert "function quoteNsisDirectoryArgument" in main_js
assert "const installDirectory = path.dirname(app.getPath('exe'));" in main_js
assert "updater.installDirectory = quoteNsisDirectoryArgument(installDirectory);" in main_js
assert "updater.installDirectory = installDirectory;" in main_js
assert 'updater.installDirectory = `"${installDirectory}"`' not in main_js
assert "quoteNsisDirectoryArgument" not in main_js