Skip to content

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Jun 22:42
· 11 commits to main since this release

Robustness fixes for constrained and sandboxed environments, driven by a batch of real-world run reports. Adds a constrained-Linux integration test so these seams are caught in CI.

Added

  • PATH-robust tool resolution. A shared resolve_tool() finds ffmpeg, ffprobe, and yt-dlp even when they live in a user-local bin (~/.local/bin, the Python userbase) that isn't on PATH, and the pipeline now invokes them by absolute path. This fixes "tool installed but invisible" failures after pip install --user or pipx.
  • Auto-install on Linux. setup.py now runs the no-sudo installs itself: yt-dlp via pipx/pip --user (with a PEP 668 --break-system-packages fallback), and the docx npm module into the per-user cache. It prints exact export PATH=... hints when a tool lands off PATH, and prints sudo hints only for packages that need root (ffmpeg, Node.js/npm).
  • Constrained-environment integration test. A new CI job makes the skill directory read-only, runs the real pipeline on a synthetic local video, and builds the document, asserting docx self-installs into the writable cache. This catches environment seams that mocked unit tests can't.

Changed

  • docx installs into the per-user cache when the skill dir is read-only. setup.py installs docx into ~/.cache/analyze-video (matching build-docx.js) when scripts/ isn't writable, instead of silently failing against a read-only mount.
  • Compact contact-sheet appendix. Contact sheets in the document appendix are now sized so about two fit per page, instead of one sheet filling a whole page.
  • Hardened delivery gate. SKILL.md Step 8 now makes the "include contact sheets / transcript?" question a mandatory, explicit gate before the single document build, so appendices are never added without asking.

Docs

  • SKILL.md documents skill-directory resolution when CLAUDE_SKILL_DIR is unset, the setup exit-code contract (0 means ready, non-zero means not ready), and the harmless yt-dlp "no JavaScript runtime" warning.

Full Changelog: v1.3.0...v1.4.0