Skip to content

chore: docs + a11y housekeeping wave (closes #910, #925, #949, #950, #951)#952

Closed
Salem874 wants to merge 4 commits into
mainfrom
chore/docs-housekeeping-2026-06-19
Closed

chore: docs + a11y housekeeping wave (closes #910, #925, #949, #950, #951)#952
Salem874 wants to merge 4 commits into
mainfrom
chore/docs-housekeeping-2026-06-19

Conversation

@Salem874

Copy link
Copy Markdown
Contributor

Summary

Tight follow-up wave to PR #947 — closes 5 issues (3 newly identified during the audit-discovery workflow wv461v32a, 2 from the existing backlog whose trigger conditions are met) plus drops 3 more (#936 / #885 / #886) via batched issue close. Mostly docs + a11y polish; zero behaviour change.

What's included

#949 — Milestone numbering fix (6 files)

The authoritative milestone table at Project_Plan.md:358-362 was renumbered at some point (BBC iPlayer bumped to M8, Spotify to M9, YouTube to M10) but six other files plus Project_Plan.md's own per-milestone section headers + prose bullets still carried the legacy numbering (Spotify=M8, YouTube=M9, BBC iPlayer=M10).

Bug surfaces in user-facing Help — clicking the in-app Help > Supported Services or reading help/supported-services.md showed the wrong service mapped to v2.0.0 / v2.1.0 / v2.2.0.

13 single-line edits across:

  • `src-tauri/src/services/engine_runner.rs` — 3 stub builder error messages + 3 doc-comment lines
  • `src-tauri/src/models/settings.rs` — 2 doc-comment lines
  • `src/types/index.ts` — 2 comment annotations
  • `src/components/help/HelpViewer.tsx` — 3 user-visible heading lines
  • `help/supported-services.md` — 3 section heading lines
  • `Project_Plan.md` — 3 section headers + 2 prose bullets

#925 + #910 — GAMDL audit docs backfill

CLAUDE.md carried full per-commit admission paragraphs for v3.7.2, v3.7.3, and v3.7.4, but the corresponding standalone audit docs under `.github/audits/` were never written. This PR lifts the existing prose into the established audit-doc format used by gamdl-v3.5.2-audit.md:

  • `.github/audits/gamdl-v3.7.2-v3.7.3-audit.md` — pair of bug-fix releases shipped same-day (2026-05-28); documents the uncensored MV title/album switch + defensive `.get('playParams')` access + the one MeedyaDL code change required (`is_media_not_streamable_error` classifier).
  • `.github/audits/gamdl-v3.7.4-audit.md` — 4-functional-commit reliability patch (2026-06-12); HLS variant rewrite + AMP token regex + cover-fetch HTTP hardening + API exception content typing. Zero-code-change admission.

Closes #910 (whose body declared its own close-trigger as "when upstream tags 3.7.4 and MeedyaDL ships the admission PR" — condition met by PR #947's version bump + this doc backfill).

#951 — console.log → console.debug

src/App.tsx:950 deep-link handler logged via `console.log`. The prevailing convention elsewhere is `console.debug` (`src/hooks/useTheme.ts:188-196`, `src/main.tsx:90`) so dev-only diagnostics are suppressed at the browser's default log level. Line above already shows a user-facing toast, so the console line is purely dev-diagnostic.

#950 — Cancel/Retry tooltip a11y

Sibling to #945. The Cancel + Retry buttons in QueueItem had `title="Cancel"` / `title="Retry"` but `aria-label="Cancel download" / "Retry download"` — sighted-hover tooltip didn't match screen-reader announcement. Updated `title` to the longer form so both match.

Sibling issue triage (parallel close, not in this PR)

These were closed via `gh issue close` during the housekeeping wave:

Verification

  • ✅ `cargo check` clean (engine_runner.rs + settings.rs string changes only)
  • ✅ `npm run type-check` clean (types/index.ts + App.tsx + QueueItem.tsx are doc-comment + tooltip + console-method edits)
  • ✅ `rg M8.*BBC|M9.*Spotify|M10.*YouTube help/supported-services.md Project_Plan.md src/components/help/HelpViewer.tsx` confirms the new mapping; inverse grep returns empty
  • ✅ Project_Plan.md table at L358-362 unchanged (was already correct)
  • ✅ `.github/audits/` ls shows v3.5.2, v3.5.1, v3.4-v3.5, v3.2, and now v3.7.2-v3.7.3 + v3.7.4 — cumulative coverage complete for the support window

Test plan

🤖 Generated with Claude Code

Salem874 added 4 commits June 19, 2026 01:40
The authoritative milestone table in Project_Plan.md was renumbered at some point (BBC iPlayer bumped to M8, Spotify to M9, YouTube to M10) but six other files plus Project_Plan.md's own per-milestone section headers + prose bullets still carried the legacy numbering (Spotify=M8, YouTube=M9, BBC iPlayer=M10).

The bug surfaced in **user-facing** Help docs — anyone clicking the in-app Help > Supported Services or reading help/supported-services.md saw the wrong service mapped to v2.0.0 / v2.1.0 / v2.2.0.

Authoritative mapping (per Project_Plan.md:360-362):

| Milestone | Version | Service     | Engine                  |
|-----------|---------|-------------|-------------------------|
| M8        | v2.0.0  | BBC iPlayer | get_iplayer / yt-dlp    |
| M9        | v2.1.0  | Spotify     | votify                  |
| M10       | v2.2.0  | YouTube     | yt-dlp                  |

Files corrected:

- src-tauri/src/services/engine_runner.rs — 3 stub builder error messages + 3 doc-comment lines (Votify M8→M9 + v2.0.0→v2.1.0; yt-dlp M9/M10→M8/M10 + v2.1.0→v2.0.0 (shared by BBC iPlayer + YouTube); get_iplayer M10→M8 + v2.2.0→v2.0.0)
- src-tauri/src/models/settings.rs — Votify M8→M9; yt-dlp M9→M10
- src/types/index.ts — Spotify (stub for M8)→M9; YouTube (stub for M9)→M10
- src/components/help/HelpViewer.tsx — Spotify v2.0.0→v2.1.0; YouTube v2.1.0→v2.2.0; BBC iPlayer v2.2.0→v2.0.0
- help/supported-services.md — same three corrections, also fixes Milestone tags
- Project_Plan.md — section header for M8/M9/M10 corrected + line 426 prose (yt-dlp shared with BBC iPlayer in M8, not M10) + prose bullets at L529 + L570

Pure string/doc edits. Zero behaviour change. Build clean.

Closes #949
…#925, references #898, closes #910)

The CLAUDE.md GAMDL section carried full per-commit admission paragraphs for v3.7.2, v3.7.3, and v3.7.4, but the corresponding standalone audit docs under \`.github/audits/\` were never written — the support-window admission landed without the doc backfill that previous releases (v3.5.2, v3.5.1, v3.4-v3.5, v3.2) all received.

This commit lifts the existing CLAUDE.md prose into the established audit-doc format used by [gamdl-v3.5.2-audit.md](.github/audits/gamdl-v3.5.2-audit.md):

- \`.github/audits/gamdl-v3.7.2-v3.7.3-audit.md\` covers the pair of bug-fix releases shipped same-day on 2026-05-28 (#898). Documents the uncensored MV title/album switch, the defensive \`.get('playParams')\` access in both song and music-video interfaces, and the **one MeedyaDL code change** the cumulative admission required — \`is_media_not_streamable_error()\` helper + \`media_not_streamable\` classifier bucket in \`utils/process.rs\` to surface the now-reachable error message.
- \`.github/audits/gamdl-v3.7.4-audit.md\` covers the 4-functional-commit reliability patch shipped on 2026-06-12 (#925). Documents each hunk's MeedyaDL integration-surface impact and concludes zero-code-change admission, same release-class as v3.3 / v3.5 / v3.5.1 / v3.5.2.

Both docs follow the v3.5.2 template's structure verbatim: TL;DR + Methodology + per-commit hunk analysis + CLI/INI/wrapper/regex surface table + Verdict.

Closes #925
Closes #910
…dler (#951)

The deep-link handler logged every received URL via `console.log()`. Other dev-only diagnostics in the codebase (`src/hooks/useTheme.ts:188-196`, `src/main.tsx:90`) use `console.debug` so the lines stay quiet at default browser log levels but remain visible when verbose mode is enabled.

The line above (945-948) already shows a user-facing toast announcing the deep-link event, so the console line is purely dev-diagnostic and belongs on `console.debug`.

One-line edit + inline comment pointing to the convention.

Closes #951
PR #945 (merged in #947) aligned `title` with `aria-label` for three QueueItem buttons (Retry-without-Wrapper, Open File, Open Folder) so the sighted hover-tooltip and the screen-reader announcement say the same thing. Two sibling buttons in the same file were missed:

- Cancel button (line 617) had `title="Cancel"` but `aria-label="Cancel download"`.
- Retry button (line 633) had `title="Retry"` but `aria-label="Retry download"`.

Sighted-mouse users hover and see "Cancel"; screen-reader users hear "Cancel download". The longer form is the right one — it's specific (cancels THIS row, not e.g. the whole queue) and matches the verbose pattern the rest of the file establishes.

Updates `title` on both buttons to match the existing `aria-label`. Two-line edit. No behavioural change.

Closes #950
@github-actions

Copy link
Copy Markdown
Contributor

PR Security Checks

⚠️ 1 category(ies) of findings — these are heuristics, please review each:

Hardcoded absolute filesystem paths (derive from app_data_dir / std::env, not literals)

src/components/download/QueueItem.tsx:332:         * Example: '/Users/me/Music/Artist/Album/01 Track.m4a'
src/components/download/QueueItem.tsx:333:         *       -> '/Users/me/Music/Artist/Album'

Generated by .github/workflows/pr-security.yml. Non-blocking — the merge gate is ci.yml. Cross-source checks live in tools/audit-checks/ and run locally. False positives are expected.

@Salem874

Copy link
Copy Markdown
Contributor Author

Superseded by PR #954 (combined alpha-targeting housekeeping).

After auditing this PR's 4 commits against the actual alpha codebase:

Closing per user instruction to consolidate housekeeping into a single alpha-targeting merge.

@Salem874 Salem874 closed this Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upstream watch: GAMDL next-tag (3.7.4?) — m3u8 master URL default-variant rewrite (zero-surface admission)

1 participant