Files
recap-relay/startos/versions/v0.2.63.ts
T

14 lines
2.1 KiB
TypeScript

import { VersionInfo } from '@start9labs/start-sdk'
export const v_0_2_63 = VersionInfo.of({
version: '0.2.63:0',
releaseNotes: {
en_US:
'Two coordinated fixes that restore the speaker-name labels the recap-app direct path gets but the relay path was losing. (1) The relay\'s downloadYouTube() now extracts the FULL YouTube metadata block during the existing yt-dlp invocation — channel, description (capped at 2000 chars), and chapters — not just the title. Uses yt-dlp\'s `--print before_dl:%(.{title,channel,description,chapters})j` template to get a single JSON line containing all four fields. The metadata is returned alongside the audio file path and flows into the transcribe prompt\'s context block as fallbacks: when /relay/summarize-url\'s request body has empty channel/description/chapters (older Recap clients, or any non-Recap caller), the yt-dlp-extracted values fill in. With this metadata present, the model can correctly assign speaker labels (host name from channel, guest names from description, chapter titles often name both) — same behavior the recap-app direct-to-Gemini path has had since launch. Without it, every transcript came back with unlabeled dialogue regardless of how detailed the prompt\'s speaker-identification rule was. (2) Strengthened the speaker-ID rule in DEFAULT_TRANSCRIBE_PROMPT_BODY to match recap-app\'s longer text. Adds three previously-missing hints: "the channel name is often the host\'s name", explicit in-audio cue examples ("I\'m Dax", "this is Will"), and a stricter fallback condition ("Only fall back to Host/Guest if no names appear in the metadata AND nobody is introduced by name in the audio"). The shorter prior rule was hand-trimmed from recap-app at fork-time; the longer version produces meaningfully better speaker attribution in practice. Net effect: paired with recap-app 0.2.74 (which also fetches metadata client-side and passes it through), a Recap → Relay → Gemini summarize now produces transcripts with "Brandon Karpeles:" and "Matt Hill:" labels rather than unlabeled paragraphs.',
},
migrations: {
up: async ({ effects }) => {},
down: async ({ effects }) => {},
},
})