{"definition_raw":"---\nid: radio-daily-brief\ntitle: Radio Show Daily Brief\nschedule: \"0 5 * * *\"\ntimeout: 2400\nretry: false\nenabled: true\nnotify_on: failure\nrun_as: shell\ncommand: \"cd /home/lucienne/workspace && RADIO_SCOUT=1 RADIO_SCOUT_WINDOW=24h python3 scripts/radio_daily_brief.py daily\"\nbackground: true\ntags: [radio, news, daily, audio]\nruntime_profile: direct_mixed\nnotify_to: general\n---\n**OVERRIDES runtime profile:** uses `direct_mixed` because the pipeline drives NotebookLM (Gemini) via browser automation (notebooklm_helper.py) plus yt-dlp \u2014 it never invokes the `claude` CLI, so a claude_* profile lies and provider env injection does nothing (MC-4942 U12 sweep).\n\nDaily radio show news brief at 07:00 SAST (05:00 UTC).\n\nPulls top stories across Elmar's priority-1 interests (aviation, SA business/macro, geopolitics, crypto, AI) from the last 24 hours via WebSearch. Seeds a fresh NotebookLM notebook, generates a ~20-minute two-host audio Deep Dive covering all topics, then delivers to Telegram along with a text summary and archives to `~/workspace/reports/radio/`.\n\nPriority-2 topics (commodities, F1, padel) only included if they have fresh news and their `active_window` (if any) permits.\n\nEdit `~/.claude/skills/radio-show/interests.yaml` to add/remove/reprioritise topics.\n\n**MC-4365 curation layer.** The build now runs an editorial curation pass before NotebookLM (lane-aware freshness labels TODAY/THIS WEEK/BACKGROUND/EXCLUDE, material-update dedup over a 14-day ledger, relevance scoring, Boeing/Airbus fleet-watch lane). `RADIO_PREVIEW=1` is set on the command as the first-run guardrail: build_episode stops before any notebook/audio and `deliver_episode` posts the curated slate for review only \u2014 no audio, nothing on /briefings. After Elmar approves the preview, remove `RADIO_PREVIEW=1` from the command to go live. `RADIO_CURATE=0` disables curation entirely (raw collection fallback). Runbook: `~/.claude/skills/radio-show/references/curation-runbook.md`.\n\n**MC-4636 current-events scout.** `RADIO_SCOUT=1 RADIO_SCOUT_WINDOW=24h` is set on the command so the daily build runs the deterministic what-happened scout over the breaking lanes (`what_happened.scout_lanes`: geopolitics, sa-macro, markets, world-economy). Each lane gets a 24h recency pulse with confirmed/reported/claimed/chatter classification + radio hygiene (ledger dedupe, cooldown, material-update gate, stale labelling); SELECTED candidates are folded into the day's stories and a `<date>-daily-scout.json` candidate-record artifact is archived alongside the manifest (`scout` block). Viral social claims are never presented as fact. The scout adds no new posting side effect \u2014 the daily audio still generates and posts as before. To disable, drop `RADIO_SCOUT=1` from the command. Scout lanes/windows are configured in `interests.yaml` \u2192 `what_happened:`. A topic-focused dry-run alternative lives in the parked `what-happened-scout.md` task.\n","id":"radio-daily-brief","last_run":{"duration_s":870.901977,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/413674.log","output":"Mode: daily, topics: ['aviation', 'fleet-watch', 'sa-macro', 'geopolitics', 'crypto', 'ai', 'markets', 'sa-politics', 'world-economy']\nLedger: 591 prior story records (last 14d) loaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=15 kept=7 dup_url=3 dup_title=0 generic_dropped=5 thread_dup=0 freshness=0.857\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=19 kept=12 dup_url=4 dup_title=0 generic_dropped=3 thread_dup=0 freshness=0.917\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=18 kept=3 dup_url=5 dup_title=2 generic_dropped=8 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=19 kept=9 dup_url=4 dup_title=0 generic_dropped=6 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=22 kept=8 dup_url=1 dup_title=0 generic_dropped=13 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=19 kept=12 dup_url=2 dup_title=0 generic_dropped=5 thread_dup=0 freshness=0.75\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=25 kept=6 dup_url=9 dup_title=1 generic_dropped=9 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=17 kept=7 dup_url=2 dup_title=1 generic_dropped=7 thread_dup=0 freshness=0.857\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=24 kept=11 dup_url=7 dup_title=0 generic_dropped=6 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 5 (confirmed 0/reported 0/claimed 5/chatter 0) suppressed 15 \u2192 folded 2\n  scout[geopolitics] window=24h: selected 12 (confirmed 1/reported 0/claimed 11/chatter 0) suppressed 18 \u2192 folded 11\n  scout[markets] window=24h: selected 10 (confirmed 0/reported 1/claimed 7/chatter 2) suppressed 17 \u2192 folded 8\n  scout[world-economy] window=24h: selected 8 (confirmed 0/reported 1/claimed 7/chatter 0) suppressed 16 \u2192 folded 7\nCuration: TODAY 4 | THIS WEEK 25 | BACKGROUND 1 | suppressed 25 (of 55 evaluated)\nSeed saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-seed.md\nSummary saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-summary.md\nScout slate saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-13 Daily\n  notebook_id: 5c2a0c65-7086-44f0-aac1-8e3ac0ce1882\nAdding 30 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 27/30 alive (3 dead)\n    DEAD: https://www.marketscreener.com/news/south-african-rand-softens-amid-uncertainty-over-gulf-peace-deal-ce7f5cd9da88f123\n    DEAD: https://international.schwab.com/stock-market-opening-closing-timings\n    DEAD: https://www.nomadlawyer.org/airbus-a320-family-surpasses-20000-orders\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 13 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily.mp3\n\nManifest \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-manifest.json\nLedger \u2190 appended episode 2026-06-13-daily\nStory ledger \u2190 55 story records appended\n  sent 2026-06-13-daily.mp3\n  sent 2026-06-13-daily-seed.md\n  registered in audio-library/news/: 2026-06-13.mp3\n","started_at":"2026-06-13T05:04:29.537089+02:00","status":"completed"},"next_run":"2026-06-14 05:00","next_run_iso":"2026-06-14T05:00:00+02:00","runs":[{"duration_s":870.901977,"finished_at":"2026-06-13T05:19:00.439826+02:00","id":413674,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/413674.log","output":"Mode: daily, topics: ['aviation', 'fleet-watch', 'sa-macro', 'geopolitics', 'crypto', 'ai', 'markets', 'sa-politics', 'world-economy']\nLedger: 591 prior story records (last 14d) loaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=15 kept=7 dup_url=3 dup_title=0 generic_dropped=5 thread_dup=0 freshness=0.857\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=19 kept=12 dup_url=4 dup_title=0 generic_dropped=3 thread_dup=0 freshness=0.917\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=18 kept=3 dup_url=5 dup_title=2 generic_dropped=8 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=19 kept=9 dup_url=4 dup_title=0 generic_dropped=6 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=22 kept=8 dup_url=1 dup_title=0 generic_dropped=13 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=19 kept=12 dup_url=2 dup_title=0 generic_dropped=5 thread_dup=0 freshness=0.75\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=25 kept=6 dup_url=9 dup_title=1 generic_dropped=9 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=17 kept=7 dup_url=2 dup_title=1 generic_dropped=7 thread_dup=0 freshness=0.857\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=24 kept=11 dup_url=7 dup_title=0 generic_dropped=6 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 5 (confirmed 0/reported 0/claimed 5/chatter 0) suppressed 15 \u2192 folded 2\n  scout[geopolitics] window=24h: selected 12 (confirmed 1/reported 0/claimed 11/chatter 0) suppressed 18 \u2192 folded 11\n  scout[markets] window=24h: selected 10 (confirmed 0/reported 1/claimed 7/chatter 2) suppressed 17 \u2192 folded 8\n  scout[world-economy] window=24h: selected 8 (confirmed 0/reported 1/claimed 7/chatter 0) suppressed 16 \u2192 folded 7\nCuration: TODAY 4 | THIS WEEK 25 | BACKGROUND 1 | suppressed 25 (of 55 evaluated)\nSeed saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-seed.md\nSummary saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-summary.md\nScout slate saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-13 Daily\n  notebook_id: 5c2a0c65-7086-44f0-aac1-8e3ac0ce1882\nAdding 30 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 27/30 alive (3 dead)\n    DEAD: https://www.marketscreener.com/news/south-african-rand-softens-amid-uncertainty-over-gulf-peace-deal-ce7f5cd9da88f123\n    DEAD: https://international.schwab.com/stock-market-opening-closing-timings\n    DEAD: https://www.nomadlawyer.org/airbus-a320-family-surpasses-20000-orders\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 13 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily.mp3\n\nManifest \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-13-daily-manifest.json\nLedger \u2190 appended episode 2026-06-13-daily\nStory ledger \u2190 55 story records appended\n  sent 2026-06-13-daily.mp3\n  sent 2026-06-13-daily-seed.md\n  registered in audio-library/news/: 2026-06-13.mp3\n","started_at":"2026-06-13T05:04:29.537089+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"},{"duration_s":901.993269,"finished_at":"2026-06-12T05:20:00.458239+02:00","id":409508,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/409508.log","output":" filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=17 kept=9 dup_url=0 dup_title=0 generic_dropped=8 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=19 kept=12 dup_url=2 dup_title=0 generic_dropped=5 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=18 kept=5 dup_url=0 dup_title=1 generic_dropped=12 thread_dup=0 freshness=0.8\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=21 kept=8 dup_url=4 dup_title=0 generic_dropped=9 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=24 kept=10 dup_url=3 dup_title=0 generic_dropped=11 thread_dup=0 freshness=0.9\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=20 kept=12 dup_url=3 dup_title=0 generic_dropped=5 thread_dup=0 freshness=0.917\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=24 kept=8 dup_url=7 dup_title=0 generic_dropped=9 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=16 kept=4 dup_url=0 dup_title=2 generic_dropped=10 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=23 kept=14 dup_url=4 dup_title=0 generic_dropped=4 thread_dup=1 freshness=1.0\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 8 (confirmed 0/reported 0/claimed 7/chatter 1) suppressed 16 \u2192 folded 6\n  scout[geopolitics] window=24h: selected 5 (confirmed 0/reported 1/claimed 4/chatter 0) suppressed 16 \u2192 folded 4\n  scout[markets] window=24h: selected 9 (confirmed 0/reported 0/claimed 8/chatter 1) suppressed 16 \u2192 folded 8\n  scout[world-economy] window=24h: selected 12 (confirmed 1/reported 1/claimed 10/chatter 0) suppressed 11 \u2192 folded 10\nCuration: TODAY 4 | THIS WEEK 27 | BACKGROUND 0 | suppressed 24 (of 55 evaluated)\nSeed saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-12-daily-seed.md\nSummary saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-12-daily-summary.md\nScout slate saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-12-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-12 Daily\n  notebook_id: 51caf7d1-e181-4de0-9549-63a7ad5cdbeb\nAdding 31 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 24/31 alive (7 dead)\n    DEAD: https://www.reuters.com/world/china/taiwan-says-its-sovereignty-cannot-be-violated-china-ends-coast-guard-patrol-2026-06-11/\n    DEAD: https://www.reuters.com/technology/openai/\n    DEAD: https://www.bloomberg.com/crypto\n    DEAD: https://www.business-standard.com/amp/markets/capital-market-news/jsw-energy-ltd-slips-for-fifth-straight-session-126061100568_1.html\n    DEAD: https://www.reuters.com/legal/transactional/us-may-budget-deficit-shrinks-customs-collections-turn-negative-due-tariff-2026-06-10/\n    DEAD: https://www.news18.com/amp/world/taiwan-claims-chinese-vessels-entered-restricted-waters-around-taiping-island-ws-bel-10142872.html\n    DEAD: https://mybroadband.co.za/news/cellular/652862-top-south-african-mobile-network-not-taking-any-chances-with-eskom.html\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 13 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-12-daily.mp3\n\nManifest \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-12-daily-manifest.json\nLedger \u2190 appended episode 2026-06-12-daily\nStory ledger \u2190 55 story records appended\n  sent 2026-06-12-daily.mp3\n  sent 2026-06-12-daily-seed.md\n  registered in audio-library/news/: 2026-06-12.mp3\n","started_at":"2026-06-12T05:04:58.464516+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"},{"duration_s":814.972425,"finished_at":"2026-06-11T05:21:00.260280+02:00","id":405150,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/405150.log","output":"Mode: daily, topics: ['aviation', 'fleet-watch', 'sa-macro', 'geopolitics', 'crypto', 'ai', 'markets', 'sa-politics', 'world-economy']\nLedger: 558 prior story records (last 14d) loaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=15 kept=8 dup_url=1 dup_title=1 generic_dropped=3 thread_dup=2 freshness=0.875\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=16 kept=13 dup_url=0 dup_title=0 generic_dropped=3 thread_dup=0 freshness=0.923\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=23 kept=10 dup_url=5 dup_title=1 generic_dropped=6 thread_dup=1 freshness=0.9\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=21 kept=8 dup_url=6 dup_title=0 generic_dropped=7 thread_dup=0 freshness=0.75\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=22 kept=7 dup_url=2 dup_title=0 generic_dropped=12 thread_dup=1 freshness=0.857\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=17 kept=11 dup_url=2 dup_title=1 generic_dropped=3 thread_dup=0 freshness=0.727\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=25 kept=7 dup_url=8 dup_title=0 generic_dropped=10 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=20 kept=10 dup_url=1 dup_title=0 generic_dropped=8 thread_dup=1 freshness=1.0\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=20 kept=7 dup_url=4 dup_title=1 generic_dropped=8 thread_dup=0 freshness=0.857\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 12 (confirmed 0/reported 0/claimed 12/chatter 0) suppressed 16 \u2192 folded 11\n  scout[geopolitics] window=24h: selected 8 (confirmed 0/reported 1/claimed 7/chatter 0) suppressed 14 \u2192 folded 5\n  scout[markets] window=24h: selected 9 (confirmed 1/reported 0/claimed 8/chatter 0) suppressed 18 \u2192 folded 7\n  scout[world-economy] window=24h: selected 11 (confirmed 1/reported 3/claimed 7/chatter 0) suppressed 12 \u2192 folded 8\nCuration: TODAY 4 | THIS WEEK 26 | BACKGROUND 0 | suppressed 28 (of 58 evaluated)\nSeed saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-11-daily-seed.md\nSummary saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-11-daily-summary.md\nScout slate saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-11-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-11 Daily\n  notebook_id: a439a0c9-b6ed-411a-a0db-3940859a3ad2\nAdding 30 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 25/30 alive (5 dead)\n    DEAD: https://www.reuters.com/world/africa/south-african-rand-steady-with-iran-war-us-inflation-data-focus-2026-06-10/\n    DEAD: https://www.reuters.com/markets/econ-world/\n    DEAD: https://mybroadband.co.za/news/cellular/652862-top-south-african-mobile-network-not-taking-any-chances-with-eskom.html\n    DEAD: https://www.moneycontrol.com/world/\n    DEAD: https://www.cbc.ca/news/business/interest-rate-bank-of-canada-june-2026-9.7229759\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 14 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-11-daily.mp3\n\nManifest \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-11-daily-manifest.json\nLedger \u2190 appended episode 2026-06-11-daily\nStory ledger \u2190 58 story records appended\n  sent 2026-06-11-daily.mp3\n  sent 2026-06-11-daily-seed.md\n  registered in audio-library/news/: 2026-06-11.mp3\n","started_at":"2026-06-11T05:07:25.287406+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"},{"duration_s":734.017563,"finished_at":"2026-06-10T05:19:00.463860+02:00","id":400881,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/400881.log","output":" (last 14d) loaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=19 kept=7 dup_url=2 dup_title=0 generic_dropped=8 thread_dup=2 freshness=1.0\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=20 kept=13 dup_url=2 dup_title=0 generic_dropped=5 thread_dup=0 freshness=0.846\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=23 kept=8 dup_url=7 dup_title=0 generic_dropped=8 thread_dup=0 freshness=0.875\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=25 kept=16 dup_url=3 dup_title=0 generic_dropped=6 thread_dup=0 freshness=0.938\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=25 kept=15 dup_url=2 dup_title=0 generic_dropped=8 thread_dup=0 freshness=0.933\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=17 kept=13 dup_url=1 dup_title=0 generic_dropped=3 thread_dup=0 freshness=0.769\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=24 kept=7 dup_url=9 dup_title=0 generic_dropped=8 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=17 kept=5 dup_url=1 dup_title=2 generic_dropped=9 thread_dup=0 freshness=0.6\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=22 kept=8 dup_url=9 dup_title=0 generic_dropped=5 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 12 (confirmed 0/reported 0/claimed 12/chatter 0) suppressed 19 \u2192 folded 12\n  scout[geopolitics] window=24h: selected 12 (confirmed 1/reported 0/claimed 11/chatter 0) suppressed 22 \u2192 folded 12\n  scout[markets] window=24h: selected 12 (confirmed 0/reported 1/claimed 11/chatter 0) suppressed 20 \u2192 folded 11\n  scout[world-economy] window=24h: selected 12 (confirmed 1/reported 2/claimed 9/chatter 0) suppressed 17 \u2192 folded 10\nCuration: TODAY 9 | THIS WEEK 21 | BACKGROUND 0 | suppressed 42 (of 72 evaluated)\nSeed saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-10-daily-seed.md\nSummary saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-10-daily-summary.md\nScout slate saved \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-10-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-10 Daily\n  notebook_id: 8471f261-86ee-42c2-870b-b36e483fd464\nAdding 30 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 24/30 alive (6 dead)\n    DEAD: https://www.bloomberg.com/news/articles/2026-06-09/south-african-economic-growth-beats-forecasts-despite-war-hit\n    DEAD: https://www.bloomberg.com/news/articles/2026-06-09/boeing-delivers-60-aircraft-in-may-after-repairing-wiring-issue\n    DEAD: https://www.reuters.com/world/africa/south-africas-economy-shows-modest-q1-growth-iran-war-impact-yet-show-2026-06-09/\n    DEAD: https://www.reuters.com/business/aerospace-defense/taiwan-simulates-destroying-an-invading-chinese-force-coastal-drill-2026-06-09/\n    DEAD: https://www.reuters.com/business/aerospace-defense/boeing-jet-deliveries-jump-60-may-33-higher-than-last-year-2026-06-09/\n    DEAD: https://www.nytimes.com/2026/06/09/technology/anthropic-ai-claude-fable-mythos.html\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 14 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-10-daily.mp3\n\nManifest \u2192 /home/lucienne/gdrive/PKA-Outputs/radio/2026-06-10-daily-manifest.json\nLedger \u2190 appended episode 2026-06-10-daily\nStory ledger \u2190 72 story records appended\n  sent 2026-06-10-daily.mp3\n  sent 2026-06-10-daily-seed.md\n  registered in audio-library/news/: 2026-06-10.mp3\n","started_at":"2026-06-10T05:06:46.445960+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"},{"duration_s":796.500333,"finished_at":"2026-06-09T05:19:00.457977+02:00","id":396607,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/396607.log","output":"Mode: daily, topics: ['aviation', 'fleet-watch', 'sa-macro', 'geopolitics', 'crypto', 'ai', 'markets', 'sa-politics', 'world-economy']\nLedger: 437 prior story records (last 14d) loaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=18 kept=9 dup_url=1 dup_title=0 generic_dropped=8 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=32 kept=19 dup_url=2 dup_title=0 generic_dropped=9 thread_dup=2 freshness=0.895\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=22 kept=6 dup_url=3 dup_title=1 generic_dropped=12 thread_dup=0 freshness=0.833\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=20 kept=8 dup_url=4 dup_title=0 generic_dropped=8 thread_dup=0 freshness=0.875\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=24 kept=10 dup_url=2 dup_title=0 generic_dropped=12 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=20 kept=9 dup_url=2 dup_title=0 generic_dropped=8 thread_dup=1 freshness=1.0\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=24 kept=5 dup_url=8 dup_title=0 generic_dropped=11 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=16 kept=3 dup_url=2 dup_title=0 generic_dropped=11 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=23 kept=12 dup_url=4 dup_title=0 generic_dropped=7 thread_dup=0 freshness=0.917\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 10 (confirmed 1/reported 0/claimed 9/chatter 0) suppressed 20 \u2192 folded 8\n  scout[geopolitics] window=24h: selected 12 (confirmed 0/reported 1/claimed 11/chatter 0) suppressed 16 \u2192 folded 10\n  scout[markets] window=24h: selected 10 (confirmed 1/reported 0/claimed 9/chatter 0) suppressed 19 \u2192 folded 7\n  scout[world-economy] window=24h: selected 12 (confirmed 1/reported 1/claimed 10/chatter 0) suppressed 13 \u2192 folded 9\nCuration: TODAY 0 | THIS WEEK 27 | BACKGROUND 1 | suppressed 33 (of 61 evaluated)\nSeed saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-09-daily-seed.md\nSummary saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-09-daily-summary.md\nScout slate saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-09-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-09 Daily\n  notebook_id: 328db71e-3c9f-4ae8-b499-609eeef44447\nAdding 28 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 26/28 alive (2 dead)\n    DEAD: https://cryptoslate.com/bitcoin-price-rebound-wobbles-as-israel-defies-trump-and-hits-iran-sending-oil-back-toward-100/\n    DEAD: https://www.bloomberg.com/markets/rates-bonds/consumer-interest-rates\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 14 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/workspace/reports/radio/2026-06-09-daily.mp3\n\nManifest \u2192 /home/lucienne/workspace/reports/radio/2026-06-09-daily-manifest.json\nLedger \u2190 appended episode 2026-06-09-daily\nStory ledger \u2190 61 story records appended\n  sent 2026-06-09-daily.mp3\n  sent 2026-06-09-daily-seed.md\n  registered in audio-library/news/: 2026-06-09.mp3\n","started_at":"2026-06-09T05:05:43.957393+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"},{"duration_s":1047.988235,"finished_at":"2026-06-08T05:24:00.265651+02:00","id":392517,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/392517.log","output":"Mode: daily, topics: ['aviation', 'fleet-watch', 'sa-macro', 'geopolitics', 'crypto', 'ai', 'markets', 'sa-politics', 'world-economy']\nLedger: 386 prior story records (last 14d) loaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=17 kept=10 dup_url=3 dup_title=0 generic_dropped=4 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=20 kept=11 dup_url=3 dup_title=0 generic_dropped=5 thread_dup=1 freshness=1.0\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=15 kept=5 dup_url=4 dup_title=0 generic_dropped=6 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=20 kept=8 dup_url=3 dup_title=0 generic_dropped=8 thread_dup=1 freshness=0.875\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=22 kept=6 dup_url=1 dup_title=0 generic_dropped=15 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=21 kept=11 dup_url=4 dup_title=0 generic_dropped=6 thread_dup=0 freshness=0.909\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=23 kept=7 dup_url=8 dup_title=0 generic_dropped=8 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=15 kept=1 dup_url=3 dup_title=0 generic_dropped=10 thread_dup=1 freshness=1.0\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=22 kept=8 dup_url=6 dup_title=0 generic_dropped=8 thread_dup=0 freshness=0.875\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 9 (confirmed 0/reported 0/claimed 7/chatter 2) suppressed 11 \u2192 folded 7\n  scout[geopolitics] window=24h: selected 12 (confirmed 0/reported 1/claimed 11/chatter 0) suppressed 15 \u2192 folded 9\n  scout[markets] window=24h: selected 12 (confirmed 0/reported 0/claimed 12/chatter 0) suppressed 15 \u2192 folded 9\n  scout[world-economy] window=24h: selected 11 (confirmed 0/reported 0/claimed 11/chatter 0) suppressed 16 \u2192 folded 9\nCuration: TODAY 2 | THIS WEEK 25 | BACKGROUND 0 | suppressed 32 (of 59 evaluated)\nSeed saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-08-daily-seed.md\nSummary saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-08-daily-summary.md\nScout slate saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-08-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-08 Daily\n  notebook_id: 65ead353-19a4-4b05-ac5e-14b34b503a0e\nAdding 27 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 23/27 alive (4 dead)\n    DEAD: https://www.bloomberg.com/news/articles/2026-06-07/airbus-notifies-a321-customers-of-delays-on-jets-due-in-2028\n    DEAD: https://www.reuters.com/world/ukraine-crisis/\n    DEAD: https://mybroadband.co.za/news/energy/651953-eskom-offers-83-electricity-discount-to-two-heavy-power-users.html\n    DEAD: https://www.theaustralian.com.au/nation/politics/newspoll-pauline-hansons-one-nation-in-front-of-labor-anthony-albanese-gets-worst-ever-rating/news-story/f4e47be80091b678d835cb9334fc8b0a\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 14 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/workspace/reports/radio/2026-06-08-daily.mp3\n\nManifest \u2192 /home/lucienne/workspace/reports/radio/2026-06-08-daily-manifest.json\nLedger \u2190 appended episode 2026-06-08-daily\nStory ledger \u2190 59 story records appended\n  sent 2026-06-08-daily.mp3\n  sent 2026-06-08-daily-seed.md\n  registered in audio-library/news/: 2026-06-08.mp3\n","started_at":"2026-06-08T05:06:32.277184+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"},{"duration_s":906.839399,"finished_at":"2026-06-07T05:20:00.437306+02:00","id":388149,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/388149.log","output":"Mode: daily, topics: ['aviation', 'fleet-watch', 'sa-macro', 'geopolitics', 'crypto', 'ai', 'markets', 'sa-politics', 'world-economy']\nLedger: 346 prior story records (last 14d) loaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=12 kept=5 dup_url=5 dup_title=0 generic_dropped=2 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=21 kept=13 dup_url=3 dup_title=0 generic_dropped=5 thread_dup=0 freshness=0.923\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=20 kept=6 dup_url=2 dup_title=0 generic_dropped=12 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=20 kept=8 dup_url=2 dup_title=0 generic_dropped=10 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=21 kept=7 dup_url=1 dup_title=0 generic_dropped=12 thread_dup=1 freshness=1.0\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=20 kept=10 dup_url=1 dup_title=1 generic_dropped=6 thread_dup=2 freshness=1.0\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=23 kept=5 dup_url=7 dup_title=0 generic_dropped=11 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=19 kept=7 dup_url=3 dup_title=1 generic_dropped=8 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=20 kept=7 dup_url=6 dup_title=0 generic_dropped=6 thread_dup=1 freshness=1.0\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 6 (confirmed 0/reported 0/claimed 6/chatter 0) suppressed 14 \u2192 folded 3\n  scout[geopolitics] window=24h: selected 7 (confirmed 0/reported 1/claimed 6/chatter 0) suppressed 14 \u2192 folded 5\n  scout[markets] window=24h: selected 6 (confirmed 0/reported 1/claimed 5/chatter 0) suppressed 17 \u2192 folded 4\n  scout[world-economy] window=24h: selected 7 (confirmed 0/reported 0/claimed 7/chatter 0) suppressed 13 \u2192 folded 4\nCuration: TODAY 1 | THIS WEEK 30 | BACKGROUND 0 | suppressed 12 (of 43 evaluated)\nSeed saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-07-daily-seed.md\nSummary saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-07-daily-summary.md\nScout slate saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-07-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-07 Daily\n  notebook_id: 9cee5936-eed8-4927-a68f-2ebd0ba866aa\nAdding 31 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 26/31 alive (5 dead)\n    DEAD: https://www.moneycontrol.com/stocksmarketsindia/\n    DEAD: https://www.business-standard.com/amp/markets/capital-market-news/dollar-index-witnesses-massive-surge-to-2-month-high-beyond-100-mark-126060600215_1.html\n    DEAD: https://www.mexc.com/news/1132393\n    DEAD: https://www.npr.org/sections/elections/\n    DEAD: https://nomadlawyer.org/air-china-eastern-1572-delays-116-cancellations-june-2026-beijing-shanghai-guang\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 14 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/workspace/reports/radio/2026-06-07-daily.mp3\n\nManifest \u2192 /home/lucienne/workspace/reports/radio/2026-06-07-daily-manifest.json\nLedger \u2190 appended episode 2026-06-07-daily\nStory ledger \u2190 43 story records appended\n  sent 2026-06-07-daily.mp3\n  sent 2026-06-07-daily-seed.md\n  registered in audio-library/news/: 2026-06-07.mp3\n","started_at":"2026-06-07T05:04:53.597653+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"},{"duration_s":897.298407,"finished_at":"2026-06-06T05:19:00.276285+02:00","id":383429,"log_path":"/home/lucienne/workspace/logs/task-runs/radio-daily-brief/383429.log","output":"oaded for novelty filter\n  [aviation] gathering stories (window=1d, mode=daily)...\n    [aviation] novelty: in=18 kept=10 dup_url=3 dup_title=0 generic_dropped=4 thread_dup=1 freshness=0.9\n    YouTube: 3 videos found\n  [fleet-watch] gathering stories (window=1d, mode=daily)...\n    [fleet-watch] novelty: in=24 kept=13 dup_url=3 dup_title=0 generic_dropped=5 thread_dup=3 freshness=1.0\n    YouTube: 3 videos found\n  [sa-macro] gathering stories (window=1d, mode=daily)...\n    [sa-macro] novelty: in=22 kept=8 dup_url=3 dup_title=2 generic_dropped=9 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [geopolitics] gathering stories (window=1d, mode=daily)...\n    [geopolitics] novelty: in=20 kept=9 dup_url=2 dup_title=0 generic_dropped=8 thread_dup=1 freshness=0.889\n    YouTube: 3 videos found\n  [crypto] gathering stories (window=1d, mode=daily)...\n    [crypto] novelty: in=24 kept=12 dup_url=2 dup_title=0 generic_dropped=10 thread_dup=0 freshness=1.0\n    YouTube: 3 videos found\n  [ai] gathering stories (window=1d, mode=daily)...\n    [ai] novelty: in=19 kept=12 dup_url=1 dup_title=0 generic_dropped=5 thread_dup=1 freshness=0.917\n    YouTube: 3 videos found\n  [markets] gathering stories (window=1d, mode=daily)...\n    [markets] novelty: in=23 kept=10 dup_url=7 dup_title=0 generic_dropped=6 thread_dup=0 freshness=0.8\n    YouTube: 3 videos found\n  [sa-politics] gathering stories (window=1d, mode=daily)...\n    [sa-politics] novelty: in=15 kept=3 dup_url=1 dup_title=1 generic_dropped=10 thread_dup=0 freshness=0.667\n    YouTube: 3 videos found\n  [world-economy] gathering stories (window=1d, mode=daily)...\n    [world-economy] novelty: in=23 kept=13 dup_url=7 dup_title=0 generic_dropped=3 thread_dup=0 freshness=0.923\n    YouTube: 3 videos found\nCurrent-events scout (MC-4636):\n  scout[sa-macro] window=24h: selected 8 (confirmed 0/reported 0/claimed 8/chatter 0) suppressed 15 \u2192 folded 6\n  scout[geopolitics] window=24h: selected 12 (confirmed 0/reported 0/claimed 10/chatter 2) suppressed 15 \u2192 folded 12\n  scout[markets] window=24h: selected 12 (confirmed 0/reported 0/claimed 12/chatter 0) suppressed 25 \u2192 folded 11\n  scout[world-economy] window=24h: selected 11 (confirmed 0/reported 0/claimed 11/chatter 0) suppressed 12 \u2192 folded 9\nCuration: TODAY 4 | THIS WEEK 26 | BACKGROUND 1 | suppressed 34 (of 65 evaluated)\nSeed saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-06-daily-seed.md\nSummary saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-06-daily-summary.md\nScout slate saved \u2192 /home/lucienne/workspace/reports/radio/2026-06-06-daily-scout.json\n\nCreating NotebookLM notebook: Radio 2026-06-06 Daily\n  notebook_id: a364be01-1f84-490f-8f2c-1e05e5419c64\nAdding 31 article URLs + 15 YouTube URLs to notebook...\n  Validated URLs: 25/31 alive (6 dead)\n    DEAD: https://www.reuters.com/world/china/taiwan-china-coast-guards-renewed-standoff-top-south-china-sea-2026-06-05/\n    DEAD: https://www.reuters.com/world/africa/south-african-rand-flat-after-reserves-data-gdp-focus-next-week-2026-06-05/\n    DEAD: https://www.reuters.com/business/aerospace-defense/boeing-weighs-737-ramp-up-approach-airbus-production-targets-air-current-reports-2026-06-04/\n    DEAD: https://cybernews.com/ai-news/claude-outage-resolved-anthropic-opus-model-errors/\n    DEAD: https://www.reuters.com/business/aerospace-defense/boeing-weighs-737-ramp-up-approach-airbus-production-targets-air-current-reports-2026-06-04/\n    DEAD: https://www.reuters.com/business/ecb-june-hike-done-deal-another-likely-september-economists-say-2026-06-03/\n  Validated URLs: 15/15 alive (0 dead)\n  Ledger: 13 prior episodes injected to avoid repeats\nGenerating audio...\n  \u2192 /home/lucienne/workspace/reports/radio/2026-06-06-daily.mp3\n\nManifest \u2192 /home/lucienne/workspace/reports/radio/2026-06-06-daily-manifest.json\nLedger \u2190 appended episode 2026-06-06-daily\nStory ledger \u2190 65 story records appended\n  sent 2026-06-06-daily.mp3\n  sent 2026-06-06-daily-seed.md\n  registered in audio-library/news/: 2026-06-06.mp3\n","started_at":"2026-06-06T05:04:02.977609+02:00","status":"completed","task_id":"radio-daily-brief","task_name":"Radio Show Daily Brief"}],"runs_limit":20,"schedule":"0 5 * * *","schedule_label":{"description":"Daily at 05:00","is_custom":false,"label":"Daily","sort":4,"sort_time":"05:00"},"stats":{"avg_duration":871.313951,"completed":8,"failed":0,"timeout":0,"total":8},"task":{"_description":"**OVERRIDES runtime profile:** uses `direct_mixed` because the pipeline drives NotebookLM (Gemini) via browser automation (notebooklm_helper.py) plus yt-dlp \u2014 it never invokes the `claude` CLI, so a claude_* profile lies and provider env injection does nothing (MC-4942 U12 sweep).\n\nDaily radio show news brief at 07:00 SAST (05:00 UTC).\n\nPulls top stories across Elmar's priority-1 interests (aviation, SA business/macro, geopolitics, crypto, AI) from the last 24 hours via WebSearch. Seeds a fresh NotebookLM notebook, generates a ~20-minute two-host audio Deep Dive covering all topics, then delivers to Telegram along with a text summary and archives to `~/workspace/reports/radio/`.\n\nPriority-2 topics (commodities, F1, padel) only included if they have fresh news and their `active_window` (if any) permits.\n\nEdit `~/.claude/skills/radio-show/interests.yaml` to add/remove/reprioritise topics.\n\n**MC-4365 curation layer.** The build now runs an editorial curation pass before NotebookLM (lane-aware freshness labels TODAY/THIS WEEK/BACKGROUND/EXCLUDE, material-update dedup over a 14-day ledger, relevance scoring, Boeing/Airbus fleet-watch lane). `RADIO_PREVIEW=1` is set on the command as the first-run guardrail: build_episode stops before any notebook/audio and `deliver_episode` posts the curated slate for review only \u2014 no audio, nothing on /briefings. After Elmar approves the preview, remove `RADIO_PREVIEW=1` from the command to go live. `RADIO_CURATE=0` disables curation entirely (raw collection fallback). Runbook: `~/.claude/skills/radio-show/references/curation-runbook.md`.\n\n**MC-4636 current-events scout.** `RADIO_SCOUT=1 RADIO_SCOUT_WINDOW=24h` is set on the command so the daily build runs the deterministic what-happened scout over the breaking lanes (`what_happened.scout_lanes`: geopolitics, sa-macro, markets, world-economy). Each lane gets a 24h recency pulse with confirmed/reported/claimed/chatter classification + radio hygiene (ledger dedupe, cooldown, material-update gate, stale labelling); SELECTED candidates are folded into the day's stories and a `<date>-daily-scout.json` candidate-record artifact is archived alongside the manifest (`scout` block). Viral social claims are never presented as fact. The scout adds no new posting side effect \u2014 the daily audio still generates and posts as before. To disable, drop `RADIO_SCOUT=1` from the command. Scout lanes/windows are configured in `interests.yaml` \u2192 `what_happened:`. A topic-focused dry-run alternative lives in the parked `what-happened-scout.md` task.","_file":"radio-daily-brief.md","_path":"/home/lucienne/workspace/tasks/radio-daily-brief.md","background":true,"command":"cd /home/lucienne/workspace && RADIO_SCOUT=1 RADIO_SCOUT_WINDOW=24h python3 scripts/radio_daily_brief.py daily","enabled":true,"id":"radio-daily-brief","notify_on":"failure","notify_to":"general","retry":false,"run_as":"shell","runtime_profile":"direct_mixed","schedule":"0 5 * * *","tags":["radio","news","daily","audio"],"timeout":2400,"title":"Radio Show Daily Brief"}}
