Keep session bytes on live update cadence
This commit is contained in:
@@ -4,6 +4,10 @@ All notable changes to Multi-Debrid Downloader are documented in this file.
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Download presentation
|
||||||
|
|
||||||
|
- Keep the sidebar session byte counter on the same live snapshot cadence as the remaining byte counter even when large-queue statistics are cached.
|
||||||
|
|
||||||
### Proxy limit tuning
|
### Proxy limit tuning
|
||||||
|
|
||||||
- Increase the default global proxy connection budget for new settings from 20 to 32 and raise the configurable maximum from 32 to 40 while retaining fair sharing and adaptive 429/503 backoff.
|
- Increase the default global proxy connection budget for new settings from 20 to 32 and raise the configurable maximum from 32 to 40 while retaining fair sharing and adaptive 429/503 backoff.
|
||||||
|
|||||||
@@ -175,6 +175,8 @@ npm exec -- tsc --noEmit
|
|||||||
|
|
||||||
## Verifizierungen vom 31. August 2026
|
## Verifizierungen vom 31. August 2026
|
||||||
|
|
||||||
|
- Unveröffentlichter Sidebar-Live-Takt-Fix: Bei laufenden Queues ab 500 Einträgen bleibt der Sitzungs-Bytezähler trotz des 1,5-Sekunden-Statistik-Caches in jedem 750-Millisekunden-Live-Snapshot aktuell. Die Bedeutung des kumulativen Sitzungszählers bleibt unverändert. Der vollständige Download-Manager-Lauf war mit 263 von 263 Tests erfolgreich.
|
||||||
|
- Vollständiger Client-Lauf nach dem Live-Takt-Fix: 2.658 Tests erfolgreich und 4 optionale JVM-Tests übersprungen; genau ein unveränderter Entpacktest überschritt unter paralleler Gesamtlast einmal sein 5-Sekunden-Limit. Der unmittelbar folgende isolierte Lauf aller 84 Entpacktests war vollständig grün. TypeScript, Main-/Renderer-Build, Self-Check und 16 von 16 Backup-API-Tests waren ebenfalls erfolgreich; die bekannte Vite-Warnung zum rund 576 KiB großen Renderer-Chunk bleibt bestehen.
|
||||||
- Unveröffentlichte 32/40-Limitanpassung: Proxy-Scheduler, Storage, Einstellungen, Renderer-Projektion und visuelle Fixtures 229 von 229 Tests erfolgreich. Die Main-Normalisierung deckt Standard 32, Minimum 2, Maximum 40 und Werte oberhalb des Maximums direkt ab.
|
- Unveröffentlichte 32/40-Limitanpassung: Proxy-Scheduler, Storage, Einstellungen, Renderer-Projektion und visuelle Fixtures 229 von 229 Tests erfolgreich. Die Main-Normalisierung deckt Standard 32, Minimum 2, Maximum 40 und Werte oberhalb des Maximums direkt ab.
|
||||||
- Vollständiger Client-Lauf nach der 32/40-Anpassung ohne die zwei lokal nicht ausführbaren Symlink-Fixtures: 140 Testdateien erfolgreich, 1 JVM-Testdatei übersprungen; 2.658 Tests erfolgreich und 4 übersprungen. Die übrigen 22 Public-Release-Metadatentests liefen separat erfolgreich. Alle 84 Entpacktests sind unverändert grün.
|
- Vollständiger Client-Lauf nach der 32/40-Anpassung ohne die zwei lokal nicht ausführbaren Symlink-Fixtures: 140 Testdateien erfolgreich, 1 JVM-Testdatei übersprungen; 2.658 Tests erfolgreich und 4 übersprungen. Die übrigen 22 Public-Release-Metadatentests liefen separat erfolgreich. Alle 84 Entpacktests sind unverändert grün.
|
||||||
- Nach der 32/40-Anpassung erfolgreich: TypeScript, vollständiger Main-/Renderer-Build, Self-Check und 16 von 16 Backup-API-Tests. Die bekannte Vite-Warnung zum rund 576 KiB großen Renderer-Chunk bleibt bestehen.
|
- Nach der 32/40-Anpassung erfolgreich: TypeScript, vollständiger Main-/Renderer-Build, Self-Check und 16 von 16 Backup-API-Tests. Die bekannte Vite-Warnung zum rund 576 KiB großen Renderer-Chunk bleibt bestehen.
|
||||||
|
|||||||
@@ -2855,7 +2855,10 @@ export class DownloadManager extends EventEmitter {
|
|||||||
public getStats(now = nowMs()): DownloadStats {
|
public getStats(now = nowMs()): DownloadStats {
|
||||||
const itemCount = this.itemCount;
|
const itemCount = this.itemCount;
|
||||||
if (this.statsCache && this.session.running && itemCount >= 500 && now - this.statsCacheAt < 1500) {
|
if (this.statsCache && this.session.running && itemCount >= 500 && now - this.statsCacheAt < 1500) {
|
||||||
return this.statsCache;
|
return {
|
||||||
|
...this.statsCache,
|
||||||
|
totalDownloaded: this.sessionDownloadedBytes
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
this.resetSessionTotalsIfQueueEmpty();
|
this.resetSessionTotalsIfQueueEmpty();
|
||||||
|
|||||||
@@ -84,6 +84,25 @@ describe("download live update cadence", () => {
|
|||||||
vi.useRealTimers();
|
vi.useRealTimers();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("keeps the session byte counter live while large-queue statistics are cached", () => {
|
||||||
|
const root = fs.mkdtempSync(path.join(os.tmpdir(), "rd-live-session-bytes-"));
|
||||||
|
tempDirs.push(root);
|
||||||
|
const session = emptySession();
|
||||||
|
session.running = true;
|
||||||
|
const manager = new DownloadManager(defaultSettings(), session, createStoragePaths(path.join(root, "state")));
|
||||||
|
const internal = manager as unknown as {
|
||||||
|
itemCount: number;
|
||||||
|
sessionDownloadedBytes: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
internal.itemCount = 500;
|
||||||
|
internal.sessionDownloadedBytes = 8 * 1024 * 1024;
|
||||||
|
expect(manager.getSnapshot().stats.totalDownloaded).toBe(8 * 1024 * 1024);
|
||||||
|
|
||||||
|
internal.sessionDownloadedBytes = 16 * 1024 * 1024;
|
||||||
|
expect(manager.getSnapshot().stats.totalDownloaded).toBe(16 * 1024 * 1024);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("snapshot revision", () => {
|
describe("snapshot revision", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user