Group chats: report why a promised video never arrived - #23
Merged
Conversation
miridius
force-pushed
the
group-failure-feedback
branch
from
July 24, 2026 17:49
96edd41 to
2fec922
Compare
Groups get exactly one terminal 💥 line when a failure is terminal, isn't not-a-video, and either getInfo proved a real video or the link is on an always-expect-a-response host (instagram.com, reddit.com, redd.it). All other group silence is unchanged and pinned by tests. Backing this is a 3-way yt-dlp failure classifier (not-a-video / unavailable / transient); deterministic errors like a photo post or Instagram's empty-media response now fail in one attempt instead of burning the 3-attempt retry budget. Closes #17, closes #14. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DL3md3a3RoeRNStaDv1PDf
miridius
force-pushed
the
group-failure-feedback
branch
from
July 24, 2026 19:37
2fec922 to
6dda1c5
Compare
This was referenced Jul 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
In a group chat, a failing video link produces nothing at all: the bot identifies the video, fails to deliver it, and stays silent, so the requester never learns why their mp4 didn't arrive (#17). Separately, links that aren't videos at all (an Instagram photo post, a Reddit text post) burned the full 3-attempt retry budget on a deterministic error, filling private chats with retry notices for a failure no retry can fix (#14).
Fix
A group now gets exactly one terminal failure line, replying to the link message and worded like the private-chat one, when all of these hold:
instagram.com,reddit.com,redd.it).Every other group case stays silent as before, each pinned by a test: not-a-video errors (photo/text posts) on any host, scrape failures on non-listed hosts, too-large verdicts, and silence through transient retries.
Underneath, yt-dlp failures now classify three ways (
not-a-video/unavailable/transient) from their stderrERROR:lines, with each not-a-video pattern pinned to its extractor tag; the patterns were verified against real yt-dlp output ("No media found" also exists untagged in the f4m downloader, which must stay retryable). Not-a-video is deterministic, so those failures take one attempt instead of three.Tests: pinning unit tests for every silence rule and both report rules; two e2e cases drive the group seam end to end against real yt-dlp (a photo post staying silent, a dead reel producing the single report), with the e2e mock extended to support group chats.
Settled design decisions
Closes #17. Closes #14.