Release v1.6.17

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sucukdeluxe
2026-03-04 17:04:32 +01:00
co-authored by Claude Opus 4.6
parent b02aef2af9
commit 10bae4f98b
5 changed files with 33 additions and 24 deletions
+1
View File
@@ -2919,6 +2919,7 @@ export class DownloadManager extends EventEmitter {
this.runOutcomes.clear();
this.runCompletedPackages.clear();
this.retryAfterByItem.clear();
this.retryStateByItem.clear();
this.session.running = true;
this.session.paused = false;
+6 -1
View File
@@ -22,7 +22,7 @@ const JVM_EXTRACTOR_REQUIRED_LIBS = [
];
// ── subst drive mapping for long paths on Windows ──
const SUBST_THRESHOLD = 100;
const SUBST_THRESHOLD = 200;
const activeSubstDrives = new Set<string>();
function findFreeSubstDrive(): string | null {
@@ -2118,7 +2118,12 @@ export async function extractPackageArchives(options: ExtractOptions): Promise<{
const workerCount = Math.min(maxParallel, parallelQueue.length);
logger.info(`Parallele Extraktion: ${workerCount} gleichzeitige Worker für ${parallelQueue.length} Archive`);
// Snapshot passwordCandidates before parallel extraction to avoid concurrent mutation.
// Each worker reads the same promoted order from the serial password-discovery pass.
const frozenPasswords = [...passwordCandidates];
await Promise.all(Array.from({ length: workerCount }, () => worker()));
// Restore passwordCandidates from frozen snapshot (parallel mutations are discarded).
passwordCandidates = frozenPasswords;
if (abortError) throw new Error("aborted:extract");
}
+2 -1
View File
@@ -140,7 +140,8 @@ export function normalizeSettings(settings: AppSettings): AppSettings {
theme: VALID_THEMES.has(settings.theme) ? settings.theme : defaults.theme,
bandwidthSchedules: normalizeBandwidthSchedules(settings.bandwidthSchedules),
columnOrder: normalizeColumnOrder(settings.columnOrder),
extractCpuPriority: settings.extractCpuPriority
extractCpuPriority: settings.extractCpuPriority,
autoExtractWhenStopped: settings.autoExtractWhenStopped !== undefined ? Boolean(settings.autoExtractWhenStopped) : defaults.autoExtractWhenStopped
};
if (!VALID_PRIMARY_PROVIDERS.has(normalized.providerPrimary)) {