Fix L46/L71/L74: unify yt-dlp missing message, editable dir inputs, swatch a11y
L46: Introduced YTDLP_MISSING_MSG constant in binaries.ts. All four callers
(download, indexer, probe, ytdlp) now emit the same user-facing string:
"yt-dlp.exe is missing. Open Settings -> Software update to re-download it."
This removes newline-embedded messages and four divergent phrasings.
L71: Removed readOnly from videoDir/audioDir folder inputs in SettingsView.
Added onChange handler so users can paste or type a path directly without
being forced to use the Browse button. The path still flows through
applySettings() in main, which validates it.
L74: Accent color swatches were triple-labeled (aria-pressed + aria-label +
title). Replaced with a single aria-label that embeds "(selected)" state,
plus title for the hover tooltip. Removed the incorrect aria-pressed
(these are selection buttons, not toggles).
typecheck + 242 tests green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+3
-3
@@ -469,7 +469,7 @@ token system + shared primitives (UI/SIMP — high value, larger effort) · i18n
|
||||
but there's no ESLint/Prettier config, script, or dependency — no enforced style tooling.
|
||||
- [x] **L45 — Three self-descriptions** drift: pkg `description` "A yt-dlp frontend for Windows" vs
|
||||
builder `copyright` "yt-dlp frontend" vs Sidebar caption "yt-dlp frontend".
|
||||
- [ ] **L46 — yt-dlp-missing error copy differs across 4 modules** (download/ytdlp/probe/indexer):
|
||||
- [x] **L46 — yt-dlp-missing error copy differs across 4 modules** (download/ytdlp/probe/indexer):
|
||||
"Reinstall AeroFetch, or drop…" vs "Download it into resources/bin/…" vs "Drop it into resources/bin/."
|
||||
- [x] **L47 — `probeMeta` 30s timeout returns null silently** — no surfaced message, unlike every
|
||||
other yt-dlp timeout ("Timed out …").
|
||||
@@ -510,12 +510,12 @@ token system + shared primitives (UI/SIMP — high value, larger effort) · i18n
|
||||
(`typeof crypto !== 'undefined'` is always true) — dead defensive branch (see M7). *Fixed with M7: the
|
||||
branch now lives once in `newId` (kept so the fn is total in any host) and is covered by a test that stubs
|
||||
`crypto` to exercise it.*
|
||||
- [ ] **L71 — Settings folder inputs are `readOnly`** with only a Browse button — no way to paste a
|
||||
- [x] **L71 — Settings folder inputs are `readOnly`** with only a Browse button — no way to paste a
|
||||
known path.
|
||||
- [x] **L72 — History re-download drops the thumbnail** (passes only title/channel), so the
|
||||
re-queued row loses its thumbnail until re-probed.
|
||||
- [ ] **L73 — Two verbs for the same probe action** — DownloadBar "Fetch" vs LibraryView "Index".
|
||||
- [ ] **L74 — Accent swatches are triple-labeled** (`aria-pressed` + `aria-label` + `title`).
|
||||
- [x] **L74 — Accent swatches are triple-labeled** (`aria-pressed` + `aria-label` + `title`).
|
||||
- [x] **L75 — Update-token field always visible** in the Software-update card, even when no update
|
||||
is pending — buries an advanced/rarely-needed input.
|
||||
- [x] **L76 — Duplicate-warning may show a placeholder title** — `setDup(existing.title)` can be the
|
||||
|
||||
Reference in New Issue
Block a user