v1.2.0 — Podcast transcript UI pipeline
What's new
Verified end-to-end Apple Podcasts transcript pipeline (drives the native Podcasts app via Accessibility):
get_recent_podcast_episodes— now filters byfromDate/toDate(inclusive) andquery(title substring). Fixed a silent date-filter bug:strftimereturns TEXT andINTEGER >= TEXTis always false in SQLite comparisons — now usesunixepoch().open_podcast_episode— rewritten from an unverified deep link to the proven UI flow: Cmd+F, clipboard-paste the title (keystroke typing corrupts punctuation), open the top search result.play_podcast_episode(new) — AX-discovers the play pill (position varies per episode page), clicks it, polls the TTML cache up to 15s for the fresh transcript download, returns path + transcriptId.pause_podcast_episode(new) — Controls → Pause with double-pause guard. Note: the DBplay_statecolumn is unreliable (stays 1 while paused); the playhead freeze is the source of truth.get_podcast_transcript— group-container TTML cache paths (app-container paths are dead after a Podcasts app data migration).
Verified
- Fresh download: searched → opened → played → transcript detected in ~1.5s → paused (Micky Malka / Ribbit Capital)
- Replay correctly reports already-cached (no re-download)
- Smoke suite 19/19 checks pass (40 tools)
Misc
- Skill doc rewritten with the 5-step pipeline:
~/.config/opencode/skills/macos-podcast-transcript/SKILL.md - Linear: SUR-214 closed (work summary/RCA)