fix(windows): hide engine consoles

Disable the native Windows frame at startup and render in-app window controls so packaged builds use Firelink's own titlebar placement instead of the default OS chrome.

Apply CREATE_NO_WINDOW to raw child processes used by the aria2 daemon and shared engine version checks. Route ffmpeg and deno checks through the same hidden version-check helper so Settings > Engine does not flash console windows.

Normalize Windows extended-length paths before returning approved download roots to the UI, while keeping canonicalization for backend safety checks. Detect yt-dlp's embedded runtime per platform so Windows onedir builds look for python*.dll instead of macOS Python.framework.

Verification: npm run build; cargo check --manifest-path src-tauri/Cargo.toml; cargo test --manifest-path src-tauri/Cargo.toml --lib; node --check scripts/smoke-packaged-app.js; Ruby YAML parse for .github/workflows/release.yml; git diff --check.
This commit is contained in:
NimBold
2026-06-30 15:47:02 +03:30
parent 1d9b898e9c
commit 35ccd5659e
5 changed files with 207 additions and 54 deletions
+36 -6
View File
@@ -1279,13 +1279,43 @@
.mac-switch:checked::after {
transform: translateX(16px);
}
.downloads-view {
background: hsl(var(--main-bg));
}
.downloads-view {
background: hsl(var(--main-bg));
}
.main-titlebar {
height: 52px;
display: flex;
.window-controls {
position: fixed;
top: 10px;
left: 12px;
z-index: 60;
display: inline-flex;
align-items: center;
gap: 7px;
}
.window-control {
width: 22px;
height: 22px;
display: inline-flex;
align-items: center;
justify-content: center;
color: hsl(var(--text-muted));
border-radius: 999px;
}
.window-control:hover {
color: hsl(var(--text-primary));
background: hsl(var(--item-hover));
}
.window-control.close:hover {
color: white;
background: #c42b1c;
}
.main-titlebar {
height: 52px;
display: flex;
align-items: center;
padding: 0 18px;
border-bottom: 1px solid hsl(var(--border-color));