From e83038965bb836d5dd0eb9d31933d35028c6bcc7 Mon Sep 17 00:00:00 2001 From: vitya Date: Wed, 20 May 2026 12:27:53 +0300 Subject: [PATCH] =?UTF-8?q?tasks(using-yt-tools):=20close=203=20finding=20?= =?UTF-8?q?fixes=20=F0=9F=9F=A2=F0=9F=9F=A2=F0=9F=9F=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - using-yt-tools-transcript-paragraphs-fix → a0e4cc8 (yt-tools 0.1.1, hybrid #4) - using-yt-tools-frames-stderr-fix → 6961796 (yt-tools 0.1.2, ffmpeg pre-check + _format_subprocess_failure) - using-yt-tools-windows-path-doc-fix → 2471228 (yt-tools 0.1.3, README winget+PATH note) yt-tools 0.1.0 → 0.1.3. 67 → 74 tests (3 markdown + 4 frames). 74/74 green. Remaining: ⚪ using-yt-tools-trigger-smoke-clean-session (needs fresh CC session), 🔵 using-yt-tools-review (still blocked on SKILL.md body fill). Co-Authored-By: Claude Opus 4.7 (1M context) --- .tasks/STATUS.md | 57 ++++++++++++++++-------------------------------- 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index d0b88ad..1ba2dea 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,5 +1,5 @@ # Task Board -_Updated: 2026-05-20 (using-yt-tools impl: 3 baseline 🟢; test-trigger partial — CLI e2e + iterative-flow done, 4 findings filed as new ⚪ tasks; review still 🔵 — now blocked on SKILL.md body fill)_ +_Updated: 2026-05-20 (using-yt-tools: 3 baseline 🟢; 3 finding fixes 🟢 [paragraphs/frames-stderr/windows-path-doc] → yt-tools 0.1.0→0.1.3, 74/74 tests; trigger-smoke-clean-session still ⚪ (needs fresh CC session); review 🔵 on SKILL.md body fill)_ --- -## ⚪ [using-yt-tools-frames-stderr-fix] — yt-frames swallows yt-dlp/ffmpeg stderr, hiding real failure cause. +## 🟢 [using-yt-tools-frames-stderr-fix] — yt-frames swallows yt-dlp/ffmpeg stderr, hiding real failure cause. -**Symptom:** При запуске `yt-frames URL --timestamps ...` без ffmpeg на PATH — вывод `error: yt-dlp source download failed:` без описания (после двоеточия пусто). Реальная причина (yt-dlp требует ffmpeg для muxing) скрыта. - -**Корень:** в `yt_tools/frames.py` (или вызывающем слое) подавляется `stderr` от yt-dlp/ffmpeg subprocess, печатается голое сообщение без cause. - -**Acceptance:** при отсутствии ffmpeg вывод содержит указание на ffmpeg как причину (либо явно «ffmpeg required on PATH», либо передача yt-dlp stderr в верх). Аналогично для других fail-mode (network, private video, age-gated). - -**Status:** ready -**Where I stopped:** (not started — finding from using-yt-tools-test-trigger 2026-05-20) -**Next action:** Найти точку подавления в `frames.py`. Пробросить stderr (capture + re-print) или хотя бы exit-code → message map. Unit-test на mock yt-dlp с симулированным fail. Pytest зелёный. Bump `pyproject.toml` version. -**Branch:** n/a +**Status:** done +**Where I stopped:** Closed by `6961796` (yt-tools 0.1.2). Pre-check `ffmpeg` в `_ensure_source_mp4` (yt-dlp требует его для mux) → missing-ffmpeg теперь выдаёт `"ffmpeg not found on PATH"` до запуска yt-dlp. Helper `_format_subprocess_failure(proc, label)` собирает `exit N | stderr/stdout tail | no output hint`, применён в обоих сайтах failure (`_ensure_source_mp4`, `_ffmpeg_extract_from_file`, `_ffmpeg_extract_streaming`). `--no-warnings` дропнут на yt-dlp invocations чтобы warnings попадали в captured output. 4 новых теста в `tests/test_frames.py` (missing ffmpeg / stderr surfaced / stdout-only surfaced / empty-empty hint). 74/74 🟢. +**Next action:** (none — kept until merged) +**Branch:** master + --- -## ⚪ [using-yt-tools-windows-path-doc-fix] — README install section should warn about restart-shell-after-winget on Windows. +## 🟢 [using-yt-tools-windows-path-doc-fix] — README install section should warn about restart-shell-after-winget on Windows. -**Symptom:** `winget install Gyan.FFmpeg` записывает ffmpeg в user-PATH, но текущая bash/PowerShell сессия (а также Claude Code git-bash subshell) PATH не подхватывает до рестарта. Агент в CC-сессии видит «ffmpeg not found» даже после успешного winget. - -**Acceptance:** `~/projects/.common/lib/yt-tools/README.md` (раздел Install / Windows) содержит note: «после `winget install Gyan.FFmpeg` перезапустить терминал (и Claude Code session) — winget пишет в user-PATH, который текущая сессия не перечитывает». Опционально — workaround-команда для exposure без рестарта. - -**Status:** ready -**Where I stopped:** (not started — finding from using-yt-tools-test-trigger 2026-05-20) -**Next action:** Дописать раздел в README пакета. Bump `pyproject.toml` patch version. Это правка в `.common/lib/yt-tools/`, не в `claude-skills/` — таска живёт здесь как coordination-point. -**Branch:** n/a +**Status:** done +**Where I stopped:** Closed by `2471228` (yt-tools 0.1.3). README Install section получил `> **Windows note.**` блок: winget пишет в per-user PATH, текущий shell (вкл. git-bash subshell внутри CC) его не перечитывает; canonical fix = restart terminal + Claude Code session; verify via `where.exe ffmpeg`. In-session workaround упомянут (lookup путь через `winget show ` → `$env:Path +=`). Заодно sync test count 67 → 74 (drift от 0.1.1 + 0.1.2 additions). +**Next action:** (none — kept until merged) +**Branch:** master + ---