feat(engine): replace vague error strings with structured get_engine_status diagnostics

Add a single Rust command returning per-engine structured status with
resolved path, version, error context, stderr tail, and remediation hints.

- Aria2: binary check, daemon startup error, RPC readiness, live stderr capture
- yt-dlp: binary check, onedir layout validation (_internal/Python.framework)
- FFmpeg / Deno: binary check, version parse
- UI: Ready/Error badge + expandable technical detail panel
- Old test_* commands kept for backward compatibility
This commit is contained in:
NimBold
2026-06-17 18:45:11 +03:30
parent 292240cb71
commit 0a1d367a99
5 changed files with 431 additions and 87 deletions
+2 -4
View File
@@ -9,6 +9,7 @@ import type { ExtensionDownload } from './bindings/ExtensionDownload';
import type { MediaCookieSource } from './bindings/MediaCookieSource';
import type { MediaMetadata } from './bindings/MediaMetadata';
import type { MetadataResponse } from './bindings/MetadataResponse';
import type { EngineStatusResult } from './bindings/EngineStatusResult';
import type { PostQueueAction } from './bindings/PostQueueAction';
import type { ReleaseCheckOutcome } from './bindings/ReleaseCheckOutcome';
@@ -55,10 +56,7 @@ type CommandMap = {
args: { url: string; cookieBrowser: string | null; username: string | null; password: string | null };
result: MediaMetadata;
};
test_ytdlp: { args: undefined; result: string };
test_aria2c: { args: undefined; result: string };
test_ffmpeg: { args: undefined; result: string };
test_deno: { args: undefined; result: string };
get_engine_status: { args: undefined; result: EngineStatusResult };
open_file: { args: { path: string }; result: void };
show_in_folder: { args: { path: string }; result: void };
reveal_in_file_manager: { args: { path: string }; result: void };